.
. 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