.TITLE SRDROT .IDENT /V5.0/ ; UPDATE AUDIT CONTROL-13 NOV 1979 12:09:26 ;**V5.0 ; EDIT # 0008 31 OCT 1979 12:40:18 DR1:[300,3]SRDROT.MAC;13 ;**V5.0 ; PREVIOUS EDIT 23 OCT 1979 11:12:06 DR1:[300,3]SRDROT.MAC;12 ;**V5.0 ;+ ;**-1 ; ;**SRD--SORT DIRECTORY ; ; TASK ROOT SEGMENT ; ; ; THIS TASK WILL SORT A RSX11M DIRECTORY ;THEN CREATE A LISTING WITH MANY SELECTION OPTIONS ; ;THIS IS THE MAIN ROUTINE, AND IS PURE. ; ; ;- ; ;SYSTEM MACRO CALLS ; .MCALL FINIT$,CLOSE$ $SRD0:: ;INITIAL ENTERY MOV SP,SAVSP ;MARK THE STACK FINIT$ ;SET UP FCS SRD1: CALL SRDINI ;INIT NEXT RUN SRD2: CALL SRDOPR ;OPEN AND READ UFD CALL SRDSRT ;SORT THE DIRECTORY TST R5 ;**V5.0 BEQ 5$ ;**V5.0 FERR WBERR ;**V5.0 ;**V5.0 5$: CALL SRDLST ;LIST THE FILE ;**V5.0 TST UFDFDB+F.BDB ; DIRECTORY STILL OPEN ?? ;**V5.0 BNE SRD2 ; YES, GO DO NEXT PIECE OF IT. ;**V5.0 ;**V5.0 LSTNX$:: ;**V5.0 MOV SAVSP,SP ; RECOVER THE STACK ;**V5.0 CLOSE$ #UFDFDB ; CLOSE UFD ;**V5.0 TST NXUIC$ ;DOING WILD CARD? ;**V5.0 BEQ RESTR$ ;BR IF NO ;**V5.0 BIC #HDSW,SWMSK$ ; FLAG HEADER NOT PRINTED ;**V5.0 CLR NUMFS ; TO COUNT # OF FILES ;**V5.0 CLR NUMFT ;**V5.0 CLR TBLKU ; CLEAR BLOCK COUNTS ;**V5.0 CLR TBLKU+2 ;**V5.0 CLR TBLKA ;**V5.0 CLR TBLKA+2 ;**V5.0 CALL SRDNUD ;FIND NEXT DIRECTORY TO WORK ON ;**V5.0 BCC SRD2 ;PROCESS IF ONE FOUND ;**V5.0 RESTR$:: ;RESTART FOR SURE! ;**V5.0 BIT #FLSW,SWMSK$ ;ANYTHING GET LISTED? ;**V5.0 BNE 10$ ;BR IF YES ;**V5.0 5$: DIAG NOFL ;ISSUE "NO SUCH FILE" DIAGNOSTIC ;**V5.0 10$: MOV SAVSP,SP ;CLEAN THE STACK ;**V5.0 CLOSE$ #UFDFDB ;MAKE SURE ALL FILES ARE CLOSED ;**V5.0 BIT #SPSW,SWMSK$ ;SPOOL THE FILE ? ;**V5.0 BEQ 15$ ;BR IF NO ;**V5.0 MOV #LSTFDB,R0 ;RECOVER FILE DESCRIPTOR BLOCK ;**V5.0 CALL .PRINT ;AND PRINT IT ;**V5.0 BR 20$ ;CONTINUE ;**V5.0 ;**V5.0 15$: CLOSE$ #LSTFDB ;--- ;**V5.0 20$: JSR R0,ATTDET ;MAKE SURE DEVICE- ;**V5.0 .WORD IO.DET ;--IS DETACHED! ;**-23 BR SRD1 ;ELSE START OVER-FROM THE TOP! .PSECT $PDATA CON,RW,D,LCL SSTVC$::.WORD 0,0,0,0,0,0 .WORD TRAP0 .END $SRD0