*20 EJECT / A S S E M B L E R P A R T - 2 / / COMMONLY CALLED ASSEMTWO. / / / / / RECALL DEFINED SYMBOLS FROM ASSEMONE. / / LODSYM / L O A D S Y M B O L S / / / / PMODE / / / / EJECT /PDP-12 ASSEMBLER PAGE 14 / / *3400 BIT6, 0 TAD ITEM TAD M40 SPA JMP P1TO37 TAD M20 SPA JMP P40T57 P60T77, TAD P33 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 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 P33, 33 P2, 2 P57, 57 P41, 41 P15, 15 P46, 46 BIT6M3, -3 DISRET, 0 JMS I TYCARI TAD ERTOT JMS I SOPS MTWO JMS I SKIP MTHREE DCA 16 LWD, TAD PTRA RTR RTR RTR AND P77 TAD P300 JMS I DECOUT RWD, TAD PTRA AND P77 TAD P300 JMS I DECOUT ISZ LWD ISZ RWD ISZ 16 JMP LWD JMS I TYCARI JMP I DISRET PTRA, 0522 2217 2223 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 CDY, 6211 JMS I GYP CDZ, 6201 TAD TYPEA AND P1777 SNA CLA JMP I LINK8A TAD TYPEA RTL CLL AND P6000 CDZZ,6211 TAD I VADR CDZZA, 6201 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 DCA TEMP TAD TEMP TAD M47 M130, SNA CLA JMP TABCV TAD TEMP TAD M40 SPA TAD P100 TAD P240 JMP I CONVRT TABCV, TAD P211 JMP I CONVRT P211, 211 UPLN, 0 JMS I TYCARI TAD M26 JMS I SKIP TAD M60A DCA 16 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 BINBLK TAD M2360 TAD STUP DCA TEMP CMA DCA I TEMP TAD BINPTR JMS I SRD1 TAD BINPTR DCA BINBLK JMP I SETUSE STUP,BLKUSE M26, -26 M60A, -60 M2360, -2000-D7 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 JBBACK, SYMBU / / 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 M130 /CLOSE ENOUGH TO -77 (UGH!!) DCA 17 JMS I TYCARI ISZ 17 JMP .-2 JMP I PGJS PCOT,PCONT LNCK, 0 ISZ 16 JMP .+2 JMS UPLN JMP I LNCK SPACK, 0 DCA TEMP TAD TEMP CIA TAD 16 P100, SMA /TOO FAR??? CLA CMA /YEP. SET BACK TO END OF LINE DCA 16 TAD TEMP JMP I SPACK EJECT / / / / / /ASSEMBLER PAGE16 !!!! *4001 /4000 IS THE JMP RET STORE IN LMODE. DISRE, DISRET *4002 FSBLK, 1000+D7 PSPCHR, 7000+D6+43 P6LMD, 6000+D6+42 AALPHA, ALPHA *4006 /CHANGE FOR D BUFFERS PPWAIT, WAIT MONIT, JMS I PPWAIT /IF 8K WAIT FOR TAPE OPERATIONS TO BE COMPLETED. CLA1=.-1 /REPLACE BY A CLA IF 4K LINC LMODE LDF 1 AXO /CLEAR EXTENDED FUNCTIONS. RCG I E7 /REBOOTSTRAP 3000+D6+14 LDF 3 RCG I E7 7000+D6 /MUST GO AT 4017 FOR GOOD REBOOTSTRAP. PMODE SREAD0, 0 /ROUTINE TO READ IN OFF TAPE 0 DCA .+3 /STORE AC(AC IS THE ARG.) LINCC4, JMS I LTREAD LMODE /SEE BEGINNING OF ASSEMONE TO SEE HOW TAPE I/O WORKS. RDC 0 CLR PDP PMODE JMP I SREAD0 LTREAD, READ BUFIN, 0 /GETS NEXT BUFFER FROM INPUT UNIT. CLA CLL LINC LMODE NOP /FOR EXTENDED UNITS WHEN READY NOP6, PDP PMODE NOP5, JMS I LTREAD LMODE RDC BUFINZ, 0 CLR PDP /NOPS IN 8 MODE PMODE ISZ BUFINZ JMP I BUFIN INIT, 0 /INITIALIZATION ROUTINE: CALLED AT BEGINNING OF EACH PASS. JMS I TYCARI TAD FSBLK DCA BUFINZ TAD P2270 DCA BINBLK 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. LINC LMODE LDFB, LDF 7 NOP4, PDP PMODE NOP3, JMS I LTREAD LMODE JBI1, RDC I 6000+D6+42 PMODE NOP2, JMS I LTREAD LMODE JBI2, RDC 7000+D6+43 PMODE NOP1, LINC LMODE LDF 3 PDP PMODE CLA CMA DCA CURLIN JMP I INIT P2270, 2000+D7+10 WDH, WDHALF TOUSE, SETUSE USES, USEDNO CHO, CHRC P4400, 4400 PTB, PTBUFP RETURN, TAD BINBLK /MAIN EXIT AFTER PASS2. WRITES OUT SYMBOLS, DUMPS BUFFERS, ETC. JMS I SRITIC JMS I TOUSE TAD USES DCA 16 TAD M40 DCA 17 DCA I USES TAD I 16 SPA CLA ISZ I USES ISZ 17 JMP .-4 TAD BINHDR /WRITE OUT HEADER BLOCK JMS I SRITIC NOP10, JMS I JBMTD6 /MOVE TOWARD DIAL IF 8K. JMS I DISRE JMS I AALPHA JMS I PSTS JMP I MON PSTS,PGJS JBMTD6, JACKBU SENDAR, SENDER P4300, 4000+D8 P5301, 5000+D8+1 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 BINHDR, D7+57 /ADDRESS OF HEADER BLOCK ON TAPE 1. REDOP, 0 CLA CLL LINC LMODE LDF 3 PDP PMODE TAD REFUDGE CLA2, JMS SREAD0 JMP I REDOP REFUDGE, 6\FUDGE5 EJECT /ASSEMBLER PAGE 17 *4200 SWRC, 0 DCA .+3 LINCC3, JMS I WWRITE LMODE WRC U 0 CLR PDP /NOPS IN 8 MODE PMODE 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 SWRIT1, 0 DCA .+3 LINCC2, JMS I WWRITE LMODE WRI U 0 CLR PDP /NOPS IN 8 MODE PMODE JMP I SWRIT1 / / / 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 PSNOP1, TAD POUT PSNOP2, JMS SWRIT1 PSNOP3, TAD PIN PSNOP4, JMS I PSREAD TAD OP1 JMS I PPSEUDO PAFTER, DCA PSRET DCA OP1 PSNOP5, TAD POUT PSNOP6, JMS SREAD1 JMP I PSRET POUT, 2\FUDGE3 PIN, 2\FUDGE4 OP1, 0 PSRET=SWRIT1 /GOOD FOR IT PSREAD, SREAD1 PPSEUDO, PSEUDO+PFUDGE /PSEUDO + CORRECT ORIGIN SREAD1, 0 DCA .+3 LINCC1, JMS I WREAD /CHANGE TO LINC LMODE RDC U 0 CLR PDP /NOPS IN 8 MODE PMODE JMP I SREAD1 WREAD, READ POPUP1, 0 /PUT LAST ENTRY IN PUSH CLA CMA TAD POINT DCA POINT TAD I POINT JMP I POPUP1 *4336 SENDER, 0 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 *BLKUSE+37 EJECT / M A I N I N I T I A L I Z A T I O N O F T H E A S S E M B L E R / / / / / / *5000 BEGNLI, CLA /ENTRY IF LIST IS DESIRED. SKP BEGNAS, CLA CMA /ENTRY IF JUST ASSEMBLY. DCA LISTWD /SAVE LIST STATUS CONDITION. TAD I P4775 /4775 CONTAINS STARTING LINE NUM. OF LISTING DCA I PJSTART TAD I P4776 /4776 CONTAINS ENDING LINE NUM. STASH IT AWAY PERMANENTLY. DCA I PJEND TAD LISTWD SNA CLA JMP .+4 TAD .+1 JBNOP, NOP DCA I PJNOP /IF NO LIST THEN FIX JBTEST SO IT CAN NEVER LIST OUT. JMP PJNOP+1 PJEND, JEND PJSTART, JSTART P4775, 4775 P4776, 4776 P4774, 4774 BANOP1, ABNOP1 BANOP2, ABNOP2 BANOP3, ABNOP3 BANOP4, ABNOP4 BANOP5, CONYES BANDO, SKP CLA BLTAD, 1200+M7TWO-ENTS BLTAD1, NOTAB1 BLTAD2, NOTAB2 BLM10, -10 BLPM22, M22 PJNOP, JNOP ISZ I P4774 /4774=7777 IF QUICK LIST. JMP LISREG /NO QUICK LIST. TAD JBNOP /CHANGE LIST ROUTINE FOR QL BY ALL FOLLOWING CRAP. DCA I BANOP1 TAD JBNOP DCA I BANOP2 TAD JBNOP DCA I BANOP3 TAD JBNOP DCA I BANOP4 TAD BANDO DCA I BANOP5 TAD BLTAD DCA I BLTAD1 TAD BLTAD DCA I BLTAD2 TAD BLM10 DCA I BLPM22 LISREG, TAD I INAS DCA I MAINEX /INITILIZE TO PASS1. LINC LMODE LDF 3 RDC I U /THIS CHECKS UNIT 1 TO SEE IF ASSEMBLER EXISTS ON IT. 7000+FUDGE4 /LOAD IN OVERLAY TO SEE LDA /IF PRESENT. 7400 /FIRST WORD SAE I 1202 /"JB" IN OCTAL JMP KALWLA /NOT THERE LDA 7401 /VERSION NUMBER SAE I 4360+VERSION /TEST WEHTER VERSIONS THE SAME. SKP JMP SYMOK /IT S THERE. SKIP PAST CHANGES. KALWLA, CLR /SET UNIT1 SYM REFS TO UNIT 0 ADD .-1 STC SYMBAD LDA I SREAD0 /SWAP PSEUDO OPS OFF UNIT0 NOW, NOT 1. STA /CHANGE TO UNIT 0 PSREAD /FOR PSEUDO OPS LDA I RDC I STA CUNIT1 STC CUNIT2 SYMOK, PDP / / / CHECK FOR 8K RIGHT NOW. / / PMODE CH8OR4, CDF 010 L8OR4L, MTHREE /SAVE -3 IN UPPER CORE DCA I L8OR4L CDF 0 DCA I L8OR4L CDF 10 PTHREE /IS -3 STILL THERE???? TAD I L8OR4L LINC LMODE AZE I JMP UGOT8K /STILL THERE. HE S GOT 8K!! LDA I /TSK,TSK.. ONLY 4K 7000 LDF 0 STA /WE ARE NOW CHANGING ALL THE CDF 10 S TO NOPS. CDA+2000 STA CDC+2000 STA CDD+2000 STA CDE+2000 STA CDFF+2000 STA TAABA+2000 STA CDG+2000 STA CDH+2000 STA CDI+2000 STA CDJ+2000 LDF 1 STA CDK STA CDL STA CDFM STA CDFN STA CDO STA CDP STA CDR STA CDT STA CDU STA CDV STA CDW STA CDX STA CDY STA CDZ STA CDZZ STA CDZZA LDA I LDF 3 STA LDFA+2000 STC LDFB LDA I 7377 LDF 0 STA TOP+2000 LDA I 7577 STA STAB+2000 LDA I MOVE4 STA MOVE1+2000 LDA I SDECO4 STA SDECO1+2000 LDF 2 LDA I /NOW CHANGE ALL THE I/O ROUTINES. NOP STA NOP1 STA NOP2 STA NOP3 STA NOP4 STA NOP5 STA NOP6 LDF 1 STA NOP7 STA NOP8 STA NOP9+2000 STA NOP10 LDF 2 LDA I 6141 /LINC STA LINCC1 STA LINCC2 STA LINCC3 STA LINCC4 LDA I 7300 /CLA IN 8 MODE STA CLA1 STA CLA2 JMP ALLSET /ALL THINGS SET / / END OF CHANGES FOR 4K MACHINE. / / / / UGOT8K, LDF 2 LDA I /READ IN READ,WRITE, PSEUDO AND PRINTER ROUITINES. 7764 /NEW UNIT MASK CUNIT1, RDC I U 7000+FUDGE1 /FIRST BLOCK OF VERLAY LDF 3 CUNIT2, RDC I U 4000+FUDGE2 /SECOND BLOCK OF OVERLAY LDF 1 /SET UP PRINTER CHECK LDA I / NOW CHANGING TTY ROUTINE TO CALL LINE PRINTER CHECK ROUTINE. TYPO+3202 /TYPE=2571+3202=5773(JMP I TYPO+2) STA TYPO+1 LDA I LPTEST STA TYPO+2 LDA I 0010 AXO /ENTER NO-PAUSE MODE FOR OVERLAPPED I/O PDP PMODE JMS I PSDOEX /READ IN PSEUDO OP PROCESSOR. LINC LMODE / / / END OF 8K SETUP / / / / / ALLSET, LDF 3 LDA 777 ROL 3 SYMBAD, COM LIF 1 JMP JBSETU LDF 3 PDP PMODE CLA CLL TAD I PUNITAS RAR CLA RTL RTL TAD I PBUFINZ DCA I PBUFINZ JMS I INIT1 JMP I MAINEX /START THE ASSEMBLER GOING RIGHT NOW... / / / PUNITAS, UNITAS PBUFINZ, BUFINZ-1 /CORRECT UNIT PSDOEX, PS8K / / / EJECT / PSEUDO OP PROCESSOR. IT REALLY IS ORIGINED AT / 5000 FOR 4K, BUT IT WOULD THEN OVERLAY THE INITIALIZATION ROUTINE.(AT ASSEMBLY). /THUS ITS ASSEMBLED AT 7000 BUT PFUDGE MAKES THE INTERPAGE REFERENCE LOOK LIKE IT S AT 5000. / THE 8K VERSION IS REALLY ORIGINED AT 7000. I GENERALLY CHANGE THE INTERPAGE /REFERENCES BY HAND(THERE S ABOUT 6 ON THIS PAGE AND 3 ON THE NEXT PAGE.) /ALL INTERBANK REFERENCE HAVE A +PFUDGE /TO THE DATA ITEMS. /REMEMBER, THIS IS FINE AS IS FOR "FUDGE4". FOR FUDGE5 ADD 2000 TO INTERBAGE REFERENCES. / / / / / / / *7000 /NEW LOCATION OF PSEUDO PROCESSOR / / PFUDGE=5000-. / / MAIN PSEUDO OP PROCESSOR. PAGED IN! / / / ACOUNT, 1202 /"JB" ON THE TAPE; IN CORE IT S A TEMPORARY GETVAL, 4360+VERSION /VERSION NUMBER ON TAPE. IN CORE IT S /A SUBROUTINE ENTRY. /NO.7 / (CHECKS UNIT 1 TO SEE /IF PRESENT AND IF IT IS USES UNIT /1 TO READ IN THIS PAGE / JMS I EXPR1 TAD ANY SNA CLA JMP ASSNO TAD EVAL JMP I GETVAL / /GETVAL EVALUATES THE EXPRESION TO THE RIGHT OF A PSEUDO OP. /IF NO EXPRESSION THEN IT EXITS. /BACK TO THE MAIN ASSEMBLER WITHOUT DOING ANYTHING. / / / / / PSEUDO, PAFTER /RETURN IF OVERLAYED BY ITSELF. TAD PJMP DCA .+1 JMP .+1 /OVERLAYED BY PSEUDO NO. PJMP, JMP .+1 /MAIN TABLE POINTER JMP NASSIF /EVIL IF SPELLED RIGHT JMP ZASSIF JMP MASSIF JMP SYMLOD JMP AEJECT JMP SYMSAV JMP SKIPAS / / /END OF JUMP TABLE. PSEUDO WAS CALLED WITH PSEUDO OP NUMBER IN AC. / / / / / NASSIF, TAD AMM10 ZASSIF, TAD M40 MASSIF, TAD L7710 DCA .+2 /STORE CORRECT SKP AFTER EVALUATING EXPR. JMS GETVAL 0 JMP ASSNO /WRONG SKIP CONDITION. ASSEMBLE NEXT. ASSDO, CLA CMA /DO AN ASMSKP 1. JMP ASSYIN SKIPAS, JMS GETVAL CIA SNA /NUMBER TO BE SKKIPED. IF ZERO EXIT. JMP ASSNO ASSYIN, DCA ACOUNT TAD ITEM TAD M43 /WAS DOLLAR TERMINATOR. SZA CLA CLA CMA /NO. ADD 1 TO SKIP BECAUSE OF END OF THIS STATEMENT. TAD ACOUNT DCA ACOUNT TAD PACHECK DCA I PSWITCH TAD ASEND DCA I PDOLLAR TAD AMAINPS DCA PMAINSA JMP I .+1 /AFTER SETTING SWITHCES EXIT TO PICK UP NEXT STATEMENT. AFDRT, FDRT ACHECK, CLA CLL TAD ITEM TAD M43 SNA CLA JMP ASPAST JMS I IDX1 JMP .-5 /WAIT FOR END OF THIS LINE. ASPAST, ISZ ACOUNT JMP I PMAINSA /NOT DONE YET. PICK UP NEXT STATEMENT TO SKIP. ASSRST, TAD PDOCAL DCA I PSWITCH TAD PENDMS DCA I PDOLLAR TAD PMAINSA JMP I PSEUDO /RESET SWITCHES AND EXIT. APAEND, CLA CLL TAD PENDMS DCA PMAINSA JMP ASSRST /END OF MANUSCRIPT / / / / / / / ASSNO, TAD AFDRT JMP I PSEUDO /GENERAL EXIT. / / / / AMM10, -10 ASEND, APAEND+PFUDGE AMAINPS, MAINSA PMAINSA, MAINSA PSWITCH, PSINTER PACHECK, ACHECK+PFUDGE PDOCAL, DOCAL PDOLLAR, FINEND PENDMS, ENDMS / / / / AEJECT, JMS I EXPR1 /JUST TO SCAN TILL END OF LINE. JMS I PASSEK /GET THE PASS NO. L7710, SPA CLA /ALWAYS SKIPS BECAUSE AC=0 JMP ASSNO /NOT LIST OR NOT PASS2 TAD I PM60A /IF LP THEN M60=-140 TAD P77 /JUST AN IN BETWEEN NUMBER SMA CLA /IS PRINTER THERE??? JMP ASSNO /NOPE. LINE PRINTER ISN T THERE CLA CMA /YES. SET PAGE POINTER TO EJECT. DCA I AEPONT JMP ASSNO / AEPONT, PCONT / / / / SYMSAV, JMS GETVAL TAD PASS RAR SNL CLA JMP ASSNO /INCORRECT PASS NO.!! JMS SYMIN TAD SEND /NUMBER OF DEFINED SYMBOLS. DCA I VL4777 TAD VBUF2 JMS I YWRITE JMS I RROPS JMS I PV8OR4K JMP I PV8MOVE JMP I PV4OUT YWRITE, SWRIT1 YREAD, SREAD1 VL4777, 4777 PV8OR4K, V8OR4K+PFUDGE PV8MOVE, V8MOVE+PFUDGE PV4OUT, V4OUT+PFUDGE SYMIN, 0 TAD VBUF1 /SWAP OUT 4400 AND SWAP IN THIS PAGE. JMS I YWRITE TAD VBUF2 JMS I YREAD JMP I SYMIN SYMLOD, TAD PASS SZA CLA JMP NASSIF /DO NOT LOAD SYMBOLS IF PASS2 JMS SYMIN TAD I VL4777 DCA SEND /GET NUMBER OF SAVED SYMBOLS JMS I RROPS /REPAGE IN OVER THIS. NECESSARY IN 8K VERSION JMP I VINIT /BECAUSE SAVSYM AND LODSYM DISTROY THEMSELVES. VINIT, VVINIT+PFUDGE VBUF1, 1\BOTEMP VBUF2, 1\FUDGE4 RROPS, REDOP / / / / / / / EJECT *5000-PFUDGE+200 / / / SPECIAL PSEUDO OP READ-WRITE ROUTINE TO MAKE LIVE EASIER. / SREAD, 0 TAD SREAD DCA SWRITE TAD APSREAD1 JMP SWRITE+2 SWRITE, 0 TAD PSWRITE1 DCA SOP TAD I SWRITE CLL RTL ISZ SWRITE DCA SREAD TAD I SWRITE RTL RAL AND P7 /CHOP OFF LOW BITS TAD SREAD TAD SWL640 /SET DF DCA SWF TAD I SWRITE ISZ SWRITE RAL AND SWL3000 TAD SWL4000 TAD I SWRITE ISZ SWRITE LINC LMODE SWF, 0 /CHANGE DATA FIELD TO RIGHT ONE! PDP PMODE JMS I SOP CDF 0 /RESET DATA FIELD TO ZERO JMP I SWRITE SOP, 0 APSREAD1, SREAD1 PSWRITE1, SWRIT1 SWL3000, 3000 SWL4000, 4000 SWL640, 640 / / / / / / / ISZ V8MOVE /IF 8K LODSYM COME HERE ISZ V8MOV2 V8MOVE, JMS I VWRITE 1 6400 BOOUT ISZ .-1 TAD VM400 TAD .-4 DCA .-5 ISZ VCOUNT JMP V8MOVE V8MOV2, JMS I VWRITE 1 0 BOXTRA VCLEAN, TAD VVBUF1 JMS I VREAD1 JMP I VASSNO VASSNO, ASSNO+PFUDGE VWRITE, SWRITE+PFUDGE VREAD, SREAD+PFUDGE VVBUF1, 1\BOTEMP VCOUNT, -16 /NUMBER OF BLOCKS IN SYMSAV VM400, -400 / V8OR4K, 0 /CHECKS FOR 8 OR 4 K TAD I UGNOP1 SMA CLA ISZ V8OR4K JMP I V8OR4K UGNOP1, NOP1 / VVINIT, JMS V8OR4K /GET HOW MANY K OF CORE GUY HAS. JMP V8MOVE-2 /DO READ NOW V4IN, JMS VCOPY 1\BOOUT 1\BINORM ISZ .-2 ISZ .-2 ISZ VCOUNT JMP V4IN JMS VCOPY 1\BOXTRA 1\BINORM+16 TAD I VBLKTBS JMS I VREAD1 JMS SREAD 0 6400 BINORM JMS SREAD 0 6000 BINORM+1 JMP VCLEAN / VBLKTBS, BLKTBS VREAD1, SREAD1 VWRIT1, SWRIT1 / / / V4OUT, TAD I VBLKTBS JMS I VWRIT1 JMS SWRITE 0 6400 BINORM JMS SWRITE 0 6000 BINORM+1 V4LOOP, JMS VCOPY 1\BINORM 1\BOOUT ISZ .-2 ISZ .-2 ISZ VCOUNT JMP V4LOOP JMS VCOPY 1\BINORM+16 1\BOXTRA JMP VCLEAN / VCOPY, 0 /COPIES 1 BLOCK OF TAPE TO ANOTHER. TAD I VCOPY JMS I VREAD1 ISZ VCOPY TAD I VCOPY ISZ VCOPY JMS I VWRIT1 JMP I VCOPY / / *5000-PFUDGE+200+177 0000 /USED TO STORE "SEND" FOR SYMBOLS ! ! ! / THIS LOCATION IS DESTRYOED ON TAPE FOR ALL PRACTICAL CONSIDERATIONS. / / / / EJECT / M A I N O V E R L A P P E D R E A D R O U T I N E S. *5400 READ, 0 JMS I PGLDF /GET DATA FIELD RETURN IN AC DCA RRET ISZ READ JMS I RCHECK /SET UP MEM FIELDS RRET /POINTER TO DF FIELD RMEMF, 0 /MEMORY INST. RETURNED HERE DCA RLOC1 /HIGH ORDER HITS RETURNED IN AC TO FORM LOC. TAD I READ RAR AND RL1400 TAD RLOC1 DCA RLOC1 /GOT CORRECT LOC IN LOC1 TAD RMEMF DCA RINF CLA CMA TAD READ DCA READ TAD I READ AND RL10 /GET READ UNIT TAD RLRDC DCA RINST /CREATE READ INSTRUCTION. ISZ READ TAD I READ CIA TAD BLOCK1 AND RL777 SNA CLA /DO WE HAVE BLOCK IN BUFF1? JMP I PRIN1 /POSSIBLE. CHECK IF SAME UNIT NUMBER. RCABY2, TAD I READ CIA TAD BLOCK2 AND RL777 SNA CLA JMP I PRIN2 /MAYBE IT S IN BUFF2 RCABY3, JMS I PWAIT /NOPE. GOT TO GET IT. WAIT FOR LAST OP TO FIN. TAD I READ AND RL777 TAD RL7000 DCA BLOCK1 /CREATE READ INTO BUFF1 TAD RINST TAD RL20 DCA RINST2 LINC LMODE LDF 3 RINST2, 0 BLOCK1, -1 PDP PMODE JMS I PWAIT /WE GOT DESIRED BLOCK. WAIT FOR IT. REDO, TAD RINST AND RL10 DCA UNIT1 TAD UNIT1 DCA UNIT2 TAD BLOCK1 IAC AND RL777 TAD RL5000 DCA BLOCK2 /FILL UP BUFF2 ALSO, BUT NO WAIT. DCA DONE1 IAC DCA DONE2 LINC LMODE LDF 3 RINST, 0 BLOCK2, -1 CLR PDP PMODE RMOVE1, JMS RMOVE67 ISZ READ LINC LMODE RRET, 0 PDP PMODE JMP I READ RMOVE67, 0 /MOVES DATA FROM BUFFER INTO USER CORE. CLA CLL TAD RLM400 DCA RCOUNT TAD RPOS1 DCA RPOS2 RLOOP, CDF 0 TAD I RPOS2 RINF, CDF 0 DCA I RLOC1 ISZ RPOS2 ISZ RLOC1 NOP ISZ RCOUNT JMP RLOOP CDF 0 TAD RL7400 /RESET TO BUFF1 IF RIN2 BASHED IT. DCA RPOS1 JMP I RMOVE67 RPOS1, 7400 RL7000, 7000 RL7400, 7400 RCOUNT, 0 RLOC1, 0 RPOS2, 0 RLM400, -400 DONE1, 0 DONE2, 0 UNIT1, -1 UNIT2, -1 RL10, 10 RL20, 20 RL777, 777 RL6000, 6000 PWAIT, WAIT PRIN1, RIN1 PRIN2, RIN2 RL70, 70 RLCDF, CDF RL1400, 1400 RLRDC, 0700 PGLDF, GLDF RCHECK, CCHECK RL5000, 5000 / CDF=6201 / / / / / / / / JACKBU, 0 TAD RL10 LINC LMODE AXO CHK D6 CLR PDP PMODE JMP I JACKBU / / / / / EJECT / / / PART TWO OF THE READ INTERPRETER / /RIN1 AND RIN2 CHECK TO SEE IF BLOCK MAY BE IN BUFFERS, THUS NO READ NECESSARY. / / *5600 RIN1, TAD I PRINST AND R2L10 CIA TAD I PUNIT1 SZA CLA /SAME UNIT AS BUFF IN CORE?? JMP I PRCAB2 TAD I PDONE1 /YES. WAS IT READ IN LAST TIME?? SZA CLA JMS I PWAIT2 /NO. IT WAS INITIATED. NOW WAIT FOR IT. DCA I PDONE1 TAD I PBLCK1 CMA TAD I PBLCK2 AND R2L777 LINC LMODE STD CLR /IF TAPE IS NOT BUSY START NEXT RECORD IN. PDP PMODE SZA CLA JMP I PREDO DCA I PDONE2 JMP I PRMOVE1 RIN2, TAD I PRINST AND R2L10 CIA /ALMOST SAME AS RIN1, EXECPT FOR DIFFERENT BUFFERS. TAD I PUNIT2 SZA CLA JMP I PRCAB3 TAD I PDONE2 SZA CLA JMS I PWAIT2 DCA I PDONE2 LINC LMODE STD COM PDP PMODE SZA CLA JMP RIT3 DCA I PDONE1 TAD I PBLCK2 CMA TAD I PBLCK1 AND R2L777 SNA CLA JMP RIT3 TAD I PBLCK2 IAC AND R2L777 TAD R27000 DCA I PBLCK1 TAD I PUNIT2 DCA I PUNIT1 ISZ I PDONE1 TAD I PRINST DCA RLONEP TAD I PBLCK1 DCA RLTWOP LINC /AFTER CREATING READ FOR NEXT RECORD, DO IT. LMODE LDF 3 RLONEP, -1 RLTWOP, -1 CLR PDP PMODE RIT3, TAD R2L6400 DCA I PRPOS1 /MOVE FROM LOCATION. JMP I PRMOVE1 / PRMOVE1, RMOVE1 PRPOS1, RPOS1 R2L6400, 6400 PBLCK1, BLOCK1 PBLCK2, BLOCK2 PDONE1, DONE1 PDONE2, DONE2 PUNIT1, UNIT1 PUNIT2, UNIT2 R26000, 6000 R27000, 7000 R2L777, 777 PWAIT2, WAIT PRCAB2, RCABY2 PRCAB3, RCABY3 PRINST, RINST R2L10, 10 PREDO, REDO / / / / / / / CCHECK, 0 /CONSTRUCTS CORE LOC FORM FIELDS AND BLOCK NUM. CLA IAC TAD CCHECK DCA CRETURN TAD CCHECK AND CL7600 DCA CTEMP1 TAD I CTEMP1 DCA CTEMP1 TAD I CTEMP1 SPA CLA JMP CDATAF TAD CTEMP1 RTL RAL AND CL3 DCA CFUDGE TAD CPPFUDGE DCA CCHECK CDATAF, TAD I CCHECK DCA CTEMP1 TAD I CTEMP1 RAL AND CL70 TAD CCDF DCA I CRETURN ISZ CRETURN TAD I CTEMP1 CLL RTR RAR AND CL7000 JMP I CRETURN CRETURN, 0 CTEMP1, 0 CL70, 70 CL7000,0CCDF, CDF CL3, 3 CL7600, 7600 CFUDGE, 0 CPFUDGE, CFUDGE CPPFUDGE, CPFUDGE / / / / / / / / / / / / / / EJECT *6200 /6000 IS THE LP ROUTINE / MAIN WRITE ROUTINE / AND READER CHECKER / / /NOTE: DO TO VARIOUS THINGS(MAINLY SPACE), THIS ROUTINE IS BUT A WISP /OF IT S FORMER GREATNESS. IT NO LONGER /DOES OVERLAPPED WRITES(BECAUSE I TOOK AWAY ITS BUFFER SPACES). /INSTEAD, IT DOES THE WRITE DIRECTLY FROM THE CORE AREA. /HOWEVER, ALL THE LOGIC AND INSRUCTIONS SEEM TO BE THERE FOR OVERLAPPED. /HENCE, IF IT LOOKS LIKE ITS DOING SOMETHING, THEN UNDOES THEM, DON T BE SURPRISED. / / / WRITE,0 JMS GLDF /SAVE DATA FIELD. DCA WRET TAD I WRITE DCA WOUT TAD WOUT AND WL10 TAD WWRC DCA WOUT TAD WOUT AND WL10 CIA TAD I WUNIT1 SNA CLA JMP WC1 WR2, TAD WOUT AND WL10 CIA TAD I WUNIT2 SNA CLA JMP WC2 WR3, JMS WAIT /WE JUST CHECKED IF THIS BOLCK EXISTED IN THE READ BUFFERS. IF IT DID /THEN WE ZAPPED IT OUT SO READ WOULDN T THINK IT /HAD IT IN ITS BUFFERS. /NOW WAIT FOR ANY TAPE OPERATIONS TO FINISH/ ISZ WRITE JMS I WCHECK /GO SET UP ADDRESS AND FIELD. WRET WMEMF, 0 DCA WLOC1 TAD I WRITE RAR AND WL1400 TAD WLOC1 DCA WLOC1 TAD I WRITE AND P777 /JUST GET BLOCK NUM. DCA WOUT+1 /CREATE FIELD AND BLOCKMUN. TAD WMEMF AND WL70 CLL RAR TAD WL640 DCA WOUT-1 TAD WLOC1 AND M1000 /7000; GET FIELD BITS CLL RTL RAL TAD WOUT-1 DCA WOUT-1 /SET CORRECT DATA FIELD. TAD WLOC1 AND WL1400 CLL RAL TAD P4000 /ALWAYS DATA FIELD. TAD WOUT+1 DCA WOUT+1 /NOW FINISH SETTING CORRECT BLOCK NUM. LINC LMODE LDF 3 WOUT, 0 /DO WRITE. -1 CLR WRET, LDF 3 PDP PMODE ISZ WRITE JMS WAIT /WAIT FOR COMPLETION JMP I WRITE / / / / / / / / / / / WCOUNT, 0 WL6400, 6400 WLM400, -400 WLOC1, 0 WLOC2, 0 WUNIT1, UNIT1 WUNIT2, UNIT2 WBLCK1, BLOCK1 WBLCK2, BLOCK2 WL1400, 1400 WL10, 10 WL70, 70 WCDF, CDF 0 WWRC, 0704 WCHECK, CCHECK / / / / / / / / / WC1, ISZ WRITE TAD I WRITE CIA TAD I WBLCK1 AND P777 /JUST BLOCK NUMBER. SZA CLA JMP WW2 CLA CMA DCA I WUNIT1 WW2, CLA CMA TAD WRITE DCA WRITE JMP WR2 WC2, ISZ WRITE TAD I WRITE CIA TAD I WBLCK2 AND P777 /JUST CHECK BLOCK NUMBER. SZA CLA JMP WW3 CLA CMA DCA I WUNIT2 WW3, CLA CMA TAD WRITE DCA WRITE JMP WR3 / / / / WAIT, 0 /THIS WAITS FOR TAPE DONE. TAD CURLIN LINC /GET INTO LMODE LMODE SCR 14 /PLACE AC IN MQ. COM /NOW COMLEMENT THE AC TO PLACE 7777 IN IT MOST OF THE TIME. STD JMP .-1 PDP PMODE CLA CLL /CLEAR AC AND THE LINK. JMP I WAIT / / / / GLDF, 0 /THIS GETS DATA FIELD AND SAVES IT. LINC LMODE CLR IOB 6214 ROR 1 BCL I 7740 BSE I WL640, LDF 0 LDF 3 PDP PMODE JMP I GLDF / PMODE / / EJECT / LINE PRINTER ROUTINE / / / / *6000 /THIS ROUTINE LOOKS PRINT, 0 /SORT OF LINE A TTY. TAD CHAR; JMS PRINT. TAD M215 /IT HANDLES CR AND LF. SNA /IS IT CARRIAGE RETURN. JMP CRFOUND TAD P215 /NO! LSD /WAIT FOR CLEAR SIGNAL. JMP .-1 /WAIT FOR FREE TIME FIRST LCF LLB /OUTIT TO LP CLA /I DON T BELIVE IT S CLEARED JMP I PRINT CRFOUND,TAD SW1 DCA PRINT+1 DCA NUM /SET TO CHEC K FOR LF JMP I PRINT LFTEST, DCA TEMP1 TAD TEMP1 TAD M212 /IS IT A LINEFFED. SNA CLA JMP LFF TAD TEMP1 TAD M215 SNA CLA JMP LFF2 TAD SW2 /NOT AN LF OR CR. NEW LINE. OUTPUT LAST. DCA PRINT+1 CLA CMA TAD NUM AND P7 M140, SZA CLA TAD P7 /IF 1 LF, THEN 1 SPACE. IF >1 THEN A FORM EJECT. TAD L10 JMS PRINIT /OUTPUT CONTROL CHAR AND LINE. TAD TEMP1 /GET OLD CHAR AND START NEXT. JMP PRINT+1 LFF, ISZ NUM /LF. BOP UP LF COUNT. LFF2, JMP I PRINT TEMP1, 0 SW1, JMP LFTEST SW2, TAD M215 NUM, 0 NCOUNT, -100 M100, -100 PRINIT, 0 LSD JMP .-1 /WAIT FOR FREE TIME LCF LPR /OUTPUT BUUF WITH CONTROL CHAR. CLA CML INITL, DCA NUM JMP I PRINIT LOK, TAD L17 /LP IS THERE. EJECT TO START AS. JMS PRINIT TAD M140 /RESET CHARS ON ILNE. DCA I PC1 TAD M140 DCA I PC2 LOK1, TAD R1 /RESET TYPO TO LP OR TTY ROUTINE. DCA I PR1 TAD R2 DCA I PR2 TAD R3 DCA I PR3 TAD R4 DCA I PR4 TAD R5 DCA I PR5 TAD P215 JMP I .+1 PR1, TYPO+1 PR2, TYPO+2 PR3, TYPO+3 PR4, TYPO+4 PR5, TYPO+5 R1, JMS I PRINT+TYPO-TYBASE+3 TSF R2, SKP JMP PRINT+TYPO-TYBASE+1 R3, PRINT TLS R4, JMP I PRINT+TYPO-TYBASE CLA R5, JMP I PRINT+TYPO-TYBASE / / LPTEST, CLA CLL TAD M17 /WAIT FOR PRINTER TEST DCA PRINT DCA PRINIT LCF LCB /CLEAR BUFFER. IF LP THERE FLAG RAISES IN 300 MILLSEC. TEST, LSD SKP JMP LOK /FLAG SI UP. LP THERE. WHAT A LUCKY BASTARD. ISZ PRINIT JMP TEST ISZ PRINT JMP TEST ISZ LOK1 /TIME HAS RUN OUT. CHANGE TO SET UT TTY MODE. ISZ LOK1+2 ISZ LOK1+4 ISZ LOK1+6 JMP LOK1 / L10, 10 L17, 17 M212, -212 M17, -17 PC1, M60 PC2, M60A / / / / / SOME BASIC DEFINITIONS FOR THE ROUTINES / TYBASE=2400 /MAIN BASE FOR REFS. LLB=6654 LCF=6652 LSD=6661 LCB=6662 LPR=6664 / / / / / / / / / / EJECT / / / / S Y M B O L T A B L E ! ! ! ! / / / / / / / / *6400 7777 7777 7777 7777 7777 7777 7777 7777 7777 7777 7777 7777 5143 /PSF 0336 0000 6021 5123 /PCF 0336 0000 6022 5140 /PPC 0157 0000 6024 5134 /PLS 1277 0000 6026 5255 /RCF 0336 0000 6011 5254 /RRB 0112 0000 6012 5240 /RFC 0157 0000 6014 4170 /CIF 0336 0000 6202 4163 /CDF 0336 0000 6201 5243 /RIB 0112 0000 6234 5247 /RMF 0336 0000 6244 5243 /RIF 0336 0000 6224 5236 /RDF 0336 0000 6214 5360 /TLS 1277 0000 6046 5364 /TPC 0157 0000 6044 5347 /TCF 0336 0000 6042 5367 /TSF 0336 0000 6041 4651 /KRB 0112 0000 6036 4651 /KRS 1277 0000 6034 4632 /KCC 0157 0000 6032 4652 /KSF 0336 0000 6031 4534 /IOF 0336 0000 6002 4534 /ION 1006 0000 6001 4705 /LINC 1011 0000 6141 4173/CLSK 1312 0 6131 4173/CLLR 716 0 6132 4173 47 0 6133 4173 307 0 6134 4173 /CLSA 1300 0 6135 4173 /CLCA 160 0 6137 4173 /CLBA 113 0 6136 4417 /GLK 0627 0000 7204 5323 /STL 0674 0000 7120 5323 /STA 0045 0000 7240 4675 /LAS 1277 0000 7604 4170 /CIA 0045 0000 7041 4464 /HLT 1344 0000 7402 5076 /OSR 1232 0000 7404 5312 /SKP 1120 0000 7410 5331 /SZL 0674 0000 7430 5315 /SNL 0674 0000 7420 5315 /SNA 0045 0000 7450 5317 /SPA 0045 0000 7510 5331 /SZA 0045 0000 7440 5314 /SMA 0045 0000 7500 4516 /IAC 0157 0000 7001 5256 /RTL 0674 0000 7006 5233 /RAL 0674 0000 7004 5256 /RTR 1232 0000 7012 5233 /RAR 1232 0000 7010 4174 /CML 0674 0000 7020 4174 /CMA 0045 0000 7040 4173 /CLL 0674 0000 7100 4173 /CLA 0045 0000 7200 5025 /NOP 1120 0000 7000 4577 /JMP 1120 0000 5000 4577 /JMS 1277 0000 4000 4227 /DCA 0045 0000 3000 4540 /ISZ 1702 0000 2000 5345 /TAD 0224 0000 1000 4063 /AND 0224 0000 0 EJECT /LINC SYM TABLE *4400 /REALLY GOES AT 7000, BUT 7000 / IS USED 4517 /IBZ 1702 0000 0453 5201 /QLZ 1702 0000 0455 4352 /FLO 1053 0000 0454 4652 /KST 1344 0000 0415 5305 /SFA 45 0 24 4075 /AXO 1053 0000 0001 4314 /ESF 0336 0000 0004 4464 /HLT 1344 0000 0000 5166 /QAC 0157 0000 0005 4173 /CLR 1232 0000 0011 4071 /ATR 1232 0000 0014 5256 /RTA 0045 0000 0015 5025 /NOP 1120 0000 0016 4176 /COM 0741 0000 0017 5304 /SET 1344 0000 0040 5300 /SAM 0741 0000 0100 4235 /DIS 1277 0000 0140 5613 /XSK 0627 0000 0200 5251 /ROL 0674 0000 0240 5251 /ROR 1232 0000 0300 5302 /SCR 1232 0000 0340 5327 /SXL 0674 0000 0400 5315 /SNS 1277 0000 0440 5312 /SKP(L) 1120 0000 0467 4077 /AZE 0271 0000 0450 4065 /APO 1053 0000 0451 4726 /LZE 0271 0000 0452 4236 /DJR 1232 0000 0006 4705 /LIF 0336 0000 0600 4700 /LDF 0336 0000 0640 5236 /RDC 0157 0000 0700 5235 /RCG 0403 0000 0701 5236 /RDE 0271 0000 0702 4765 /MTB 0112 0000 0703 5545 /WRC 0157 0000 0704 5526 /WCG 0403 0000 0705 5545 /WRI 0515 0000 0706 4167 /CHK 0627 0000 0707 5300 /SAE 0271 0000 1440 5321 /SRO 1053 0000 1500 4115 /BCL 0674 0000 1540 4135 /BSE 0271 0000 1600 4115 /BCO 1053 0000 1640 4247 /DSC 0157 0000 1740 4051 /ADD 0224 0000 2000 5323 /STC 0157 0000 4000 4577 /JMP 1120 0000 6000 4764 /MSC 0157 0000 0000 4700 /LDA 0045 0000 1000 5323 /STA 0045 0000 1040 4051 /ADA 0045 0000 1100 4051 /ADM 0741 0000 1140 4675 /LAM 0741 0000 1200 4766 /MUL 0674 0000 1240 4700 /LDH 0450 0000 1300 5323 /STH 0450 0000 1340 5307 /SHD 0224 0000 1400 5345 /TAC 0157 0000 0003 5361 /TMA 0045 0000 0023 5124 /PDP 1120 0000 0002 5323 /STD 0224 0000 0416 4717 /LSW 1523 0000 0517 5255 /RSW 1523 0000 0516 4534 /IOB 0112 0000 0500 EJECT /SPECIAL CHARACTERS AND PSEUDO-INSTRUCTIONS *7400 / 7777 /UNUSED 7777 7777 7777 6303 /EJECT 0274 1344 PSUDO5 /PSEUDO OP 5 6070 /ASMIFZ (I HAD IT ASSIFZ ORGINALLY BUT THE PRUDES THOUGHT IT WAS TOO 0752 /SUGGESTIVE! ! ! ! ! ! ! ! ! !) 0354 PSUDO1 /PSEUDO OP 1 6070 /ASMIFN 0752 0370 PSUDO2 /PSEUDO OP 2 6070 /ASMIFM 0752 0353 PSUDO3 /PSEUDO OP 3 6070 /ASMSKP 0764 0647 PSUDO7 /PSEUDO OP 7 7300 /SAVSYM 1501 1652 PSUDO6 /PSEUDO OP 6 6347 /FIELD 0305 0224 FLDUP 7135 /PMODE 1057 0271 PDP8MD 6711 /LMODE 1057 0271 LNKMOD 7304 /SEGMNT 0420 1032 BANKCH 6713 /LODSYM 0247 1652 PSUDO4 /PSEUDO OP 4 0000 /AND 0000 0062 3400 7056 /OCTAL 1345 0674 OCT 6231 /DECIMAL 0170 0742 DECIM 7351 /TEXT 1614 0 STRING 7025 /NOLIST 0705 1323 PLIST 6705 /LIST 1323 0000 DOLIST 7121 /PAGE 0410 0 PAGEC 0000 /SEMICOLON 0000 0046 0200 0000 /EXCLAMATION POINT 0000 0055 2200 6000 /STAR 0000 0066 ORGIC 6000 /POINT 0 0072 PERIOD 6000 // 0000 0075 THOU 7411 /U 0000 0000 UN 0000 /COMMA 0000 0070 0600 0000 /= 0000 0050 1400 7702 /Z 0 0 A+1 6515 /I 0 0 H 0000 /- 0000 0071 5200 0000 /+ 0000 0067 4600 0000 /SPACE 0000 0054 5600 / / EJECT / M A J O R T A P E D EF I N I T I O N S / / / / FUDGE1=322 /BLOCK ON WHICH DOUBLE BUFFERED READ ROUTINES SIT. FUDGE2=323 /BLOCK ON WHICH OVERLAPPED WRITE AND LINE PRINTER SIT. FUDGE3=325 /SCRATCH BLOCK FOR SWAPPED IN-OUT PSEUDO OPS FUDGE4=324 /SWAPPED IN PSEUDO OPS. SHOULD BE 1 LESS THEN FUDGE3 FOR / MAXIMUM TAPE EFFICEINCY. FUDGE5=326 /8K RESIDENT PSEUDO OP PROCESSOR. LOADED ONCE AT BEGINNING FOR / 8K MACHINES. CAN BE ANYWHERE ON TAPE. / BOTEMP=327 /SCRATCH BLOCK FOR SAVSYM, LODSYM; USED FOOR SWAPPING OUT CORE TO ALLOW / BUFFER SPACE FOR COPYING, UPDATING, ETC OF SYMBOLS... BOOUT=450 /START OF 16 CONSECUTIVE BLOCKS ON UNIT1 TO HOLD SAVED SYMBOLS. BINORM=430 /17 BLOCKS WHERE 4K SYMBOLS NORMALLY GO. BOXTRA=466 /17-16=1. THIS IS WHERE EXTRA SAVSYM IS. / IT CAN BE ANYWHERE ON THE TAPE. / / / / EJECT / E N D A S S E M T W O ! ! ! ! ! ! ! / / / / / / SAVE THE DEFINED SYMBOLS SO ASSEMONE CAN USE THEM. / / / / SAVSYM 2 / S A V E S Y M B O L S ! / / / / / EJECT