*20 PMODE / / / / / / / / / / / / / / BEGINNING OF ASSEMTWO. / / / / / / / / / / / / / / / / / / EJECT / / / / / /PDP-12 ASSEMBLER PAGE 6 / *1400 / MAIN, JMP PASS1 /SWITCH PASS1, TAD PERMA DCA SEND DCA PASS DCA MODE JMS SETORG TAD CJMP1+1 PASS1P, DCA MAIN JMS I OCTS1 /SET TADIX TO OCTAL MAINSE, JMS I LINENO CLA CMA /RESET THE COMMA SWITCH. DCA I PTOCMC JMS I CNTLPI JMS I CLENUP MAINSF, JMS I IDX1 TAD M60 DCA SPCUNT TAD LIST1 DCA POINT DCA ANY DCA IND JMP I PSINTER DOCAL, JMS I EXPR1 TAD ANY SNA CLA JMP MAINSA /NOTHING TO BE ASSEMBLED TAD EVAL JMS ONEREG TACK, JMS I EMPTY1 JMP MAINSE ONEREG, 0 DCA EVAL JMS I PUNON1 ISZ AADR TAD MODE SMA CLA JMP LNKREG TAD AADR AND P177 SZA CLA JMP I ONEREG JMS I PAGE1 /END OF PAGE LNKREG, JMP I ONEREG CLENUP, CLEARR /SYMBOLIC ASSEMBLY SAVE ROUTINE LSTSYM, 0 TAD LISTWD SPA CLA JMP I LSTSYM TAD ITEM TAD M43 SNA CLA JMP I LSTSYM TAD ITEM ISZ SWOT JMP DOLEFT TAD I SYMBU DCA I SYMBU ISZ SYMBU LSRTE, ISZ CHARAC JMP I LSTSYM DOLEFT, CLL RTL RTL RTL DCA I SYMBU CMA DCA SWOT JMP LSRTE SYMBU, SYMBUF MAINSA, TAD PASS SNA CLA JMP MAINSE TAD LISTWD SPA CLA JMP MAINSE TAD ERRCNT SZA CLA JMP TACK JMS I PASSEK JMS I CURSKA JMP MAINSE SETORG, 0 TAD P4000 DCA AADR TAD P4000 DCA APAGE TAD P4000 DCA EVAL TAD P4000 DCA ABANK DCA ERTOT DCA FLDWD DCA ERRCNT JMP I SETORG OCTS1, OCTS PUNONE+1 PASS2, CLA CMA DCA PASS TAD M1000 DCA I OCTS1+1 JMS SETORG JMS I INIT1 TAD CJMP1 JMP PASS1P CJMP1, JMP PASS1 JMP PASS2 RESET, 0 TAD AADR AND P7600 DCA APAGE JMP I RESET SWOT, 0 LIST1, LISTA LNINST, 0 TAD INST SMA CLA JMP .+7 TAD VAL AND P6000 SNA CLA JMP .+3 CMA DCA MICROL TAD VALK DCA VAL JMP I LNINST PSINTER,DOCAL M60, -62 PTOCMC, COMMAN / / / EJECT /PDP-12 ASSEMBLER PAGE 7 *1600 RIOR, 0 DCA VAL TAD CON CMA AND VAL TAD CON DCA CON JMP I RIOR / / STRING, JMS I GENINI CIA DCA VAL JMS STGET JMP STNODUMP JMP STINTO STLOOP, JMS STGET JMP STDUMP TAD EVAL JMS I ONEREI JMS I PASSEK JMS I TYCARI STINTO, TAD ITEM AND P77 CLL RTL RTL RTL DCA EVAL JMS STGET JMP STDUMP TAD ITEM AND P77 TAD EVAL DCA EVAL JMP STLOOP / STGET, 0 JMS I GENINI TAD VAL SZA CLA ISZ STGET TAD M43 TAD ITEM SZA CLA JMP STNOT JMS I PASSEK JMS I CURSKA JMS I SCLEAR TAD I SPTO60 DCA SPCUNT JMS I LINENO JMP I STGET STNOT, TAD ITEM /GET THE CHAR. ASMIFZ TERMC-44 /DO WE WANT A DOLLAR SIGN AT THE END. TAD STM44 /YEP. ADD IT IN. SZA CLA JMP I STGET JMS I SQERR JMS I SQERR JMP I MON / STDUMP, TAD EVAL JMS I ONEREI JMS I PASSEK JMS I TYCARI STNODUMP,TAD ITEM TAD M43 SNA CLA JMP I SQFDRT JMS I GENINI JMP STNODUMP+1 / / / ASMIFZ TERMC-44 /DO WE WANT THE LITTERAL IN??? STM44, -44 /YEP. ASSEMBLE IT IN. SQFDRT, FDRT SQERR, ERROR GENINI, GETIN ONEREI, ONEREG SPTO60, M60 / JBTEST, 0 JBMSTR, ISZ CURLIN /THIS IS MADE A NOP FOR THE SEMI-COLON FUDGE CLA CLL CLA CMA DCA LISTWD TAD JBSMF /RESET THE FUDGE SWITCH DCA JBMSTR /BY REPLACING THE ISZ TAD CURLIN 7421 /THIS CODE DISPLAYS THE LINE NUMBER BEING 7501 /ASSEMBLED IN THE MQ. CLL CML CMA IAC TAD JSTART SNL SZA CLA JMP I JBTEST TAD JEND CLL CML CMA IAC TAD CURLIN SZL SNA CLA JNOP, DCA LISTWD JMP I JBTEST / / JBSMF, ISZ CURLIN JSTART, 0 JEND, 7777 M1A, -1 / / / / / / / / SAVE, 0 TAD SCURR DCA RESTOR-2 TAD TYPEA DCA RESTOR-3 TAD TYPE DCA RESTOR-1 JMP I SAVE 0 0 0 RESTOR, 0 TAD RESTOR-2 JMS I SDECO1 TAD RESTOR-3 DCA TYPEA TAD RESTOR-1 DCA TYPE JMP I RESTOR / / / / EJECT /PDP-12 ASSEMBLER PAGE 8 *2000 ENTS, 0 TAD SEND JMS I SDECO1 6211 TAD VAL DCA I VADR TAD TEM1 DCA I SADR ISZ SADR TAD TEM2 DCA I SADR ISZ SADR TAD TEM3 DCA I SADR 6201 /RESET TO FIELD 0. MTWO /BACK UP SADR TO FIRST WORD OF NAME TAD SADR SNA /IS IT ZERO? JMP I SADROV /YES. TO MANY SYMBOLS. ABORT WITH ERROR DCA SADR /OK. RESTORE SADR NOW. TAD I ENTS DCA .+2 JMS I TYPAD1 0 ISZ ENTS ISZ SEND JMP I ENTS / SADROV, STEXD /POINTER TO TOO MANY SYMBOLS ERROR. M57, -57 GETS, GETIN COMS, COMMEN / IDX, 0 JMS I GETS TAD M57 SNA CLA JMP I COMS TAD ITEM ASMIFZ TERMC-44 /IS END OF FILE CHAR A 44?? TAD M44 /YEP. ASSEMBLE IT IN NOW. SNA CLA JMP I FINEND BIT, JMS I BIT6A DCA CHARX TAD CHARX DCA CHARX2 JMP I IDX EMPTY, 0 TAD LISTWD /GET THE LISTING WORD CMA /NEGATE IT. AND PASS /AND WITH THE PASS. SNA CLA /LISTING AND PASS2? JMP I EMPTY /NOPE. DONT PRINT ANYTHING TAD CHARAC SNA JMP EMLEVE CIA DCA CHARAC DCA TBCONT TAD SY DCA EMPTRA SKP TWOCHR, ISZ EMPTRA TAD I EMPTRA RTR RTR RTR AND P77 DCA TEMP CMA DCA SWITCH TAD TEMP TAD M47 SNA CLA NOTAB1, JMP OUTTAB JMS OUTTP DRHT, ISZ CHARAC JMP .+2 JMP EMLEVE JMS I LNCKA TAD I EMPTRA AND P77 DCA TEMP DCA SWITCH TAD TEMP TAD M47 SNA CLA NOTAB2, JMP OUTTAB /REPLACED BY A TAD M7 JMS OUTTP DLFT, ISZ CHARAC JMP TWOCH EMLEVE, JMS I TYCARI JMP I EMPTY CLEARR, 0 DCA CHARAC DCA I SWOTA TAD ERRCNT TAD ERTOT DCA ERTOT DCA ERRCNT TAD SY DCA I SYB JMP I CLEARR TWOCH, JMS I LNCKA JMP TWOCHR LNCKA, LNCK OUTTP, 0 TAD TEMP JMS I ONVRT JMS I DECOUT ISZ TBCONT JMP I OUTTP ONVRT, CONVRT OUTTAB, TAD TBCONT TAD M10 SMA JMP .-2 JMS I KLUG2 JMS I SKIP DCA TBCONT ISZ SWITCH JMP DLFT JMP DRHT KLUG2, SPACK M10, -10 SWOTA, SWOT FINEND, ENDMS M7TWO, -7 EJECT /PDP-12 ASSEMBLER PAGE 9 *2200 DPCV, 0 ISZ ANY DCA HIC /CLEAR HIGH AND LOW PARTS DCA LWC TAD CHARX2 / GET THE NEXT CHARACTER TAD M67 SNA JMP DPCS TAD DPCVM2 SNA CLA DPCS, JMS I IDX1 /INDEX CHARACTER POINTER TAD CHARX2 TAD M45 SMA JMP I DPCV TAD P12 /IF LESS OR EQUAL TO 9 CHECK FOR GR SPA /EQ. ZERO JMP I DPCV /LESS THAN ZERO, EXIT NOT DIGIT DCA MTDG JMS MT10 JMP DPCS DECIM, JMS DECIMS JMP I B21 OCT, JMS OCTS JMP I B21 DECIMS, 0 TAD MTSW+4 DCA MTSW JMP I DECIMS OCTS, 0 TAD M1000 DCA MTSW JMP I OCTS P12, 12 DPCVM2, -2 /MULTIPLY LWC BY 10. MT10, 0 TAD LWC AND P777 DCA TIC JMS MTRL JMS MTRL MTSW, JMS MTAD /NOP FOR OCTAL, JMS MTAD FOR DECIMAL JMS MTRL TAD MTDG DCA TIC JMS MTAD JMP I MT10 /ROTATE LWC LEFT 1 MTRL, 0 CLL CLA TAD LWC RAL DCA LWC JMP I MTRL /ADD LWC TO TIC MTAD, 0 CLL CLA TAD LWC TAD TIC DCA LWC JMP I MTAD /SOME DATA STORAGE MTDG, 0 TIC, 0 ERR2, 0 TAD TYPE TAD P6000 SNA CLA JMP I ERR2 TAD TYPEA CLL RTL AND P6000 6211 TAD I VADR 6201 CIA TAD AADR SNA CLA JMP I ERR2 CLA CLL CML RTL JMS I ERR1 JMP I ERR2 UNDERR, 0 ISZ PASS JMP EQCHK DCA TEMP CMA DCA PASS TAD TEMP JMS I ERR1 CLA CMA DCA PASS JMP I UNDERR EQCHK, TAD M4 SNA CLA JMS I EQCHKI CLA CMA DCA EQRETI JMP EQCHK-2 EQCHKI, EQUCHK PUSH2, 0 DCA ERR2 TAD P5000 TAD POINT SMA CLA JMP ERR12 TAD ERR2 DCA I POINT ISZ POINT JMP I PUSH2 CNTRLP, 0 KSF JMP I CNTRLP KRB TAD M215 SNA CLA JMP I CNTMON /RETURN TO KILL BUFFER MONITOR RESTART JMP I CNTRLP / CNTMON, KILBUF / ERR12, TAD P11 JMS I ERR1 JMP I MON ANYY, 0 TAD TYPE TAD P6000 SNA ISZ ANY TAD P6000 SNA CLA ISZ ANY JMP I ANYY EJECT /PDP-12 ASSEMBLER PAGE 10 *2400 ALPHA, 0 JMS I TYCARI SYMBLP, DCA FOUND TAD PERMA DCA SCURR CLA CMA CLL RAR DCA TEM1A CLA CLL CMA RAR DCA TEM1A+1 CLA CMA CLL RAR DCA TEM1A+2 NXCAND, TAD SCURR CIA TAD SEND SNA CLA JMP PRSYMB TAD SCURR JMS I SDECO1 6211 TAD I SADR CLL RAL CML SZL SPA JMP REJECT RAR CMA CML TAD TEM1A CMA SZA CLA JMP JUDGE ISZ SADR CLA CLL CMA RAR AND I SADR CMA TAD TEM1A+1 CMA SZA CLA JMP JUDGE ISZ SADR CLA CLL CMA RAR AND I SADR CMA CLL CML TAD TEM1A+2 JUDGE, SZL CLA JMP REJECT CDF 0 TAD SCURR JMS I SDECO1 TAD SADR JMS I MOVE1 TEM1A 6211 6211 TAD I 16 DCA VAL TAD SADR DCA FOUND REJECT, CLA CDF 0 ISZ SCURR JMP NXCAND / PRSYMB, TAD FOUND SNA JMP I ALPHA DCA SADR CLA CMA 6211 DCA I FOUND CDF 0 JMS I POSANDV JMP SYMBLP / / / POSANDV,OSANDV FOUND, 0 / / / / TYCAR, 0 TAD P215 JMS I DECOUT TAD P212 JMS I DECOUT JMS I CHEKER JMS I CNTLPI /TEST FOR CARRAGE RETURN JMP I TYCAR CURSKP, 0 TAD CURLIN JMS I SOPS TAD M22 JMS I SKIP JMS I EMPTY1 JMP I CURSKP TYPO, 0 TSF JMP .-1 TLS CLA JMP I TYPO M22, -22 TEMPA=TYCAR / / / / / / / XCHAIN, JMS I OXWRIT XPSEU JMS I OXREAD XINIT JMS I XPP JMS I OXREAD XPSEU JMP I MAIN1 / / / / OXREAD, 7774 OXWRIT, 7775 XPP, XXXX XINIT, DIALUNIT 12 BCHAIN 1 / / XPSEU, DIALUNIT 12 SCRATCH 1 / / / / / / / / / / / SEMITX, 0 TAD XM13 SNA JMP .+3 TAD XP46 JMP I SEMITX TAD SEMFDG /REPLACE LINE BOPPER BY A NOP DCA I SEMPTF TAD XP46 JMP I SEMITX / / / SEMFDG, NOP SEMPTF, JBMSTR /POINTER TO THE ISZ. XM13, -13 XP46, 46 / / / / / / EJECT /PDP-12 ASSEMBLER PAGE 11 /OUTPUT A SYMBOL AND ITS VALUE *2600 OSANDV, 0 JMS OSYM /OUTPUT SYMBOL TAD TBCONT TAD M7 JMS I SKIP /OUTPUT TAB JMS I LINK8 TAD VAL JMS OPS /OUTPUT NUMBER JMS I TYCARI JMS I CNTLPI JMP I OSANDV OSYM, 0 DCA TBCONT TAD TEM1A JMS OX TAD TEM1A+1 JMS OX TAD TEM1A+2 JMS OX JMP I OSYM LINK8, LINK8A OX, 0 DCA LWC DCA HIC TAD LWC SNA JMP I OSYM TAD M45 SPA JMP DV3 ISZ HIC JMP .-4 DV3, TAD P45 DCA LWC TAD HIC JMS UNTRAN TAD LWC JMS UNTRAN JMP I OX UNTRAN, 0 SNA JMP I OSYM TAD M33 SPA TAD P53 TAD P260 JMS I DECOUT ISZ TBCONT JMP I UNTRAN /OCTAL PRINT SUBROUTINE OPS, 0 DCA OSYM TAD M4 DCA TBCONT TAD OSYM RTL RAL DCA OSYM TAD OSYM RAL AND P7 TAD P260 JMS I DECOUT ISZ TBCONT JMP OPS+4 JMP I OPS P45, 45 M7, -7 P53, 53 P260, 260 FLDUP, JMS I EXPR1 TAD MODE SMA CLA JMP FDRT TAD ANY SZA CLA JMP FIELDM FDRT, JMS I PASSEK JMS I CURSKA JMP I MAIN1 FIELDM, TAD EVAL SPA CLA JMP FDRT MTWO TAD EVAL SMA CLA JMP FDRT TAD EVAL DCA FLDWD JMP FDRT LISTA=. EJECT /PDP-12 ASSEMBLER PAGE 12 *3000 OPS PUNONE, 0 JMP I PUNONE /NOP FOR PASS 2 TAD AADR AND P7400 CLL RTL RTL RAL TAD BINTAB DCA BINPTR TAD FLDWD SNA CLA JMP BINCK TAD BINPTR TAD P20 DCA BINPTR BINCK, TAD BINPTR CIA TAD BINBLK SZA CLA JMS I NOTBL1 JMS I SETINU /SET BITS NOWWIN HEADER BLOCK TAD AADR AND P377 TAD P5000 DCA LOWTMP TAD EVAL DCA I LOWTMP TAD LISTWD SPA CLA JMP I PUNONE TAD ERRCNT SZA CLA JMP NONER ABNOP1, TAD CURLIN ABNOP2, JMS I PUNONE-1 ABNOP3, TAD M6 ABNOP4, JMS I SKIP NONER, TAD MODE SMA CLA JMP LNKA TAD AADR AADRL, JMS I PUNONE-1 MTWO JMS I SKIP TAD EVAL JMS I PUNONE-1 MTWO JMS I SKIP JMP I PUNONE LNKA, TAD AADR AND P6000 CIA TAD ABANK SNA CLA JMP SAMES TAD AADR AND P3777 JMP AADRL SAMES, TAD AADR AND P1777 JMP AADRL NOTBL1, NOTBLK P377, 377 P20, 20 M6, -6 SYMBUF=. / / / / / / / / / / / EJECT /PDP-12 ASSEMBLER PAGE 13 *3200 / / TABLE / ERROR, 0 TAD .-2 DCA UNREF-1 JMS I PASSEK /CHECK FOR LISTING AND PASS2. TAD ERRCNT SZA CLA JMS I TYCARI TAD CURLIN JMS I SOPS MTWO JMS I SKIP TAD I UNREF-1 AND P77 TAD P300 JMS I DECOUT TAD I UNREF-1 RTR RTR RTR AND P77 TAD P300 JMS I DECOUT MTWO JMS I SKIP ISZ ERRCNT NOP JMS I PASSEK SKP JMS I TYCARI JMP I ERROR / 0 UNREF, UNDERR AAS GETASY, 0 CLA DCA IN JMS I GETASY-1 TAD IN SNA CLA JMP I GETASY JMS I SEAR1 SKP CLA JMP CKUN /FOUND DCA VAL JMS I ENTS1 USYMB CLA CLL IAC RTL /4 /US JMS I GETASY-2 JMP I GETASY CKUN, TAD TYPE TAD P6000 SZA CLA JMP I GETASY JMP CKUN-3 ENTS1, ENTS SEAR1, SEARCH /TABLE OF ERROR MESSAGES TABLE, 0511 /IE ILLEGAL EQUALS 2211 /IR ILLEGAL REFERENCE 0411 /ID ILLEGAL REDEFINITION 0311 /IC ILLEGAL CHARACTER 2325 /US REFERENCE TO UNDEFINED SYMBOL 1503 /CM COMMA USED INCORRECTLY 1003 /CH CHAINING ERROR. 0523 /SE SYSBOL TABLE EXCEEDED 0127 /WA WORKING AREA EXCEEDED 2320 /PS PUSH DOWN LIST EXCEEDED LNKMOD, CLA SKP PDP8MD, CLA CMA DCA MODE TAD MODE TAD P6321 DCA INSYM JMS I SYREAD SYCRAP /SWAP THE CORRECT SYMBOL TABLE IN NOW JMS I RESET1 JMS I PAGE1 JMP I B21 /CLEAN UP THE SYSTEM. WE RE DONE WITH THIS ONE. P6321, D6+42-300 SYSIN, 0 CLA CLL ISZ WDHALF JMP LEFTHF TAD I PTBUFP AND P77 DCA TEMP ISZ PTBUFP ISZ CHRC JMP RTHFT TAD P7400 DCA CHRC TAD PTBUFF DCA PTBUFP JMS I BUFI RTHFT, TAD TEMP JMP I SYSIN LEFTHF, CMA DCA WDHALF TAD I PTBUFP RTR RTR RTR AND P77 JMP I SYSIN BUFI, BUFIN WDHALF, 0 PTBUFP, 0 PTBUFF, 4400 CHRC, 0 PASSER, 0 TAD LISTWD SPA CLA JMP .+4 TAD PASS SPA CLA JMP I PASSER ISZ PASSER JMP I PASSER EQUCHK,0 ISZ EQRETI JMS I ERR1 JMP I EQUCHK SYREAD, READ / / / / / / SYCRAP, DIALUNIT 36 INSYM, 0 1 / / / / / / / / / EJECT /PDP-12 ASSEMBLER PAGE 14 / / *3400 BIT6, 0 TAD ITEM TAD M40 SPA JMP P1TO37 TAD M20 SPA JMP P40T57 JMS I SEMITZ JMP I BIT6 P40T57, TAD P11 SNA JMP TABA TAD P2 SNA JMP P367A TAD P2 SNA JMP CARET TAD P57 JMP I BIT6 P1TO37, CLA TAD ITEM TAD M33 SPA JMP ALPHAB TAD BIT6M3 SMA CLA JMP P367A TAD ITEM TAD P41 JMP I BIT6 / / SEMITZ, SEMITX / / TABA, TAD P54 JMP I BIT6 CARET, TAD P46 JMP I BIT6 ALPHAB, CLA TAD ITEM JMP I BIT6 P367A, PTHREE JMS I ERR1 JMP I .+1 IDX+1 M20, -20 P54, 54 P2, 2 P57, 57 P41, 41 P46, 46 BIT6M3, -3 DISRET, 0 JMS I TYCARI /GIVE A CARRIAGE RETURN BEFORE THE SYMBOL TABLE TAD ERTOT /GET THE TOTAL NUMBER OF ERRORS SNA /ZERO? JMP LWD /YEP. PRINT OUT MESSAGE WITH "NO" PREFIX CLL RAR /JUST 1 ERROR? SNA DCA MESSS /REMOVE THE FINAL S NOW RAL JMS I SOPS /OUTPUT THE OCTAL NUMBER OF ERRORS ISZ LWD /PUSH PAST THE "NO" PART OF THE MESSAGE ISZ LWD / LWD, TAD MESS /GET A WORD OF THE MESSAGE SNA /ZERO?? JMP LWDE /YEP. THATS ALL JMS I DECOUT /OUTPUT THE LETTER JMP LWD-1 /GET THE NEXT CHARACTER NOW / LWDE, TAD PCONT /OVERLAYED INSTRUCTION. DCA PCONT JMP I DISRET /AND RETURN TO CALLER /SYSTEM WILL GIVE THE EXTRA CRLF AFTER /DECIDING IF THERES ANY BINARY. / / / LWDEFD, 7677 /MAGIC NUMBER FOR FORM FEED PROBLEM AT SYMBOL TABLE TIME. / / / / / MESS, 316 /"NO" 317 240 /" ERRORS" 305 322 322 317 322 MESSS, 323 /FINAL OPTIONAL S 0000 /TERMINATING ZERO WORD / / / / / PCONT, 7777 P43, 43 PAGSET, 0 ISZ PCONT JMP COSA TAD M4 DCA 16 TAD P43 TATA, TAD P212 JMS I DECOUT TAD P215 JMS I DECOUT ISZ 16 JMP TATA JMP I PAGSET COSA, TAD PCONT CIA TAD P76 SZA CLA JMP I PAGSET CLA CMA DCA PCONT JMP I PAGSET LINK8A, 0 6211 JMS I GYP 6201 TAD TYPEA AND P1777 SNA CLA JMP I LINK8A TAD TYPEA RTL CLL AND P6000 TAD VAL DCA VAL JMP I LINK8A GYP, GETYPE THOU, CLA CLL TAD LWC RTR RTR DCA CON JMP I C1A C1A, C / / / / EJECT /PDP-12 ASSEMBLER PAGE 15 / / *3600 / CONVRT, 0 AND P77 TAD M40 SPA TAD P100 TAD P240 JMP I CONVRT / / / / UPLN, 0 JMS I TYCARI TAD M26 JMS I SKIP TAD M60A DCA SPCUNT JMP I UPLN NOTBLK, 0 TAD BINBLK JMS I SRITIC JMS SETUSE JMP I NOTBLK GETYPE, 0 TAD I SADR AND P6000 DCA TYPEA ISZ SADR TAD I SADR AND P4000 CLL RTR TAD TYPEA DCA TYPEA ISZ SADR TAD I SADR RTR RAR AND P400 TAD TYPEA DCA TYPEA TAD TYPEA AND P6000 DCA TYPE MTWO TAD SADR DCA SADR JMP I GETYPE SETUSE, 0 TAD BINPTR JMS I SRD1 TAD BINPTR DCA BINBLK JMP I SETUSE M26, -26 M60A, -62 RESETL, 0 TAD AADR AND P6000 DCA ABANK JMP I RESETL GETIN, 0 /GET A CHARACTER JMS I GETCHR DCA ITEM TAD PASS CONSKP, SPA CLA JMS I SYMLST TAD ITEM JMP I GETIN CONYES, SPA CLA COMMEN, TAD CONYES /SPA FOR NORMAL,SKP FOR ABBREVIATED!! DCA CONSKP JMS GETIN TAD M43 SZA CLA JMP COMMEN TAD CONREG DCA CONSKP JMP I BITT BITT, BIT / / RAND, 0 AND CON DCA CON JMP I RAND / / / / ENDMS, TAD PASS SPA CLA JMP I RET1 JMP I MAINEX / / / PGJS, 0 TAD LISTWD CONREG, SPA CLA JMP I PGJS TAD I PCOT TAD M77 /FINAL UPPER DCA 17 JMS I TYCARI ISZ 17 JMP .-2 JMP I PGJS PCOT, PCONT / / / LNCK, 0 ISZ SPCUNT JMP .+2 JMS UPLN JMP I LNCK SPACK, 0 DCA TEMP TAD TEMP CMA /-(TEMP+1) TAD SPCUNT P100, SMA /TOO FAR??? CLA CMA DCA SPCUNT TAD TEMP JMP I SPACK / M77, -77 / / / / / STOCHK, 0 TAD SNUM CMA TAD PERMA SPA CLA JMP I STOCHK TAD P5 / EQUERR, JMS I ERR1 /GIVE ERROR MESSAGE. JMP I EDEFIN / P5, 5 EDEFIN, MAINSF / / / / EJECT / / / / / /ASSEMBLER PAGE16 !!!! *4001 /4000 IS THE JMP RET STORE IN LMODE. DISRE, DISRET *4002 FSBLK, 1000+D7 FSUNIT, 0 AALPHA, ALPHA LTREAD, READ BUFIN, 0 /GETS NEXT BUFFER FROM INPUT UNIT. JMS I LTREAD BBLOCK ISZ BUFINZ JMP I BUFIN INIT, 0 /INITIALIZATION ROUTINE: CALLED AT BEGINNING OF EACH PASS. JMS I TYCARI TAD FSBLK AND L777 DCA BUFINZ TAD FSUNIT DCA BBLOCK TAD P2270 DCA BINPTR /SET UP POINTER. SETUSE WILL SET BINBLK JMS I TOUSE /CALL SET USE NOW. TAD P7400 DCA I CHO DCA I WDH TAD P4400 DCA I PTB JMS BUFIN DCA MODE /RESET TO LMODE AND READ IN SYMBOL TABLE. JMS I LTREAD LTAB CLA CMA DCA CURLIN JMP I INIT P2270, 2000+D7+10 WDH, WDHALF TOUSE, SETUSE USES, USEDNO CHO, CHRC P4400, 4400 PTB, PTBUFP OCHECK, CHECKO /POINTS TO THE NO-BINARYY CHECKER RETURN, TAD BINBLK /MAIN EXIT AFTER PASS2. WRITES OUT SYMBOLS, DUMPS BUFFERS, ETC. JMS I SRITIC TAD USES DCA 16 TAD M40 DCA 17 DCA I USES TAD I 16 SPA CLA ISZ I USES ISZ 17 JMP .-4 JMS I RWRITE BINHDR JMS I DISRE JMS I OCHECK /CHECK FOR NO BINARY, ALSO GIVE CARRIAGE /RETURN AFTER ERROS MESSAGE. MUST GO /AFTER CALL TO DISRET JMS I AALPHA JMS I PSTS JMP I MON PSTS, PGJS / / / / KILBUF, DCA I PCOUNT /ZERO THE COUNTER NOW TAD I PINP /POSITION THE INPUT POINTER TO PATCH DCA I POUTP /THE OUTPUT POINTER DCA KLOOP /RESET C.R. CHECKER AFTER C.R. ABORT / / / / / MONIT, JMS I MMMOVE CDF 0 7000 CDF 10 7000 1000 TAD PL215 /GIVE AN EXTRA C.R.L.F FOR GOOD MESSURE JMS I DECOUT TAD PL212 JMS I DECOUT JMS I DECOUT /GIVE A NULL CHARACTER IN CASE OF TAPE LIST OPTION KLOOP, JMS I CNTLPI /CHECK FOR A C.R. TO TERMINATE THE OUTPUT JMS I PCHECK TAD I PCOUNT SZA CLA JMP KLOOP /WAIT UNTIL THE BUFFER IS EMPTY. TAD PL17 LPR 0 ISZ 0 JMS .-2 /WAIT FOR LPR TO TAPE EFFECT CIF 10 JMP I .+1 PL17, 7777 / / PINP, INP POUTP, OUTP PCOUNT, COUNT PL215, 215 PL212, 212 MMMOVE, 7200 / / / NOS, TAD AADR AND P3777 JMP PDLK PERIOD, ISZ ANY TAD MODE SMA CLA JMP LINKDT TAD AADR PDLK, JMS I SGN JMS I IDX1 JMP I B21 LINKDT, TAD AADR AND P6000 CIA TAD ABANK SZA CLA JMP NOS TAD AADR AND P1777 JMP PDLK / RWRITE, WRITE / BINHDR, DIALBINARY 10 D7+57-370 1 / LTAB, DIALUNIT 36 D6+42-300 2 / / L777, 777 / BBLOCK, 0 11 BUFINZ, 0 1 / / EJECT /ASSEMBLER PAGE 17 / / / / ASMIFM .-4200 *4200 / / SWRC, 0 TAD SM370 AND SL777 DCA SWOUT JMS I WWRITE SIT JMP I SWRC / WWRITE, WRITE RSUB, 0 DCA SOMEW TAD CON DCA SUBCON TAD MODE SMA CLA JMP LNKSUB TAD SOMEW CIA TAD CON RSUBRT, DCA CON JMP I RSUB LNKSUB, LINC LMODE LDA I SOMEW, 0 COM ADA I SUBCON, 0 MSC 2 PMODE JMP RSUBRT RADD, 0 DCA WHERE TAD CON DCA ADDCON TAD MODE SMA CLA JMP LNKADD TAD WHERE TAD CON RADDRT, DCA CON JMP I RADD LNKADD, LINC LMODE LDA I WHERE, 0 ADA I ADDCON, 0 MSC 2 PMODE JMP RADDRT / / / PSEUDO OP SETTER AND PAGER / / GIVEN PSEUDO FALLS THROUGH ISZ CHAIN. THIS SETS OP1 TO PSEUDO NUMBER. /ROUTINE PAGES IN PSEUDO OP PROCESSOR WITH NUMBER IN AC. PROCESSOR DOES THE REST. /FOR 8K, PSNOPS ARE MADE INTO NOPS, AND PPSEUDO IS CHANGED. / PSUDO7, ISZ OP1 PSUDO6, ISZ OP1 PSUDO5, ISZ OP1 PSUDO4, ISZ OP1 PSUDO3, ISZ OP1 PSUDO2, ISZ OP1 PSUDO1, CLA CLL TAD OP1 JMS I PPSEUDO PAFTER, DCA PSRET DCA OP1 JMP I PSRET OP1, 0 PSRET=SWRC PPSEUDO, PSEUDO /PSEUDO + CORRECT ORIGIN SREAD1, 0 TAD SM370 /SUBTRACT OFF THE EXTRANEOUS CRAP AND SL777 DCA SWOUT JMS I WREAD SIT JMP I SREAD1 / SL777, 777 SM370, -370 / WREAD, READ POPUP1, 0 /PUT LAST ENTRY IN PUSH CLA CMA TAD POINT DCA POINT TAD I POINT JMP I POPUP1 / SIT, DIALBINARY 12 SWOUT, 0 1 / / / / / / / UBITS, 0 /THIS ROUTINE SETS THE "IN USE" BITS IN THE HEADER BLOCK TAD BINBLK /GET THE IN USE BLOCK POINTER TAD FACTOR /CONVERT TO AN ABSOLUTE MEMORY ADDRESS DCA TEMP /STORE AWAY NOW CLA CMA /SET THE HEADER BLOCK BITS ALL ONE NOW DCA I TEMP /IN THEY GO JMP I UBITS /RETURN TO THE CALLER. ALL IS WELL / / FACTOR, BLKUSE-2000-D7 /CORE HEADER BLOCK MAPPER. / / / / / / / / / / / / / / / / VSAVE, DIALUNIT /THE ACTUAL DIAL AREA 15 /LOCATIONS 6400-6777 SCRATCH /A SCRATCH AREA ON THE TAPE 1 /1 BLOCK IN OR OUT. / / / / / / / / / / / / / / / / / / / / / / / *4337 USEDNO, 0 *4340 BLKUSE=. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / / / / / / / / / / / EJECT / / / / / / / / / / / / / / / / / / / / / END OF ASSEMTWO. FETCH ASSEM3. / / / / / / / / / / / CHAIN "ASSEM3" / / EJECT