*20 PAGE ENDX, DCA RADIX /SET DEFAULT CONDITIONS CLA CMA /END OF WHICH PASS ? TAD PASSNO SZA CLA JMP EOP2 /END OF PASS TWO JMS I (PAGEJ /EJECT AFTER PASS ONE DCA STAR20 /RESET STUPIDITY SWITCH DCA LINENO /ZERO LINE NUMBER DCA ASMOF /ZERO CONDITIONAL SWITCH DCA SCSWT /ZERO SEMICOLON SWITCH TAD LSTON /SET LIST SWITCH DCA LISTSW TAD [200 DCA LOCTR2 /LOCATION COUNTER DCA LOCTR1 TAD [177 /INITIALIZE LITERAL BOUNDARIES DCA P0LIT TAD [177 DCA CPLIT CMA /OPEN INPUT FILE DCA CHRCNT TAD (70 /** DCA SBLOCK TAD (100 /*SYSTEM UNIT DCA I (SRCUNT /START AT UNIT 0 DCA ERRORS /ZERO ERROR COUNT ISZ PASSNO /BUMP PASS NUMBER JMP I [FAKEIT /DO NEXT PASS EOP2, CLA IAC /DUMP CURRENT PAGE LITERALS JMS I (DMPLIT JMS I (DMPLIT /THEN DUMP PAGE 0 LITERALS JMS I (PAGEJ /EJECT TAD ERRORS /ERROR COUNT JMS I [OCTOUT TAD (0522 /PRINT ER JMS I (PRINT2 TAD (2217 /PRINT RO JMS I (PRINT2 TAD (2223 /PRINT RS JMS I (PRINT2 JMS I (PAGEJ /EJECT TAD (BUCKTS-1 /SET UP FOR SYMBOL TABLE DCA X15 TAD (-32 /26 BUCKETS DCA LTEMP TAD (301 /BUCKET CHARACTER DCA BUCKET STPRNT, TAD I X15 /GET NEXT BUCKET CDF FLD1 DCA EXTMP /BUCKET START ADDRESS LUPBKT, CLA TAD I EXTMP /WAS TTAT LAST SYMBOL ? SNA JMP NXTBKT /YES, GO GET NEXT BUCKET DCA EXTMP /SAVE LINK ADDR TAD EXTMP DCA X14 /SET UP POINTER FOR NAME TAD I X14 /PICK UP THE NAME DCA NAME1 TAD I X14 DCA NAME2 TAD I X14 DCA NAME3 TAD NAME3 /LOOK AT THE TYPE AND [37 /LOSE FORCE BIT TAD [-4 /IS AN OPCODE ? SMA JMP LUPBKT /YES, GET NEXT SYMBOL TAD SETTYP /GET JUMP THRU TABLE DCA SETTYP-1 JMS I [PRINTC /PRINT CR-LF TAD BUCKET JMS I [PRINTC /PRINT FIRST CHAR TAD NAME1 JMS I (PRINT2 /PRINT 2 AND 3 TAD NAME2 JMS I (PRINT2 /PRINT 4 AND 5 TAD NAME3 AND (7700 /PRINT 6 AND BLANK JMS I (PRINT2 0 SETTYP, JMP I .+5 LUPBKT /UNDEFINED, PRINT NOTHING SYM1 SYM1 /** SYM3 SYM3, TAD I X14 /PRINT 3 WORD THING JMS I [OCTOUT SYM2, TAD I X14 /PRINT 2 WORD THING JMS I [OCTOUT TAD I X14 JMS I [OCTOUT JMP LUPBKT /GET NEXT SYMBOL SYM1, TAD I X14 /PRINT FIRST DIGIT AND [7 TAD [260 JMS I [PRINTC JMP SYM2+2 /PRINT NEXT FOUR DIGITS NXTBKT, ISZ BUCKET /NEXT BUCKET CHAR CDF FLD0 ISZ LTEMP /INCREMENT COUNT JMP STPRNT JMS I (PAGEJ /EJECT JMS I [PRINTC /FINAL CR/LF JMP I (ENDXX /FINISH IT OFF ERRORS, 0 PAGE ORGX, JMS I [EXPR /GET ORG EXPR JMP ORGERR /BAD IF NO EXPR CLA CMA /CHECK TYPE TAD EXPTYP SNA CLA JMP FIXORG /TYPE OK ORGERR, JMS I [ERMSG 2517 /*UO* JMP I [NEXTST FIXORG, TAD LOCTR1 /CHECK FOR NEW FIELD CIA TAD EXPVAL+1 SNA CLA JMP SAMFLD /NOT A DIFFERENT FIELD CLA IAC JMS DMPLIT /DUMP CURRENT PAGE LITERALS JMS DMPLIT /DUMP PAGE 0 LITERALS TAD [177 /RESET PAGE 0 LIT BOUNDARY DCA P0LIT JMP SAMPAG-3 /DO THE SAME FOR CURRENT PAGE SAMFLD, TAD LOCTR2 AND [7600 /CHECK FOR SAME PAGE DCA LTEMP TAD EXPVAL+2 AND [7600 CIA TAD LTEMP SNA CLA JMP SAMPAG /PAGE IS THE SAME CLA IAC JMS DMPLIT /DUMP CURRENT PAGE LITERALS TAD [177 /RESET BOUNDARY DCA CPLIT JMS DOEJ /*AUTOMATIC EJECT AFTER NEW PAGE ORG SAMPAG, TAD EXPVAL+1 /PUT ORG VALUE AND [7 DCA LOCTR1 /INTO LOCATION COUTER TAD EXPVAL+2 DCA LOCTR2 JMP I [NEXTST LSTONX, TAD LSTON LSTOFX, DCA LISTSW /SET LIST STATUS JMP I [NEXTST PAGEX, TAD LOCTR2 /ADVANCE TO NEXT PAGE CLL TAD [177 AND [7600 DCA EXPVAL+2 RAL TAD LOCTR1 DCA EXPVAL+1 JMP FIXORG SWTOUT=OPE DMPLIT, 0 DCA PAGEN /SAVE PAGE INDICATOR TAD OUTSWT /SAVE OUTPUT SWITCH DCA SWTOUT ISZ OUTSWT /DONT PRINT LINE WITH LITERALS TAD PAGEN TAD [P0LIT /GET BOUNDARY POINTER DCA LTEMP TAD PAGEN /WHICH LITERAL BUFFER ? SNA CLA TAD (P0LBUF-CPLBUF /PAGE 0 BUFFER TAD (CPLBUF /CURRENT PAGE BUFFER TAD I LTEMP /PLUS PAGE ADDRESS DCA X10 /GIVES START OF LITERALS -1 TAD PAGEN SZA CLA TAD LOCTR2 /UPPER FIVE BITS OF ADDRESS AND [7600 TAD I LTEMP /PLUS LOWER SEVEN IAC /PLUS ONE DCA LOCTR2 /GIVES LOCATION COUNTER TAD I LTEMP /SAVE OLD LITERAL BOUNDARY DCA PAGEN TAD [177 /STORE SPURIOUS LITERAL BOUNDARY DCA I LTEMP /TO PREVENT FALLACIOUS *PO* MESSAGES LITLUP, TAD X10 /END OF LITERALS AND [177 /GET DISPLACEMENT -1 TAD (-177 /IS IT .GE. 177 ? SMA CLA JMP DMPFIN /GO RESTORE LITERAL BOUNDARY TAD I X10 /NO, GET NEXT LITERAL JMS I [OUTWRD /OUTPUT WORD AND BUMP LC JMP LITLUP /LOOP DMPFIN, TAD PAGEN /GET CORRECT LITERAL BOUNDARY DCA I LTEMP /PUT IT IN ITS PLACE TAD SWTOUT /RESTORE OUTPUT SWITCH DCA OUTSWT JMP I DMPLIT /ALL DONE PAGEN=ACE EJECTX, JMS DOEJ JMP I [NEXTST DOEJ, 0 CLA CMA /NO EJECT ON PASS 1 TAD PASSNO SNA CLA JMP I DOEJ TAD LISTSW /OR LIST OFF SNA CLA JMP I DOEJ JMS PAGEJ JMP I DOEJ PAGEJ, 0 /PAGE EJECT SUBROUTINE JMS I [PRINTC /CR-LF TAD (214 JMS I [PRINTC /FORM FEED TAD SIZPAG /FIX PAGE COUNTER DCA PAGSIZ JMP I PAGEJ PDLIST, 0;0;0;0;0;0 /PUSHDOWN PLACE FOR I/O ROUTINES PAGE / / / / / / / / / / /OUTPUT BUFFER IS 4000-4377 /BECAUSE OF RING BUFFER SCHEME, IT MUST /BE MOVED WITH GREAT CAUTION / / / / / / / / / / ORG 4400 /SEE NOTE ABOVE ABOUT RING BUFFER CHAINX, JMS I [GETCHR /LOOK FOR FIRST " JMP CHERR /MISSING FILE NAME TAD (-242 SZA CLA JMP CHAINX /KEEP LOOKING TAD [-4 /NAME WORD COUNT DCA LTEMP TAD (FNAME /NAME POINTER DCA EXTMP DCA CBSWIT /SET CAT BLOCK SWITCH CNLOOP, JMS I (GETCN /GET CHAR CLL RTL RTL RTL DCA I EXTMP /SAVE UPPER HALF JMS I (GETCN TAD I EXTMP /UNITE HALVES DCA I EXTMP ISZ EXTMP /BUMP POINTER ISZ LTEMP /AND COUNT JMP CNLOOP JMS I [GETCHR /LOOK FOR CLOSE QUOTE JMP CHERR TAD (-242 SZA CLA JMP CHERR JMS I (GETUNT /GO GET UNIT NUMBER CLL CMA RAL /2 BLOCKS OF CAT DCA EXTMP TAD (-40 /32 ENTRIES PER BLOCK DCA NFILES / TAD (-22 /COMPUTE CAT BLOCK NUMBER / TAD SFUDGE TAD (346 /** DCA DIRBLK DIRLUP, JMS I DIALRD /READ CATALOG UNIT /PARAM POINTER ISZ DIRBLK /INCR BLOCK TAD (SOURCE-1 /GET CAT POINTER DCA X10 TAD CBSWIT /IS THIS SECOND HALF OF CAT ? ISZ CBSWIT /SET SWITCH SZA CLA JMP FILLUP /YES TAD I [SOURCE /CHECK FIRST NAME FOR "////////" TAD (-5757 SZA CLA JMP CHERR /FILE NOT FOUND JMP NOTFIL /GO BUMP NAME POINTER FILLUP, TAD (FNAME-1 /NAME POINTER DCA X11 TAD X10 /SAVE CAT POINTER DCA X12 TAD [-4 /NAME SIZE DCA LTEMP FNLOOP, TAD I X12 /COMPARE NAMES CIA TAD I X11 SZA CLA JMP NOTFIL /NOT THIS ONE ISZ LTEMP JMP FNLOOP /NOT DONE / TAD SFUDGE /GET RELATIVE BLOCK NUM / CIA TAD I X12 DCA SBLOCK TAD I X12 /CHECK SIZE SPA CLA JMP CHERR /IF NEG, NO SUCH FILE TAD UNIT /SAVE UNIT DCA I (SRCUNT CMA DCA CHRCNT /SET COUNT TO -1 DCA LINENO /ZERO LINE NUMBER DCA SCSWT /ZERO SEMICOLON SWITCH DCA STAR20 /ZERO STUPIDITY SWITCH CLA CMA DCA NCHARS /REMOVE FALSE *EG* MESSAGE CLA CMA /DO WE PRINT MESSAGE TAD PASSNO SZA CLA TAD LISTSW SZA CLA JMP I [NEXTST /ONLY IF PASS1, OR PASS2 ? NOLIST JMS I [PRINTC /CR-LF TAD (-12 /MESSAGE SIZE DCA LTEMP TAD (CMSG-1 /AND POINTER DCA X10 TAD I X10 /GET WORD OF MESSAGE JMS I (PRNT2 /PRINT 2 CHARS ISZ LTEMP JMP .-3 JMP I [NEXTST /PRINT CHAIN COMMAND NOTFIL, TAD X10 /BUMP CAT POINTER TAD (10 /BY 8 DCA X10 ISZ NFILES /MORE FILES IN BLOCK ? JMP FILLUP /YES ISZ EXTMP /ANOTHER BLOCK ? JMP DIRLUP /YES CHERR, JMS I [ERMSG1 0310 /*CH* JMP I (RETSYS /FATAL ERROR / UNIT, 0 SOURCB /INTO SOURCE BUFFER DIRBLK, 0 1 / NFILES, 0 CBSWIT, 0 PAGE TEXTX, JMS I [GETCHR /GET DELIMITER JMP I [NEXTST /NULL STMT CIA DCA EXTMP /SAVE - DELIM LOOP6B, JMS GETCHT /GET HIGH ORDER CHAR JMP I [NEXTST CLL RTL RTL RTL /SHIFT IT UP DCA CHAR /SAVE HALF JMS GETCHT /GET LOWER CHAR JMP OUTTXT /GO PUT LAST TAD CHAR /PUT 2 CHARS TOGETHER JMS I [OUTWRD /OUTPUT WORD JMP LOOP6B /LOOP OUTTXT, TAD CHAR /PUT OUT HALF WORD JMS I [OUTWRD /OR ZERO WORD JMP I [NEXTST GETCHT, 0 /GET CHAR FOR TEXT STMT ISZ NCHARS /BUMP COUNT JMP GETCH2 CLA CMA /REMOVE FALSE DCA NCHARS /*EG* MESSAGE JMS I (GETEM /MULTI-LINE TEXT STATEMENT TAD (43 /C.R. SKP GETCH2, TAD I CHRPTR /GET CHAR DCA BUCKET /SAVE IT TAD BUCKET /IS IT THE DELIM ? TAD EXTMP SNA CLA JMP I GETCHT /YES, RETURN NO SKIP ISZ GETCHT /BUMP RETURN TAD BUCKET /GET CHAR AND [77 /LOW 6 BITS JMP I GETCHT /RETURN IFNZRX, JMS I [ADRGET /GET EXPR FOR IFNZRO TAD EXPVAL+1 SNA TAD EXPVAL+2 SNA CLA ISZ ASMOF /IF BOTH HALVES 0, SET SWITCH JMP I [NEXTST IFZROX, JMS I [ADRGET /GET EXPR FOR IFZERO TAD EXPVAL+1 SNA TAD EXPVAL+2 SZA CLA ISZ ASMOF /IF BOTH HALVES NON ZERO, SET SWITCH JMP I [NEXTST IFNEGX, JMS I [ADRGET /GET EXPR FOR IFNEG TAD EXPVAL+1 /CHECK SIGN SMA CLA ISZ ASMOF /SET SWITCH IF POSITIVE JMP I [NEXTST IFPOSX, JMS I [ADRGET /GET EXPR FOR IFPOS TAD EXPVAL+1 /CHECK SIGN SPA CLA ISZ ASMOF /SET SWITCH IF NEGATIVE JMP I [NEXTST IFREFX, JMS I [GETNAM /GET SYMBOL NAME JMP I [NEXTST /RETURN IF NONE JMS I [LOOKUP /S.T. LOOKUP JMP NOTREF /NOT REFERENCED YET CLA /REFERENCED, ASSEMBLY ON DCA ASMOF CDF FLD0 /FIX DATA FIELD JMP I [NEXTST NOTREF, TAD NEXT /SYMBOL WAS JUST ENTERRED TAD [-4 DCA NEXT /FIRST FIX NEXT TAD NEXT DCA X10 /SET UP POINTER TAD I X10 /GET FWD POINTER DCA I OLDN3 /INTO PREVIOUS ENTRY CDF FLD0 CLA IAC /SET ASSEMBLY OFF DCA ASMOF JMP I [NEXTST P2, 0 P3, PRINT2, 0 /PRINT TWO PACKED CHARS DCA P2 TAD P2 RTR RTR RTR JMS I (P1 TAD P2 JMS I (P1 JMP I PRINT2 PRNT2, 0 /SPECIAL PRINT FOR CHAIN DCA P2 /ELIMINATES ? TAD P2 RTR RTR RTR DCA P3 TAD P3 AND (77 TAD (-77 SNA CLA JMP I PRNT2 TAD P3 JMS I (P1 TAD P2 AND (77 TAD (-77 SNA CLA JMP I PRNT2 TAD P2 JMS I (P1 JMP I PRNT2 CMSG, TEXT "CHAINING TO " FNAME, 0;0;0;0 PAGE /TO DUMP LITERALS /A TABLE OF USEFUL INFORMATION /(IF YOU NEED IT THEN ITS USEFUL) / /4000-4377 - OUTPUT BUFFER (LISTAPE OR RING), MOVE WITH CAUTION /5000-5377 - SOURCE BUFFER /5400-5777 - PAGE 0 LITERALS /6000-6177 - CURRENT PAGE LITERALS /6000-3777 - BINARY HEADER BLOCK /6200-6336 - OUTPUT LINE BUFFER /6400-6777 - BINARY OUTPUT BLOCK /7000-7777 - I/O ORG USETBL-1 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 0 EJECT /PAGE ZERO LITERALS GO HERE! / ORG 10000 /TO DUMP LITERALS / /LINC INSTRUCTIONS ARE MARKED WITH " -- " /MULTI MODE INSTRUCTIONS ARE MARKED WITH " ** " /CLASSES OF INSTRUCTIONS: /PDPOP - SUCH AS TLS, CLA, ETC. /PDPMR - TAD, JMS, ETC. /PSUDO - CHAIN, PAGE, ETC. /LBETA - LINC MODE "BETA" CLASS AND THOSE THAT LOOK LIKE THEM / SUCH AS APO I, ROL I 3, ETC. /LINCMR- LINC MEMORY REFERENCE ADD, JMP, STC /ONE ALSO HAS "LINCOP" CODES SUCH AS HLT, AXO, ETC, /BUT ONE CAN PRETEND THESE ARE PDPOP FORMAT / PDPOP=4 PSUDO=5 PDPMR=6 LBETA=7 LINCMR=10 ORG 10020 /INITIAL SYMBOL TABLE /FPLIST,0 /FP LITERAL BUCKET /DPLIST,0 /DP LITERAL BUCKET / ALIST, .+1 / .+5 /ADA -- 0401 0 LBETA 1100 / .+5 /ADD -- 0404 0 LINCMR 2000 / .+5 /ADM -- 0415 0 LBETA 1140 / .+5 /AND 1604 0 PDPMR AND 0 / .+5 /APO -- 2017 0 LBETA 451 / .+5 /ATR -- 2422 0 PDPOP 14 / .+5 /AXO -- 3017 0 PDPOP 1 / 0 /AZE -- 3205 0 LBETA 450 / BLIST, .+1 / .+5 /BCL -- 0314 0 LBETA 1540 / .+5 /BCO -- 0317 0 LBETA 1640 / 0 /BSE -- 2305 0 LBETA 1600 / CLIST, .+1 / .+5 /CDF 0406 0 PDPOP CDF / .+5 /CHAIN 1001 1116 PSUDO CHAINX / .+5 /CHK -- 1013 0 LBETA 707 / .+5 /CIA 1101 0 PDPOP CIA / .+5 /CIF 1106 0 PDPOP CIF / .+5 /CLA 1401 0 PDPOP CLA / .+5 /CLL 1414 0 PDPOP CLL / .+5 /CLR -- 1422 0 PDPOP 11 / .+5 /CMA 1501 0 PDPOP CMA / .+5 /CML 1514 0 PDPOP CML / 0 /COM -- 1715 0 PDPOP 17 / DLIST, .+1 / .+5 /DCA 0301;0 PDPMR DCA 0 / .+5 /DECIMAL 0503 1115 PSUDO+0100 DECX / .+5 /DIS -- 1123 0 LBETA 140 / .+5 /DJR -- 1222 0 PDPOP 6 / 0 /DSC -- 2303 0 LBETA 1740 / ELIST, .+1 / .+5 /EJECT 1205 0324 PSUDO EJECTX / 0 /ESF -- 2306 0 PDPOP 4 / FLIST, .+1 / 0 /FLO -- 1417 0 LBETA 454 / GLIST, 0 / HLIST, .+1 / 0 /HLT ** 1424 0 PDPOP KHLT, HLT / ILIST, .+1 / .+5 /IAC 0103 0 PDPOP IAC / .+5 /IFNEG 0616 0507 PSUDO IFNEGX / .+5 /IFNZRO 0616 3222 PSUDO+1700 IFNZRX / .+5 /IFPOS 0620 1723 PSUDO IFPOSX / .+5 /IFREF 0622 0506 PSUDO IFREFX / .+5 /IFZERO 0632 0522 PSUDO+1700 IFZROX / .+5 /IOB -- 1702 0 PDPOP 500 / 0 /ISZ 2332 0 PDPMR ISZ 0 / JLIST, .+1 / .+5 /JMP ** 1520 0 KJMP2, PDPMR KJMP, JMP 0 / 0 /JMS 1523 0 PDPMR JMS 0 / KLIST, .+1 / .+5 /KCC 0303 0 PDPOP KCC / .+5 /KRB 2202 0 PDPOP KRB / .+5 /KRS 2223 0 PDPOP KRS / .+5 /KSF 2306 0 PDPOP KSF / 0 /KST -- 2324 0 LBETA 415 / LLIST, .+1 / .+5 /LAM -- 0115 0 LBETA 1200 / .+5 /LAS 0123 0 PDPOP LAS / .+5 /LDA -- 0401 0 LBETA 1000 / .+5 /LDF -- 0406 0 LBETA 640 / .+5 /LDH -- 0410 0 LBETA 1300 / .+5 /LIF -- 1106 0 LBETA 600 / .+5 /LINC -- 1116 0300 PDPOP 6141 / .+5 /LISTAPE 1123 2401 PSUDO+2000 LTPE / .+5 /LISTOFF 1123 2417 PSUDO+0600 LSTOFX / .+5 /LISTON 1123 2417 PSUDO+1600 LSTONX / .+5 /LMODE -- 1517 0405 PSUDO MODEL / .+5 /LSW -- 2327 0 PDPOP 517 / 0 /LZE -- 3205 0 LBETA 452 / MLIST, .+1 / .+5 /MSC -- 2303 0 LBETA 0 / .+5 /MTB -- 2402 0 LBETA 703 / 0 /MUL -- 2514 0 LBETA 1240 / NLIST, .+1 / 0 /NOP ** 1720 0 PDPOP KNOP, NOP / OLIST, .+1 / .+5 /OCTAL 0324 0114 PSUDO OCTALX / .+5 /ORG 2207 0 PSUDO ORGX / 0 /OSR 2322 0 PDPOP OSR / PLIST, .+1 / .+5 /PAGE 0107 0500 PSUDO PAGEX / .+5 /PDP -- 0420 0 PDPOP 2 / 0 /PMODE -- 1517 0405 PSUDO MODEP / QLIST, .+1 / .+5 /QAC -- 0103 0 PDPOP 5 / 0 /QLZ -- 1432 0 LBETA 455 / RLIST, .+1 / .+5 /RAL 0114 0 PDPOP RAL / .+5 /RAR 0122 0 PDPOP RAR / .+5 /RCG -- 0307 0 LBETA 701 / .+5 /RDC -- 0403 0 LBETA 700 / .+5 /RDE -- 0405 0 LBETA 702 / .+5 /RDF 0406 0 PDPOP RDF / .+5 /RIB 1102 0 PDPOP RIB / .+5 /RIF 1106 0 PDPOP RIF / .+5 /RMF 1506 0 PDPOP RMF / .+5 /ROL -- 1714 0 LBETA 240 / .+5 /ROR -- 1722 0 LBETA 300 / .+5 /RSW -- 2327 0 PDPOP 516 / .+5 /RTA -- 2401 0 PDPOP 15 / .+5 /RTL 2414 0 PDPOP RTL / 0 /RTR 2422 0 PDPOP RTR / SLIST, .+1 / .+5 /SAE -- 0105 0 LBETA 1440 / .+5 /SAM -- 0115 0 LBETA 100 / .+5 /SCR -- 0322 0 LBETA 340 / .+5 /SET -- 0524 0 LBETA 40 / .+5 /SFA -- 0601 0 PDPOP 24 / .+5 /SHD -- 1004 0 LBETA 1400 / .+5 /SKP ** 1320 0 PDPOP KSKP, SKP / .+5 /SMA 1501 0 PDPOP SMA / .+5 /SNA 1601 0 PDPOP SNA / .+5 /SNL 1614 0 PDPOP SNL / .+5 /SNS -- 1623 0 LBETA 440 / .+5 /SPA 2001 0 PDPOP SPA / .+5 /SRO -- 2217 0 LBETA 1500 / .+5 /STA -- 2401 0 LBETA 1040 / .+5 /STC -- 2403 0 LINCMR 4000 / .+5 /STD -- 2404 0 LBETA 416 / .+5 /STH -- 2410 0 LBETA 1340 / .+5 /SXL -- 3014 0 LBETA 400 / .+5 /SZA 3201 0 PDPOP SZA / 0 /SZL 3214 0 PDPOP SZL / TLIST, .+1 / .+5 /TAC -- 0103 0 PDPOP 3 / .+5 /TAD 0104 0 PDPMR TAD 0 / .+5 /TCF 0306 0 PDPOP TCF / .+5 /TEXT 0530 2400 PSUDO TEXTX / .+5 /TLS 1423 0 PDPOP TLS / .+5 /TMA -- 1501 0 PDPOP 23 / .+5 /TPC 2003 0 PDPOP TPC / 0 /TSF 2306 0 PDPOP TSF / ULIST, 0 / VLIST, 0 / WLIST, .+1 / .+5 /WCG -- 0307 0 LBETA 705 / .+5 /WRC -- 2203 0 LBETA 704 / 0 /WRI -- 2211 0 LBETA 706 / LISTX, .+1 / .+5 /XOA -- 1701 0 PDPOP 21 / 0 /XSK -- 2313 0 LBETA 200 / YLIST, 0 / ZLIST, 0 / FREE, PAGE INITAL, CLA CDF FLD1 DCA I (7775 /FIX UP DIAL I/O ROUTINES TAD (5772 DCA I (7776 TAD (5773 DCA I (7777 JMS I (7774 /READ I COPLETE COPY OF I/O STUFF RDSYS /POINTER TO ARGS FOR SYS READ IN JMS I (4200 /MOVE ROUTINE UP CDF FLD1 4000 CDF FLD0 7000 1000 JMP GETLPT /GO FIND LINE PRINTER RDSYS, 100;30;22;2 FUDGES, 0 RDDIAL, 0 GETLPT, CDF FLD0 /NOW FIND OUT ... 6652 /WHICH PRINTER ? 6662 TAD (-4 DCA LPT DCA LPT2 TLS /INITIALIZE TTY ALPT, 6661 /CHECK FOR ANALEX SKP JMP ISANAL /ITS THE 645 ISZ LPT2 /INCREMENT TIMER JMP ALPT ISZ LPT JMP ALPT TAD (-4 /RESET TIMER FOR LP08 TRY DCA LPT 6666 CLA LLPT, 6661 /TEST LP08 FLAG SKP JMP ISLP08 /ITS AN LP08 ISZ LPT2 /INCREMENT TIMER JMP LLPT ISZ LPT JMP LLPT TSTLST, TAD (7737 DCA I (BUFAND /IF TTY, DECREASE SIZE OF RING BUFFER JMP NOPAUSE /*SET UP NOPAUSE I/O ISANAL, TAD (ANALEX /SET PRINTER HANDLER PTR DCA I (PC /TO ANALEX PRINTER HANDLER TAD (-201 /SET WIDTH TO 128 CHARS DCA I (WIDTH JMP SETIOT ISLP08, TAD (LP08 DCA I (PC TAD (-121 /SET WIDTH TO 80 DCA I (WIDTH SETIOT, TAD LLPT /GET LPT SKIP IOT DCA I (IOTCHK NOPAUSE,CDF 0 TAD I (7757 /*A MAGIC LOCATION TAD (-20 /...WHICH SHOULD BE 20 IN SE2E DIAL-MS SZA CLA JMP EXIT /NOT SE2E / LPT, 0 LPT2, 0 / LINCTP, TAD (30 DCA I (7757 TAD (LWAIT?177!5400 /JMP I LWAIT DCA I (7734 EXIT, CIF CDF 0 JMP I (FAKEIT /END OF ASSEM