-7,7 .IDENT -DSK IO- -50,50 ; 002 JUDITH EMMETT 06-JUN-78 ADD /TI:DEVICE TO /TAS ; 028 FRED A. LIEN 18-AUG-83 ADD INPUT FILE SPEC PARSING ; 029 FRED A. LIEN 25-AUG-83 ADD BINARY OUTPUT FILE SPEC ; 030 FRED A. LIEN 06-AUG-84 MAKE DISK I/O OPTIONAL -67 .MCALL OPEN$R ; +++028 BINARY FILE OPEN FOR READ ONLY .MCALL DELET$ ; +++029 .MCALL OPNT$D ; +++029 .MCALL CLOSE$ ; +++030 CLOSE WITHOUT DELETE -76,80 ; +++029 GCMLD$ ; +++029 CSI$ ; ; ; +++029 CSIBLK: .BLKB C.SIZE ; TMP: .WORD 0 ; +++028 TEMPORARY DATA STORAGE ; -91,91 FSPER2: ERRMSG ; FSPER: ERRMSG ; OPNERR: ERRMSG ; +++028 SOME ERROR MESSAGES ; CSI2ER: ERRMSG ; +++028 ; BINERR: ERRMSG -100 BINOPN: .WORD 0 ;+++030 FLAG TO INDICATE BINARY OUTPUT FILE ;+++030 DESCRIPTOR BLOCK HAS ALREADY BEEN ;+++030 OPENED. STOR0: .WORD 0 ;+++030 R0 TEMPORARY STORAGE ; -293 CLR BINOPN ;+++030 INITIALIZE BINARY FLAG. CLR WRTBIN ;+++030 RESET WRTBIN. CLOSE$ #BINFDB ;+++030 START FROM SCRATCH. -298,298 BITB #CS.WLD,C.STAT(R0) ;+++029 WAS #CS.WLD!CS.MOR,... -304,308 MOV R0,STOR0 ;+++030 OPEN$W #.FDOUT,,#CSIBLK+C.DSDS ;OPEN OUTPUT FILE BCC 170$ OUTBYT ,.FDOUT+F.ERR ;+++030 MOV #FILER,R2 JMP .MSG 170$: ;+++028 READ BINARY INPUT FILE NAME. MOV STOR0,R0 ;+++028 RESTORE R0 BITB #CS.MOR,C.STAT(R0) ;+++029 CREATE BINARY FILE?? BNE 1174$ ;+++030 JMP S172 ;+++030 1174$: MOV #1,WRTBIN ;+++029 FLAG TO SAVE BINARY FILE CSI$2 #CSIBLK,OUTPUT ;+++029 PARSE BINARY OUTPUT FILESPEC 1171$: MOV STOR0,R0 ;+++030 BITB #CS.MOR!CS.WLD,C.STAT(R0) ;+++029 NO MORE. NO WILD CARDS. BEQ 1172$ ;+++029 PROBLEM. JMP E172 1172$: OPEN$W #BINFDB,#OUTBLN,#CSIBLK+C.DSDS ;+++029 OPEN BINARY F. D. B. MOV #1,BINOPN ;+++030 BCS 172$ JMP S172 ;+++029 PROBLEM. 172$: MOV #BINERR,R2 ;+++030 JMP .MSG ;+++030 S172: MOV STOR0,R0 ;+++030 BITB #CS.EQU,C.STAT(R0) ; +++028 '=' INDICATES INPUT F.S. PRESENT BNE 176$ ; +++028 IF 'EQ' 0, NO = SIGN JMP S171 176$: CSI$2 #CSIBLK,INPUT ; +++028 READ INPUT FILE NAME BCS 177$ ; +++028 NO ERROR? BRANCH JMP S177 ; +++030 177$: OUTLIN ;+++030 JMP S171 ; +++030 S177: MOV STOR0,R0 ;+++030 BITB #CS.WLD!CS.MOR,C.STAT(R0) ; +++028 WILDCARDS & MULTIPLE FILES INVALID BEQ 182$ ; +++028 BR IF ERROR (I.E. SOMETHING SET) MOV #FSPER2,R2 ; +++028 JMP .MSG ; +++028 182$: TST CSIBLK+C.DSDS+10 ; +++030 IF "=" PRESENT AND NO FSPEC, ; +++030 THEN THIS = 0, SO... BEQ S171 ; +++030 DON'T TRY TO OPEN B.F. TST BINOPN ; +++030 IS BINARY FILE ALREADY OPEN?? BEQ 183$ ; +++030 NO. DON'T DELETE. DELET$ #BINFDB ; +++029 ERRONEOUSLY OPENED EARLIER 183$: OPEN$R #BINFDB,#INLUN,#CSIBLK+C.DSDS ; +++028 OPEN B. F. (ON INPUT LUN) FOR READ BCS E173 ; +++028 BR IF ERROR MOV #2,.RANDM ; +++028 SUCCESSFUL OPEN OF BINARY FILE JMP S171 E173: OUTBYT ,#BINFDB+F.ERR MOV #OPNERR,R2 ; +++028 BINARY OPEN ERROR MESSAGE JMP .MSG ; +++028 E172: MOV #CSI2ER,R2 ; +++028 BINARY CSI$2 ERROR MESSAGE JMP .MSG ; +++028 S171: ; +++028 SUCCESS. GET IT? /