software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / CD.PA
diff --git a/sw/os8/v3d/sources/system/dectapes/dectape3/CD.PA b/sw/os8/v3d/sources/system/dectapes/dectape3/CD.PA
new file mode 100644 (file)
index 0000000..dd33663
--- /dev/null
@@ -0,0 +1,1610 @@
+/8    COMMAND DECODER FOR OS/8 MONITOR
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/COPYRIGHT  (C)  1974, 1975, 1977 BY DIGITAL EQUIPMENT CORPORATION
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
+/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
+/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
+/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
+/
+/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
+/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
+/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
+/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
+/
+/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
+/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
+/DIGITAL.
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/
+\f/APRIL 1977           RL/EF/HJ/SR
+
+/ABSTRACT--
+/COMMAND DECODER (CD) ACCEPTS TTY INPUT AND INTERPRETS
+/THAT INPUT AS A LIST OF OPTIONS AND FILE SPECIFICATIONS
+/FOR OS/8 CUSPS. TABLES ARE SETUP INDICATING THE SPECIFIED
+/FILES AND OPTIONS.
+/THIS VERSION OF CD IS CAPABLE OF RUNNING OS/8 BATCH.
+/MODIFICATIONS TO INITIALIZATION CODE HAVE BEEN MADE TO
+/ALLOW THIS.
+
+
+       DCB=7760
+       SHNDLR=7607
+       USERFG=40       /LOCATION IN MAIN OS/8 ASSEMBLY - VOLATILE
+       T1=41   /DITTO
+       MCDREC=51       /ALSO PRETTY VOLATILE
+       MOFILE=7600
+       MIFILE=7617
+       MPARAM=7643
+       FIELD 0 /JUSTINCASE
+
+       CDVERSION=6501  /5A
+       ODTVERSION=6401 /4A
+\f/V3 CHANGES TO CD:
+
+/1. FIXED LOTS OF BUGS
+/      A:B:C IS ILLEGAL
+/      15-BIT = OPTION DOESN'T DESTROY ALTMODE BIT
+/2.    ADDED ? SUPPORT IN SPECIAL MODE
+/3.    ALLOWED SPECIAL MODE UNDER BATCH
+/4.    REMOVED DCC CODE
+/5.    ^U, RO TO BOL, AND LF ALL REPRINT *
+/6.    VERSION # AT LOC ZERO
+/7.    DON'T LOAD HANDLERS FOR OUTPUT DEVICE
+/8.    CHANGED _ TO < STANDARD
+
+/V3 CHANGES TO ODT
+
+/1.    REMOVED DCC CODE
+/2.    FIXED CORE SIZE ROUTINE
+/3.    ALLOWED SOFTWARE CORE SIZE
+/4.    MODIFIED 'GO' COMMAND SO THAT IT DOESN'T RESTORE TRAP
+/      LOCATION TO UNMODIFIED VALUE
+/5.    FIXED BUG RE: JMS'S OUT OF FIELD WITH MAGIC LOCATION SET
+/6.    TURN OFF INTERRUPTS ON BREAKPOINT
+
+/CHANGES AFTER FIELD TEST RELEASE:
+
+/1.    FIXED BUG RE FILE LENGTHS GT 2047 BLOCKS
+
+/MAINTENANCE RELEASE:
+
+/      NO CHANGES
+
+/V3D CHANGES:
+
+/CHANGED FORMAT OF VERSION NUMBERS
+\f      *200
+CD,    JMP I NUMBER    /EXECUTED IN SYSGEN
+NUM,   JMP I T
+ANALYZ,        TAD [BEGLN-1
+       DCA XR
+       TAD I XR
+       SNA
+       JMP NOBKAR
+       TAD [-"<
+       SZA CLA
+       JMP .-5
+       CLA CMA
+NOBKAR,        DCA OUTSW
+       TAD [BEGLN-1
+       DCA LXR
+BEGGRP,        TAD OUTSW
+       SNA CLA
+       TAD BEGDIF              /DIFF BETWEEN INPUT & OUTPUT AREAS
+       TAD [MOFILE-1
+       DCA CLXR
+       STA
+       DCA DVFLAG
+       DCA DEV1
+FILLP1,        DCA DEV2
+FILLP, JMS I [GNAME
+       TAD ["A-":      /AC CONTAINED DELIM - "A
+       SNA CLA
+       JMP DEVNAM
+       JMS I [ASSIGN
+       TAD OUTSW
+       SNA CLA
+       TAD LIMDIF              /DIFF BETWWEN END OF OUTPUT & INPUT AREAS
+       TAD OUTLIM              /END OF OUTPUT AREA
+       TAD CLXR
+       SMA CLA
+       JMP CDER1
+       TAD OUTSW
+       SNA CLA
+LKUPSW,        JMP INFILE              /ZEROED IF IN "SPECIAL DECODE" MODE
+       CDF 10
+       TAD DVICE
+       DCA I CLXR
+       TAD NAME1
+       DCA I CLXR
+       TAD NAME2
+       DCA I CLXR
+       TAD NAME3
+       DCA I CLXR
+       TAD NAME4
+CDSKP, SKP
+INFILE,        JMS I [LOOKUP
+       DCA I CLXR
+DLOOK, CDF 0
+       STA
+       DCA DVFLAG
+       TAD DELIM
+       SNA
+       JMP CDOVER
+       TAD [-"[
+       SNA
+       JMP I [OLENGT
+       TAD ["[-",
+       SNA
+       JMP FILLP
+       TAD [",-"<
+       SNA
+       JMP BKAROW
+       TAD ["<-"=
+       SZA CLA
+       JMP I [CDER2
+EQUAL, DCA NUMFUJ
+       JMS NUMBER
+       DCA I [MPARAM+3
+       CLA CLL CML RAR
+       AND I [MPARAM-1 /PRESERVE  ALTMODE
+       TAD HIORD
+       DCA I [MPARAM-1
+       JMP DLOOK
+\fBKAROW,       ISZ OUTSW
+       JMP I [CDER2
+       JMP BEGGRP
+DEVNAM,        TAD NAME1
+       DCA DEV1
+       ISZ DVFLAG
+       JMP I [CDER2    /CATCHES A:B:
+       TAD NAME2
+       JMP FILLP1
+CDOVER,        TSF
+       JMP .-1 /LET PRINTER QUIET DOWN
+       TCF     /AND CLEAR FLAG
+       CDF CIF 10
+       TAD TMONIT
+       DCA I [200      /RESTORE "MONITO"
+       TAD TUSRFG
+       DCA I [USERFG   /RESTORE "USER FLAG"
+       TAD TFPUTX      /LOAD "USER CALLING FIELD" INTO AC
+       JMP I CD        /RETURN - MONITOR RESTORES CORE IF NECESSARY
+NUMBER,        4000    /USED BY SYSGEN
+       TAD CDSKP
+       DCA NUMADD      /SET NUMADD TO EITHER "SKP" OR "TAD NUM"
+       DCA HIORD
+NUMLP, DCA NUM
+       JMS NUMTST      /INTO PAGE 0 FOR RANGE TEST
+       SNL
+       JMP EONUM
+       DCA T
+       CLA CLL CMA RTL
+       DCA DELIM
+       TAD NUM
+ROTLP, CLL RAL
+       DCA NUMX
+       TAD HIORD
+       RAL
+       SPA
+       JMP I [CDER2
+       DCA HIORD
+       TAD NUMX
+       ISZ DELIM
+       JMP ROTLP
+NUMADD,        TAD NUM         /SKP IF OCTAL
+       TAD NUM
+       TAD T
+       JMP NUMLP
+EONUM, TAD ["0
+       DCA DELIM
+       TAD NUM
+       CDF 10
+       JMP I NUMBER
+\fCDER1,        JMS I [PRMESG
+       TEXT    /TOO MANY FILES/
+\f      IFZERO .&400 <*400>
+ASSIGN,        0
+       TAD CLXR
+       AND DVFLAG
+       TAD OUTLIM
+       SMA SZA CLA     /CHECK FOR OUTPUT OR FIRST INPUT
+       JMP ASNORM      /IF DEVICE WAS SPECIFIC, OR IF WE ARE ON THE INPUT SIDE,
+                       /PROCEED NORMALLY
+       TAD NAME1
+       SNA CLA
+       JMP ASGNST
+       TAD DFLTNM+1
+       DCA DEV2
+       TAD DFLTNM
+       DCA DEV1
+ASNORM,        TAD DEV1
+       DCA AS+1
+       TAD DEV2
+       DCA AS+2
+       TAD OUTSW
+       SNA CLA         /DON'T LOAD HANDLER IF WE ARE ON OUTPUT SIDE OF "_"
+       TAD NAME1
+SPKLG1,        SNA CLA         /OR IF THERE IS NO FILE NAME TO LOOK UP
+       TAD GETHND      /GETHND=11 NORMALLY, 0 IF IN "SPECIAL DECODE" MODE
+       IAC
+       DCA AS
+       TAD [1401       /ALLOW TWO PAGE HANDLERS
+       DCA ASADR
+       CIF 10
+       JMS I [200
+AS,    0
+       0
+       0
+ASADR, 1401
+       JMP I [CDER0
+       TAD AS+2
+ASGNST,        DCA DVICE
+       JMP I ASSIGN
+GNAME, 0
+       DCA NAME1
+       DCA NAME2
+       DCA NAME3
+       DCA NAME4
+       TAD [NAME1
+       DCA NMBASE
+       CLA CMA
+       DCA PERDSW
+       DCA NAMECT
+GTNMLP,        JMS I [GCH
+       DCA DELIM
+       TAD DELIM
+       TAD [-"?
+       SZA
+       TAD ["?-"*
+       SNA
+STARSW,        JMP I [CDER2    /"JMP STARNM" IF "SPECIAL DECODE" MODE
+       TAD ["*-".
+       SNA CLA
+       JMP PERIOD
+       JMS I [DECODE
+       JMP I GNAME
+\fSTARNM,       CLA             /THIS CODE HANDLES *'S AND ?'S CORRECTLY
+       TAD DELIM
+       AND [77
+       DCA DELIM
+       TAD NAMECT
+       TAD [-6
+       SMA CLA
+       JMP GTNMLP
+       TAD NAMECT
+       CLL RAR
+       TAD NMBASE
+       DCA TT
+       TAD DELIM
+       SZL
+       JMP .+4
+       RTL
+       RTL
+       RTL
+       TAD I TT
+       DCA I TT
+       ISZ NAMECT
+       JMP GTNMLP
+PERIOD,        TAD NAME1
+       SZA CLA
+       ISZ PERDSW
+       JMP I [CDER2
+       ISZ NMBASE
+       TAD [4
+       JMP GTNMLP-1
+LOOKUP,        0
+       DCA LNAME
+       TAD NAME1
+       SNA CLA
+       JMP LKUPST
+       JMP EXT1
+LKUPLP,        DCA LNAME
+       TAD AS+2
+       CIF 10
+       JMS I [200
+       2
+LNAME, 0       /NAME1
+LENGTH,        0
+       JMP LFAILD
+       TAD LENGTH
+       CLL
+       TAD [400
+       SNL
+       CLA
+       CLL RTL
+       RTL
+       AND [7760
+LKUPST,        CDF 10
+       TAD DVICE
+       DCA I CLXR
+       TAD LNAME
+       JMP I LOOKUP
+\fLFAILD,       TAD NAMECT
+       SNA CLA         /WAS THERE AN EXPLICIT EXTENSION?
+       TAD DEFALT      /NO - WAS THERE A DEFAULT EXTENSION?
+       SNA CLA
+       JMP I [CDER3    /YES OR NO - FILE NOT FOUND
+       ISZ NAMECT      /NO AND YES - SET FLAG TO FAIL NEXT TIME
+       JMP EXT2        /ZERO OUT THE EXTENSION AND TRY AGAIN
+CDER3, JMS I [PRNAME
+       JMS I [PRMESG
+       TEXT    / NOT FOUND/
+\f      IFZERO .+200&1000 <*600>
+       0               /V3 [FREE LOC]
+SLSHCH,        0
+/V3    SNA
+/V3    JMP I [CDER2
+       DCA DELIM
+       TAD [MPARAM-1
+       DCA T
+       JMS I [DECODE
+       JMP I [CDER2
+       SZL
+       TAD [32
+       CMA STL /THE FOLLOWING TURNS ON THE CORRECT OPTION BIT
+       DCA TT
+SLSHLP,        SZL
+       ISZ T
+       RAR
+       SNL
+       ISZ TT
+       JMP SLSHLP
+       DCA TT
+       CDF 10
+       TAD TT
+       CMA
+       AND I T
+       TAD TT
+       DCA I T
+       CDF 0
+       JMP I SLSHCH
+DECODE,        0
+       TAD DELIM
+       TAD [-"9-1
+       CLL
+       TAD ["9+1-"0
+       SZL
+       JMP DCDYES
+       TAD ["0-"Z-1
+       CLL CML
+       TAD ["Z-"A+1
+       SNL
+DCDYES,        ISZ DECODE
+       JMP I DECODE
+CDER0, TAD DEV1
+       JMS I [PRWD
+       TAD DEV2
+       JMS I [PRWD
+       JMS I [PRMESG
+       TEXT    / DOES NOT EXIST/
+\f
+RESTRT,        JMS I [CRLF
+       CDF 10
+       TAD [MOFILE-1
+       DCA XR
+       TAD [-47
+       DCA T
+       DCA I XR        /ZERO OUT THE COMMAND DECODER OUTPUT AREA
+       ISZ T
+       JMP .-2
+       CDF 0
+       JMP I [GLINE
+GCH,   0
+       TAD I LXR
+       TAD [-240
+       SNA
+       JMP GCH+1
+       TAD [240-"/
+       SNA
+       JMP SLASH
+       TAD ["/-"(
+       SNA
+       JMP OPENP
+       TAD ["(
+       JMP I GCH
+SLASH, TAD I LXR
+       JMS I [SLSHCH
+       JMP GCH+1
+OPENP, TAD I LXR
+       TAD [-")
+       SNA
+       JMP GCH+1
+       TAD [")
+       JMS I [SLSHCH
+       JMP OPENP
+OLENGT,        TAD OUTSW
+       AND NAME1       /[N] IS ONLY LEGAL ON THE OUTPUT SIDE OF THE "_"
+       SNA CLA         /AND ONLY AFTER A FILE NAME
+       JMP I [CDER2
+       TAD [-4
+       TAD CLXR
+       DCA NMBASE
+       CLA CLL CML RTL
+       DCA NUMFUJ      /SET "NUMBER" TO ACCEPT DIGITS 8 AND 9
+       TAD OLFUDJ      /LOAD FUDGE SO THAT "NUMBER" WILL BE DECIMAL
+       JMS I [NUMBER
+       CLL RTL
+       RTL
+       AND [7760
+       TAD I NMBASE
+       DCA I NMBASE
+       CDF 0
+       TAD DELIM
+       TAD [-"]        /IS THERE A CLOSING BRACKET?
+       SNA             /IF NOT, "DLOOK" ROUTINE WILL DETECT IT
+       JMS I [GCH
+       DCA DELIM
+       JMP I [DLOOK
+OLFUDJ,        NUM&177+1570
+
+CDER2, CLA
+       JMS I [PRMESG
+       TEXT    /ILLEGAL SYNTAX/
+\f      IFZERO .&1000 <*1000>
+       /TELETYPE INPUT ROUTINE FOR COMMAND DECODER
+GLINE, TAD (252        /SETS 1177=252 FOR * IN MESSAGE
+       JMS I PRINT
+       DCA RBFLAG
+       TAD [BEGLN-1
+       DCA LXR
+CHLOOP,        6031            /KSF
+       JMP CHLOOP
+       TAD [200
+       6034            /KRS
+       DCA NAME1
+       6032            /KCC
+       TAD [SPADR-1
+       DCA XR
+DSPCHL,        TAD I XR
+       SZA
+       TAD NAME1
+       SNA CLA
+       JMP I XR
+       JMP DSPCHL
+SPADR, -225;JMP CTRLU
+       -215;JMP CARRET
+       -377;JMP RUBOUT
+       -375;JMP ALTMOD /V3D MODIFIED BY SET
+       -376;JMP ALTMOD /V3D MODIFIED BY SET
+       -233;JMP ALTMOD
+       -200;JMP CHLOOP
+       -217;JMP CHLOOP /^O
+        -"_;JMP LESSTN
+       -212;JMP LFEED
+       -203;JMP CTRLC  /MUST BE LAST - SEE CLRLIN CODE
+       0
+       JMS PRNT
+CINSRT,        TAD NAME1
+       DCA I LXR
+       TAD LXR
+       TAD [-EOBUFR+2
+       SPA CLA
+       JMP CHLOOP
+       JMS CRLF
+       JMP I [CDER2
+\fCARRET,       JMS CRLF
+CLFINI,        DCA I LXR
+       JMP I [ANALYZ
+LESSTN,        JMS PRNT
+       TAD ["<
+       JMP CINSRT+1
+CTRLC,
+CTRLU, TAD [336
+       JMS I PRINT
+       TAD NAME1
+       TAD [100
+CLRLIN,        JMS I PRINT
+       JMS CRLF
+       TAD I XR
+       SZA CLA
+       JMP GLINE
+       CDF 10
+       CLA CMA
+       DCA I [7700
+       TSF
+       JMP .-1
+       JMP I [7605     /7605=CDF CIF 10
+CRLF,  0
+       TAD [215
+       DCA NAME1
+       JMS PRNT
+       TAD [212
+       JMS I PRINT
+       JMP I CRLF
+ALTMOD,        TAD [244
+       DCA NAME1
+       CLA CLL CML RAR
+       CDF 10
+       DCA I [MPARAM-1
+       CDF 0
+       JMS PRNT
+       JMP CLFINI
+\f/*** LOCATIONS ON THIS PAGE ARE MODIFIED BY SET
+/SEE SET FOR DETAILS.  DO NOT CHANGE.
+
+RUBOUT,        TAD LXR
+       TAD [1-BEGLN
+       SNA CLA
+       JMP RBSPCL
+       TAD [334
+       ISZ RBFLAG
+       JMS I PRINT
+       CLA CMA
+       DCA RBFLAG
+       TAD LXR
+       DCA T
+       TAD I T
+       JMS I PRINT
+LBCKUP,        CLA CMA
+       TAD LXR
+       JMP CHLOOP-1
+RBSPCL,        ISZ RBFLAG
+       JMP CLRLIN+1
+       TAD [334
+       JMP CLRLIN
+PRNT,  0
+       ISZ RBFLAG
+       JMP .+3
+       TAD [334
+       JMS I PRINT
+       DCA RBFLAG
+       TAD NAME1
+       JMS I PRINT
+       JMP I PRNT
+LFEED, JMS CRLF
+       DCA I LXR
+       TAD [BEGLN-2
+       DCA XR
+       TAD I XR
+       SNA
+       JMP LBCKUP
+       JMS I PRINT
+       JMP .-4
+
+       IFNZRO RUBOUT-1131 <_ERROR_>
+\f      *1200           /INITIALIZATION - STORED OVER BY LINE BUFFER
+       BEGLN=.         /LINE BUFFER
+CDINIT,        DCA TFPUTX
+       CDF 10
+       CLA IAC
+       TAD I [200
+       DCA TMONIT      /SAVE AWAY MONITOR CALL ADDRESS SINCE WE CALL
+       TAD I [USERFG   /THE MONITOR RECURSIVELY, LIKEWISE SAVE
+       DCA TUSRFG      /THE "USER FLAG" AND THE FIELD WE WERE CALLED FROM
+       TAD I [T1       /FETCH THE USERS ARGUMENT
+       DCA DEFALT      /STORE IN THE DEFAULT EXTENSION WORD
+       DCA I [7        /ZERO "DIRECTORY SEGMENT IN CORE" KEY
+       CDF 0
+       CIF 10
+       JMS I [200
+       13              /RESET ALL HANDLERS
+       0               /BUT NOT OUTPUT FILES
+       TAD DEFALT
+       TAD M5200
+       SZA CLA         /IS THIS A REQUEST FOR A "SPECIAL DECODE"?
+       JMP CDCONT      /NO
+       TAD ALTLIM
+       DCA OUTLIM      /YES - SET UP ALL THE PROPER LOCATIONS
+       TAD ALTDF1
+       DCA LIMDIF      /TO YIELD 1 OUTPUT FILE AND 5 INPUT FILES
+       TAD ALTDF2
+       DCA BEGDIF      /ALL OF WHICH ARE 5-WORD <DEVICE,NAME> ENTRIES
+       DCA I PLKUPS
+       TAD STARJM
+       DCA I PSTARS    /AND ALLOW * AS A FILE OR EXTENSION NAME
+       DCA DEFALT      /NO DEFAULT EXTENSION IN "SPECIAL" MODE
+       TAD CCLA        /STOPS FETCHES IN SPECIAL MODE
+       DCA I PSPKG1    /NO HANDLER FETCHES NECESSARY EITHER SINCE NO LOOKUPS
+CDCONT,        TAD I PRWD      /SEE IF BATCH FLAG IS UP
+       RAL
+       SPA CLA         /IF YES, GO TO PAGE0 CODE
+       JMP TT          /TT ETC. IS ONCE-ONLY CODE
+       JMP I CDRST
+\fCDRST,        RESTRT+1
+               /CONSTANTS NECESSARY TO SUPPORT "SPECIAL DECODE" MODE
+M5200, -5200
+ALTLIM,        1-MOFILE-5
+ALTDF1,        MOFILE+5-MPARAM+5
+ALTDF2,        5
+PLKUPS,        LKUPSW
+STARJM,        STARNM&177+5200         /"JMP STARNM"
+PSTARS,        STARSW
+CCLA,  CLA
+PSPKG1,        SPKLG1
+\f      *1314
+       EOBUFR=.
+PRMESG,        0
+       TAD I PRMESG
+       JMS PRWD
+       TAD I PRMESG
+       ISZ PRMESG
+       AND [77
+       SZA CLA
+       JMP PRMESG+1
+       JMP I [RESTRT
+PRWD,  7777
+       DCA T
+       TAD T
+       RTR
+       RTR
+       RTR
+       JMS PCHAR
+       TAD T
+       JMS PCHAR
+       JMP I PRWD
+PCHAR, 0
+       AND [77
+       SNA
+       JMP I PCHAR     /IGNORE NULLS
+       TAD [240
+       AND [77
+       TAD [240
+       JMS TYPE
+       JMP I PCHAR
+PRNAME,        0
+       TAD NAME1
+/      SNA             /WOULD LIKE TO FIND ROOM FOR THESE 2 LOCS
+/      JMP I [CDER2
+       JMS PRWD
+       TAD NAME2
+       JMS PRWD
+       TAD NAME3
+       JMS PRWD
+       TAD NAME4
+       SNA CLA
+       JMP I PRNAME
+       TAD [256
+       JMS PCHAR
+       TAD NAME4
+       JMS PRWD
+       JMP I PRNAME
+TYPE,  0
+       JMP .+3
+       TSF
+       JMP .-1
+       TLS
+       CLA
+       TAD [7000
+       DCA TYPE+1
+TYPRET,        JMP I TYPE
+       IFNZRO TYPRET-1377 <BATCHX,ZQWE>
+\f      *4001   /PROG TO WRITE CD AND ODT ONTO NEW SYSTEM DEVICE
+               /4000=JMS SYSSWP TO SWAP PGS 6600 AND 7600
+       TAD I (7777     /SET TO PROPER RECORD FOR FIELD 1 STUFF
+       DCA F1STUF
+       JMS I SYSHND
+       4600
+       0
+       MCDREC
+       JMP CERR
+       JMS I SYSHND
+       5011
+       0
+       ODTREC
+       JMP CERR
+       JMS I SYSHND
+       0110            /READ IN UPPER PG 7600
+       7600
+F1STUF,        0
+       JMP CERR
+       JMP I .+1
+       7605            /START HER UP
+CERR,  TAD .+3
+       DCA 4001
+       JMP 4000        /RESWAP AND HALT
+       HLT
+SYSHND,        7607
+       PAGE
+\f      *0
+       CDVERSION
+       HLT             /POWER FAIL RESTART PROTECTION
+NUMTST,        7777
+       JMS I [GCH
+       CMA
+       TAD NUMFUJ
+       TAD ["8         /TEST INPUT CHARACTER FOR RANGE
+       CLL CMA         /0-7 IF NUMFUJ=0
+       TAD [10         /0-9 IF NUMFUJ=2
+       TAD NUMFUJ
+       JMP I NUMTST
+       *15
+LXR,   0
+XR,    0
+CLXR,  0
+T,     CDINIT
+TT,    CDF 0           /***GETS SET TO CDF BATCH
+HIORD, TAD I DVICE     /CHECK TO SEE IF BOS IS REALLY THERE
+NUMX,  TAD OUTSW       /IF NOT, SIGNAL ERROR
+RBFLAG,        SNA CLA
+NAME1, JMP NAMECT      /IT'S O.K.....PROBABLY!
+NAME2, CDF 0           /BAD. SIGNAL ERROR TO MONITOR
+NAME3, ISZ I NUMTST
+NAME4, JMP I [7605     /AND RESTART BATCH MONITOR
+NAMECT,        CIF CDF 0       /*****GETS ALTERED******
+NMBASE,        JMP I .+1       /START UP IN CD AREA OF BATCH
+DEV1,  RESTRT+1        /***GETS ADDRESS OF CD AREA
+DEV2,  0
+PERDSW,        0
+NUMFUJ,        0
+DVFLAG,        0
+DELIM, 0
+OUTSW, 0
+DEFALT,        0
+DVICE, 0
+DFLTNM,        0423;1300       /DSK
+BEGDIF,        MIFILE-MOFILE
+LIMDIF,        MIFILE-MPARAM+2
+OUTLIM,        1-MIFILE
+GETHND,        11
+TMONIT,        0
+TUSRFG,        0
+TFPUTX,        0
+EXT1,  TAD NAME4
+       DCA NAMECT      /REMEMBER TYPED EXTENSION
+       TAD NAMECT
+       SNA
+       TAD DEFALT      /SUBSTITUTE DEFAULT IF ZERO
+EXT2,  DCA NAME4
+       TAD [NAME1
+       JMP I .+1
+       LKUPLP
+PRINT, TYPE
+\f      FIELD 1
+       EJECT INVISIBLE ODT
+       /INVISIBLE ODT FOR OS/8 MONITOR
+       /LOADS INTO FIELD 1 NOW, BUT LOADS & EXECUTES IN FIELD 0
+       /DEFINITIONS OF MONITOR SYMBOLS - VOLATILE!
+       ODTREC=60
+       UDNAME=7741
+       MREAD=7757
+       MGET=7667
+       KMREC=7
+       MTEMP=27
+       MARG1=7740
+       JSBITS=7746
+       *200
+READ,  JMS I [OCRLF
+READ5, DCA WORD
+       DCA WORD+1
+       TAD [-6
+       DCA TOTE
+REA,   KSF
+       JMP .-1
+       JMS I [CTCTST
+       JMP CTRC
+       TAD [203
+       DCA TEMP
+       KCC
+       TAD TEMP
+       JMS I [TYPN
+       TAD [TABL1-1
+       DCA 10
+CHFLP, TAD I 10
+       SPA
+       JMP SEX
+       CIA
+       TAD TEMP
+       SZA CLA
+       JMP CHFLP
+       TAD 10
+       TAD [TABL2-TABL1
+       DCA TEMP
+       TAD I TEMP
+       DCA TEMP
+       CLL
+       JMP FLDTST      /SEE IF FIELD SETTING IS LEGAL
+CTRC,  JMS I [DUMP
+       JMP I [7605
+\fTABL1=.
+       240
+       212
+       215
+       257
+       302
+       307
+       273
+       303
+       327
+       336
+       315
+       301
+       314
+       304
+       337
+       306
+       377
+       253
+       255
+       -270            /USED - SEE "SEX"
+\fEXAM, JMS TOTTST
+       JMP EX2
+       TAD WORD
+       DCA CAD
+       TAD WORD+1
+       DCA CAD+1
+EX2,   JMS I [LOAD
+       CAD
+       JMS I [PNUM
+       DCA SHUT
+       JMP READ5
+SEX,   TAD TEMP
+       CLL
+       TAD [10
+       SNL
+       JMP NO
+       DCA TEMP
+       CLA CLL CMA RTL
+       DCA CRL
+SROT,  TAD WORD+1
+       CLL RAL
+       DCA WORD+1
+       RTL
+       RAL
+       TAD WORD
+       RAL
+       DCA WORD
+       ISZ CRL
+       JMP SROT
+       TAD WORD+1
+       TAD TEMP
+       DCA WORD+1
+       ISZ TOTE
+       JMP REA
+NO,    CLA
+       TAD [277
+       JMS I [TYPN
+       JMP READ
+\fCRL,  0
+       JMS TOTTST
+       JMP I CRL
+       TAD WORD+1
+       ISZ SHUT
+       JMS I [STORE
+       CAD
+       CLA
+       JMP I CRL
+CRL1,  JMS CRL
+       JMP READ
+CRL2,  TAD [215
+       JMS I [TYPN
+       JMS CRL
+       JMS I [TYPN
+       ISZ CAD+1
+       NOP
+UPAR3, JMS I [TYPD
+       CAD
+       TAD [257
+       JMS I [TYPN
+       JMP EX2
+OPIN,  JMS CRL
+       JMS I [LOAD
+       CAD
+       DCA CAD+1
+       TAD INDFLD
+       DCA CAD
+UPAR2, JMS I [OCRLF
+       JMP UPAR3
+SEMI,  JMS CRL
+       ISZ CAD+1
+       NOP
+       JMP READ5
+\f      *400
+/NOTE THAT LOCATIONS BURP,BURP+1 GET ALTERED AFTER BRKTST
+/IS EXECUTED. THEY BECOME: CDF 10; TAD I [MARG1
+BURP,  JMP I .+1       /GO REDETERMINE CORE SIZE
+       BRKTST          /TO MAKE ILLEGAL FIELD GIVE ?
+       DCA SAC
+       IOF
+       TAD I [MTRAD
+       DCA TRAD
+       TAD I [MTRAD1
+       DCA TRAD+1
+       TAD I [MKEEP
+       DCA KEEP
+       TAD I [MPUNN
+       DCA PUNN
+       CLA IAC
+       AND I [7700
+       DCA LINK
+       TAD I [7700
+       CDF 0
+       AND [70
+       DCA DATFLD
+       TAD DATFLD
+       DCA INDFLD
+       TAD [KMREC
+       CDF 10
+       DCA I [MGET+4
+       CLA CLL CMA RAL
+       AND I [MGET+2
+       DCA I [MGET+2   /REMOVE LOW-ORDER BIT FROM CONTROL WORD
+       CDF 0
+       TAD KEEP
+       JMS I [STORE
+       TRAD
+       TAD TRAD+1
+       IAC
+       DCA GAME+1
+       TAD TRAD
+       DCA GAME
+       TAD KEEP
+       DCA INST
+       JMS I [IOTTST
+       SKP
+       JMP JMPLIP
+       TAD TRAD
+       DCA CAD
+       TAD TRAD+1
+       DCA CAD+1
+       JMS I [EFFADR
+       TAD CAD
+       DCA FROG
+       TAD CAD+1
+       DCA FROG+1
+JMPLIP,        JMS I [CTCTST
+       JMP I [7605
+       CLA
+       JMP I [LIP
+\fCTCTST,       0
+       TAD [200
+       KSF
+       STA
+       KRS
+       TAD [-203
+       SZA
+       ISZ CTCTST
+       JMP I CTCTST
+
+OCRLF, 0
+       TAD [215
+       JMS I [TYPN
+       TAD [212
+       JMS I [TYPN
+       CLA CMA
+       DCA SHUT
+       JMP I OCRLF
+TRAP,  JMS TOTTST
+       TAD [SHNDLR
+       TAD WORD+1
+       DCA TRAD+1
+       TAD WORD
+       DCA TRAD
+       TAD [7000
+       DCA I [SHNDLR
+       TAD [4
+       DCA WORD+1
+       TAD [UDNAME-MPUNN-1
+       DCA TEMP
+       TAD [BRKCOD-1
+       DCA 10
+       TAD [UDNAME-1
+       DCA 11
+       TAD I 10
+       CDF 10
+       DCA I 11
+       CDF 0
+       ISZ TEMP
+       JMP .-5
+       TAD I [JSBITS
+       RTR
+       SZL CLA
+       TAD [5
+       CDF 10
+       TAD I [J7600
+       DCA I [J7600    /CHANGE JMP 7600 TO JMP 7605 IF ODT AREA NOT USED
+       CDF 0
+       TAD I [JSBITS
+       DCA JSTEMP              /SAVE JSBITS BEFORE SETTING BRKPT
+       TAD [CIF 10
+       JMS I [STORE
+       WORD
+       ISZ WORD+1
+       TAD [JMP I 6
+       JMS I [STORE
+       WORD
+       ISZ WORD+1
+       TAD [UDNAME
+       JMS I [STORE
+       WORD
+       TAD JSTEMP
+       DCA I [JSBITS           /RESTORE JSBITS
+       JMP I [READ
+SUBT,  CML
+ADD,   TAD WORD+1      /MODIFY CURRENT LOCATION POINTER
+       SNA
+       IAC             /1 IS DEFAULT VALUE
+       SZL             /+ OR -?
+       CIA             /-
+       TAD CAD+1
+       DCA CAD+1
+       JMP I [UPAR2    /AND DISPLAY LOC AND CONTENTS
+\f      *600            /MONITOR ENTERS ODT HERE
+LIP,   HLT             /ERROR. AT INIT, THE CODE AT 600
+       JMP I .+1       /IS CHANGED TO: ISZ PUNN;
+TTYTST,        INIT            /JMP XCONT; TSF
+       JMP TTYOFF
+LIPTYP,        JMS I [TYPD
+       TRAD
+       TAD P250
+       JMS I [TYPN
+       TAD LINK
+       TAD [260
+       JMS I [TYPN
+       TAD [273
+       JMS I [TYPN
+       TAD SAC
+       JMS I [PNUM
+       JMP I [READ
+JUMP,  JMS TOTTST      /TEST FOR 'G' WITH NO ADDRESS
+       JMP I PNO
+       TAD WORD
+       DCA GAME
+       TAD WORD+1
+       DCA GAME+1
+       TAD WORD
+       DCA DATFLD
+       TAD [7000
+       DCA INST
+       DCA SAC
+       DCA LINK
+       JMP CONTX
+CONTIN,        TAD WORD+1
+       CIA
+       SNA
+CONTX, CMA
+       DCA PUNN
+       DCA I [7607     /IN CASE THERE WAS NO BREAKPOINT
+       JMS I [LOAD     /V3
+       TRAD            /V3
+       DCA KEEP        /V3
+       JMS I [OCRLF
+XCONT, TAD [JMP 4
+       JMS I [STORE
+       TRAD
+       CDF 10
+       TAD TRAD
+       DCA I [MTRAD
+       TAD TRAD+1
+       DCA I [MTRAD1
+       TAD KEEP
+       DCA I [MKEEP
+       TAD PUNN
+       DCA I [MPUNN
+       CDF 0
+       JMS I [SIM      /SIMULATE THE BRKPOINTED INST HERE
+       TAD LINK
+       DCA I [MLINK
+       TAD SAC
+       DCA I [MAC
+       TAD GAME
+       TAD [CIF 0
+       DCA I [MSTCDF
+       TAD DATFLD
+       AND [70
+       TAD [CDF 0
+       DCA I [MCDF
+       TAD GAME+1
+       DCA I [MSTADR
+       JMS I [DUMP
+       TAD I [JSBITS
+       RTR
+       SZL CLA
+       JMP I [MSWITC
+       JMP I [MREAD
+\fUPAR1,        JMS I [CRL
+       JMS I [EFFADR
+       JMP I [UPAR2
+EFFADR,        0
+       JMS I [LOAD
+       CAD
+       AND [177
+       DCA TEMP
+       JMS I [LOAD
+       CAD
+       AND [200
+P250,  SNA CLA
+       JMP .+3
+       TAD CAD+1
+       AND [7600
+       TAD TEMP
+       DCA TEMP
+       JMS I [LOAD
+       CAD
+       AND [400
+       SNA CLA
+       JMP NOIND
+       TAD TEMP
+       DCA CAD+1
+       JMS I [LOAD
+       CAD
+       DCA TEMP
+       TAD CAD+1
+       AND P7770
+       TAD P7770
+       SZA CLA
+       JMP NOAUTO
+       ISZ TEMP
+P7770, 7770    /SPA SNA SZL CLA - NEVER SKIPS - USED TO PROTECT ISZ
+       TAD TEMP
+       JMS I [STORE
+       CAD
+NOAUTO,        TAD INDFLD
+       AND [70
+       DCA CAD
+NOIND, TAD TEMP
+       DCA CAD+1
+       JMP I EFFADR
+TTYOFF,        AND I 0         /WASTE SOME TIME
+       JMS I [IOTTST
+       AND I 0
+       ISZ NOUGHT
+       JMP TTYTST
+       JMP LIPTYP      /IF THE TTY FLAG ISN'T UP NOW, IT'LL NEVER GO UP
+NOUGHT,        0
+\fTABL2=.
+       REA             /IGNORE BLANKS
+       CRL2
+       CRL1
+       EXAM
+       TRAP
+       JUMP
+       SEMI
+       CONTIN
+       WSER
+       UPAR1
+       MASKX
+       ACX
+       LINKX
+       DATF
+       OPIN
+       INDF
+       RBOUT
+       ADD
+       SUBT
+\f      IFZERO 1000&. <*1000>
+PNUM,  0
+       DCA PUNN
+       TAD [-4
+       DCA TEMP
+PN2,   TAD PUNN
+       RTL
+       RAL
+       DCA PUNN
+       TAD PUNN
+       RAL
+       AND [7
+       TAD [260
+       JMS I [TYPN
+       ISZ TEMP
+       JMP PN2
+       TAD [240
+       JMS I [TYPN
+       JMP I PNUM
+TYPD,  0
+       TAD I TYPD
+       DCA TEMP
+       TAD I TEMP
+       CLL RTR
+       RAR
+       TAD [260
+       JMS I [TYPN
+       ISZ TEMP
+       TAD I TEMP
+       JMS I [PNUM
+       ISZ TYPD
+       JMP I TYPD
+TYPN,  0
+       TLS
+       TSF
+       JMP .-1
+       CLA
+       JMS I [CTCTST
+       JMP I [CTRC
+       TAD [-14        /^O?
+       SZA CLA
+       JMP I TYPN      /NO
+       KCC             /YES
+       JMP I [READ
+\fWSER, JMS I [OCRLF
+       TAD LIMLO
+       DCA CKT+1
+       TAD INDFLD
+       AND [70
+       DCA CKT
+WSER1, JMS I [LOAD
+       CKT
+       AND MASK
+       CIA
+       TAD WORD+1
+       SZA CLA
+       JMP WSER2
+       JMS I [TYPD
+       CKT
+       TAD [257
+       JMS I [TYPN
+       JMS I [LOAD
+       CKT
+       JMS I [PNUM
+       JMS I [OCRLF
+WSER2, TAD CKT+1
+       ISZ CKT+1
+       NOP
+       CIA
+       TAD LIMHI
+       SZA CLA
+       JMP WSER1
+       JMP I [READ
+
+ACX,   TAD [SAC-LINK
+LINKX, TAD [LINK-MASK
+MASKX, TAD [MASK-DATFLD
+DATF,  TAD [DATFLD-INDFLD
+INDF,  TAD [INDFLD
+       DCA WORD+1
+       CLA CMA
+       DCA WORD
+       DCA TOTE
+       TAD [257
+       JMS I [TYPN
+       JMP I [EXAM
+\fBRKCOD=.
+       NOPUNC
+       *UDNAME
+       ENPUNC
+
+       DCA MARG1
+       RAL
+       RDF
+       DCA 7700
+       TAD PODT
+       DCA MGET+4
+       ISZ MGET+2      /DON'T REVERSE TAPE MOTION TO PICK UP ODT
+       CDF CIF 0
+J7600, JMP 7600
+PODT,  ODTREC
+P7603, 7603
+MTRAD, 0
+MTRAD1,        0
+MKEEP, 0
+MPUNN, 0
+
+       NOPUNC
+       *BRKCOD+MPUNN-UDNAME+1
+       ENPUNC
+
+DUMP,  0
+       TAD STOFLG
+       SNA CLA
+       JMP I DUMP
+       JMS I [SHNDLR
+       4200
+       1400
+GREC,  0
+       HLT
+       DCA STOFLG
+       JMP I DUMP
+
+RBOUT, TAD [277
+       JMS I [TYPN
+       TAD [240
+       JMS I [TYPN
+       JMP I [READ5
+\f      IFNZRO .-1200&4000 <*1200>
+SIM,   0
+       JMS IOTTST
+       JMS I [LOAD
+       FROG
+       DCA TEMP
+       TAD TEMP
+       DCA 0
+       JMS IOTTST
+       TAD [777
+       CMA
+       AND INST
+       RAL
+       CML
+       SNL SMA
+       JMP JMSJMP
+       CML RAR
+       DCA SOPR
+       TAD DATFLD
+       AND [70
+       TAD [CDF 0
+       DCA .+1
+       HLT
+       TAD LINK
+       CLL RAR
+       TAD SAC
+SOPR,  HLT
+       SKP
+       ISZ GAME+1
+       DCA SAC
+       RAL
+       DCA LINK
+       RDF
+       DCA DATFLD
+       CDF CIF 0
+EOSIM, TAD 0
+       CIA
+       TAD TEMP
+EOTST, SNA CLA
+       JMP .+3
+       TAD 0
+       JMS I [STORE
+       FROG
+       JMP I SIM
+
+IOTTST,        0
+       CLA CLL CML RTR
+       TAD INST
+       SZL CLA
+       ISZ IOTTST
+       JMP I IOTTST
+\fJMSJMP,       RTL
+       SZL CLA
+       JMP JMPX
+       TAD TRAD
+       DCA FROG
+       TAD GAME+1
+       DCA 0
+       CLA IAC CLL
+JMPX,  TAD FROG+1
+       DCA GAME+1
+       CML RAL         /PUT -LINK IN AC (0 IF JMP, 1 IF JMS)
+       JMP EOTST
+
+LOAD,  0
+       TAD I LOAD
+       JMS I [GETADR
+       NOP
+       TAD I ADR
+       CDF 0
+       ISZ LOAD
+       JMP I LOAD
+
+STORE, 0
+       DCA LOAD
+       TAD I STORE
+       JMS I [GETADR
+       ISZ STOFLG      /INDICATE THAT WE'RE CHANGING THIS RECORD
+       TAD LOAD
+       DCA I ADR
+       CDF 0
+       ISZ STORE
+       JMP I STORE
+\fGETADR,       0
+       DCA ADR
+       TAD I ADR
+       DCA FADR
+       ISZ ADR
+       TAD I ADR
+       DCA ADR
+       TAD FADR
+       SNA
+       JMP CKADR
+       SPA
+       CLA
+       TAD [CDF 0
+       DCA .+1
+FADR,  0
+       ISZ GETADR
+       JMP I GETADR
+CKADR, TAD ADR
+       RAL
+       SZL SPA CLA
+       JMP FADR+1
+       CLA CLL CMA RTL
+       AND I [JSBITS
+       DCA I [JSBITS   /MODIFY THE JSW TO INDICATE ODT AREA VIOLATION
+       TAD ADR
+       CLL RTL
+       RTL
+       RAL
+       AND [7
+       TAD [MTEMP+4
+       DCA GIREC
+       TAD I [GREC
+       CIA
+       TAD GIREC
+       SNA CLA
+       JMP NOREAD
+       JMS I [DUMP
+       JMS I [SHNDLR
+       0200
+G1400, 1400
+GIREC, 0
+       HLT
+       TAD GIREC
+       DCA I [GREC
+NOREAD,        TAD ADR
+       AND [377
+       TAD G1400
+       DCA ADR
+       JMP I GETADR
+\f      *1400
+       /INITIALIZATION CODE TO SET UP THE "MREAD" AREA IN FIELD 0
+       /WITH THE ODT CODE TO START UP A PROGRAM
+
+INIT,  TAD [MREAD-MSTADR-2
+       DCA TEMP
+       TAD [RSTCOD-1
+       DCA 10
+       TAD [MREAD-2
+       DCA 11
+       TAD I 10
+       DCA I 11
+       ISZ TEMP
+       JMP .-3
+       JMS CORE        /DETERMINE CORE FIELD SIZE
+       TSF
+       JMP .-1
+       JMP I [READ
+
+BRKTST,        JMS CORE        /GET CORE SIZE NOW THAT WE WERE
+       TAD KLIP
+       DCA I PLIP      /SETUP LOCATIONS AT 600
+       TAD KLIP+1
+       DCA I PLIP+1
+       TAD KLIP+2
+       DCA I PLIP+2
+       TAD KCDF10      /JUST BREAKPOINTED IN. THEN RESTORE
+       DCA I BURPO     /LOCS AT BURP SO WE NEVER COME BACK
+       TAD KCDF10+1    /HERE AGAIN UNTIL WE'RE SWAPPED
+       DCA I BURP2
+       JMP I BURPO
+KCDF10,        CDF 10
+       TAD I [MARG1    /SIMULATE LOCS AT BURP
+BURPO, BURP
+BURP2, BURP+1
+\fRSTCOD=.
+       NOPUNC
+       *MREAD-1
+       ENPUNC
+
+       SHNDLR
+       JMS I .-1
+       1000
+       0
+       MTEMP+4
+       HLT
+MSWITC,        TAD MLINK
+       CLL RAR
+       TAD MAC
+MCDF,  CDF 0
+       JMP MSTCDF
+MAC,   0
+MLINK, 0
+MSTCDF,        CIF 0
+       JMP I .+1
+MSTADR,        0
+
+       NOPUNC
+       *RSTCOD+MSTADR-MREAD+2
+       ENPUNC
+\fCORE, 0
+       CDF 0
+       TAD I M1
+       AND COR70
+       SZA
+       JMP USERC
+COR0,  CDF 0
+       TAD CORSIZ
+       RTL
+       RAL
+       AND COR70
+       TAD COREX
+       DCA .+1
+COR1,  CDF
+       TAD I CORLOC
+COR2,  NOP
+       DCA COR1
+       TAD COR2
+       DCA I CORLOC
+COR70, 70
+       TAD I CORLOC
+CORX,  7400
+       TAD CORX
+       TAD CORV
+       SZA CLA
+       JMP COREX
+       TAD COR1
+       DCA I CORLOC
+       ISZ CORSIZ
+       JMP COR0
+
+COREX, CDF 0
+       TAD CORSIZ
+       CLL RAL
+       RTL
+USERCR,        CIA
+       DCA ZERO        /STORE AWAY NEG OF FIRST NON-EXISTENT FIELD
+                       /AT ODT'S LOCATION 0
+       JMP I CORE
+
+CORLOC,        CORX
+CORV,  1400
+M1,    -1
+\fCORSIZ,       1
+USERC, TAD L10
+       JMP USERCR
+L10,   10
+
+KLIP,  ISZ PUNN        /THESE INSTRUCTIONS GO INTO 600
+       XCONT&177+5200  /JMP XCONT
+       TSF
+PLIP,  LIP
+       LIP+1
+       LIP+2
+\f      *0
+ZERO,  ODTVERSION
+       HLT             /IN CASE BKPT WITH INTER ON
+STOFLG,        0
+PUNN,  0
+       *4              /PAGE 0 LITERALS AND CELLS
+       CIF 10          /PROTOTYPE BREAKPOINT
+       JMP I 6         /USED BY PROGRAMS WITH JSBITS(10)=1
+       UDNAME          /WHEN ODT IS RELOADED ON A BREAKPOINT
+
+       *12
+TOTE,  0
+KEEP,  0
+INST,  0
+SHUT,  -1
+TRAD,  0;SHNDLR
+WORD,  0;0
+LINK,  0
+SAC,   0
+CAD,   0;0
+CKT,   0;0
+GAME,  0;0
+FROG,  0;0
+TEMP,  0
+JSTEMP,        0
+DATFLD,        0
+INDFLD,        0
+MASK,  7777
+LIMLO, 0
+LIMHI, 7577
+ADR,   0
+FLDTST,        TAD ZERO                /LOC. 0 HAS FIRST IMAGINARY CORE FIELD
+       TAD WORD        /IF USER TRIES TO ADDRESS NON-
+       SNL CLA         /EXISTENT CORE, A ? RETURNS
+       JMP I TEMP      /HE'S OK.
+       JMP I PNO
+PNO,   NO
+TOTTST,        0
+       TAD TOTE
+       TAD [6
+       SZA CLA
+       ISZ TOTTST
+       JMP I TOTTST
+       $
+\f