--- /dev/null
+/EPIC PROGRAM, V5A
+/
+/
+/
+/
+/
+/
+/
+//
+/
+/
+/
+/
+/COPYRIGHT (C) 1973, 1975, 1977
+/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
+/
+/
+/
+/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
+/SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU-
+/SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER
+/COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE
+/TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
+/AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE
+/SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
+/
+/
+/THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
+/NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
+/EQUIPMRNT COROPATION.
+/
+/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
+/SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
+/
+/
+/
+/
+/
+/
+\f/EPIC PROGRAM
+/COPYRIGHT 1973,1977
+/DIGITAL EQUIPMENT CORP.
+/MAYNARD, MASS.01754
+
+ PTAPE=1
+ *0
+VERS, 10
+ *10
+NDX0, 0
+NDX1, 0
+NDX2, 0
+ *20
+BCC1, 0
+BCC2, 0
+BLKLEN, 13
+BUFFLD, 10
+BUFPTR, 0
+BYTCNT, 0
+ CLOC=BYTCNT
+CHKC, CTRLC
+CRLF, TYCRLF
+DATBUF, HDATA
+DOCRC, CRC
+EBLKHI, 0
+EFLG, -1
+EOTFLG, 0
+EQBLK, 0
+ERCODE, 0
+ EOLWD=ERCODE
+FLEN, 0
+FNPTR, 0
+FRMPTR, 0
+ MODF=FRMPTR
+GETCD, DECOD
+HANADR, 0
+IDOFLG, 0
+ MODB=IDOFLG
+IMPFLG, 0
+INCHR, 0
+INPTR, 0
+IOERR, PHYSIO
+LPWT, LPWAIT
+LSPFLG, 0
+MAXCNT, 0
+MAXLEN, -MXPBLK
+MIFLG, 0
+M4, -4
+NAME, 0
+OCNT, 0
+OUDEV, 0;0;0
+OUTCHR, 0
+OUTPTR, 0
+PARCHR, 0
+ MSKWD=PARCHR
+PARPTR, PARADR
+PATFLG, 0
+P17, 17
+P200, 200
+RDCHR, 0
+ SRWD=RDCHR
+RDPBLK, PREAD
+RDSWIT, SWITCH
+RELBLK, HDATA+5
+RBLK, 0
+SATOL, 0
+SBLK, 0
+SLPTR, 0
+SMTOX, 0
+SYTO9, 0
+TMP0, 0
+TMP1, 0
+TMP2, 0
+TMP3, 0
+TMP4, 0
+TNAME, TYPNAM
+TYDEV, TYPDEV
+TYPTXT, TTOTXT
+USR, DOUSR
+USRDEV, 0
+WRCHR, 0
+
+ PAGE
+\f
+START, NOP
+ CIF 10 /START OF PROG
+ JMS I (7700
+ USRIN
+ TAD MAXLEN
+ DCA MAXCNT
+ TLS
+ PLS
+ RFC
+DECOD, TAD (-PTAP
+ TAD MODE
+ SZA CLA
+ JMP .+4
+ TAD LSPFLG
+ SZA CLA
+ JMS I LPWT
+ JMS I CRLF
+ TSF
+ JMP .-1
+ CIF 10
+ JMS I P200
+ DECODE
+ 0
+ TLS /INIT. TTY
+ JMS I (SETDV
+ JMS I (CHKMI
+ CDF 10
+ TAD I (MTOX
+ CDF 0
+ CLL RTR
+ RAR
+ SNL
+ JMP NOVERS
+ JMS I CRLF
+ JMS I TYPTXT /IF /V,TYPE VERSION NUMBER
+ VERSON
+ JMS I CRLF
+NOVERS, TAD (FNAME
+ DCA NAME
+ TAD (7600 /GET NAME
+ DCA NDX0
+ TAD NAME
+ DCA TMP2
+ TAD DATBUF
+ DCA TMP3
+ TAD VERS
+ DCA I TMP3
+ ISZ TMP3
+ TAD M4
+ DCA TMP0
+ CDF 10
+ TAD I (YTO9
+ RAL /CHK /Z
+ SMA CLA
+ JMP .+3
+ DCA EQBLK
+ DCA EBLKHI
+ TAD I (ATOL
+ AND (20 /H ?
+ SZA CLA
+ FOURK /YES
+ DCA TMP1
+ CLA CLL CMA RAR /=3777
+ AND I (7642 /HI EQUALS N
+ TAD TMP1
+ SZA
+ DCA EBLKHI
+ TAD I (7642
+ DCA TMP1
+ TAD I (7646
+ SZA
+ DCA EQBLK /=N LO ORD
+ TAD I (ATOL
+ DCA SATOL
+ TAD I (YTO9
+ DCA SYTO9
+ TAD I (MTOX
+ DCA SMTOX
+ JMS I (DODFN
+ TAD TMP1
+ SMA CLA
+ JMP GOTMOD
+ TAD (MODTBL-1 /GET NEW MODE
+ DCA TMP1
+ TAD SYTO9
+ RAL CLL CML
+ RAL
+ ISZ TMP1
+ SMA /FOUND IT ?
+ JMP .-3
+ CLA
+ TAD I TMP1
+ DCA MODE
+ JMS I CRLF
+GOTMOD, JMP I MODE
+MODTBL, PTAP
+ FED
+ COMPAR
+ IFNZRO PTAPE <
+ DECOD
+ >
+ DECOD
+ DECOD
+ DECOD
+ DECOD
+ DECOD
+ DECOD
+MODE, DECOD
+
+VERSON, TEXT "V 5A "
+ 0
+ PAGE
+\f
+DODFN, 0
+ TAD I (7601
+ SZA CLA
+ JMP LOP0
+ TAD SYTO9
+ SPA CLA
+ JMP LOP0
+ ISZ TMP2
+ ISZ TMP3
+ ISZ TMP0
+ JMP .-3
+ CDF
+ JMP I DODFN
+LOP0, CDF 10
+ TAD I NDX0
+ CDF
+ DCA I TMP2
+ TAD I TMP2
+ DCA I TMP3
+ ISZ TMP2
+ ISZ TMP3
+ ISZ TMP0
+ JMP LOP0
+ JMP I DODFN
+
+HSPRDR, 0
+ JMS IOWAIT
+ RSF
+ RRB
+ DCA INCHR
+ RFC
+ TAD INCHR
+ JMP I HSPRDR
+
+HSPPCH, 0
+ DCA OUTCHR
+ JMS IOWAIT
+ PSF
+ TAD OUTCHR
+ PLS
+ CLA
+ JMP I HSPPCH
+
+LSPRDR, 0
+ JMS IOWAIT
+ KSF
+ KRB
+ DCA INCHR
+ TAD INCHR
+ JMP I LSPRDR
+
+LSPPCH, 0
+ DCA OUTCHR
+ JMS IOWAIT
+ TSF
+ TAD OUTCHR
+ TLS
+ CLA
+ JMP I LSPPCH
+
+IOWAIT, 0
+ TAD I IOWAIT
+ DCA IOTSKP
+ ISZ IOWAIT
+ TAD IOTSKP
+ RTL
+ RAL
+ AND (700
+ TAD VERS
+IOTSKP, 0
+ JMP .-1
+ CLA
+ JMP I IOWAIT
+
+CTRLC, 0
+ KSF
+ JMP I CTRLC
+ TAD [200 /FORCE BIT 8 ON
+ KRS
+ TAD (-203
+ SZA CLA
+ JMP I CTRLC
+ KCC
+CTRLC0, JMS I CRLF
+ TAD (336
+ JMS I (LSPPCH
+ TAD (303
+ JMS I (LSPPCH
+ JMS I CRLF
+ TSF
+ JMP .-1
+ JMP I .+1
+ 7605
+
+ PAGE
+\f
+/HERE FOR SYS:<PTP
+
+PTIN, TAD LSPFLG
+ SNA CLA
+ JMP .+4
+ IAC
+ DCA I (OUTTBL
+ TAD (LSPRDR-HSPRDR
+ TAD (HSPRDR
+ DCA RDCHR
+ TAD I (OUTTBL
+ DCA USRDEV
+ RFC
+ JMS I RDPBLK /GET 1ST PBLK
+ JMS RDERR
+ TAD DATBUF /GET NAME
+ DCA NDX0
+ TAD NAME
+ DCA TMP1
+ TAD M4
+ DCA TMP0
+ TAD I NDX0
+ DCA I TMP1
+ ISZ TMP1
+ ISZ TMP0
+ JMP .-4
+ ISZ NDX0 /BY RELBLK
+ TAD I NDX0
+ DCA BLKW /FILE LEN
+ TAD PATFLG
+ SZA CLA /RDING A PATCH?
+ TAD (LOOKUP-ENTER
+ TAD (ENTER /ENTER=NO PATCH
+ JMS I USR
+ CLL
+ TAD FLEN
+ TAD BLKW
+ SNA /DOES IT FIT?
+ JMP .+3
+ SZL CLA
+ JMP NOFIT
+ TAD BLKW
+ DCA FLEN
+ DCA RBLK
+ TAD FLEN
+ CIA
+ DCA FCNT
+ JMS I (ICHKB /SEE IF WE GOT
+ /THE RIGHT BLK
+LOP3, TAD SBLK /ABS STR BLK
+ TAD I RELBLK
+ DCA BLKW /=BLK TO DO
+ JMS I HANADR
+ 4200 /WRITE 1 BLK
+ BUFADR
+BLKW, 0
+ JMP I IOERR
+ ISZ RBLK
+ ISZ FCNT
+ JMP BY3
+ TAD (CLOSE
+ JMS I USR
+ JMP I GETCD
+BY3, JMS I RDPBLK
+ SKP
+ JMP LOP3
+ MTHREE
+ TAD ERCODE /EOT IS ONLY
+ /LEGAL ERROR
+ SNA CLA
+ JMP IFEOT
+ JMS RDERR /RETRY
+ JMP LOP3-1
+IFEOT, TAD PATFLG
+ SZA CLA
+ JMP I GETCD /PATCH MODE
+ /TERMS ON EOT
+ JMS I TYPTXT
+ EOTMSG
+ JMS I TYPTXT
+ NTMSG
+ JMS I CRLF
+ CLA CMA
+ JMS I LPWT
+ JMS I RDPBLK
+ JMS RDERR
+ JMP LOP3-1
+
+\f
+RDERR, 0
+ MTWO
+ DCA ERCNT
+LOP4, TAD ERCODE
+ TAD (AMSG
+ DCA TMP0
+ TAD I TMP0
+ DCA .+2
+ JMS I TYPTXT
+ 0
+ JMS I CRLF
+ CLA CMA
+ JMS I LPWT
+ JMS I RDCHR
+ CLA
+ JMS I RDPBLK
+ SKP
+ JMP I RDERR
+ ISZ ERCNT
+ JMP LOP4
+ JMP I IOERR
+ERCNT, 0
+FCNT, 0
+
+NOFIT, TAD (16
+ JMS I TYDEV
+ TAD NAME
+ JMS I TNAME
+ JMS I TYPTXT
+ BIGMSG
+ TAD USRDEV
+ JMS I TYDEV
+ JMP I GETCD
+
+ PAGE
+\f
+PTAP, JMS I RDSWIT
+ PSTBL
+ TAD I NAME
+ SNA CLA
+ JMP I (PTIN /PTAP INPUT
+ TAD I (OUTTBL
+ DCA USRDEV
+ TAD LSPFLG
+ SNA CLA
+ TAD (HSPPCH-LSPPCH
+ TAD (LSPPCH
+ DCA WRCHR
+ PLS
+ TAD (LOOKUP
+ JMS I USR
+ TAD PATFLG
+ SNA CLA /PUNCH PATCH ?
+ JMP NOPAT
+ CLL
+ TAD EQBLK /CHK FOR =N
+ TAD FLEN /OUT OF RANGE
+ SNL CLA /?
+ JMP .+4
+ JMS I TYPTXT
+ BEQMSG
+ JMP I GETCD
+ TAD EQBLK
+NOPAT, DCA TMP0
+ TAD TMP0
+ TAD SBLK
+ DCA BLKR /1ST BLK TO PCH
+ TAD TMP0 /PUT REL BLK
+ DCA I TMP3 /IN HDR
+ TAD FLEN
+ CIA /=FILE LEN
+ ISZ TMP3
+ DCA I TMP3
+ ISZ TMP3
+ DCA I TMP3 /0 TO LST HDR
+ /WORD
+ TAD PATFLG /ONLY 1 BLK
+ SZA /PATCHES AT A
+ DCA FLEN /TIME
+ TAD LSPFLG
+ SNA CLA
+ JMP .+3
+LOP2, CLA CMA
+ JMS I LPWT /ON PUNCH
+ TAD MAXLEN
+ CIA
+ TAD MAXCNT
+ SZA CLA /PCH L/T ?
+ JMP .+3 /NO
+ JMS WLT
+ JMS WLT
+LOP1, JMS I HANADR /READ 1 BLK
+ 200 /OF FILE
+ BUFADR
+BLKR, 0
+ JMP I IOERR
+ ISZ BLKR
+ JMS I (PWRITE
+ ISZ I RELBLK
+ ISZ FLEN
+ JMP BYDUN
+ TAD EOTFLG
+ SNA CLA /PCH EOT ?
+ JMS EOT /YES
+ JMP I GETCD
+BYDUN, ISZ MAXCNT
+ JMP LOP1
+ JMS EOT /PHYSICAL END
+ /OF PTP
+ TAD LSPFLG
+ SZA CLA
+ JMS I LPWT
+ JMS I TYPTXT
+ EOTMSG
+ JMS I CRLF
+ JMP LOP2 /NEXT PTP
+
+\f
+WLT, 0
+ TAD LTCNT
+ DCA TMP0
+ TAD P200
+ JMS I WRCHR
+ JMS I CHKC
+ ISZ TMP0
+ JMP .-4
+ JMP I WLT
+LTCNT, -LTLEN
+
+EOT, 0
+ TAD (377
+ JMS I WRCHR
+ JMS WLT
+ JMS WLT
+ JMS WLT
+ TAD MAXLEN
+ DCA MAXCNT
+ JMP I EOT
+
+ PAGE
+\f
+PREAD, 0 /READ A PTP BLK
+ JMS I RDCHR
+ SNA
+ JMP PREAD+1 /ITS L/T
+ TAD (-200
+ SNA
+ JMP PREAD+1 /L/T
+ RAR CLL /201 PCH MUST
+ SNA CLA /SEPARATE L/T
+ /AND DATA
+ JMP ONBLK
+ TAD (-377 /ONLY OTHER
+ TAD INCHR /POSSIBILTY IS
+ SNA CLA /END OF PTP
+ IAC /EOT CODE
+ IAC /L/T ERR
+BYTERR, IAC
+BLKERR, DCA ERCODE
+ JMP I PREAD /P+1=ERR RTN
+ONBLK, JMS I (ISETB
+ DCA PARFLG
+ JMS GETBYT
+ ISZ BYTCNT
+ JMP .-2
+ JMS I RDCHR
+ CIA
+ TAD BCC1
+ SZA CLA
+ JMP BLKERR
+ JMS I RDCHR
+ CIA
+ TAD BCC2
+ SZA CLA
+ JMP BLKERR
+ TAD PARFLG
+ SPA CLA
+ JMP BYTERR
+ ISZ PREAD /GOOD BLK
+ JMP BLKERR+1
+
+\f
+GETBYT, 0
+ TAD LSPFLG
+ SNA CLA
+ JMS I CHKC
+ DCA PARCHR
+ TAD M4
+ DCA CNTR0
+LOP6, MTHREE
+ DCA CNTR1
+LOP5, JMS I RDCHR
+ DCA I FRMPTR
+ ISZ FRMPTR
+ TAD INCHR
+ JMS I DOCRC
+ ISZ CNTR1
+ JMP LOP5
+ MTHREE
+ TAD FRMPTR
+ DCA FRMPTR
+ JMS PACK
+ ISZ CNTR0
+ JMP LOP6
+ JMS I RDCHR
+ JMS I DOCRC
+ TAD INCHR
+ CIA
+ TAD PARCHR
+ SNA CLA
+ JMP NOPAR
+ CLA CMA
+ DCA PARFLG
+ TAD ABORT
+ SPA CLA
+ JMP BYTERR
+ FOURK
+NOPAR, TAD INCHR
+ DCA I PARPTR
+ ISZ PARPTR
+ JMP I GETBYT
+
+\f
+/HERE TO PACK 3 8 BIT FRAMES INTO
+/2 12 BIT WORDS
+
+PACK, 0
+ TAD I FRMPTR
+ RTL CLL
+ RAL /1ST FRM TO
+ DCA I BUFPTR /B1-B8
+ ISZ FRMPTR
+ TAD I FRMPTR /PUT HI HALF OF
+ RTR CLL /2ND FRM INTO
+ RTR /B9-B11 AND LNK
+ RAR
+ DCA HOLDW2
+ TAD HOLDW2 /PUT 1ST FRM IN
+ AND (7 /B0-B7,AND PUT
+ TAD I BUFPTR /HI HALF OF 2ND
+ RAL /IN B8-B11
+ DCA I BUFPTR /YOU AINT SEEN
+ TAD I BUFPTR /NOTHING YET.
+ JMS I (DOPAR
+ TAD HOLDW2 /LO HAF OF 2ND
+ AND (7400 /FRM IS IN
+ ISZ FRMPTR /B0-B3. PUT
+ TAD I FRMPTR /WITH 3RD FRM
+ ISZ BUFPTR
+ DCA I BUFPTR
+ TAD I BUFPTR
+ JMS I (DOPAR
+ ISZ FRMPTR
+ ISZ BUFPTR
+ JMP I PACK
+PARFLG, 0
+CNTR0, 0
+CNTR1, 0
+ABORT, -1
+HOLDW2, 0
+
+ PAGE
+\f
+PWRITE, 0 /HERE TO WRITE
+ /1 BLK OF PTP
+ JMS ISETB
+ JMS I (WLT
+ TAD (201 /START OF DATA
+ /BLK CHAR
+ JMS I WRCHR
+ JMS PUTBYT
+ ISZ BYTCNT
+ JMP .-2
+ TAD BCC1
+ JMS I WRCHR
+ TAD BCC2
+ JMS I WRCHR
+ JMP I PWRITE
+
+ISETB, 0
+ TAD (FRMADR
+ DCA FRMPTR
+ TAD (PARADR
+ DCA PARPTR
+ TAD DATBUF
+ DCA BUFPTR
+ DCA BCC1
+ DCA BCC2
+ TAD (-NBYTS
+ DCA BYTCNT
+ JMP I ISETB
+
+LPWAIT, 0
+ HLT
+ RFC
+ CLA
+ JMP I LPWAIT
+
+\f
+PUTBYT, 0
+ DCA PARCHR
+ TAD M4
+ DCA CNTR2
+LOP7, TAD I BUFPTR
+ JMS DOPAR
+ TAD I BUFPTR /PUT 2 WORDS IN
+ RTR CLL /3 8 BIT FRMS
+ RTR
+ DCA F2
+ TAD F2 /B0-B7 OF 1ST
+ AND (377 /FOR FRM 1
+ DCA F1
+ TAD F2 /LO 4 BITS OF
+ RAR /WORD 1
+ AND (7400 /TO B0-B3 OF
+ DCA F2 /FRM 2
+ TAD F1
+ JMS I WRCHR
+ TAD F1
+ JMS I DOCRC
+ ISZ BUFPTR
+ TAD I BUFPTR
+ JMS DOPAR
+ TAD I BUFPTR /PUT B0-B3
+ AND (7400 /OF WD2
+ RTR CLL /INTO B4-B8
+ RTR
+ TAD F2 /NOW PUT LO 4
+ RTR /BITS OF WD1
+ RTR /(B0-B3) AND HI
+ /4 BITS OF W2
+ /INTO B4-B11
+ JMS I WRCHR
+ TAD OUTCHR /=CHR JST PCHED
+ JMS I DOCRC
+ TAD I BUFPTR
+ AND (377 /LO 8 OF 2ND
+ JMS I WRCHR
+ TAD OUTCHR /=F3
+ JMS I DOCRC
+ ISZ BUFPTR
+ ISZ CNTR2
+ JMP LOP7
+ TAD PARCHR
+ JMS I WRCHR
+ TAD PARCHR
+ JMS I DOCRC
+ JMS I CHKC
+ JMP I PUTBYT
+CNTR2, 0
+F2, 0
+F1, 0
+
+
+\f
+/HERE TO COMPUTE PARITY (EVEN ODD)
+/12 BIT WORD IS IN AC.
+/AFTER EACH (SPA,CML,RAR) SEQUENCE
+/AC B0=0 IF THE
+/NUMBER OF ALREADY PROCESSED 1
+/STATE BITS IS EVEN. OTHERWISE AC B0=1.
+
+DOPAR, 0
+ DCA TMP0
+ TAD (-13 /-13 BECAUSE 2
+ /BITS ARE
+ /PROCESSED
+ /INITIALLY
+ DCA TMP1
+ TAD TMP0
+ RTR /LNK HOLDS
+ /NEWBIT,AC B0
+ /HOLDS STATUS
+ /TO DATE.
+ SPA /CHNG FROM ODD
+ /TO EVEN ?
+ CML /YES CHANGE
+ /STATUS
+ RAR /GET NXT
+ ISZ TMP1 /DONE ?
+ JMP .-4 /NO
+ CMA RAL /SET LNK=1=EVEN
+ CLA /LNK=0=ODD
+ TAD PARCHR /UPDATE PARITY
+ RAL
+ DCA PARCHR
+ JMP I DOPAR
+
+ PAGE
+\f
+TTOTXT, 0
+ TAD I TTOTXT
+ DCA TMP0
+ ISZ TTOTXT
+LOP8, TAD I TMP0
+ RTR
+ RTR
+ RTR
+ JMS DOHAF
+ JMP I TTOTXT
+ TAD I TMP0
+ JMS DOHAF
+ JMP I TTOTXT
+ ISZ TMP0
+ JMP LOP8
+
+DOHAF, 0
+ AND (77
+ SNA
+ JMP I DOHAF
+ ISZ DOHAF
+ TAD (-40
+ SPA
+ TAD (100
+ TAD (240
+ JMS I (LSPPCH
+ JMP I DOHAF
+
+TYCRLF, 0
+ TAD (215
+ JMS I (LSPPCH
+ TAD (212
+ JMS I (LSPPCH
+ JMP I TYCRLF
+
+PHYSIO, JMS I TYPTXT
+ IOMSG
+ JMP I GETCD
+
+\f
+TYPNAM, 0
+ DCA TMP2
+ TAD TMP2
+ DCA TMP0
+ MTHREE
+ DCA TMP1
+LOP9, TAD I TMP0
+ RTR
+ RTR
+ RTR
+ JMS DOHAF
+ JMP DOEXT
+ TAD I TMP0
+ JMS DOHAF
+ JMP DOEXT
+ ISZ TMP0
+ ISZ TMP1
+ JMP LOP9
+DOEXT, TAD P3
+ TAD TMP2
+ DCA TMP0
+ TAD I TMP0
+ SNA CLA
+ JMP P3+1
+ TAD P256 /.
+ JMS I (LSPPCH
+ TAD I TMP0
+ RTR
+ RTR
+ RTR
+ JMS DOHAF
+P256, 256
+ TAD I TMP0
+ JMS DOHAF
+P3, 3
+ TAD (240
+ JMS I (LSPPCH
+ JMP I TYPNAM
+
+\f
+OCTOUT, 0
+ RAL
+ DCA TMP0
+ TAD M4
+ DCA TMP1
+LOP11, TAD TMP0
+ RTL
+ RAL
+ DCA TMP0
+ RAL
+ DCA TMP2
+ TAD TMP0
+ AND (7
+ TAD (260
+ JMS I (LSPPCH
+ TAD TMP2
+ RAR CLL
+ ISZ TMP1
+ JMP LOP11
+ TAD (240
+ JMS I (LSPPCH
+ JMP I OCTOUT
+
+ PAGE
+\f
+/HERE TO SEE IF WE READ THE CORRECT
+/BLK OF THE CORRECT FILE.
+
+ICHKB, 0
+ TAD PATFLG /DONT CHK IF
+ SZA CLA /IN PATCH MODE
+ JMP I ICHKB
+LOP12, TAD M4
+ DCA TMP0
+ TAD LSPFLG
+ SNA CLA
+ JMS I CHKC
+ TAD DATBUF /COMPARE NAMES
+ DCA NDX0
+ TAD NAME
+ DCA TMP1
+LOP10, TAD I NDX0
+ CIA
+ TAD I TMP1
+ SZA CLA
+ JMP NAMERR
+ ISZ TMP1
+ ISZ TMP0
+ JMP LOP10
+ TAD RBLK /CHK BLK
+ CIA
+ TAD I RELBLK
+ SNA CLA
+ JMP I ICHKB /GOOD BLK
+ JMS I TYPTXT
+ NMSG
+ TAD RBLK
+ JMS I (OCTOUT
+ JMS I TYPTXT
+ FMSG
+ TAD I RELBLK
+ JMS I (OCTOUT
+RECHK, JMS I CRLF
+ CLA CMA
+ JMS I LPWT
+ JMS I RDPBLK
+ JMS I (RDERR
+ JMP LOP12
+NAMERR, JMS I TYPTXT
+ NMSG
+ TAD NAME
+ JMS I TNAME
+ JMS I TYPTXT
+ FMSG
+ TAD DATBUF
+ IAC
+ JMS I TNAME
+ JMP RECHK
+
+\f
+/CRC GENERATOR
+/COURTESY OF MARIO S. ROOT
+/COUSIN TO MARIO LEONARD
+
+CRC, 0
+ DCA TMP0
+ TAD (-7
+ DCA TMP1
+ TAD TMP0
+ AND BCC2
+ CIA
+ CLL RAL
+ TAD TMP0
+ TAD BCC2
+ CLL RTR
+ SPA
+ CML
+ RAR
+ ISZ TMP1
+ JMP .-4
+ SPA
+ JMP .+4
+ DCA TMP1
+ TAD BCC1
+ JMP .+5
+ DCA TMP1
+ TAD BCC1
+ RAR
+ CML RAL
+ DCA BCC2
+ TAD TMP1
+ AND (60
+ CLL RTL
+ DCA BCC1
+ TAD BCC1
+ AND BCC2
+ CIA
+ CLL RAL
+ TAD BCC1
+ TAD BCC2
+ DCA BCC2
+ TAD TMP1
+ CLL RTR
+ RTR
+ DCA BCC1
+ TAD BCC1
+ CLL RAR
+ CLL RAR
+ DCA TMP1
+ TAD TMP1
+ AND BCC1
+ CIA
+ CLL RAL
+ TAD BCC1
+ TAD TMP1
+ DCA BCC1
+ JMP I CRC
+
+ PAGE
+\f
+/CHK FOR MASTER INPUT DEVICE ONLY
+
+CHKMI, 0
+ TAD (INTBL-1
+ DCA NDX0
+ TAD I NDX0
+ SNA CLA
+ JMP BY1 /NO MI
+ TAD (-10
+ DCA TMP0
+ ISZ NDX0
+ TAD I NDX0 /MUST HAVE NO
+ SZA CLA /OTHER IN DEVS
+ JMP BY1 /FOUND 1
+ ISZ TMP0
+ JMP .-5
+ CLA CMA /MI ONLY SET
+BY1, DCA MIFLG /MI FLAG
+ JMP I CHKMI
+
+
+\f
+DOUSR, 0 /HERE TO DO A
+ DCA N1-1 /USR CALL
+ TAD NAME /EITHER LOOKUP
+ DCA N1 /,ENTER OR
+ TAD FLEN /CLOSE
+ DCA N1+1
+ TAD USRDEV
+ JMS I (GETHAN
+ CIF 10
+ TAD USRDEV
+ AND P17
+ JMS I P200
+ 0
+N1, 0;0
+ JMP USRERR
+ TAD N1
+ DCA SBLK
+ TAD N1+1
+ DCA FLEN
+ JMP I DOUSR
+USRERR, JMS I TYPTXT
+ USRMSG
+ TAD N1-1
+ JMS I (OCTOUT
+ TAD USRDEV
+ JMS I TYDEV
+ TAD NAME
+ JMS I TNAME
+ JMS I CRLF
+ JMP I GETCD
+
+ PAGE
+\f
+SETDV, 0
+ JMS CHKP37
+ 7600-1 /OUTPUT INFO
+ OUTTBL-1
+ 4
+ -3
+ JMS CHKP37
+ 7617-1 /INPUT INFO
+ INTBL-1
+ 1
+ -11
+ JMP I SETDV
+
+CHKP37, 0
+ DCA TMP0
+ TAD (TM-1
+ DCA NDX1
+ TAD I CHKP37 /P37 ADDR
+ DCA NDX0
+ ISZ CHKP37
+ TAD I CHKP37
+ DCA TMP1 /PERM TBL
+ ISZ CHKP37
+ TAD I CHKP37
+ DCA TMP3 /ENTRY LEN-1
+ ISZ CHKP37
+ TAD I CHKP37
+ DCA TMP2 /-NUM TO DO
+XLOP2, CDF 10
+ TAD I NDX0
+ SZA /BLANK ENTRY ?
+ ISZ TMP0 /NO
+ CDF
+ DCA I NDX1 /TMP SAV
+ TAD NDX0 /ADV PTR TO NXT
+ TAD TMP3
+ DCA NDX0
+ ISZ TMP2 /DONE?
+ JMP XLOP2 /NO
+ TAD TMP0 /WAS P37
+ SNA CLA /BLANK ?
+ JMP BY0 /YES USE SET OF
+ /DEV LAST
+ /SPECIFIED
+ TAD TMP1
+ DCA NDX1
+ TAD (TM-1
+ DCA NDX0
+ TAD I CHKP37
+ DCA TMP0
+ TAD I NDX0 /NEW UNIT
+ DCA I NDX1
+ DCA I NDX1 /0 TO SBLK
+ ISZ TMP0
+ JMP .-4
+ DCA I NDX1
+BY0, ISZ CHKP37
+ JMP I CHKP37
+
+\f
+/ROUT TO INTERPRET PS/8 SWITCHES
+
+SWITCH, 0
+ TAD I SWITCH /PTR TO TBL
+ DCA TMP0
+ ISZ SWITCH
+ CLL
+ TAD (7757
+ AND SATOL
+ TAD SMTOX
+ SNA SZL CLA
+ JMP I SWITCH /NONE TO READ
+XLOP0, TAD I TMP0
+ SNA /END OF TBL ?
+ JMP I SWITCH /YES
+ DCA TMP1 /PTR TO FLAG
+ CLA CMA /SET TO YES
+ DCA I TMP1 /STATE
+XLOP1, ISZ TMP0
+ TAD I TMP0 /AC=P37 SW ADDR
+ ISZ TMP0 /=PTR TO MASK
+ SNA /MORE ARGS FOR
+ /THIS SWIT ?
+ JMP XLOP0 /NO DO NXT
+ DCA TMP2
+ TAD I TMP2
+ AND I TMP0 /CLR NON SWITCH
+ /BITS
+ CIA /COMP WITH MASK
+ TAD I TMP0
+ SZA CLA /IF ALL OK
+ /LEAVE SWITCH
+ /ALONE
+ DCA I TMP1
+ JMP XLOP1
+
+\f PAGE
+\f
+WRITE, 0
+ TAD WRITE
+ DCA READ
+ FOURK
+ JMP READ+1
+
+READ, 0
+ DCA RWBIT
+ JMS I CHKC
+ TAD I READ
+ DCA DVPTR
+ ISZ READ
+ TAD I DVPTR /UNIT
+ JMS I (GETHAN
+ ISZ DVPTR
+ TAD I DVPTR /PUT NUM BLKS
+ AND P17 /IN B1-B5
+ RTL CLL
+ RTL
+ RTL
+ RAL
+ TAD BUFFLD
+ TAD RWBIT
+ DCA IOLST
+ ISZ DVPTR
+ TAD I DVPTR
+ DCA IOLST+2 /SBLK
+ JMS I HANADR
+IOLST, 0
+ 2000
+ 0
+ JMP .+3
+ ISZ READ /NON ERR RTN
+ JMP I READ
+ CLA
+ JMS I TYPTXT
+ IOMSG
+ MTWO
+ TAD DVPTR
+ DCA TMP0
+ TAD I TMP0
+ JMS I TYDEV
+ TAD I NAME
+ SNA CLA
+ JMP .+3
+ TAD NAME
+ JMS I TNAME
+ TAD IOLST+2
+ JMS I (OCTOUT
+ TAD RWBIT
+ SMA CLA
+ JMP DONALL
+ TAD (337
+ JMS I (LSPPCH /BACK ARROW
+DONALL, JMS I CRLF
+ JMP I READ
+RWBIT, 0
+DVPTR, 0
+
+ PAGE
+\f
+\f
+GETHAN, 0
+ AND P17
+ DCA TMP1
+ TAD TMP1
+ TAD (DEVRES-1
+ DCA TMP0
+ CDF 10
+ TAD I TMP0 /IS HANDLER IN
+ CDF /IN CORE ?
+ SZA
+ JMP NOFET /YES
+ MTWO
+ TAD TMP1
+ SNA CLA
+ TAD (1200
+ TAD (6001 /ENABLE 2 PG HANDLERS
+ DCA .+5
+ TAD TMP1
+ CIF 10
+ JMS I P200
+ FETCH
+ 0
+ JMP FETERR
+ TAD .-2
+NOFET, DCA HANADR
+ JMP I GETHAN
+
+FETERR, JMS I TYPTXT
+ USRMSG
+ TAD (FETCH
+ JMS I (OCTOUT
+ JMP I GETCD /ABORT
+ /COMMAND
+
+TYPDEV, 0
+ AND P17
+ TAD (DMTBL-1
+ DCA TMP0
+ TAD I TMP0
+ DCA .+2
+ JMS I TYPTXT
+ 0
+ JMP I TYPDEV
+
+ PAGE
+\f
+COMPAR, JMS I RDSWIT
+ CSTBL
+ TAD I (OUTTBL
+ DCA USRDEV
+ TAD USRDEV
+ DCA CD1
+ TAD (INTBL
+ DCA INPTR
+ TAD I NAME
+ SNA CLA
+ JMP CDEV
+ TAD (LOOKUP
+ JMS I USR
+ TAD SBLK
+ DCA CD1+2
+ TAD I INPTR
+ DCA CD2
+ CDF 10
+ TAD I (7620
+ CDF
+ DCA CD2+2
+ JMS DOCOMP
+CDEV, JMP I GETCD
+
+DOCOMP, 0
+LOP14, JMS I (READ
+ CD1
+ JMP I GETCD
+ TAD (2400
+ DCA I (IOLST+1
+ JMS I (READ
+ CD2
+ JMP CERR
+ CLA CMA
+ DCA BADB
+ TWOK
+ DCA I (IOLST+1
+ TAD (1777
+ DCA NDX0
+ TAD (2377
+ DCA NDX1
+ TAD (-400
+ DCA ZCNT
+ CDF 10
+LOP13, TAD I NDX0
+ CIA
+ TAD I NDX1
+ SZA CLA
+ JMP BADCOM
+LOP15, ISZ ZCNT
+ JMP LOP13
+ CDF
+ ISZ CD1+2
+ ISZ CD2+2
+ ISZ FLEN
+ JMP LOP14
+ JMP I DOCOMP
+BADCOM, CDF
+ ISZ BADB
+ JMP BYBLK
+ TAD CD1
+ JMS I TYDEV
+ TAD CD1+2
+ JMS I (OCTOUT
+ TAD CD2
+ JMS I TYDEV
+ TAD CD2+2
+ JMS I (OCTOUT
+ JMS I CRLF
+BYBLK, TAD BADFO
+ SZA CLA
+ JMP I GETCD
+ TAD BADBO
+ SZA CLA
+ JMP DOMORE
+ TAD (400
+ TAD ZCNT
+ JMS I (OCTOUT
+ TAD NDX0
+ DCA TMP0
+ CDF 10
+ TAD I TMP0
+ CDF
+ JMS I (OCTOUT
+ TAD NDX1
+ DCA TMP0
+ CDF 10
+ TAD I TMP0
+ CDF
+ JMS I (OCTOUT
+ JMS I CRLF
+DOMORE, JMS I CHKC
+ CDF 10
+ JMP LOP15
+CERR, TWOK
+ DCA I (IOLST+1
+ JMP I GETCD
+CD1, 0;1;0
+CD2, 0;1;0
+BADB, 0
+BADBO, 0
+BADFO, 0
+ZCNT, 0
+
+ PAGE
+\f
+/FILE EDITOR FOR OS/8.
+
+FED, TAD I (OUTTBL
+ AND P17
+ DCA USRDEV
+ TAD I NAME
+ SZA CLA
+ JMP ITSNAM
+ TAD USRDEV
+ TAD (DLTBL-1
+ DCA TMP0
+ TAD I TMP0
+ DCA FLEN
+ DCA SBLK
+ JMP .+3
+ITSNAM, TAD (LOOKUP
+ JMS I USR
+ DCA SRWD
+ CLA CMA
+ DCA MSKWD
+ DCA MODF
+ TAD USRDEV
+ DCA OUDEV
+ IAC
+ DCA OUDEV+1
+ JMS I (RD
+LOP16, JMS I (GINP
+ JMS I (G6BIT
+ JMP GOTCMD
+ DCA ENDCT
+ TAD (CMDTBL-2
+ DCA NDX0
+ ISZ NDX0
+ TAD I NDX0
+ CIA
+ TAD ENDCT
+ SZA CLA
+ JMP .-5
+ TAD I NDX0
+ DCA CMDTBL-1
+GOTCMD, JMS I CMDTBL-1
+ JMP LOP16
+
+ QMARK
+CMDTBL, 2200
+ R
+ 2700
+ W
+ 0300
+ C
+ 2300
+ SR
+ 1700
+ O
+ 0500
+ EX
+ENDCT, 0
+ QMARK
+
+QMARK, 0
+ TAD (277
+ JMS I (LSPPCH
+ JMS I CRLF
+ JMP I QMARK
+
+\f
+C, 0 /STATUS COMMAND
+ TAD RBLK
+ JMS I (OCTOUT
+ TAD MODF
+ SNA CLA
+ JMP .+3
+ TAD (306
+ JMS I (LSPPCH
+ TAD MODB
+ SNA CLA
+ JMP .+3
+ TAD (302
+ JMS I (LSPPCH
+ TAD (240
+ JMS I (LSPPCH
+ TAD CLOC
+ JMS I (OCTOUT
+ TAD SRWD
+ JMS I (OCTOUT
+ TAD MSKWD
+ JMS I (OCTOUT
+ JMS I CRLF
+ JMP I C
+
+ PAGE
+\f
+GETC, 0 /GET AN INPUT
+ TAD I BUFPTR /CHAR
+ TAD EOLWD
+ SNA CLA
+ JMP I GETC
+ TAD I BUFPTR
+ DCA INCHR
+ ISZ BUFPTR
+ TAD INCHR
+ TAD (-254 /,
+ SNA CLA
+ JMP I GETC
+ ISZ GETC
+ TAD INCHR
+ JMP I GETC
+
+G6BIT, 0 /8 TO 6 BIT
+ JMS GETC
+ JMP I G6BIT
+ AND (77
+ RTL CLL
+ RTL
+ RTL
+ DCA TMP0
+ JMS GETC
+ JMP EX6
+ AND (77
+ TAD TMP0
+ DCA TMP0
+ JMS GETC
+ JMP EX6
+ JMS BUPTR
+ JMS BUPTR
+ JMS BUPTR
+ JMP I G6BIT
+EX6, TAD TMP0
+ ISZ G6BIT
+ JMP I G6BIT
+
+\f
+GOCTAL, 0 /GET OCTAL DIGIT
+ TAD BUFPTR
+ DCA TMP2
+ JMS GETC
+ JMP I GOCTAL
+ JMS BUPTR
+LOP17, DCA TMP1
+ JMS GETC
+ JMP FOCT
+ TAD (-260
+ DCA TMP0
+ TAD TMP0
+ AND (7770
+ SNA CLA
+ JMP .+4
+ TAD TMP2
+ DCA BUFPTR
+ JMP I GOCTAL
+ TAD TMP1
+ RTL CLL
+ RAL
+ TAD TMP0
+ JMP LOP17
+FOCT, ISZ GOCTAL
+ TAD TMP1
+ JMP I GOCTAL
+
+BUPTR, 0
+ CLA CMA
+ TAD BUFPTR
+ DCA BUFPTR
+ JMP I BUPTR
+
+\f
+RD, 0 /READ A BLK
+ DCA TMP0 /=REL BLK TO DO
+ CLL
+ TAD FLEN
+ TAD TMP0
+ SNL CLA
+ JMP .+3
+ JMS I (QMARK
+ JMP I RD
+ TAD TMP0
+ DCA RBLK
+ TAD RBLK
+ TAD SBLK
+ DCA OUDEV+2
+ JMS I (READ
+ OUDEV
+ JMP I IOERR
+ DCA MODB
+ DCA CLOC
+ JMP I RD
+
+R, 0 /R COMMAND
+ JMS GOCTAL
+ TAD RBLK
+ JMS RD
+ JMP I R
+
+W, 0 /WRITE COMMAND
+ TAD MODB
+ SNA CLA
+ JMP .+5
+ JMS I (WRITE
+ OUDEV
+ JMP I IOERR
+ CLA CMA
+ DCA MODF
+ TAD RBLK
+ IAC
+ JMS RD
+ DCA MODB
+ JMP I W
+
+EX, 0 /EXIT TO DECODE
+ TAD MODB
+ SNA CLA
+ JMP I GETCD
+ JMS I (WRITE
+ OUDEV
+ JMP I IOERR
+ JMP I GETCD
+
+ PAGE
+\f
+GINP, 0 /GET KBRD INPUT
+ TAD MAXLEN
+ DCA OCNT
+ TAD (BUFADR
+ DCA BUFPTR
+ JMS I [LSPRDR
+ AND [177
+ TAD [200
+ DCA INCHR
+ TAD INCHR
+ TAD (-212
+ SNA
+ JMP LFEND
+ TAD (212-203
+ SNA
+ JMP I [CTRLC0
+ TAD (203-215
+ SNA
+ JMP LFEND-1
+ TAD (215-225
+ SZA
+ JMP TRYRUB
+ TAD (336
+ JMS I (LSPPCH
+ TAD (325
+ JMS I (LSPPCH
+ JMS I CRLF
+ JMP GINP+1
+TRYRUB, TAD (225-377
+ SZA CLA
+ JMP PUTC
+ TAD MAXLEN
+ CIA
+ TAD OCNT
+ SNA CLA
+ JMP GINP+5
+ CLA CMA
+ TAD OCNT
+ DCA OCNT
+ CLA CMA
+ TAD BUFPTR
+ DCA BUFPTR
+ TAD (334
+ JMS I (LSPPCH
+ JMP GINP+5
+PUTC, TAD INCHR
+ JMS I (LSPPCH
+ TAD INCHR
+ TAD (-240
+ SNA CLA
+ JMP GINP+5
+ TAD INCHR
+ DCA I BUFPTR
+ ISZ BUFPTR
+ ISZ OCNT
+ JMP GINP+5
+ IAC
+LFEND, DCA I BUFPTR
+ TAD I BUFPTR
+ CIA
+ DCA EOLWD
+ TAD (BUFADR
+ DCA BUFPTR
+ JMS I CRLF
+ JMP I GINP
+
+\f
+O, 0 /OPEN LOC N
+ JMS I (GOCTAL
+ JMP .+3
+ AND (377
+LOP20, DCA CLOC
+ JMS DOLOC
+ TAD EOLWD
+ SZA CLA
+ JMP I O
+ TAD CLOC
+ IAC
+ AND (377
+ SZA
+ JMP LOP20
+ JMS I (W
+ JMP LOP20+1
+
+DOLOC, 0
+ JMS GETWRD
+ JMS I (OCTOUT
+ TAD (257
+ JMS I (LSPPCH
+ JMS GINP
+ JMS I (GOCTAL
+ JMP I DOLOC
+ JMS PUTWRD
+ JMP I DOLOC
+
+GETWRD, 0
+ TAD CLOC
+ TAD I (IOLST+1
+ DCA TMP0
+ CDF 10
+ TAD I TMP0
+ CDF
+ JMP I GETWRD
+
+PUTWRD, 0
+ DCA TMP0
+ TAD CLOC
+ TAD I (IOLST+1
+ DCA TMP1
+ TAD TMP0
+ CDF 10
+ DCA I TMP1
+ CDF
+ CLA CMA
+ DCA MODB
+ JMP I PUTWRD
+
+ PAGE
+\f
+SR, 0 /SEARCH COMM.
+ JMS I (GOCTAL
+ SKP
+ DCA SRWD
+ JMS I (GOCTAL
+ SKP
+ DCA MSKWD
+ TAD EOLWD
+ DCA ISVEOL
+ DCA MATFLG
+ TAD SRWD
+ AND MSKWD
+ CIA
+ DCA BCC1
+ CLA CMA
+ DCA SRBFLG
+LOP18, JMS I (GETWRD
+ AND MSKWD
+ TAD BCC1
+ SNA CLA
+ JMP SRMAT
+LOP19, ISZ CLOC
+ TAD CLOC
+ AND (377
+ SZA CLA
+ JMP LOP18
+ TAD (377
+ DCA CLOC
+ TAD ISVEOL
+ SZA CLA
+ JMP EXS
+ JMS I (W
+ TAD CLOC
+ SNA CLA
+ JMP LOP18-2
+ JMP EXS
+SRMAT, TAD SRBFLG
+ SNA CLA
+ JMP .+3
+ TAD RBLK
+ JMS I (OCTOUT
+ CLA CMA
+ DCA MATFLG
+ DCA SRBFLG
+ TAD CLOC
+ JMS I (OCTOUT
+ JMS I CRLF
+ JMS I (DOLOC
+ TAD EOLWD
+ SNA CLA
+ JMP LOP19
+EXS, TAD MATFLG
+ SNA CLA
+ JMS I (QMARK
+ JMP I SR
+SRBFLG, 0
+MATFLG, 0
+ISVEOL, 0
+
+ PAGE
+\f
+/TABLES FOR FPIP
+
+DLTBL, -6260 /DEVICE LENGTHS
+ -6260 /FOR UNITS 1-17
+ 0 /SYS,DSK,TTY
+ 0 /LPT
+ -1341;-1341 /DTA0-
+ -1341;-1341 /DTA7
+ -1341;-1341
+ -1341;-1341
+ 0
+ 0
+ 0
+
+DMTBL, SYMSG
+ DKMSG
+ TTMSG
+ LPMSG
+ D0MSG
+ D1MSG
+ D2MSG
+ D3MSG
+ D4MSG
+ D5MSG
+ D6MSG
+ D7MSG
+ PPMSG
+ PRMSG
+ CDMSG
+
+AMSG, PARMSG
+ PARMSG
+ LTMSG
+ EOTMSG
+\f
+PSTBL, EOTFLG
+ SATOL
+ 200 /E
+ 0
+ LSPFLG
+ SATOL
+ 1 /L
+ 0
+ PATFLG
+ SMTOX
+ 400 /P
+ 0;0
+CSTBL, BADBO
+ SATOL
+ 2000 /B
+ 0
+ BADFO
+ SATOL
+ 4000
+ 0;0
+
+\f
+TM, 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+OUTTBL, 1;0
+ 0;0
+ 0;0
+ 0
+INTBL, 5;0
+ 0;0
+ 0;0
+ 0;0
+ 0;0
+ 0;0
+ 0;0
+ 0;0
+ 0;0
+ 0
+
+\f
+S0FLG, 0 /CM
+\f
+SYMSG, TEXT "SYS:"
+ 0
+DKMSG, TEXT "DSK:"
+ 0
+TTMSG, TEXT "TTY:"
+ 0
+LPMSG, TEXT "LPT:"
+ 0
+D0MSG, TEXT "DTA0:"
+ 0
+D1MSG, TEXT "DTA1:"
+ 0
+D2MSG, TEXT "DTA2:"
+ 0
+D3MSG, TEXT "DTA3:"
+ 0
+D4MSG, TEXT "DTA4:"
+ 0
+D5MSG, TEXT "DTA5:"
+ 0
+D6MSG, TEXT "DTA6:"
+ 0
+D7MSG, TEXT "DTA7:"
+ 0
+PPMSG, TEXT "PTP:"
+ 0
+PRMSG, TEXT "PTR:"
+ 0
+CDMSG, TEXT "CDR:"
+ 0
+EOTMSG, TEXT "END OF TAPE "
+ 0
+NTMSG, TEXT "ENTER NEXT "
+ 0
+BIGMSG, TEXT "IS TOO BIG FOR "
+ 0
+PARMSG, TEXT "PARITY ERROR "
+ 0
+LTMSG, TEXT "L/T ERROR "
+ 0
+USRMSG, TEXT "USR "
+ 0
+IOMSG, TEXT "I/O ERROR "
+ 0
+NMSG, TEXT "NEED: "
+ 0
+FMSG, TEXT "FOUND: "
+ 0
+BEQMSG, TEXT "BAD =BLK"
+ 0
+
+\f
+PARADR, 0
+ *PARADR+41
+FNAME, 0;0;0;0;0
+FRMADR, 0
+ *614+FRMADR
+AAFREE, 0
+ *6600-10
+HDATA, 0 /TYPE (HOLDS
+ /VERS FOR NOW)
+ 0;0;0;0 /NAME
+ 0 /REL BLK
+ 0 /LEN
+ 0 /CONTINUATION
+ /WD 0 FOR NOW
+BUFADR, 0
+
+ LTLEN=124
+ MXPBLK=40
+ NBYTS=41
+ MTHREE=7346 /CLA CLL CMA RTL
+ MTWO=7344 /CLA CLL CMA RAL
+ TWOK=7332 /CLA CLL CML RTR
+ FOURK=7330 /CLL CML CLA RAR
+ FETCH=1
+ LOOKUP=2
+ ENTER=3
+ CLOSE=4
+ DECODE=5
+ CHAINE=6
+ ERROR=7
+ USRIN=10
+ USROUT=11
+ INQUIRE=12
+ RESET=13
+ PLS=6026
+ PSF=6021
+ RFC=6014
+ RRB=6012
+ RSF=6011
+ DEVRES=7647
+ ATOL=7643
+ MTOX=7644
+ YTO9=7645
+ IFZERO PTAPE <
+ NSLOTS=S0END-S0FLG
+ >
+
+
+ $
+\f