.TITLE LIST .SBTTL LIST DIRECTORY ;************************************************************************** ; ; LIST THE DIRECTORY OF A CIL ; ;************************************************************************** DIRECT::CMP #"TT,OUTDST+N.DVNM ;ARE WE THE TERMINAL? BEQ 1$ ;YES CMP #"LP,OUTDST+N.DVNM ;ARE WE THE LINEPRINTER? BNE 2$ ;NO, SO MUST BE FILE 1$: BIC #NB.NAM!NB.TYP!NB.DIR,OUTDST+N.STAT ;NO DEFAULTS IF TI OR LP 2$: OPEN$W #OUTLST,,,,,,LSTERR ;OPEN THE LISTING FILE OPEN$R #PRIINP,,,,,,PRIERR ;OPEN THE PRIMARY INPUT MOV #PRIINP,R0 ;FDB CALL READ ;READ THE 1ST BLOCK MOV #PRIDST+N.DVNM,ARG ;DEVICE NAME MOV PRIDST+N.UNIT,ARG2 ;UNIT NUMBER MOV PRIDST+N.FNAM,ARG3 ;FILENAME MOV PRIDST+N.FNAM+2,ARG4 ; MOV PRIDST+N.FNAM+4,ARG5 ; MOV PRIDST+N.FTYP,ARG6 ;EXTENSION GTIM$C ARG7 ;DATE AND TIME DSWERR MOV #DIR1,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT ALL CMP #1,PRIBUF ;IS IT AN LCL OR CIL FORMAT? BEQ 3$ ;YES MOV #-1,PRIFLG ;ASSUME LDA FORMAT JMP CONT3 ;THERE IS NO FILE HEADER 3$: CMPB #4,PRIBUF+6 ;IS IT AN LCL? BNE .+6 ;NO JMP LCLD1 ;YES CMPB #3,PRIBUF+6 ;IS IT A CIL? BEQ .+6 ;YES JMP UNDERR ;ABORT OTHERWISE .PAGE CONT1: MOV 16(R4),ARG ;LOGICAL BLOCK SIZE ASR ARG ;IN WORDS MOV #DIR2,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT MOV 26(R4),ARG ;BLOCKS USED MOV #DIR3A,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT MOV 24(R4),ARG ;BLOCKS RESERVED MOV #DIR3B,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT MOV 20(R4),ARG ;NUMBER OF CORE IMAGES MOV #DIR4,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT MOV #DIRDAT,R1 ;REVISION DATE STORAGE ADD #10,R4 ;DATE AND TIME WORDS CLR YEAR ;CILUS SETS UP DATE OKAY CALL DATE ;GO GET REVISION DATE AND TIME MOV #DIR5,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT CONT3: MOV #DIR6,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT MOV #DIR7,R1 ;MESSAGE FORMAT CALL OUTPUT ;PRINT IT BIT #DU,FLAG ;WERE WE A DUMP (SAME AS LI, SO FAR) BEQ .+4 ;NO, SO WE ARE LI OR DI RETURN ;RETURN FOR DUMP CMP #-2,PRIFLG ;ARE WE AN LICIL? BNE .+6 ;NO JMP LCLD2 ;YES, FIND A HEADER MOV #PRIBUF,R4 ;REINIT CONT2: MOV #YR,YEAR ;FIX BECAUSE OF LNK ERROR CALL DIR ;PRINT DIRECTORY JMP RESTAR ;CONTINUE .PAGE ;*************************************************************************** ; ; SPECIAL PROCESSING FOR LICIL FORMATTED FILES ; ;*************************************************************************** LCLD1: MOV #-2,PRIFLG ;FLAG THAT WE HAVE AN LCL FORMAT TST (R4)+ ;SKIP "1" CALL DCHK ;CHECK FOR E.O.B. NEXT ;GO TO START OF NEXT RECORD TST -(R4) ;BACK UP OVER "1" JMP CONT1 ;CONTINUE ; LCLD2: CALL READ ;JUST GET A NEW BUFFER NEXT ;GO TO THE NEXT RECORD CMP #LDAHDR+4,(R4) ;GOT A FILE HEADER? BEQ .+6 ;YES, PROCESS IT JMP UNDERR ;NO, SO SOME KIND OF PROBLEM JMP CONT2 ;CONTINUE ; ;************************************************************************* ; ; MESSAGE DEFINITIONS ; ;************************************************************************* DIR1: .ASCIZ /%N%NDIRECTORY LISTING OF %2A%M:%3R.%R %Y %3Z/ DIR2: .ASCIZ /%N%NLOGICAL BLOCK SIZE IN WORDS = %M./ DIR3A: .ASCIZ /%NNUMBER OF BLOCKS USED = %M./ DIR3B: .ASCIZ /%NNUMBER OF BLOCKS RESERVED = %M./ DIR4: .ASCIZ /%NNUMBER OF CORE IMAGES = %M./ DIR5: .ASCII /%NCIL WAS LAST MODIFIED ON / DIRDAT: .ASCIZ /XX-XXX-XX XX:XX:XX/ DIR6: .ASCIZ /%N%N%NPROGRAMS WITHIN CIL :-/ DIR7: .ASCII /%N.TITLE .IDENT DATE & TIME INSERTED SIZE LOAD / .ASCIZ /ADDR START/ .EVEN .END