. . MARK AND CLOSE COMMAND PROCESSES . . . (C) Copyright 1972-1978 John Walker . . This software is in the public domain . AXR$ DEFUNCT$ FANG PURE CODE . CLOSE* NOP 7 ENTRY FOR CLOSE MARK* LA A0,CDBPC,X8 GET POINTER TO FIRST PARAMETER LA A12,CDBACT,X8 LOAD ENTRY POINT LX X9,PBVAL,A0 X9 = FDT ADDRESS FOR FILE LA A0,FDTYPE,X9 LOAD FILE TYPE JTAPE A0,TGOOP PROCESS MARK IF TAPE FILE R$DIT . BUT ILLEGAL ON MASS STORAGE E$MSG MSF COPY ILLEGAL ON MASS STORAGE MESSAGE LA,U A0,,X9 LOAD FDT ADDRESS LMJ X11,FIST APPEND FILE IN STATEMENT AND PRINT MESSA ZAP . ROADBLOCK THE FILE COMPLETE . TERMINATE PROCESSING . TGOOP BGET IOL ALLOCATE AN I/O BUFFER DL A1,FDIN,X9 GET THE INFERNAL NAME DS A1,IOFN,A0 STORE INTO I/O PACKET LA,U A1,WEF$ GET WRITE END OF FILE FUNCTION SA A1,IOFUNC,A0 PUT IN FUNCTION FIELD SZ IOSTATUS,A0 MAKE STATUS POSITIVE SX X9,IOFDT,A0 SAVE FDT ADDRESS SZ IOACW,A0 CLEAR ACCESS WORD IOW$ . WRITE THE EOF MARK TZ IOSTATUS,A0 DID IT COMPLETE OK ? J MRKERR NO. EDIT THE STATUS TE,U A12,CLOSE ENTRY FOR CLOSE COMMAND ? J MARKDN NO. DONE WITH MARK COMMAND IOW$ . WRITE SECOND EOF MARK TZ IOSTATUS,A0 ERROR STATUS ? J MRKERR YES. ERROR THE COMMAND LA,U A2,REW$ LOAD REWIND FUNCTION LA A1,CDOPTS,X8 LOAD COMMAND OPTIONS TEP,U A1,OPTION('I') REWIND WITH INTERLOCK ? LA,U A2,REWI$ YES. LOAD REWIND WITH INTERLOCK SA A2,IOFUNC,A0 PUT REWIND FUNCTION IN PACKET IOW$ . REWIND THE TAPE TZ IOSTATUS,A0 NORMAL COMPLETION ? J MRKERR NO. EDIT ERROR MESSAGE MARKDN BRELP A0 RELEASE THE I/O BUFFER COMPLETE . DONE WITH THIS COMMAND . MRKERR LMJ X11,IOSEDT EDIT THE STATUS BRELP A0 RELEASE THE BUFFER ZAP . FLAG AND ROADBLOCK COMPLETE . TERMINATE . PURE DATA MSF 'UNABLE TO WRITE END OF FILE MARK ON MASS STORAGE !' END