.TITLE SRDROT .IDENT /V2.3/ ; 01-Mar-79 ;+ ; ;**SRD--SORT DIRECTORY ; ; TASK ROOT SEGMENT ; ; ; THIS TASK WILL SORT A Files-11 DIRECTORY ; THEN CREATE A LISTING WITH MANY SELECTION OPTIONS ; ;THIS IS THE MAIN ROUTINE, AND IS PURE. ; ; Edits: ; ;No. Date By Reason ;--- --------- ----- ------------------------------------------------- ;+03 01-Mar-79 HRT Added sharable code support ; ;- ; ;SYSTEM MACRO CALLS ; .MCALL FINIT$,CLOSE$ .PSECT SRDROT,I,RO,REL ; +03 For sharable code .sbttl Mainline code. Initialize FCS and start up $SRD0:: ; INITIAL ENTRY 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 BIT #LISW,SWMSK$ ; LISTING ACTIVE? BEQ LSTNX$ ; BR IF NO-FORGET THAT ROUTINE CALL SRDLST ; LIST THE FILE LSTNX$::TST NXUIC$ ; DOING WILD CARD? BEQ RESTR$ ; BR IF NO CALL SRDNUD ; FIND NEXT DIRECTORY TO WORK ON BCC SRD2 ; PROCESS IF ONE FOUND RESTR$:: ; RESTART FOR SURE! BIT #LISW,SWMSK$ ; LISTING ACTIVE? BEQ 10$ ; BR IF NO BIT #FLSW,SWMSK$ ; ANYTHING GET LISTED? BNE 10$ ; BR IF YES BEQ 5$ ; BR IF NO FILES BIT #SPSW,SWMSK$ ; SPOOL THE FILE ? BEQ 10$ ; BR IF NO MOV #LSTFDB,R0 ; RECOVER FILE DESCRIPTOR BLOCK CALL .PRINT ; AND PRINT IT BR 10$ ; CONTINUE 5$: DIAG NOFL ; ISSUE "NO SUCH FILE" DIAGNOSTIC 10$: MOV SAVSP,SP ; CLEAN THE STACK CLOSE$ #UFDFDB ; MAKE SURE ALL FILES ARE CLOSED CLOSE$ #LSTFDB ; --- JSR R0,ATTDET ; MAKE SURE DEVICE- .WORD IO.DET ; --IS DETACHED! BR SRD1 ; ELSE START OVER-FROM THE TOP! .PSECT $PDATA CON,RW,D,LCL SSTVC$::.WORD 0,0,0,0,0,0 ; DEFINE SST VECTOR TABLE .WORD TRAP0 .END $SRD0