.TITLE SRDOPR-OPEN & READ .IDENT /V2.1/ ;26-MAY-79 ;+++002 ;+ ; ;**SRD--SORT DIRECTORY ; ;THIS MODULE OPENS THE UFD AND READS IT INTO MEMORY ; ; ; 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 OFID$,READ$,WAIT$ ;OPEN BY FILE ID ;+++002 SRDOPR:: OFID$ #UFDFDB ;OPEN THE DIRECTORY ;+++002 BCC 10$ ;THIS SHOULD WORK! FERR OPNI 10$: MOV DIRBF$,F.BKDS+2(R0) ;POINT AT TOP OF BUFFER MOV #1,R1 ;FLAG FIRST READ ;+++002 20$: READ$ R0 ;READ IT BCS 30$ ;BR IF ABNORMAL RETURN WAIT$ R0 ADD #512.,F.BKDS+2(R0) ;ADVANCE I-O BUFFER PTR CLR R1 ;CLEAR FIRST READ ;+++002 MOV F.BKDS+2(R0),-(SP) ;GET START OF BUFFER ADD #514.,(SP) ;FIND END MUST TERMINATE (514) CMP (SP)+,DIRBE$ ;ROOM? BLOS 20$ FERR 0 30$: CMPB #IE.EOF,F.ERR(R0) ;END-OF FILE??? BEQ 40$ ;CONTINUE IF YES! FERR REDE ;READ ERROR OF INPUT FILE 40$: ;+++002 CLR @F.BKDS+2(R0) ;INSURE DIRECTORY IS TERMINATED ROR R1 ;SET C BIT IF EOF ON FIRST READ ;+++002 BCC 45$ ;CC - EVERYTHING OK ;+++002 CALL .CLOSE ;CLOSE THE UFD ;+++002 SEC ;SET C BIT ;+++002 45$: ;+++002 RETURN ;+++002 .END