/PAL8 ASSEMBLER FOR PS8 MONITOR SYSTEM

/NOVEMBER 5, 1970	VERSION 2

/MARK BRAMHALL

/COPYRIGHT 1970,1971 DIGITAL EQUIPMENT CORP.
/COMMAND DECODER RULES:

/*BINARY(.BN),LISTING(.LS)<SOURCE(.PA),...

/OPTIONS:
/S	NO SYMBOL TABLE - ONLY IF LISTING
/N	NO LISTING	- ONLY IF LISTING
/L	LOAD AFTER	- "PAL8BN.TM" CREATED IF NO BINARY
/G	LOAD+GO AFTER	- SAME AS /L
/D	DDT TYPE SYMBOL	- ONLY IF LISTING
/T	CR-LF NOT FF	- ONLY IF LISTING (CR-LF AUTOMATIC FOR TTY)
/H	NO PAGING	- ONLY IF LISTING

/PSEUDO-OPS:
/DECIMAL	RADIX TO BASE 10
/DEVICE		2 WORD DEVICE CODE
/EJECT		SAME AS FF IN LISTING
/ENPUNCH	ENABLE PUNCHING
/EXPUNGE	REMOVE ALL SYMBOLS
/FIELD		SET FIELD
/FILENAME	4 WORD FILE CODE
/FIXMRI		DEFINE FIXED MEMORY REFERENCE INSTRUCTION
/FIXTAB		MAKE SYMBOLS PERMANENT
/IFDEF		CONDITIONAL ON DEFINITION
/IFNDEF		CONDITIONAL ON UNDEFINED
/IFNZRO		CONDITIONAL ON NON-ZERO
/IFZERO		CONDITIONAL ON ZERO
/NOPUNCH	INHIBIT PUNCHING
/OCTAL		RADIX TO BASE 8
/PAGE		DEFINE CURRECT LOCATION
/PAUSE		NOP
/TEXT		6 BIT TEXT
/XLIST		TOGGLE LISTING INHIBIT
/ZBLOCK		ZERO BLOCK

/SYMBOL LAYOUT:
/	WORD 1	BIT 0	FIXTABED
/		BIT 1	"I" OR "Z"
/		BITS 3-11	CHARS 1 AND 2
/
/	WORD 2	BIT 0	FIXMRI
/		BITS 2-11	CHARS 3 AND 4
/
/	WORD 3	BIT 0	PSEUDO-OP
/		BITS 2-11	CHARS 5 AND 6
/
/	WORD 4	BITS 0-11	OCTAL VALUE
/
/CHARS ARE STORED AS:
/	A TO Z ARE 01 TO 32
/	0 TO 9 ARE 33 TO 44
/
/	CHAR1^45+CHAR2
/DEFINTIONS

MDATE=7666
MPARAM=7643
DCB=7760
JSBITS=7746

IZ="I-240^100+"Z-240	/ILLEGAL PAGE ZERO REFERENCE
US="U-240^100+"S-240	/UNDEFINED SYMBOL
IP="R-240^100+"D-240	/G.B.
SE="S-240^100+"E-240	/SYMBOL TABLE EXCEEDED
ZE="Z-240^100+"E-240	/PAGE ZERO EXCEEDED
PE="P-240^100+"E-240	/SAME PAGE EXCEEDED
IC="I-240^100+"C-240	/ILLEGAL CHARACTER
ID="I-240^100+"D-240	/ILLEGAL DEFINITION
BE="B-240^100+"E-240	/PUSH-DOWN OVERFLOW
DE="D-240^100+"E-240	/DEVICE ERROR
DF="D-240^100+"F-240	/DEVICE FULL
LD="L-240^100+"D-240	/NO "ABSLDR.SV" FOUND
IE="I-240^100+"E-240	/ILLEGAL EQUATE
PH="P-240^100+"H-240	/PHASE ERROR
II="I-240^100+"I-240	/ILLEGAL INDIRECT
RD="R-240^100+"D-240	/REDEFINITION
UO="U-240^100+"S-240	/GEORGE BERRY
/PAGE ZERO

FIELD 0

*10
PDLXR,	PDLST		/PUSH-DOWN XREG
TAGXR,	0		/TAG INDEX REG
XREG1,	0		/GENERAL XREG
XREG2,	0		/GENERAL XREG

LAST1,	0		/LAST DEFINED SYMBOL
LAST2,	0
LAST3,	0
LAST4,	0

*20
TAG1,	0		/TAG STORAGE
TAG2,	0
TAG3,	0

LITPTR,	200		/LITERAL POINTER

RADIX,	0		/NON-ZERO IF DECIMAL MODE
PUNCHX,	0		/NON-ZERO IF NO PUNCHING
XLISTX,	0		/NON-ZERO IF NO LISTING

LOC,	200		/CURRECT LOCATION

OP,	0
VALUE,	0		/EXPRESSION VALUE
VALUE2,	0		/EXPRESSION OPERAND

TXTSWT,	0
TXTPTR,	0		/TEXT POINTER
CHAR,	0		/CURRENT CHARACTER

THISPG,	0		/OVERFLOW PAGE
EDITPG,	0

TEMP,	0		/TEMPORARY
TEMP1,	0
TEMP2,	0
TEMP3,	0

OCHAR,	OUTPUT		/OUTPUT ROUTINE
ICHAR,	INPUT		/INPUT ROUTINE
OERROR,	OTYPEO		/1=OTYPEO; 2=OTYPEO; 3=LISTOUT

PASS,	-1		/-1; 0; 1

IOMON,	200

CONDSW,	0
EXPIND,	0

CHKSUM,	0

IZIND,	0

THISTG,	0
HIGHTG,	136

LINCNT,	0

ALPHAI,	0

GETCI,	0

LSTCNT,	0

UNDFSW,	0

INCTL,	601

LINKSW,	0

LININD,	0
PAGE

/GET A TAG AND FIND IT IN THE TABLE ROUTINE
/CALL WITH AN ALPHEBETIC CHARACTER IN "CHAR"
/IT BUILDS THE TAG AND FINDS IT IN THE TABLE
/THE RESULT IS STORED IN "TAG1","TAG2",ETC.
/IF THE TAG IS NOT IN THE TABLE "THISTG" POINTS
/ TO WHERE IT SHOULD BE
/"VALUE2" HAS THE TAG'S VALUE
/"THISTG" IS LEFT WITH THE TAG'S NUMBER


NAME1,	JMP I .+2	/BUILDING AREA
NAME2,	JMP I .+2
NAME3,	BEGIN
GETTA2,	BEGIN+1		/BUILDING SWITCH AND OVERFLOW PROTECT

GETTAG,	0
	DCA NAME1	/ZERO BUILD AREA
	DCA NAME2
	DCA NAME3
	TAD [NAME1-1
	DCA GETTA4	/SET POINTER FOR BUILDING
	DCA GETTA2	/ZERO SWITCH
GETTG1,	TAD CHAR	/GET THE CHARACTER
	AND [77		/MAKE IT 01-32 OR 60-71
	TAD (-32
	SMA SZA		/A TO Z WILL SKIP
	TAD (-25	/MAKE 60-71 INTO 33-44
	TAD (32		/IT IS NOW 01-32 OR 33-44
	ISZ GETTA2	/LEFT SIDE?
	JMP GETTA3	/YES
	TAD I GETTA4	/NO - RIGHT SIDE
	DCA I GETTA4	/BUILD THE WORD
GETTA1,	JMS I [GETC
	JMS I [TSTALN	/TEST ALPHANUMERIC
	JMP GETTG1	/IT IS SO KEEP BUILDING
	TAD HIGHTG	/NUMBER OF HIGHEST TAG
	CLL RAR		/DIVIDE BY 2
	DCA TEMP2	/SAVE DIFFERENCE
	DCA THISTG	/START AT TAG ZERO
	CLL CML		/LINK MUST BE ON INITIALLY
	DCA TEMP1
GETTG2,	SZL
	JMP GETTG3
GETTG4,	DCA TEMP1
	SNL
	ISZ TEMP1
	TAD TEMP2
	SNL
	CIA
	TAD THISTG
	DCA THISTG
	TAD TEMP2
	CLL RAR
	SNA
	ISZ TEMP1
	SNA
	IAC
	DCA TEMP2
GETTG6,	JMS I [FINDTG	/GET THE TAG
	TAD [1777	/MASK
	AND TAG1	/GET WORD 1
	CLL CIA
	TAD NAME1	/CHECK IT
	SZA CLA
	JMP GETTG2	/NOGO
	CLL CLA CMA RAR
	AND TAG2	/WORD 2
	CLL CIA
	TAD NAME2
	SZA CLA
	JMP GETTG2	/NOGO
	CLL CLA CMA RAR
	AND TAG3
	CLL CIA
	TAD NAME3
	SZA CLA
	JMP GETTG2	/NOGO
	ISZ GETTAG
	JMP I GETTAG	/EXIT

GETTG3,	CLL CLA CMA RAL
	TAD TEMP1
	SZA CLA
	JMP GETTG4
	ISZ THISTG
	DCA VALUE2
	DCA TAG1
	DCA TAG2
	DCA TAG3
	JMP I GETTAG

GETTA3,	ISZ GETTA4	/BUMP POINTER
	DCA I GETTA4	/SAVE TIMES 1
	TAD I GETTA4
	CLL RTL		/TIMES 4
	DCA GETTA2	/SAVE TIMES 4
	TAD GETTA2
	CLL RTL		/TIMES 20
	RAL		/TIMES 40
	TAD GETTA2	/40+4 = TIMES 44
	TAD I GETTA4	/44+1 = TIMES 45
	DCA I GETTA4	/SET LEFT SIDE
	TAD GETTA4
	TAD (-GETTA2
	RAL
	CLA CML CMA RAL	/-1 IF TOO MANY; -2 IF O.K.
	DCA GETTA2
	ISZ GETTA2
	JMP GETTA1
	CLA CMA
	TAD GETTA4
	DCA GETTA4	/BACK UP POINTER
	JMP GETTA1

GETTA4,	NAME1-1
/IGNORE SPACES ROUTINE

SPNOR,	0
	TAD CHAR	/GET THE CHARACTER
	TAD [-" 	/IS IT A SPACE?
	SZA CLA
	JMP I SPNOR	/NO - EXIT
	JMS I [GETC	/YES - GET NEXT
	JMP SPNOR+1	/LOOP

/DECIMAL AND OCTAL AND PAUSE ROUTINES

DECIMX,	CLA IAC		/NON-ZERO FOR DECIMAL
OCTALX,	DCA RADIX	/ZERO FOR OCTAL
PAUSEX,	JMP I [LOOKEX	/EXIT FROM LOOK

/XLIST ROUTINE

XLISTY,	TAD XLISTX
	CMA
	DCA XLISTX
	JMP I [LOOKEX

/NOPUNCH AND ENPUNCH ROUTINES

NOPUNX,	CLA IAC		/NON-ZERO FOR NO PUNCH
ENPUNX,	DCA PUNCHX	/ZERO FOR PUNCHING
	JMP I [LOOKEX	/EXIT FROM LOOK

RTL6,	0
	CLL RTL
	RTL
	RTL
	JMP I RTL6
PAGE

/EJECT ROUTINE

EJECTX,	ISZ THISPG	/OVERFLOW PAGE
	TAD PASS
	SMA SZA CLA
	JMS I [FORMFD	/DO A FORM FEED
	JMP I [LOOKEX	/EXIT FROM LOOK

/ZBLOCK ROUTINE

ZBLOCX,	JMS I [SPNOR	/IGNORE SPACES
	JMS I [EXP	/GET THE EXPRESSION
	TAD VALUE
	CIA
	SNA
	JMP I [LOOKEX
	DCA TEMP3
ZBLOCY,	JMS I [PUNBIN
	TAD PASS
	SMA SZA CLA
	DCA I (PUNMOD
	ISZ TEMP3
	JMP ZBLOCY
	TAD (JMS I [PUNONE
	DCA I (PUNMOD
	JMP I [LOOKEX

/FIELD ROUTINE

FIELDX,	JMS I [SPNOR
	JMS I [DUMPS	/DUMP SAME PAGE LITERALS
	JMS I [DUMPZ	/DUMP PAGE ZERO LITERALS
	JMS I [EXP	/GET EXPRESSION
	TAD PASS
	SZA CLA
	JMP FIELDY
	TAD VALUE
	AND [7
	CLL RTL
	RAL		/GET FOR PUNCHING
	TAD [7700
	JMS I OCHAR	/OUTPUT THE FIELD
FIELDY,	JMS I [CLEAN	/CLEAN UP THINGS
	TAD [200	/SET ORIGIN OF 0200
	JMP STAR1

/PAGE ROUTINE

PAGEX,	JMS I [DUMPS	/DUMP SAME PAGE LITERALS
	JMS I [SPNOR
	TAD CHAR
	SPA CLA		/ANY EXPRESSION?
	JMP PAGEY	/NO
	JMS I [EXP	/GET EXPRESSION
	TAD VALUE
	JMS I [RTL6
	JMP STAR1-1

PAGEY,	TAD LOC
	TAD [177
	AND [7600	/FIND NEXT PAGE
STAR1,	JMS I [PUNORG
	JMS I [FINDSP
	TAD [LITBUF
	DCA TEMP
	TAD I TEMP
	DCA LITPTR
	DCA LAST1
	JMP I [LOOKEX
EQUAL,	ISZ ALPHAI
	SKP
	JMS I [INSRTG
EQUAL3,	JMS I [GETC
	TAD THISTG
	JMS I [PUSHA
	TAD ALPHAI
	JMS I [PUSHA
	JMS I [SPNOR
	JMS I [EXP
	TAD I PDLXR
	DCA ALPHAI
	TAD I PDLXR
	DCA THISTG
	JMS I [FINDTG
	ISZ UNDFSW
	JMP .+3
	JMS I [ERROR
	IE
	TAD ALPHAI
	SNA CLA
	JMP EQUAL2
EQUAL1,	TAD VALUE
	CIA
	TAD VALUE2
	SNA CLA
	JMP EQUAL2
	TAD TAG1
	SMA CLA
	JMP EQUAL2
	JMS I [ERROR
	RD
EQUAL2,	TAD VALUE
	DCA VALUE2
	JMS I [PUTTAG
	JMP I [LOOKEX

FIXMRX,	JMS I [SPNOR
	JMS I [TSTALP
	JMP FIXMR1
	JMS I [ERROR
	IC
	TAD CHAR
	SPA CLA
	JMP I [LOOKEX
	JMS I [GETC
	JMP FIXMRX+1

FIXMR1,	JMS I [GETTAG
	JMP FIXMR3
	CLA CMA
	DCA ALPHAI
	CLL CLA CMA RAR
	AND TAG2
	TAD [4000
	DCA TAG2
	JMS I [PUTTAG
	JMS I [SPNOR
FIXMR2,	TAD CHAR
	SPA CLA
	JMP I [LOOKEX
	TAD CHAR
	TAD [-"=
	SNA CLA
	JMP EQUAL3
	JMS I [ERROR
	IC
	JMS I [GETC
	JMP FIXMR2

FIXMR3,	JMS I [INSRTG
	JMP FIXMR1+3
PAGE

/GET A CHARACTER ROUTINE
/READS FROM THE INPUT FILES AND PASSES THE MODIFIED CHARACTERS
/TO THE PROGRAM
/IT ALSO PRINT THE LATEST LINE IF IT HAS NOT BEEN PRINTED

GETC,	0
	ISZ TXTPTR	/POINT TO NEXT
GETC7,	TAD I TXTPTR	/GET NEXT CHARACTER
	SZA		/IS IT 0?
	JMP GETC8	/NO - MORE ARE IN THIS LINE
	TAD PASS
	SPA SNA CLA
	JMP GETC1
	TAD [LINBUF
	DCA TXTPTR	/RESET POINTER TO BEGINNING
	TAD I TXTPTR	/GET 1ST CHARACTER
	SNA		/IS IT 0?
	JMP GETC1	/YES - LINE HAS BEEN PRINTED
	TAD [-215	/IS IT 215?
	SNA CLA
	JMP GETC2	/YES - DO NOT PRINT THE SPACES
	TAD [211
	JMS I OERROR
	TAD [211
	JMS I OERROR
GETC2,	JMS LINPRT	/NOW PRINT THE LINE
GETC1,	TAD (-121
	DCA TXTSWT
	TAD (LINBUF-1
	DCA TXTPTR	/RESET POINTER
	ISZ TXTPTR
GETC6,	JMS I ICHAR	/GET INPUT
	JMP GETC4	/215
	DCA I TXTPTR	/STORE THE CHARACTER
	ISZ TXTSWT	/TOO MANY?
	JMP GETC6-1	/NO
	CLA CMA		/YES
	DCA TXTSWT
	JMP GETC6

GETC4,	DCA I TXTPTR	/SET END
	ISZ TXTPTR
	DCA I TXTPTR	/SET END OF LINE
	TAD [LINBUF
	DCA TXTPTR	/RESET POINTER
	CLA CMA
	DCA TXTSWT	/RESET SWITCH
	JMP GETC7	/GET THAT CHARACTER

GETC8,	TAD [-215
	SNA
	JMP GETC12
	TAD GETCI
	TAD (215-"/
	SNA
	JMP GETC13	/"/" IS END
	TAD ("/-";
	SNA
	JMP GETC12	/";" IS END
	TAD (";-211
	SNA
	JMP GETC10	/TAB IS SPACE
	TAD (211-" 
	SZA CLA
	JMP GETC9	/NOT ANYTHING SPECIAL
GETC10,	ISZ TXTSWT	/2ND OCCURANCE?
	JMP GETC+1	/YES - IGNORE
	TAD [" 
	DCA CHAR	/NO - GIVE A SPACE
	JMP I GETC

GETC16,	ISZ CONDSW
	JMP GETC15
GETC17,	TAD [LINBUF+120
	DCA TXTPTR
GETC12,	CLL CLA CML RAR
GETC9,	TAD I TXTPTR
	DCA CHAR	/SET THE CHARACTER
	CLA CMA
	DCA TXTSWT	/SET THE SWITCH
	JMP I GETC

GETC13,	TAD CONDSW
	SNA CLA
	JMP GETC17
GETC15,	ISZ TXTPTR
	TAD I TXTPTR
	TAD [-215
	SNA
	JMP GETC17
	TAD (215-">
	SNA
	JMP GETC16
	TAD (">-"<
	SZA CLA
	JMP GETC15
	CLA CMA
	TAD CONDSW
	DCA CONDSW
	JMP GETC15
LINPRT,	0		/PRINT THE LINE
	TAD (LINBUF-1
	DCA XREG1	/POINT TO LINE
LINPR1,	TAD I XREG1
	SNA
	JMP LINPR2	/YES END
	JMS I OERROR	/OUTPUT IT
	JMP LINPR1

LINPR2,	DCA I [LINBUF	/0 MEANS THAT IT HAS BEEN PRINTED
	JMP I LINPRT

PHASE,	TAD (PH
MONERR,	DCA MONER1
	TAD (OTYPEO
	DCA OERROR
	JMS I [ERROR
MONER1,	0
	JMP I [7600

FINDSP,	0
	TAD LOC
	AND [7600
	JMS I [RTL6
	JMP I FINDSP

OUFILE,	ZBLOCK 5
PAGE

LISOUT,	0
	ISZ LISCNT
	JMP LISOU1
	ISZ LINCNT
	JMP LISOU1
	DCA LISOU2
	ISZ THISPG
HSWIT1,	JMS I [FORMFD	/0 IF /H
	ISZ LINCNT
	TAD LISOU2
LISOU1,	TAD [-215
	SNA
	JMP LISOU3
	TAD [215
	JMS I OCHAR
	JMP I LISOUT

LISOU3,	CLA CMA
	DCA LISCNT
	JMS CRLF
	JMP I LISOUT

LISOU2,	0
LISCNT,	-1
FORMFD,	0
HSWITC,	JMP FORMF1	/0 IF /T OR TTY:; JMP FORMF3 IF /H
	TAD LINCNT
	TAD [-4
	DCA LINCNT
	JMS CRLF
	ISZ LINCNT
	JMP CRLF1
	TAD (-6
	DCA LINCNT
	TAD ["-
	JMS I OCHAR
	ISZ LINCNT
	JMP .-3
	TAD [-4
	DCA LINCNT
FORMF2,	JMS CRLF
	ISZ LINCNT
	JMP CRLF1
	TAD (-70
	DCA LINCNT
FORM22,	TAD [HEADER-1
	DCA XREG2
	TAD [40
	DCA LSTCNT
FORM30,	TAD I XREG2
	SNA
	JMP FORM20
	JMS I OCHAR
	TAD LSTCNT
	TAD [-100
	SZA CLA
	JMP FORM30
	TAD [40
	JMP FORM22

FORM20,	TAD EDITPG
	JMS FORMF4
	TAD THISPG
	SNA CLA
FORM21,	JMP FORMF3
	TAD ["-
	JMS I OCHAR
	TAD THISPG
	JMS FORMF4
FORMF3,	JMS CRLF
	JMS CRLF
	JMP I FORMFD

FORMF4,	0
	DCA FORMF6
	TAD (FORMF8
	DCA CRLF
	CLL CLA CMA RTL
	DCA FORM11
FORM12,	DCA FORMF7
	JMP .+3
FORMF5,	DCA FORMF6
	ISZ FORMF7
	TAD FORMF6
	TAD I CRLF
	SMA
	JMP FORMF5
	CLA
	ISZ CRLF
	TAD FORMF7
	SNA
	JMP FORM10
FORMF9,	TAD ["0
	JMS I OCHAR
	CLL CLA CML RAR
FORM10,	ISZ FORM11
	JMP FORM12
	TAD FORMF6
	TAD ["0
	JMS I OCHAR
	JMP I FORMF4

FORMF6,	0
FORMF7,	0

FORMF1,	CLL CLA CMA
	DCA LINCNT
	CLA CMA
	JMP FORMF2
DECIMAL
FORMF8,	-1000
	-100
	-10
OCTAL

CRLF,	0
	TAD [215
	JMS I OCHAR
CRLF1,	TAD [212
	JMS I OCHAR
	JMP I CRLF

FORM11,
PUNORG,	0
	DCA LOC
	TAD PASS
	SZA CLA
	JMP I PUNORG
	TAD LOC
	CLL CML
	JMS I [PUNOUT
	JMP I PUNORG

STAR2,	TAD OP
	JMS I [PUNORG
	DCA LAST1
	JMP I [LOOKEX
PAGE

PUNBIN,	0
	DCA VALUE
	JMS I [FINDSP
	TAD [LITBUF
	DCA TEMP2
	TAD LOC
	AND [177
	DCA TEMP
	TAD I TEMP2
	CIA
	TAD TEMP
	ISZ TEMP
	SPA CLA
	JMP ONEOK
	TAD TEMP
	DCA I TEMP2
	JMS I [FINDSP
	SZA CLA
	JMP .+4
	JMS I [ERROR
	ZE
	JMP ONEOK
	JMS I [ERROR
	PE
ONEOK,	JMS I [FINDSP
	TAD [TPINST
	DCA TEMP2
	TAD TEMP
	CIA
	TAD I TEMP2
	SMA CLA
	JMP .+3
	TAD TEMP
	DCA I TEMP2
PUNMOD,	JMS I [PUNONE
	TAD TEMP
	AND [177
	SZA CLA
	JMP ONEOK2
	JMS I [FINDSP
	TAD [LITBUF
	DCA TEMP2
	TAD I TEMP2
	DCA LITPTR
ONEOK2,	ISZ LOC
	NOP
	JMP I PUNBIN
HEADER=.

OUFIGR,	0
	SNL CLA
	TAD [400
	TAD OUFDEV
	DCA I OUFINP
	TAD I OUFINP
	CLL RAR
	CIA
	TAD OU3501
	JMP I OUFIGR

OU3501,	3501
OUFDEV,	OUDEVH
OUFINP,	INBUFP

EXPUA1,	EXPUN2
EXPUA2,	EXPUNY
EXPUA3,	EXPUN1

EXPUA4,	CLL CLA CML RTR
	AND TAG1
	SNA CLA
	JMP .+5
EXPUNZ,	TAD I EXPUA1
	DCA THISTG
	JMS I [PUTTAG
	ISZ I EXPUA1
	ISZ I EXPUA3
	ISZ TEMP3
	JMP I EXPUA2
	CLA CMA
	TAD I EXPUA1
	DCA HIGHTG
	JMP I [LOOKEX

*HEADER+40
	" ;" ;"P;"A;"L;"8;" ;" 
DATE,	" ;" ;" ;" ;" ;" ;" ;" 
	" ;" ;"P;"A;"G;"E;" ;0

PDLND=.
PAGE

LINBUF=.+14

PDLST=LINBUF-1

LITBUF=LINBUF+122

TPINST=LITBUF+40

LITBF1=TPINST+40-17

LITBF2=LITBF1+200-17

IFNZRO LITBF2&177 < THIS IS AN ERROR!! >

BEGIN,	SKP CLA
	JMP NOCD
	CIF 10
	JMS I IOMON
	5
	2001
NOCD,	CDF 10
	TAD I (7604
	SNA
	TAD (216
	DCA I (7604
	TAD I (7611
	SNA
	TAD (1423
	DCA I (7611
	TAD I (MPARAM
	CDF
	AND (400
	SNA CLA
	JMP BEGIN1
	DCA I (DSWIT3	/D
	DCA I (DSWIT4
	JMP .+3

BEGIN1,	DCA I (DSWIT1
	DCA I (DSWIT2
	TAD I (JSBITS
	AND (6777
	TAD (1000
	DCA I (JSBITS
	CDF 10
	TAD I (MPARAM+1
	CDF
	AND (20
	SNA CLA
	JMP BEGINA
	DCA I (HSWITC	/T
	JMP BEGIN2

BEGINA,	TAD [7605
	JMS I (OTYPE
	AND (770
	SNA CLA
	DCA I (HSWITC	/TTY:
BEGIN2,	CDF 10
	TAD I (MPARAM+1
	CDF
	AND (40
	SZA CLA
	DCA I (SSWITC	/S
BEGIN3,	CDF 10
	TAD I (MPARAM+1
	CDF
	AND (2000
	SNA CLA
	JMP BEGIN4
	DCA I (NSWITC	/N
	JMP BEGIN4+6	/ALSO /H
BEGIN4,	CDF 10
	TAD I (MPARAM
	CDF
	AND (20
	SNA CLA
	JMP BEGINB
	TAD I (FORM21	/H
	DCA I (HSWITC
	DCA I (HSWIT1
BEGINB,	CDF 10
	TAD I (MDATE
	CDF
	SNA
	JMP BEGINZ
	DCA TEMP
	TAD (DATE-1
	DCA XREG1
	TAD TEMP
	CLL RTL
	RTL
	RAL
	JMS I (BEGINC
	TAD TEMP
	RTR
	RAR
	JMS I (BEGINC
	TAD ("7
	DCA I XREG1
	TAD TEMP
	AND [7
	TAD ["0
	DCA I XREG1
BEGINZ,	TAD [7600
	JMS I (OTYPE
	SMA CLA
	TAD (-70
	TAD (-10
	DCA I (LEADER
	JMP I (BEGIN5
PAGE

BEGIN5,	CDF
	TAD I BLK1
	CDF 10
	DCA I BLK2
	ISZ BLK1
	ISZ BLK2
	ISZ BLK3
	JMP BEGIN5
	CDF
	DCA I [LINBUF+120
	DCA I (LINBUF+121
	TAD [7600
	JMS I (OTYPE
	DCA BLK1
	TAD BLK1
	AND (770
	TAD (-20
	SNA CLA
	DCA I (PTPSW
	TAD BLK1
	SPA CLA
	JMP .+3
	TAD (TAD [77
	DCA I (DIRSW
	TAD [7605
	JMS I (OTYPE
	AND (770
	TAD (-20
	SNA CLA
	DCA I (PTPSW1
	TAD [7605
	JMS I (OTYPE
	SPA CLA
	JMP .+3
	TAD (TAD [77
	DCA I (DIRSW1
	JMP I (BEGINF

BEGINC,	0
	AND (37
	DCA TEMP1
	DCA TEMP2
	JMP .+3
	ISZ TEMP2
	DCA TEMP1
	TAD TEMP1
	TAD (-12
	SMA
	JMP .-5
	CLA
	TAD TEMP2
	SNA
	JMP .+3
	TAD ["0
	DCA I XREG1
	TAD TEMP1
	TAD ["0
	DCA I XREG1
	TAD ("/
	DCA I XREG1
	JMP I BEGINC

BEGING,	CDF 10
	TAD I (MPARAM
	CDF
	AND (41
	SNA CLA
	JMP I (START
	CDF 10
	TAD I [7600
	SZA CLA
	JMP YESBIN
BINLOP,	TAD PALBIN
	DCA I PALBIX
	ISZ BINLOP
	ISZ PALBIX
	ISZ BINCNT
	JMP BINLOP
	CDF
	TAD (-10
	DCA I (LEADER
YESBIN,	CDF
	CIF 10
	CLA IAC
	JMS I IOMON
	2
LOAD,	PLOAD
BINCNT,	-5
	JMP NOLOAD
	TAD LOAD
	DCA I (CHAIN
	DCA I (LSWITC
	JMP I (START

NOLOAD,	JMS I [ERROR
	LD
	JMP I (START

BLK1,	SYMS
BLK2,	7600+SYMS-SYME
BLK3,	SYMS-SYME

PALBIX,	7600
PALBIN,	1
	TEXT /PAL8BNTMABSLDRSV/
PLOAD=PALBIN+5
PAGE

OTYPE,	0
	DCA TEMP
	CDF 10
	TAD I TEMP
	AND [17
	TAD (DCB-1
	DCA TEMP
	TAD I TEMP
	CDF
	JMP I OTYPE

BEGINF,	CDF 10
	TAD I (MPARAM
	CDF
	RTR
	SNL CLA
	JMP FLD1+3
	CDF 50
	JMS FLD2
	JMP FLD1-1
	CDF 40
	JMS FLD2
	JMP FLD1
	CDF 30
	JMS FLD2
	JMP FLD1+1
	CDF 20
	JMS FLD2
	JMP FLD1+2
	JMP FLD1+3

	TAD	[177	/IF 5 FIELDS, ALLOW 4095 SYMBOLS
FLD1,	TAD (1740	/OTHERWISE ALLOW 1740*(NR OF FIELDS)
	TAD (1740
	TAD (1740
	TAD (1740
	DCA I (TAGMAX
	TAD I (TAGMAX
	CLL RAL
	SZL SPA CLA
	JMP I (BEGING
OPTIM4,	TAD I OPTIM1
	ISZ OPTIM1
	DCA I OPTIM2
	ISZ OPTIM2
	ISZ OPTIM3
	JMP OPTIM4
OPTIM8,	TAD I OPTIM5
	ISZ OPTIM5
	DCA I OPTIM6
	ISZ OPTIM6
	ISZ OPTIM7
	JMP OPTIM8
	JMP I (BEGING

FLD2,	0
	TAD (FLD3
	DCA I (FLD4
FLD3,	CLA
	TAD I (FLD4
	NOP
	CDF
	TAD (-FLD3
	SZA CLA
	JMP FLD5
	TAD IOMON
	TAD [-200
	SNA CLA
	JMP I FLD2
	TAD [200
	DCA IOMON
FLD5,	ISZ FLD2
	JMP I FLD2

FLD4,	IOMON

OPTIM1,	OPTIMA
OPTIM2,	SETFLD+1
OPTIM3,	-5

OPTIM5,	OPTIMB
OPTIM6,	GETTG5
OPTIM7,	-21

OPTIMA,	CLL CMA RTL
	TAD [-202
	DCA TAGXR
	CDF 10
	SETFLD&177+5600

OPTIMB,	TAD HIGHTG
	SETFLD&177+4200
	TAD TAGXR
	DCA XREG1
	TAD XREG1
	TAD [4
	DCA XREG2
	TAD THISTG
	SETFLD&177+4200
	TAD I XREG2
	DCA I XREG1
	TAD XREG1
	CIA
	TAD TAGXR
	SZA CLA
	GETTG5+11&177+5200
	CDF
PAGE

OUTPT1,	PUNCHX		/2=PUNCHX; 3=XLISTX

OUTPUT,	0
	AND [377
	DCA OUTPT2
	TAD I OUTPT1
	SNA
	TAD OUTINH
	SZA CLA
	JMP I OUTPUT
	TAD OUTPT2
	AND [200
	SNA CLA
	TAD OUTPT2
	TAD CHKSUM
	DCA CHKSUM
	TAD OUTPT2
	TAD (-211
	SNA CLA
	JMP OUTPT3
	JMS OUTPUX
	TAD OUTPT2
	TAD (-212
	SZA CLA
	JMP I OUTPUT
	TAD [4
	DCA LSTCNT
	JMP I OUTPUT

OUTPT3,	TAD [" 
	DCA OUTPT2
	JMS OUTPUX
	TAD LSTCNT
	AND [7
	SZA CLA
	JMP .-4
	JMP I OUTPUT

OUTPUX,	0
OUCHAR,	ISZ OUJMP
OUJMP,	HLT
	JMP OCHAR1
	JMP OCHAR2
OCHAR3,	TAD OUTPT2
	CLL RTL
	RTL
	AND [7400
	TAD I OUPOLD
	DCA I OUPOLD
	TAD OUTPT2
	CLL RTR
	RTR
	RAR
	AND [7400
	TAD I OUPTR
	DCA I OUPTR
	TAD OUJMPE
	DCA OUJMP
	ISZ OUPTR
	ISZ OUDWCT
	JMP OUCHLV
	TAD [200
	JMS I (OUTDMP
	JMS I (OUSETP
	JMP OUCHLV

OCHAR2,	TAD OUPTR
	DCA OUPOLD
	ISZ OUPTR
OCHAR1,	TAD OUTPT2
	DCA I OUPTR
OUCHLV,	TAD OUTPT2
	JMS I (TEXT1
	ISZ LSTCNT
	JMP I OUTPUX

OUPOLD,	0
OUPTR,	0
OUJMPE,	JMP OUJMP
OUDWCT,	0
OUTINH,	0
OUTPT2,	0

SYSER2,	TAD (DF
	JMP I [MONERR
DEVICX,	JMS I [SPNOR
	TAD [-5
	JMP DEVIC1

FILENX,	JMS I [SPNOR
	TAD (-7
	JMS FILE1
	TAD CHAR
	TAD [-".
	SNA CLA
	JMS I [GETC
	CLL CLA CMA RTL
DEVIC1,	JMS FILE1
	JMP I [LOOKEX

FILE1,	0
	DCA FILE6
	DCA I (TEXT6
FILE4,	JMS I [TSTALN
	SKP
	JMP FILE5
	ISZ FILE6
	JMP FILE3
	CLA CMA
	DCA FILE6
	JMP FILE2

FILE3,	TAD CHAR
	JMS I (TEXT2
FILE2,	JMS I [GETC
	JMP FILE4

FILE5,	ISZ FILE6
	SKP
	JMP I FILE1
	JMS I (TEXT2
	JMP FILE5

FILE6,	0

OPTABL,	OP0
	OP1
	OP2
	OP3
	OP4
	OP5
PAGE

TEXTX,	CLL CLA CML RAR
	DCA GETCI
	JMS TEXT1A
	JMP TEXT8
	TAD [-" 
	SNA
	JMP TEXT8
	TAD [" 
	CIA
	DCA VALUE2
	DCA TEXT6
TEXT3,	JMS I [GETC
	JMS TEXT1A
	JMP TEXT9
	TAD VALUE2
	SNA CLA
	JMP TEXT4
	TAD CHAR
	JMS TEXT2
	JMP TEXT3

TEXT4,	DCA GETCI
	JMS I [GETC
	CLA
	JMS TEXT2
	JMS TEXT2
	DCA GETCI
	JMP I [LOOKEX

TEXT8,	JMS I [GETC
	JMP TEXTX+2

TEXT9,	JMS I [ERROR
	IC
	JMP TEXT3

TEXT1,	0
	AND (140
	SNA
	JMP .+3
	TAD (-140
	SNA CLA
	ISZ TEXT1
	JMP I TEXT1

TEXT1A,	0
	TAD CHAR
	SPA SNA
	JMP TEXT4+2
	JMS TEXT1
	ISZ TEXT1A
	TAD CHAR
	JMP I TEXT1A

TEXT2,	0
	AND [77
	ISZ TEXT6
	JMP TEXT5
	TAD TEXT7
	JMS I [PUNBIN
	JMP I TEXT2

TEXT5,	JMS I [RTL6
	DCA TEXT7
	CLA CMA
	DCA TEXT6
	JMP I TEXT2

TEXT6,	0
TEXT7,	0
FIXTBX,	TAD PASS
	SMA CLA
	JMP I [LOOKEX
	TAD HIGHTG
	CMA
	DCA TEMP3
	DCA THISTG
FIXTAX,	JMS I [FINDTG
	CLL CLA CMA RAR
	AND TAG1
	TAD [4000
	DCA TAG1
	JMS I [PUTTAG
	ISZ THISTG
	ISZ TEMP3
	JMP FIXTAX
	JMP I [LOOKEX

EXPUNX,	TAD PASS
	SMA CLA
	JMP I [LOOKEX
	DCA EXPUN1
	DCA EXPUN2
	TAD HIGHTG
	CMA
	DCA TEMP3
EXPUNY,	TAD EXPUN1
	DCA THISTG
	JMS I [FINDTG
	TAD TAG3
	SPA CLA
	JMP I (EXPUNZ
	JMP I (EXPUA4

IOPEN,	0
	CLA CMA
	DCA I (INCHCT
	ISZ I (INEOF
	TAD (7617
	DCA I (INFPTR
	ISZ I (FORMSW
	TAD [LINBUF+120
	DCA TXTPTR
	JMP I IOPEN

EXPUN1=TEXT6
EXPUN2=TEXT7

PUNOUT,	0
	DCA PUNOU1
	TAD PUNOU1
	RTR
	RTR
	RTR
	AND [177
	JMS I OCHAR
	TAD PUNOU1
	AND [77
	JMS I OCHAR
	JMP I PUNOUT

PUNOU1,	0
PAGE

/MAINLINE CODE

LOOKE2,	0
	TAD CHAR
	TAD (-">
	SNA
	JMP CONEND
	TAD (">
	SMA CLA
	JMP I LOOKE2
LOOKE1,	JMS I [GETC
MAIN,	TAD [200
	KRS
	TAD (-203
	SNA CLA
	KSF
	JMP MAIN1
	JMP I [7600

MAIN1,	JMS I [SPNOR
	TAD CHAR
	TAD [-"$	/CHECK FOR $ END
	SNA
	JMP I (ENDPAS	/END THIS PASS
	TAD ("$-"*
	SNA CLA
	JMP STAR	/IT IS *
	JMS I [TSTALP
	JMP ALPHA
	JMS LOOKE2
TOEXP,	JMS I [EXP
	TAD LININD
	DCA LINKSW
	TAD VALUE
	JMS I [PUNBIN
LOOKEX,	JMS I [SPNOR	/IGNORE TRAILING SPACES
	JMS LOOKE2
ILCHAR,	JMS I [ERROR
	IC
	JMP CONEN1

CONEND,	TAD CONDSW	/ARE WE INTO CONDITIONALS
	SNA
	JMP ILCHAR	/NO - > IS ILLEGAL
	IAC		/ONE LESS CONDITIONAL
	DCA CONDSW
CONEN1,	JMS I [GETC	/GO BY THE CHARACTER
	JMP LOOKEX	/AND TRY FOR END AGAIN

STAR,	JMS I [GETC	/BY THE *
	JMS I [SPNOR
	JMS I [EXP	/GET THE EXPRESSION
	ISZ UNDFSW
	JMP .+3
	JMS I [ERROR
	UO
	TAD VALUE
	DCA OP
	TAD LOC
	AND [7600
	CIA
	TAD OP
	AND [7600
	SNA CLA
	JMP I (STAR2
	JMS I [DUMPS
	TAD OP
	JMP I (STAR1

ALPHA,	JMS I [GETTAG	/GET THE TAG
	CLA CMA
	DCA ALPHAI
	TAD TAG3
	SPA CLA
	JMP I VALUE2	/IT IS PSEUDO - GO TO IT
	TAD CHAR
	TAD (-",
	SNA
	JMP COMMA	/DEFINE THE SYMBOL
	TAD (",-"=
	SNA CLA
	JMP I (EQUAL	/EQUATE THE SYMBOL
	CLL CLA CML RAR
	JMP TOEXP

COMMA,	JMS I [GETC
	ISZ ALPHAI
	JMP COMMA2
	TAD LOC
	DCA VALUE2
	JMS I [INSRTG
COMMA1,	TAD TAG1
	DCA LAST1
	TAD TAG2
	DCA LAST2
	TAD TAG3
	DCA LAST3
	TAD VALUE2
	DCA LAST4
	JMP MAIN

COMMA2,	TAD LOC
	CIA
	TAD VALUE2
	SNA CLA
	JMP COMMA1
	JMS I [ERROR
	ID
	JMP MAIN

OP5,
OP3,	TAD VALUE2
	AND VALUE
	CMA
	AND VALUE2
	JMP I (OP0+1

QUOTE,	ISZ TXTPTR
	TAD I TXTPTR
	TAD [-215
	SNA CLA
	JMP I (QUOTE1
	TAD I TXTPTR
	DCA VALUE2
	JMS I [GETC
	JMP I (NUMBE1+1
PAGE

/EXPRESSION ROUTINE

EXP,	0
	DCA EXPIND	/SET INDICATOR (NOT 0 IF NO FIXMRI)
	DCA LININD
	DCA VALUE	/START WITH "VALUE" = 0
	DCA UNDFSW
	TAD EXP
	JMS I [PUSHA	/SAVE RETURN ADDRESS
	DCA OP		/OP=0; ADD
	TAD EXPIND
	SPA CLA
	JMP I (EXPINT
	TAD CHAR
	TAD [-"+
	SNA
	JMP EXP1-1	/UNARY +
	TAD ["+-"-
	SZA CLA
	JMP EXP1+1	/OTHER
	ISZ OP		/UNARY - (OP=1)
	JMS I [GETC
EXP1,	ISZ EXPIND
	TAD CHAR
	TAD [-".
	SNA
	JMP PERIOD	/GET CURRECT LOCATION
	TAD (".-""
	SNA
	JMP I (QUOTE	/GET ASCII VALUE
	TAD (""-"[
	SNA
	JMP I (LITZ	/PAGE 0 LITERAL
	TAD ("[-"(
	SNA CLA
	JMP I (LITS	/SAME PAGE LITERAL
	JMS I [TSTALP
	JMP I (ALPHA1	/ALPHA
	JMS I [TSTNUM
	JMP NUMBER	/NUMERIC
EXP2,	JMS ENDCHK	/CHECK FOR END
	JMP EXP1+1	/NOGO - RETRY
	TAD OP
	TAD [-5		/IS OP SPACE (5)
	SNA CLA
	JMP I (EXPXIT
	DCA CHAR	/MAKE AN ILLEGAL CHARARACTER
	JMP EXP2

ENDCHK,	0
	TAD CHAR
	TAD (-"]
	SZA
	TAD ("]-")
	SZA
	TAD (")-">
	SZA
	TAD (">-"<
	SNA
	JMP ENDCH1
	TAD ("<
	SPA CLA
	JMP ENDCH1
	JMS I [ERROR
	IC
	JMS I [GETC
	JMP I ENDCHK

ENDCH1,	ISZ ENDCHK
	JMP I ENDCHK

NUMBER,	DCA TEMP
NUMBE2,	TAD RADIX
	SNA CLA
	TAD CHAR
	TAD (-"8
	SMA CLA
	JMP NUMBE3
	TAD TEMP
	CLL RAL
	CLL RAL
	DCA TEMP2
	TAD RADIX
	SZA CLA
	TAD TEMP
	TAD TEMP2
	CLL RAL
	TAD CHAR
	TAD [-"0
	DCA TEMP
NUMBE4,	JMS I [GETC
	JMS I [TSTNUM
	JMP NUMBE2
	TAD TEMP
NUMBE1,	DCA VALUE2
	TAD OP
	TAD (OPTABL
	DCA TEMP
	TAD I TEMP
	DCA TEMP
	JMP I TEMP

NUMBE3,	JMS I [ERROR
	IC
	JMP NUMBE4

PERIOD,	JMS I [GETC
	TAD LOC
	JMP NUMBE1

QUOTE1,	JMS I [ERROR
	IC
	CLA CMA
	DCA CHAR
	JMP I (EXPXIT
PAGE

ALPHA1,	JMS I [GETTAG
	CLA CMA
	DCA ALPHAI
	TAD TAG3
	SMA CLA
	JMP .+3
	JMS I [ERROR
	IP
	ISZ ALPHAI
	JMP .+7
	ISZ UNDFSW
	TAD PASS
	SPA CLA
	JMP .+3
	JMS I [ERROR
	US
	TAD TAG2
	SMA CLA
	JMP I (NUMBE1+1
	TAD CHAR
	TAD [-" 
	SZA CLA
	JMP I (NUMBE1+1
	JMS I [SPNOR
	TAD CHAR
	SPA CLA
	JMP I (NUMBE1+1
	TAD EXPIND
	SZA CLA
	JMP I (NUMBE1+1
	DCA IZIND
	TAD VALUE2
	JMS I [PUSHA
ALPHA6,	JMS I [TSTALP
	SKP
	JMP ALPHA4
	JMS I [GETTAG
	CLA CMA
	DCA ALPHAI
	CLL CLA CML RTR
	AND TAG1
	SNA CLA
	JMP ALPHA5
	TAD VALUE2
	SNA
	ISZ IZIND
	TAD IZIND
	DCA IZIND
	JMS I [SPNOR
	JMP ALPHA6

EXPINT,	TAD EXPIND
	TAD [4000
	DCA EXPIND
	JMP ALPHA1+3

ALPHA5,	TAD IZIND
	JMS I [PUSHA
	CLL CLA CML RAR
	JMP ALPHA4+2

ALPHA4,	TAD IZIND
	JMS I [PUSHA
	IAC
	JMS I [EXP
	TAD I PDLXR
	DCA IZIND
	TAD I PDLXR
	DCA VALUE2
	DCA LININD
	TAD IZIND
	AND [77
	SNA CLA
	JMP FIX1
	TAD VALUE
	AND [7600
	SNA CLA
	JMP FIX4
	JMS I [ERROR
	IZ
FIX1,	TAD VALUE
	AND [7600
	SNA
	JMP FIX4
	CIA
	TAD LOC
	AND [7600
	SNA CLA
	JMP FIX2
	TAD VALUE
	JMS I (FINDS
	DCA VALUE
	TAD [0700
	DCA LININD
	TAD [400
FIX2,	TAD [200
	TAD VALUE2
	DCA VALUE2
FIX4,	TAD IZIND
	AND [7700
	SNA CLA
	JMP FIX3
	TAD VALUE2
	AND [400
	SNA CLA
	JMP FIX5
	JMS I [ERROR
	II
	JMP FIX3

FIX5,	TAD [400
	TAD VALUE2
	DCA VALUE2
FIX3,	TAD VALUE
	AND [177
	TAD VALUE2
	DCA VALUE
	JMP I [POPJ

OTYPEO,	0
	JMS I (OTYPE1
	TAD [200
	KRS
	TAD (-217
	SNA CLA
	KSF
OTYPE3,	JMP I OTYPEO
	JMP I (OTYPE2
PAGE

OP0,	TAD VALUE2
	TAD VALUE
	DCA VALUE
EXP3,	TAD CHAR
	TAD [-"+
	SNA
	JMP EXP4+5
	TAD ["+-"-
	SNA
	JMP EXP4+4
	TAD [7		/"--"& = 255-246 = 7
	SNA
	JMP EXP4+3
	TAD ("&-"!
	SNA
	JMP EXP4+2
	TAD ("!-"^
	SNA
	JMP EXP4+1
	TAD ("^-" 
	SNA CLA
	JMP EXP4
	JMS I (ENDCHK
	JMP EXP3
EXPXIT,	TAD UNDFSW
	SNA CLA
	JMP I [POPJ
	CLA CMA
	DCA UNDFSW
	DCA VALUE
	JMP I [POPJ

EXP4,	IAC
	IAC
	IAC
	IAC
	IAC
	DCA OP
	JMS I [GETC
	JMP I (EXP1

OP2,	TAD VALUE
	AND VALUE2
	JMP OP0+2

OP4,	TAD VALUE
	CIA
	DCA TEMP
	TAD VALUE2
	ISZ TEMP
	JMP .-2
	JMP OP0+2
LSTCH9,	SZA
	TAD (-177
	SZA
	TAD (177-13
	SZA
	IAC
	SNA
	JMP I (INPUT+1
	TAD [12-32
	SNA
	JMP I (ENDCHR
	TAD (32-15
	SNA
	JMP LSTCHR
	IAC
	SNA
	JMP FORCHR
	ISZ I (INPUT
LSTCH2,	TAD [14+200
	DCA LSTCH5
	TAD PASS
	SPA SNA CLA
	JMP LSTCH4
	ISZ LSTCH6
	JMP LSTCH3
	CLA CMA
	DCA LSTCH6
LSTCH4,	TAD I (INPUT
	DCA TEMP
	TAD LSTCH5
	JMP I TEMP

LSTCH3,	ISZ LSTCH7
	TAD LSTCH5
	DCA I LSTCH7
	JMP LSTCH4

LSTCH5,	0
LSTCH6,	-40
LSTCH7,	HEADER-1

LSTCHR,	TAD FORMSW
	SNA CLA
	JMP LSTCH1
	DCA FORMSW
	ISZ EDITPG
	DCA THISPG
	TAD PASS
	SMA SZA CLA
	JMS I [FORMFD
LSTCH1,	TAD [215
	DCA LSTCH5
	JMP LSTCH4-2

FORCHR,	ISZ FORMSW
	JMP I (INPUT+1

FORMSW,	1

OTYPE1,	0
	TLS
	TSF
	JMP .-1
	TAD [-215
	SZA CLA
	JMP I OTYPE1
	TAD [212
	JMP OTYPE1+1

OTYPE4,	TAD [215
	JMS OTYPE1
	DCA OTYPE1+1
	DCA OTYPE1+3
	JMP I (OTYPE3
PAGE

OCTPRT,	0
	DCA OCTPR1
	TAD [-4
	DCA OCTPR3
OCTPR2,	TAD OCTPR1
	CLL RTL
	RAL
	DCA OCTPR1
	TAD OCTPR1
	RAL
	AND [7
	TAD ["0
	JMS I OERROR
	ISZ OCTPR3
	JMP OCTPR2
	JMP I OCTPRT

OCTPR1,	0
OCTPR3,	0

SYMPR3,	0

SYMPRT,	0
	ISZ THISPG
	JMS I [FORMFD
DSWIT1,	DCA I (HSWIT1	/0 IF NOT /D
DSWIT3,	JMP SYMPR1	/0 IF /D
	TAD [-200
	DCA SYMPR3
	TAD [200
	JMS I OERROR
	ISZ SYMPR3
	JMP .-3
	TAD [377
	JMS I OERROR
SYMPR1,	TAD [215
	JMS I OERROR
	DCA THISTG
	TAD HIGHTG
	CMA
	DCA TEMP3
	TAD [-5
	DCA SYMPR3
SYMPR4,	JMS I [FINDTG
	TAD TAG1
	SPA CLA
	JMP SYMPR8
	TAD TAG3
	SPA CLA
	JMP SYMPR8
	TAD [1777
	AND TAG1
	JMS I (DIV45
	CLL CLA CMA RAR
	AND TAG2
	JMS I (DIV45
	CLL CLA CMA RAR
	AND TAG3
	JMS I (DIV45
	TAD [" 
	JMS I OERROR
	TAD VALUE2
	JMS OCTPRT
DSWIT2,	JMP SYMPR6	/0 IF NOT /D
	ISZ SYMPR3
	JMP SYMPR7
	TAD [-5
	DCA SYMPR3
SYMPR6,	TAD [215
	JMS I OERROR
	JMP SYMPR8

SYMPR7,	JMS I (ERROR1
	JMS I (ERROR1
SYMPR8,	ISZ THISTG
	ISZ TEMP3
	JMP SYMPR4
DSWIT4,	JMP I SYMPRT	/0 IF /D
	TAD (204
	JMS I OERROR
	TAD [377
	JMS I OERROR
	TAD [-200
	DCA SYMPR3
	TAD [200
	JMS I OERROR
	ISZ SYMPR3
	JMP .-3
	DCA LINCNT
	JMP I SYMPRT
PUNONE,	0
	TAD PASS
	SNA
	JMP PUNON2
	SPA CLA
	JMP PUNON1+2
	TAD LOC
	JMS OCTPRT
	JMS I (ERROR1
	TAD VALUE
	JMS OCTPRT
	TAD I [LINBUF
	SNA CLA
	JMP PUNON1
	TAD LINKSW
	JMS I (ERROR1
	JMS I (LINPRT
	JMP PUNON1+2

PUNON1,	TAD [215
	JMS I OERROR
	DCA LINKSW
	JMP I PUNONE

PUNON2,	TAD VALUE
	CLL
	JMS I [PUNOUT
	JMP PUNON1+2
PAGE

ERROR,	0
	TAD I ERROR
	ISZ ERROR
	JMS ERROR1
	TAD (JMP I [7600
	DCA I (LSWITC
	TAD PASS
	SMA SZA CLA
	JMP ERROR4
	JMS ERROR1
	TAD [1777
	AND LAST1
	SNA
	JMP ERROR3
	JMS I (DIV45
	CLL CLA CMA RAR
	AND LAST2
	JMS I (DIV45
	CLL CLA CMA RAR
	AND LAST3
	JMS I (DIV45
	TAD LAST4
	CIA
ERROR3,	TAD LOC
	SNA
	JMP ERROR4
ERROR7,	DCA ERROR5
	TAD ("+
	JMS I OERROR
	TAD ERROR5
	JMS I (OCTPRT
ERROR4,	TAD [215
	JMS I OERROR
	JMP I ERROR

ERROR1,	0
	DCA ERROR5
	TAD ERROR5
	JMS I [RTL6
	RAL
	JMS ERROR2
	TAD ERROR5
	JMS ERROR2
	JMP I ERROR1

ERROR2,	0
	AND [77
	TAD [" 
	JMS I OERROR
	JMP I ERROR2
ERROR5,
CLEAN,	0
	TAD (LITBUF-1
	DCA XREG1
	TAD (TPINST-1
	DCA XREG2
	TAD [-40
	DCA TEMP
	TAD [200
	DCA I XREG1
	DCA I XREG2
	ISZ TEMP
	JMP .-4
	DCA LAST1
	JMP I CLEAN

DUMPS,	0
	JMS I [FINDSP
	SNA
	JMP I DUMPS
	TAD [LITBUF
	DCA DUMPS1
	TAD LITPTR
	CIA
	TAD I DUMPS1
	SMA
	JMP DUMPS4
	DCA DUMPS2
	TAD LOC
	AND [7600
	TAD I DUMPS1
	JMS I [PUNORG
	TAD I DUMPS1
	TAD [LITBF1
	DCA DUMPS1
DUMPS3,	TAD I [LINBUF
	JMS I [PUSHA
	DCA I [LINBUF
	TAD I DUMPS1
	DCA VALUE
	JMS I [PUNONE
	ISZ LOC
	ISZ DUMPS1
	ISZ DUMPS2
	JMP DUMPS3+3
	TAD I PDLXR
	DCA I [LINBUF
DUMPS4,	CLA
	JMP I DUMPS

DUMPZ,	0
	TAD DUMPZ
	DCA DUMPS
	TAD [200
	CIA
	TAD I [LITBUF
	SMA
	JMP DUMPS4
	DCA DUMPS2
	TAD I [LITBUF
	TAD (LITBF2
	DCA DUMPS1
	TAD I [LITBUF
	JMS I [PUNORG
	JMP DUMPS3

DUMPS1=ERROR
DUMPS2=DUMPZ

OTYPE2,	TAD ("^
	JMS I (OTYPE1
	KRB
	TAD [100
	JMS I (OTYPE1
	JMP I (OTYPE4
PAGE

INSRTG,	0		/INSERT A TAG
	TAD VALUE2
	JMS I [PUSHA
	ISZ HIGHTG	/YES - INSERT THIS TAG
	TAD TAGMAX
	CLL CIA		/GET LIMIT
	TAD HIGHTG
	SZL
	JMP GETTG7	/SYMBOL OVERFLOW
	TAD TAGMAX
	TAD (-1340
	SZL CLA
	JMP GETTG5	/NO
	TAD [7700
	DCA IOMON	/NON-RESIDENT 'USR' ADDRESS
	CLL CLA CMA RAL
	AND I (JSBITS
	DCA I (JSBITS	/SAVE 'USR' CORE ON A CALL
GETTG5,	TAD THISTG
	DCA TEMP2
	TAD HIGHTG
	IAC
	DCA THISTG
GETTG8,	CLL CLA CMA RAL
	TAD THISTG
	DCA THISTG
	JMS I [FINDTG
	ISZ THISTG
	TAD THISTG
	CIA
	TAD TEMP2
	SNA CLA
	JMP GETTG9
	JMS I [PUTTAG
	JMP GETTG8
GETTG9,	TAD I (NAME1
	DCA TAG1
	TAD I (NAME2
	DCA TAG2
	TAD I (NAME3
	DCA TAG3
	TAD I PDLXR
	DCA VALUE2
	JMS I [PUTTAG
	JMP I INSRTG

TAGMAX,	1740		/12K=3740, ...

GETTG7,	CLA
	TAD (SE
	JMP I [MONERR
DIV45,	0
	DCA DIV45B
	DCA DIV45C
	JMP DIV45D

DIV45A,	ISZ DIV45C
	DCA DIV45B
DIV45D,	TAD DIV45B
	TAD (-45
	SMA
	JMP DIV45A
	TAD (45
	JMS DIV45E
	DCA DIV45B
	TAD DIV45C
	JMS DIV45E
	JMS I [RTL6
	TAD DIV45B
	JMS I (ERROR1
	JMP I DIV45

DIV45B,	0
DIV45C,	0

DIV45E,	0
	SNA
	JMP I DIV45E
	TAD (-33
	SMA
	TAD (20-40-33
	TAD (33+40
	JMP I DIV45E
SETFLD,	0
	CLA		/SETFLD CALLED WITH AC RANDOM
	DCA SETFL1	/INITIALIZE FIELD
	TAD THISTG
SETFLP,	ISZ SETFL1
	CLL
	TAD (-1740	/PUT 1740 SYMBOLS IN EACH FIELD
	SZL		/IS THE DIVIDE THROUGH?
	JMP SETFLP	/NO - CONTINUE
	CLL CMA RTL	/AC CONTAINED REM-1740; THIS MAKES IT INTO
	TAD (-1		/7573-4*REM WHICH IS THE ADDRESS WE WANT
	DCA TAGXR	/TO STICK INTO AN AUTO-XR
	TAD SETFL1
	CLL RTL
	RAL
	TAD SETFL2
	DCA SETFL1
SETFL1,	HLT
	JMP I SETFLD

FINDTG,	0
	TAD THISTG
	JMS SETFLD
	TAD I TAGXR
	DCA TAG1
	TAD I TAGXR
	DCA TAG2
	TAD I TAGXR
	DCA TAG3
	TAD I TAGXR
	DCA VALUE2
SETFL2,	CDF
	JMP I FINDTG
PAGE

START2,	ISZ PASS
	NOP
START,	JMS I (IOPEN
	DCA GETCI
	DCA XLISTX
	DCA PUNCHX
	DCA I [LINBUF
	DCA RADIX
	TAD (PDLST
	DCA PDLXR
	DCA EDITPG
	DCA CONDSW
	JMS I [CLEAN
	TAD [200
	DCA LITPTR
	TAD [200
	JMS I [PUNORG
	JMP I (LOOKE1

ENDPAS,	JMS I [DUMPS
	JMS I [DUMPZ
	TAD PASS
	SNA
	JMP ENDPA2
	SPA CLA
	JMP START1
	TAD I [LINBUF
	SNA CLA
	JMP ENDPA1
	TAD [211
	JMS I OERROR
	TAD [211
	JMS I OERROR
	JMS I (LINPRT
ENDPA1,	DCA XLISTX
SSWITC,	JMS I (SYMPRT	/0 IF /S
	TAD I (FORM21
	DCA I (FORM22
	JMS I [FORMFD
	JMS I (OCLOSE
LSWITC,	JMP I [7605	/0 IF /L OR /G
	TAD (7616
	DCA XREG1
	CDF 10
	TAD I [7600
	AND [17
	DCA I XREG1
	TAD BINSRT
	DCA I XREG1
	DCA I XREG1
	CDF
	TAD I (JSBITS
	RAR
	CLL CML RAL
	DCA I (JSBITS
	CIF 10
	JMS I IOMON
	6
CHAIN,	0

BINSRT,	0

ENDPA2,	DCA PUNCHX
	TAD CHKSUM
	DCA TXTPTR
	TAD CHKSUM
	JMS I [RTL6
	RAL
	AND [77
	JMS I OCHAR
	TAD TXTPTR
	AND [77
	JMS I OCHAR
	TAD LEADER
	DCA TXTPTR
	TAD [200
	JMS I OCHAR
	ISZ TXTPTR
	JMP .-3
	JMS I (OCLOSE
	TAD (LISOUT
	DCA OERROR
	ISZ I (OUTPT1
	JMS I (OOPEN
	JMP LSWITC
	TAD PTPSW1
	DCA I (PTPSW
	TAD DIRSW1
	DCA I (DIRSW
NSWITC,	JMP START2	/0 IF /N
	JMP ENDPA1

DIRSW1,	TAD [177
PTPSW1,	TAD [232

START1,	JMS I (OOPEN
	NOP
	TAD I (OUBLK
	DCA BINSRT
	DCA PUNCHX
	TAD LEADER
	DCA TXTPTR
	TAD [200
	JMS I OCHAR
	ISZ TXTPTR
	JMP .-3
	JMP START2

LEADER,	-10

OP1,	TAD VALUE2
	CIA
	JMP I (OP0+1

PUSHA1,	TAD (BE
	JMP I [MONERR
PAGE

LITS,	CLA CMA
LITZ,	DCA LITS1
	JMS I [GETC
	JMS I [SPNOR
	TAD EXPIND
	JMS I [PUSHA
	TAD OP
	JMS I [PUSHA
	TAD VALUE
	JMS I [PUSHA
	TAD LITS1
	JMS I [PUSHA
	JMS I [EXP
	TAD I PDLXR
	DCA LITS1
	TAD VALUE
	ISZ LITS1
	JMP .+3
	JMS FINDS
	SKP
	JMS FIND0
	DCA VALUE2
	TAD LITS1
	CMA
	DCA LITS1
	TAD I PDLXR
	DCA VALUE
	TAD I PDLXR
	DCA OP
	TAD I PDLXR
	DCA EXPIND
	TAD CHAR
	TAD (-")
	ISZ LITS1
	TAD (")-"]
	SNA CLA
	JMS I [GETC
	JMP I (NUMBE1+1

LITS1,	0
FINDS,	0
	DCA FINDS1
	TAD LOC
	AND [7600
	SNA
	JMP FIND01
	DCA FINDS2
	TAD [LITBF1
	DCA FIND0
	TAD LITPTR
FIND02,	DCA FINDS3
	TAD FINDS2
	JMS I [RTL6
	TAD [LITBUF
	DCA TEMP
	TAD FIND0
	TAD I TEMP
	DCA TEMP2
	TAD FINDS3
	CIA
	TAD I TEMP
	SNA
	JMP FINDS6
	DCA FINDS3
FINDS4,	TAD I TEMP2
	CIA
	TAD FINDS1
	SNA CLA
	JMP FINDS5
	ISZ TEMP2
	ISZ FINDS3
	JMP FINDS4
FINDS6,	TAD FINDS2
	JMS I [RTL6
	TAD [TPINST
	DCA FINDS3
	TAD I TEMP
	CIA
	TAD I FINDS3
	SPA CLA
	JMP FINDS7
FIND03,	TAD FINDS2
	SNA CLA
	JMP .+4
	JMS I [ERROR
	PE
	JMP FINDS8
	JMS I [ERROR
	ZE
FINDS8,	CLA CMA
	JMP FINDS9

FINDS7,	CLA CMA
	TAD I TEMP
	AND [7760
	SNA CLA
	JMP FIND03
	CLA CMA
	TAD I TEMP
	DCA I TEMP
FINDS9,	TAD I TEMP
	TAD FIND0
	DCA TEMP2
	TAD FINDS1
	DCA I TEMP2
FINDS5,	TAD FIND0
	CIA
	TAD TEMP2
	TAD FINDS2
	JMP I FINDS

FIND0,	0
	DCA FINDS1
	TAD FIND0
	DCA FINDS
FIND01,	DCA FINDS2
	TAD (LITBF2
	DCA FIND0
	TAD [200
	JMP FIND02

FINDS1,	0
FINDS2,	0
FINDS3,	0

POPJ,	TAD I PDLXR
	DCA TEMP
	JMP I TEMP
PAGE

IF0,	TAD [10
IFN0,	TAD IFSZA
	DCA IFTST1
	JMS I [SPNOR
	JMS I [EXP
IFTST3,	TAD CHAR
	TAD (-"<
	SNA CLA
	JMP IFTST2
	JMS I [ERROR
	IC
	JMS I [GETC
IFTST9,	JMS I [SPNOR
	JMP IFTST3

IFTST2,	JMS I [GETC
	TAD CONDSW
	CIA
	DCA CONDTM
	CLA CMA
	TAD CONDSW
	DCA CONDSW
	TAD VALUE
IFTST1,	HLT
	JMP I (MAIN
IFTST5,	TAD CONDSW
	TAD CONDTM
	SMA CLA
	JMP I (MAIN
	TAD CHAR
	TAD (-"<
	SNA
	JMP IFTST6
	TAD ("<-">
IFSZA,	SZA CLA
	JMP IFTST4
	CLL CLA CMA RAL
IFTST6,	CMA
	TAD CONDSW
	DCA CONDSW
IFTST4,	JMS I [GETC
	JMP IFTST5

IFD,	TAD [10
IFND,	TAD IFSZA
	DCA IFTST1
	JMS I [SPNOR
IFTST7,	JMS I [TSTALP
	JMP IFTST8
	JMS I [ERROR
	IC
	TAD CHAR
	TAD (-"<
	SNA CLA
	JMP IFTST2
	JMS I [GETC
	JMP IFTST7

IFTST8,	JMS I [GETTAG
	CLA CMA
	DCA VALUE
	TAD TAG3
	SMA CLA
	JMP IFTST9
	JMS I [ERROR
	IP
	JMP IFTST9
CONDTM,
PUTTAG,	0
	TAD THISTG
	JMS I (SETFLD
	TAD TAG1
	DCA I TAGXR
	TAD TAG2
	DCA I TAGXR
	TAD TAG3
	DCA I TAGXR
	TAD VALUE2
	DCA I TAGXR
	CDF
	JMP I PUTTAG
PUSHA,	0
	DCA TEMP
	CLA CMA
	TAD PDLXR
	DCA PDLXR
	TAD PDLXR
	TAD (-PDLND
	SPA CLA
	JMP I (PUSHA1
	TAD TEMP
	DCA I PDLXR
	CLA CMA
	TAD PDLXR
	DCA PDLXR
	JMP I PUSHA
/TEST NUMERIC ROUTINE
/CALL WITH CHARACTER TO TEST IN "CHAR"
/SKIPS IF THE CHARACTER IS NOT NUMERIC

TSTNUM,	0
	TAD CHAR	/GET THE CHARACTER
	TAD [-"0
	SPA		/SKIPS IF >= 0
	JMP TSTNU1	/NOT A NUMBER
	TAD ("0-"9
	SMA SZA CLA	/SKIPS IF <=9
TSTNU1,	ISZ TSTNUM	/2ND EXIT - NOT A NUMBER
	CLA
	JMP I TSTNUM	/EXIT

/TEST ALPHANUMERIC ROUTINE
/CALL WITH CHARACTER IN "CHAR"
/SKIPS IF CHARACTER IS NOT ALPHANUMERIC

TSTALN,	0
	JMS I [TSTNUM	/IS IT NUMERIC
	JMP I TSTALN	/YES
	JMS I [TSTALP	/IS IT ALPHEBETIC
	JMP I TSTALN	/YES
	ISZ TSTALN	/NEITHER
	JMP I TSTALN

/TEST ALPHEBETIC ROUTINE
/CALL WITH CHARACTER IN "CHAR"
/SKIPS IF NOT ALPHEBETIC

TSTALP,	0
	TAD CHAR
	TAD (-"A
	SPA		/SKIP IF =>A
	JMP TSTAL1	/<A
	TAD ("A-"Z
	SMA SZA CLA	/SKIP IF <=Z
TSTAL1,	ISZ TSTALP	/NO GOOD - 2ND EXIT
	CLA
	JMP I TSTALP
PAGE

INPUT,	0
	ISZ INCHCT
	JMP I CHARLV
	TAD INEOF
	SZA CLA
	JMP ENDCHR
INGBUF,	TAD INCTLA
	AND [7600
	JMS I [RTL6
	TAD INCTR
	SNL
	DCA INCTR
	SZL
	ISZ INEOF
	CLL CML CMA RTR
	RTR
	RTR
	TAD INCTLA
	DCA INCTLW
	JMS I INHNDL
INCTLW,	0
INBUFP,	INBUF
INREC,	0
	JMP INERRX
INBREC,	TAD INCTLA
	AND [7600
	JMS I [RTL6
	TAD INREC
	DCA INREC
	TAD INCTLW
	AND [7600
	CLL RAL
	TAD INCTLW
	AND [7600
	CIA
	DCA INCHCT
	TAD INBUFP
	DCA INPTR
ICHAR1,	TAD I INPTR
	JMS CHARLV
ICHAR2,	TAD I INPTR
	ISZ INPTR
	AND [7400
	DCA INCTLW
	TAD I INPTR
	JMS CHARLV
ICHAR3,	TAD I INPTR
	ISZ INPTR
	AND [7400
	CLL RTR
	RTR
	TAD INCTLW
	RTR
	RTR
	JMS CHARLV
	JMP ICHAR1

INERRX,	ISZ INEOF
	SMA CLA
	JMP INBREC
SYSERR,	TAD (DE
	JMP I [MONERR

INCHCT,	-1
INEOF,	1
INPTR,	0
INCTR,	0
INCTLA,	0
INFPTR,	7617

ENDCHR,	TAD PASS
	SPA SNA CLA
	JMP NXTFLE
	TAD [-40
	DCA INCTR
	TAD [HEADER-1
	DCA INEOF
	TAD [211
	ISZ INEOF
	DCA I INEOF
	ISZ INCTR
	JMP .-4
	TAD [-40
	DCA I (LSTCH6
	TAD [HEADER-1
	DCA I (LSTCH7
	DCA LSTCNT
NXTFLE,	TAD (INDEVH+1
	DCA INHNDL
	CDF 10
	TAD I INFPTR
	CDF
	SNA
	JMP I (PHASE
NEWFLE,	CIF 10
	JMS I IOMON
	1
INHNDL,	0
	HLT
	TAD INHNDL
	AND [7600
	TAD (-INDEVH
	SZA CLA
	TAD [200
	TAD INCTL
	DCA INCTLA
	CDF 10
	TAD I INFPTR
	AND [7760
	SZA
	TAD [17
	CLL CML RTR
	RTR
	DCA INCTR
	ISZ INFPTR
	TAD I INFPTR
	DCA INREC
	ISZ INFPTR
	DCA INEOF
	CDF
	JMP INGBUF

CHARLV,	0
	AND [177
	JMP I (LSTCH9
PAGE

OOPEN,	0
	TAD (OUDEVH+1
	DCA OUHNDL
	TAD (OUFILE
	DCA OUBLK
	TAD [-5
	DCA OUELEN
	CDF 10
	TAD I OUFPTR
	CDF
	DCA I OUBLK
	ISZ OUBLK
	ISZ OUFPTR
	ISZ OUELEN
	JMP .-7
	TAD (OUFILE
	IAC
	DCA OUBLK
	TAD OUBLK
	DCA OUCNAM
	CIF 10
	JMS I IOMON
	13
	TAD I (OUFILE
	AND [17
	SNA
	JMP ONOFIL
	CIF 10
	JMS I IOMON
	1
OUHNDL,	0
	HLT
OUENTR,	TAD I (OUFILE
	CIF 10
	JMS I IOMON
	3
OUBLK,	0
OUELEN,	0
	JMP OEFAIL
	DCA OUCCNT
	DCA I (OUTINH
	JMS OUSETP
	TAD OUHNDL
	CLL
	TAD [200
	JMS I (OUFIGR
	DCA INCTL
	ISZ OOPEN
	JMP I OOPEN

OEFAIL,	TAD I (OUFILE
	AND [7760
	SNA CLA
	JMP I (SYSERR
	TAD I (OUFILE
	AND [17
	DCA I (OUFILE
	JMP OUENTR

ONOFIL,	ISZ I (OUTINH
	JMP I OOPEN

OCLOSE,	0
	TAD I (OUTINH
	SZA CLA
	JMP I OCLOSE
PTPSW,	TAD [232	/0 IF PTP:
	JMS I OCHAR
	JMS I OCHAR
FILLLP,	JMS I OCHAR
DIRSW,	TAD [177	/TAD [77 IF NOT DIRECTORY
	AND I (OUDWCT
	SZA CLA
	JMP FILLLP
	TAD I (OUDWCT
	TAD [200
	SZA
	JMS OUTDMP
NODUMP,	TAD I (OUFILE
	CIF 10
	JMS I IOMON
	4
OUCNAM,	0
OUCCNT,	0
	JMP I (SYSERR
	JMP I OCLOSE

OUTDMP,	0
	TAD [4000
	DCA OUCTLW
	TAD OUBLK
	TAD OUCCNT
	DCA OUREC
	TAD OUCTLW
	CLL RTL
	RTL
	RTL
	AND [17
	TAD OUCCNT
	DCA OUCCNT
	TAD OUCCNT
	CLL CML
	TAD OUELEN
	SNL SZA CLA
	JMP I (SYSER2
	JMS I OUHNDL
OUCTLW,	0
	OUBUF
OUREC,	0
	JMP I (SYSERR
	JMP I OUTDMP

OUFPTR,	7600

OUSETP,	0
	TAD [7600
	DCA I (OUDWCT
	TAD (OUBUF
	DCA I (OUPTR
	TAD I (OUJMPE
	DCA I (OUJMP
	JMP I OUSETP
PAGE

INBUF=.

OUBUF=.

OUDEVH=.+400

INDEVH=7200
SYMS,	5777
	3777
	5777
	0000

	"Z-300^45+"B-300+4000	/ZBLOCK
	"L-300^45+"O-300
	"C-300^45+"K-300+4000
	ZBLOCX

	"Z-300^45+4000+2000	/Z
	0
	0
	0000

	"X-300^45+"L-300+4000	/XLIST
	"I-300^45+"S-300
	"T-300^45+4000
	XLISTY

	"T-300^45+"S-300+4000	/TSF
	"F-300^45
	0
	TSF

	"T-300^45+"P-300+4000	/TPC
	"C-300^45
	0
	TPC

	"T-300^45+"L-300+4000	/TLS
	"S-300^45
	0
	TLS

	"T-300^45+"E-300+4000	/TEXT
	"X-300^45+"T-300
	4000
	TEXTX

	"T-300^45+"C-300+4000	/TCF
	"F-300^45
	0
	TCF

	"T-300^45+"A-300+4000	/TAD
	"D-300^45+4000
	0
	TAD 0

	"S-300^45+"Z-300+4000	/SZL
	"L-300^45
	0
	SZL

	"S-300^45+"Z-300+4000	/SZA
	"A-300^45
	0
	SZA

	"S-300^45+"T-300+4000	/STL
	"L-300^45
	0
	STL

	"S-300^45+"T-300+4000	/STA
	"A-300^45
	0
	STA

	"S-300^45+"P-300+4000	/SPA
	"A-300^45
	0
	SPA

	"S-300^45+"N-300+4000	/SNL
	"L-300^45
	0
	SNL

	"S-300^45+"N-300+4000	/SNA
	"A-300^45
	0
	SNA

	"S-300^45+"M-300+4000	/SMA
	"A-300^45
	0
	SMA

	"S-300^45+"K-300+4000	/SKP
	"P-300^45
	0
	SKP

	"R-300^45+"T-300+4000	/RTR
	"R-300^45
	0
	RTR

	"R-300^45+"T-300+4000	/RTL
	"L-300^45
	0
	RTL

	"R-300^45+"S-300+4000	/RSF
	"F-300^45
	0
	RSF

	"R-300^45+"R-300+4000	/RRB
	"B-300^45
	0
	RRB

	"R-300^45+"M-300+4000	/RMF
	"F-300^45
	0
	RMF

	"R-300^45+"I-300+4000	/RIF
	"F-300^45
	0
	RIF

	"R-300^45+"I-300+4000	/RIB
	"B-300^45
	0
	RIB

	"R-300^45+"F-300+4000	/RFC
	"C-300^45
	0
	RFC

	"R-300^45+"D-300+4000	/RDF
	"F-300^45
	0
	RDF
	"R-300^45+"A-300+4000	/RAR
	"R-300^45
	0
	RAR

	"R-300^45+"A-300+4000	/RAL
	"L-300^45
	0
	RAL

	"P-300^45+"S-300+4000	/PSF
	"F-300^45
	0
	PSF

	"P-300^45+"P-300+4000	/PPC
	"C-300^45
	0
	PPC

	"P-300^45+"L-300+4000	/PLS
	"S-300^45
	0
	PLS

	"P-300^45+"C-300+4000	/PCF
	"F-300^45
	0
	PCF

	"P-300^45+"A-300+4000	/PAUSE
	"U-300^45+"S-300
	"E-300^45+4000
	PAUSEX

	"P-300^45+"A-300+4000	/PAGE
	"G-300^45+"E-300
	4000
	PAGEX

	"O-300^45+"S-300+4000	/OSR
	"R-300^45
	0
	OSR

	"O-300^45+"P-300+4000	/OPR
	"R-300^45
	0
	OPR

	"O-300^45+"C-300+4000	/OCTAL
	"T-300^45+"A-300
	"L-300^45+4000
	OCTALX

	"N-300^45+"O-300+4000	/NOPUNCH
	"P-300^45+"U-300
	"N-300^45+"C-300+4000
	NOPUNX

	"N-300^45+"O-300+4000	/NOP
	"P-300^45
	0
	NOP

	"L-300^45+"A-300+4000	/LAS
	"S-300^45
	0
	LAS

	"K-300^45+"S-300+4000	/KSF
	"F-300^45
	0
	KSF
	"K-300^45+"R-300+4000	/KRS
	"S-300^45
	0
	KRS

	"K-300^45+"R-300+4000	/KRB
	"B-300^45
	0
	KRB

	"K-300^45+"C-300+4000	/KCC
	"C-300^45
	0
	KCC

	"J-300^45+"M-300+4000	/JMS
	"S-300^45+4000
	0
	JMS 0

	"J-300^45+"M-300+4000	/JMP
	"P-300^45+4000
	0
	JMP 0

	"I-300^45+"S-300+4000	/ISZ
	"Z-300^45+4000
	0
	ISZ 0

	"I-300^45+"O-300+4000	/IOT
	"T-300^45
	0
	IOT

	"I-300^45+"O-300+4000	/ION
	"N-300^45
	0
	ION

	"I-300^45+"O-300+4000	/IOF
	"F-300^45
	0
	IOF

	"I-300^45+"F-300+4000	/IFZERO
	"Z-300^45+"E-300
	"R-300^45+"O-300+4000
	IF0

	"I-300^45+"F-300+4000	/IFNZRO
	"N-300^45+"Z-300
	"R-300^45+"O-300+4000
	IFN0

	"I-300^45+"F-300+4000	/IFNDEF
	"N-300^45+"D-300
	"E-300^45+"F-300+4000
	IFND

	"I-300^45+"F-300+4000	/IFDEF
	"D-300^45+"E-300
	"F-300^45+4000
	IFD

	"I-300^45+"A-300+4000	/IAC
	"C-300^45
	0
	IAC

	"I-300^45+4000+2000	/I
	0
	0
	0400
	"H-300^45+"L-300+4000	/HLT
	"T-300^45
	0
	HLT

	"G-300^45+"L-300+4000	/GLK
	"K-300^45
	0
	GLK

	"F-300^45+"I-300+4000	/FIXTAB
	"X-300^45+"T-300
	"A-300^45+"B-300+4000
	FIXTBX

	"F-300^45+"I-300+4000	/FIXMRI
	"X-300^45+"M-300
	"R-300^45+"I-300+4000
	FIXMRX

	"F-300^45+"I-300+4000	/FILENAME
	"L-300^45+"E-300
	"N-300^45+"A-300+4000
	FILENX

	"F-300^45+"I-300+4000	/FIELD
	"E-300^45+"L-300
	"D-300^45+4000
	FIELDX

	"E-300^45+"X-300+4000	/EXPUNGE
	"P-300^45+"U-300
	"N-300^45+"G-300+4000
	EXPUNX

	"E-300^45+"N-300+4000	/ENPUNCH
	"P-300^45+"U-300
	"N-300^45+"C-300+4000
	ENPUNX

	"E-300^45+"J-300+4000	/EJECT
	"E-300^45+"C-300
	"T-300^45+4000
	EJECTX

	"D-300^45+"T-300+4000	/DTXA
	"X-300^45+"A-300
	0
	DTXA

	"D-300^45+"T-300+4000	/DTSF
	"S-300^45+"F-300
	0
	DTSF

	"D-300^45+"T-300+4000	/DTRB
	"R-300^45+"B-300
	0
	DTRB

	"D-300^45+"T-300+4000	/DTRA
	"R-300^45+"A-300
	0
	DTRA

	"D-300^45+"T-300+4000	/DTLB
	"L-300^45+"B-300
	0
	DTLB

	"D-300^45+"T-300+4000	/DTCA
	"C-300^45+"A-300
	0
	DTCA

	"D-300^45+"S-300+4000	/DSAC
	"A-300^45+"C-300
	0
	DSAC

	"D-300^45+"M-300+4000	/DMAW
	"A-300^45+"W-300
	0
	DMAW

	"D-300^45+"M-300+4000	/DMAR
	"A-300^45+"R-300
	0
	DMAR
	"D-300^45+"M-300+4000	/DMAC
	"A-300^45+"C-300
	0
	DMAC

	"D-300^45+"F-300+4000	/DFSE
	"S-300^45+"E-300
	0
	DFSE

	"D-300^45+"F-300+4000	/DFSC
	"S-300^45+"C-300
	0
	DFSC

	"D-300^45+"E-300+4000	/DEVICE
	"V-300^45+"I-300
	"C-300^45+"E-300+4000
	DEVICX

	"D-300^45+"E-300+4000	/DECIMAL
	"C-300^45+"I-300
	"M-300^45+"A-300+4000
	DECIMX

	"D-300^45+"E-300+4000	/DEAL
	"A-300^45+"L-300
	0
	DEAL

	"D-300^45+"E-300+4000	/DEAC
	"A-300^45+"C-300
	0
	DEAC

	"D-300^45+"C-300+4000	/DCMA
	"M-300^45+"A-300
	0
	DCMA

	"D-300^45+"C-300+4000	/DCEA
	"E-300^45+"A-300
	0
	DCEA

	"D-300^45+"C-300+4000	/DCA
	"A-300^45+4000
	0
	DCA 0

	"C-300^45+"M-300+4000	/CML
	"L-300^45
	0
	CML

	"C-300^45+"M-300+4000	/CMA
	"A-300^45
	0
	CMA

	"C-300^45+"L-300+4000	/CLL
	"L-300^45
	0
	CLL

	"C-300^45+"L-300+4000	/CLA
	"A-300^45
	0
	CLA

	"C-300^45+"I-300+4000	/CIF
	"F-300^45
	0
	CIF

	"C-300^45+"I-300+4000	/CIA
	"A-300^45
	0
	CIA

	"C-300^45+"D-300+4000	/CDF
	"F-300^45
	0
	CDF

	"A-300^45+"N-300+4000	/AND
	"D-300^45+4000
	0
	AND 0

	4001
	0000
	4000
	0000

SYME=.
$-$-$











