.TITLE INCLUDE ; ; CORRECTION V6-29 1980-04-02 STD .IDENT /PAS629/ ; .MCALL OPEN$R,FDOF$L,OFID$,CLOSE$ ; FDOF$L ; ; OPEN ( VAR F: TEXT; STRING NAM,DIR,DEV ); ; OPEN:: TST (SS)+ ; SKIP LINK MOV 12.(SS),AR ; FILE ID SUB #FILESIZE,AR ; FDB CLOSE$ R0 OPEN$R R0,,SS ADD #14.,SS RTS PC ; ; ; SAVEFDB ( VAR FDB: TEXTFDB; VAR : TEXT; FN: STR20 ); ; SAVEFDB:: TST (SS)+ ; SKIP LINK MOV 2(SS),R ; FILE ID MOV F.URBD-FILESIZE+2(R),AD ; USER RECORD BUFFER MOV 2(R),AR ; NUMDER OF REMAINING CHARS MOV @R,R ; CURRENT RECORD POINTER 1$: MOVB (R)+,(AD)+ ; MOV BUFFER CONTENTS DEC AR BGT 1$ MOV 4(SS),R ; SAVE AREA MOV 2(SS),AD ; FILE ID MOV AD,-(HP) ; SAVE FILE ID MOV F.URBD-FILESIZE+2(AD),@AD ; NEW BUFFER CLR -(SS) ; SAVEFDB BR TRFR ; ; ; UNSAVEFDB ( VAR F: TEXT; VAR FDB: TEXTFDB ); ; UNSAVEFDB:: TST (SS)+ ; SKIP LINK MOV (SS)+,AD ; SAVE AREA MOV (SS),R ; FILE ID MOV R,AR SUB #FILESIZE,AR CMPB F.ERR(AR),#-26. ; FILE NOT FOUND ; V6-29 BEQ 1$ ; V6-29 CLOSE$ R0 MOV #TRUE,EOLNSTATUS(R) 1$: MOV #FALSE,EOFSTATUS(R) ; V6-29 TRFR: SUB #FILESIZE-F.FNB,AD SUB #FILESIZE-F.FNB,R MOV #15.,AR ; SIZE OF FILENAME BLOCK 1$: MOV (AD)+,(R)+ ; SAVE FILE DESCR DEC AR BGT 1$ TST (SS)+ BEQ 9$ ; SAVEFDB MOV R,AR SUB #96.,AR ; POINT TO FDB OFID$ R0 MOV R3,-(HP) MOV (AD)+,R1 MOV (AD)+,R3 MOV (AD)+,R2 CALL .POINT MOV F.NRBD+2(AR),AD MOV -(AD),F.NRBD(AR) MOV (HP)+,R3 RTS PC 9$: MOV R4,-(SS) MOV R3,-(SS) MOV R1,-(SS) MOV AD,AR SUB #96.,AR ; POINT TO FDB CALL .MARK MOV (SS)+,R4 MOV R1,(R4)+ MOV R3,(R4)+ MOV R2,(R4)+ MOV (SS)+,R3 MOV (SS)+,R4 MOV 2(SS),R ; FILE ID MOV @R,-(SS) ; POINTER TO NEXT CHAR DEC @SS ; ARRAY [1.. MOV 2(R),-(SS) ; LEN MOV GP,-(SS) ; LINK CALL NEWSOURCE MOV @SS,AD ; SAVE AREA ADDRESS MOV (HP)+,R ; FILE ID MOVB F.ERR-FILESIZE(R),AR ; V6-29 BGE 10$ ; IF OK MOV #1,EOFSTATUS(R) ; EOFSTATUS ; V6-29 10$: TST (SS)+ ; SKIP SAVE AREA ADDRESS RTS PC ; ; .END