.TITLE SRDROT .IDENT /2.1/ ;01 12-NOV-76 ;+ ; ;**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 BCS LSTNX$ ; IF ERROR GO TO NEXT DIRECTORY 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? BEQ 5$ ;01 BR IF NO FILES BIT #SPSW,SWMSK$ ;01 SPOOL THIS FILE? BEQ 10$ ;01 BR IF NO MOV #LSTFDB,R0 ;01 GET THE FILE DESC. BLK CALL .PRINT ;01 INSERT IN PRINT QUEUE BR 10$ ;01 CONTINUE 5$: ;01 REFERENCE DIAG NOFL ;ISSUE "NO SUCH FILE" DIAGNOSTIC 10$: CLEAN$::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 .WORD TRAP0 .END $SRD0