	/ COMMAND DECODER FOR PS/8 MONITOR
	DCB=7760
	BEGLN=1200
	SHNDLR=7607
	USERFG=40	/LOCATION IN MAIN BLEEP ASSEMBLY - VOLATILE
	T1=41	/DITTO
	MCDREC=51	/ALSO PRETTY VOLATILE
	MOFILE=7600
	MIFILE=7617
	MPARAM=7643
	FIELD 0	/JUSTINCASE
	*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
	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
	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
HORDSW,	TAD HIORD		/ZEROED IF IN "SPECIAL DECODE" MODE
	TAD I [MPARAM-1
	DCA I [MPARAM-1
	JMP DLOOK
BKAROW,	ISZ OUTSW
	JMP I [CDER2
	JMP BEGGRP
DEVNAM,	TAD NAME1
	DCA DEV1
	ISZ DVFLAG
	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
	TAD NUM
	TAD T
	JMP NUMLP
EONUM,	TAD ["0
	DCA DELIM
	TAD NUM
	CDF 10
	JMP I NUMBER
CDER1,	JMS I [PRMESG
	TEXT	/TOO MANY FILES/
	IFZERO .&400 <*400>
ASSIGN,	0
	TAD DVFLAG
	SNA CLA
	TAD CLXR
	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
	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 [-"*
	SNA
STARSW,	JMP I [CDER2	/"JMP STARNM" IF "SPECIAL DECODE" MODE
	TAD ["*-".
	SNA CLA
	JMP PERIOD
	JMS I [DECODE
	JMP I GNAME
	SZL
	TAD [57
	IAC
	DCA DELIM
STARNM,	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
	TAD [400
	SPA
	CLA
	CLL RTL
	RTL
	AND [7760
LKUPST,	CDF 10
	TAD DVICE
	DCA I CLXR
	TAD LNAME
	JMP I LOOKUP
LFAILD,	TAD NAMECT
	SNA CLA		/WAS THERE AN EXPLICIT EXTENSION?
	TAD DEFALT	/NO - WAS THERE A DEFAULT EXTENSION?
	SNA CLA
	JMP 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/
	IFZERO .+200&1000 <*600>
SLSHCH,	0
	SNA
	JMP I [CDER2
	DCA DELIM
	TAD [MPARAM-1
	DCA T
	JMS I [DECODE
	JMP I [CDER2
	SZL
	TAD [32
	TAD [-14
	ISZ T
	SMA
	JMP .-3
	DCA TT
	CLL CML
	RAL
	ISZ TT
	JMP .-2
	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/
	0
CDER2,	CLA
	JMS I [PRMESG
	TEXT	/ILLEGAL SYNTAX/
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
	SZA CLA		/[N] IS ONLY LEGAL ON THE OUTPUT SIDE OF THE "_"
	TAD NAME1
	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	/(TAD NUM) - SKP
	IFZERO .&1000 <*1000>
	/TELETYPE INPUT ROUTINE FOR COMMAND DECODER
GLINE,	TAD [252
	JMS I [PRINT
	DCA RBFLAG
	TAD [BEGLN-1
	DCA LXR
CHLOOP,	6031
	JMP CHLOOP
	TAD [200
	6034
	DCA NAME1
	6032
	TAD [SPADR-1
	DCA XR
	TAD I XR
	SNA
	JMP .+6
	TAD NAME1
	SNA CLA
	JMP I XR
	ISZ XR
	JMP .-7
	JMS PRNT
CINSRT,	TAD NAME1
	DCA I LXR
	TAD LXR
	TAD [-EOBUFR
	SPA CLA
	JMP CHLOOP
	JMS CRLF
	JMP I [CDER2
CARRET,	JMS CRLF
CLFINI,	DCA I LXR
	DCA I LXR
	JMP I [ANALYZ
SPADR,	-225;JMP CTRLU
	-215;JMP CARRET
	-377;JMP RUBOUT
	-375;JMP ALTMOD
	-376;JMP ALTMOD
	-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
LESSTN,	JMS PRNT
	TAD [337
	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+2
	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
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-1
	DCA XR
	TAD I XR
	SNA
	JMP LBCKUP
	JMS I [PRINT
	JMP .-4
	*1200		/INITIALIZATION - STORED OVER BY 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 I CDRST	/NO
	TAD ALTLIM
	DCA OUTLIM	/YES - SET UP ALL THE PROPER LOCATIONS
	TAD ALTDF1
	DCA LIMDIF	/TO YIELD 1 OUTPUT FILE AND 6 INPUT FILES
	TAD ALTDF2
	DCA BEGDIF	/ALL OF WHICH ARE 5-WORD <DEVICE,NAME> ENTRIES
	DCA I PLKUPS
	DCA I PHORDS	/ALSO ZERO ALL NECESSARY SWITCHES
	TAD STARJM
	DCA I PSTARS	/AND ALLOW * AS A FILE OR EXTENSION NAME
	DCA DEFALT	/NO DEFAULT EXTENSION IN "SPECIAL" MODE
	DCA GETHND	/NO HANDLER FETCHES NECESSARY EITHER SINCE NO LOOKUPS
	JMP I CDRST
CDRST,	RESTRT+1
		/CONSTANTS NECESSARY TO SUPPORT "SPECIAL DECODE" MODE
M5200,	-5200
ALTLIM,	1-MOFILE-5
ALTDF1,	MOFILE-5-MPARAM+2
ALTDF2,	5
PLKUPS,	LKUPSW
PHORDS,	HORDSW
STARJM,	STARNM&177+5200		/"JMP STARNM"
PSTARS,	STARSW
	*1314
	EOBUFR=.
PRMESG,	0
	TAD I PRMESG
	SNA
	JMP I [RESTRT
	JMS PRWD
	ISZ PRMESG
	JMP .-5
PRWD,	0
	DCA T
	TAD T
	RTR
	RTR
	RTR
	JMS PCHAR
	TAD T
	JMS PCHAR
	JMP I PRWD
PCHAR,	0
	AND [77
	SNA
	JMP I PCHAR
	TAD [-40
	SPA
	TAD [100
	TAD [240
	JMS PRINT
	JMP I PCHAR
PRNAME,	0
	TAD NAME1
	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
PRINT,	0
	JMP .+3
	TSF
	JMP .-1
	TLS
	CLA
	TAD [7000
	DCA PRINT+1
	JMP I PRINT
	*4001	/PROG TO WRITE CD AND ODT ONTO NEW SYSTEM DEVICE
		/4000=JMS SYSSWP TO SWAP PGS 6600 AND 7600
	JMS I 0
	4600
	0
	MCDREC
	JMP CERR
	JMS I 0
	5011
	0
	ODTREC
	JMP CERR
	JMS I 0
	0110		/READ IN UPPER PG 7600
	7600
	0
	JMP CERR
	JMP I .+1
	7605		/START HER UP
CERR,	TAD .+3
	DCA 4001
	JMP 4000	/RESWAP AND HALT
	HLT

	*0
	SHNDLR		/FOR OBSCURE DEBUGGING PURPOSES
NUMTST,	0
	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,	0
HIORD,	0
NUMX,	0
RBFLAG,	0
NAME1,	0
NAME2,	0
NAME3,	0
NAME4,	0
NAMECT,	0
NMBASE,	0
DEV1,	0
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
	FIELD 1
	/INVISIBLE ODT FOR PS/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
	KRB
	DCA TEMP
	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 I TEMP
CTRC,	JMS I [DUMP
	JMP I [7605

TABL1=.
	240
	212
	215
	257
	302
	307
	273
	303
	327
	336
	315
	301
	314
	304
	337
	306
	377
	253
	255
	-270		/USED - SEE "SEX"

EXAM,	TAD TOTE
	TAD [6
	SNA CLA
	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

CRL,	0
	TAD TOTE
	TAD [6
	SNA CLA
	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
	*400
BURP,	CDF 10		/THE TRAP IS SPRUNG!
	TAD I [MARG1
	DCA SAC
	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
BURP1,	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
	JMP I [LIP

CTCTST,	0
	KRS
	TAD [-203
	SNA CLA
	KSF
	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,	TAD TOTE
	TAD [6
	SNA CLA
	TAD [SHNDLR
	TAD WORD+1
	DCA TRAD+1
	TAD WORD
	DCA TRAD
	TAD [7000
	DCA I [SHNDLR
	JMS I [LOAD
	TRAD
	DCA KEEP
	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
	JMS I [OCRLF	/GO TO NEXT LINE
	JMP I [UPAR3	/AND DISPLAY LOC AND CONTENTS
	*600		/THIS IS WHERE THE KEYBOARD MONITOR ENTERS ODT
	HLT		/ERROR WHILE READING ODT
	JMP I .+1
	INIT		/INITIALIZE "MREAD" AREA TO ODT RESTART CODE
LIP,	ISZ PUNN
	JMP XCONT
TTYTST,	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,	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,	JMS I [LOAD
	TRAD
	DCA KEEP
	TAD WORD+1
	CIA
	SNA
CONTX,	CMA
	DCA PUNN
	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

UPAR1,	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

TABL2=.
	REA		/IGNORE BLANKS
	CRL2
	CRL1
	EXAM
	TRAP
	JUMP
	SEMI
	CONTIN
	WSER
	UPAR1
	MASKX
	ACX
	LINKX
	DATF
	OPIN
	INDF
	RBOUT
	ADD
	SUBT
	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
	KRS
	TAD [-217
	SNA CLA
	KSF
	JMP I TYPN
	KCC
	JMP I [READ

WSER,	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

BRKCOD=.
	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
	*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
	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

JMSJMP,	RAL
	SPA CLA
	JMP JMPX
	TAD TRAD
	DCA FROG
	TAD GAME+1
	DCA 0
	CLA IAC
JMPX,	TAD FROG+1
	DCA GAME+1
	JMP EOSIM

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

GETADR,	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
	*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
	TSF
	JMP .-1
	JMP I [READ

RSTCOD=.
	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
	*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
STOFLG,	0
PUNN,	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
	$
