/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) 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 /