*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 LITRG1 /IF LITORG HAS BEEN SET SMA CLA JMP .+5 /DONT CHANGE IT TAD LOCTR1 /SET LITORG INCASE NO COMMAND DCA LITRG1 TAD LOCTR2 DCA LITRG2 TAD [200 DCA LOCTR2 /LOCATION COUNTER DCA LOCTR1 CLL CML RAR /4000 DCA BASER /SET BASE BEYOND BELIEF TAD [177 /INITIALIZE LITERAL BOUNDARIES DCA P0LIT TAD [177 DCA CPLIT CMA /OPEN INPUT FILE DCA CHRCNT DCA SBLOCK DCA I (SRCUNT /START AT UNIT 0 DCA ERRORS /ZERO ERROR COUNT ISZ PASSNO /BUMP PASS NUMBER JMP I [START /DO NEXT PASS EOP2, CLA IAC /DUMP CURRENT PAGE LITERALS JMS I (DMPLIT JMS I (DMPLIT /THEN DUMP PAGE 0 LITERALS ISZ OUTSWT /DONT PRINT LINE WITH FP LITERALS JMS I (DLITS /THEN FLOATING POINT 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 SYM2 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 BASEX, JMS I [ADRGET /GET ADDRESS EXPR VALUE TAD EXPTYP /WAS THING DEFINED SNA CLA JMP ORGERR /NO, GIVE *UO* ERROR TAD EXPVAL+1 /PUT INTO BASER AND [7 DCA BASER TAD EXPVAL+2 DCA BASER+1 JMP I [NEXTST 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-2 /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 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, CLA CMA /NO EJECT ON PASS 1 TAD PASSNO SNA CLA JMP I [NEXTST TAD LISTSW /OR LIST OFF SNA CLA JMP I [NEXTST JMS PAGEJ JMP I [NEXTST 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 PAGE 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 DCA DIRBLK DIRLUP, JMS I DIALRD /READ CATALOG UNIT, 0 SOURCB /INTO SOURCE BUFFER DIRBLK, 0 1 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 NFILES, 0 CBSWIT, 0 PAGE GETCN, 0 /RETURN NEXT CHAR OR 77 JMS I [GETCHR /GET CHAR JMP I (CHERR /NONE, GIVE ERROR TAD (-242 /IS IT " SNA JMP ISQ /YES TAD (242 /FIX CHAR AND [77 JMP I GETCN /RETURN IT ISQ, JMS I [BACK1 /PUT BACK " TAD [77 /RETURN 77 JMP I GETCN PAGE TEXTX, JMS I [GETCHR /GET DELIMITER JMP I [NEXTST /NULL STMT CIA DCA EXTMP /SAVE - DELIM LOOP6B, JMS GETCHT /GET HIG ORDER CHAR JMP I [NEXTST CLL RTL RTL RTL /SHIFT IT UP DCA LTEMP /SAVE HALF JMS GETCHT /GET LOWER CHAR JMP OUTTXT /GO PUT LAST TAD LTEMP /PUT 2 CHARS TOGETHER JMS I [OUTWRD /OUTPUT WORD JMP LOOP6B /LOOP OUTTXT, TAD LTEMP /PUT OUT HALF WORD JMS I [OUTWRD /OR ZERO WORD JMP I [NEXTST GETCHT, 0 /GET CHAR FOR TEXT STMT ISZ NCHARS /BUMP COUNT SKP JMP I GETCHT /END OF TEXT 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 DECX, CLA IAC /RADIX=DECIMAL OCTALX, DCA RADIX /RADIX=OCTAL JMP I [NEXTST ORG USETBL-1 1 /1 BLOCK USED -1 /PAGE 200 BLOCK 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 PDPOP=4 PSUDO=5 PDPMR=6 FPPMRF=7 FPPSF1=10 FPPSF2=11 FPPSF3=12 FPPSF4=13 FPPSF5=14 FPMRFL=15 ORG 10020 /INITIAL SYMBOL TABLE FPLIST, 0 /FP LITERAL BUCKET DPLIST, 0 /DP LITERAL BUCKET ALIST, .+1 .+5 /ADDX 0404;3000 FPPSF5 0110 .+5 /ALN 1416;0 FPPSF4 0010 .+5 /AND 1604;0 PDPMR AND 0 0 /ATX 2430;0 FPPSF4 0020 BLIST, .+1 0 /BASE 0123;0500 PSUDO BASEX CLIST, .+1 .+5 /CDF 0406;0 PDPOP CDF .+5 /CHAIN 1001;1116 PSUDO CHAINX .+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 /CMA 1501;0 PDPOP CMA 0 /CML 1514;0 PDPOP CML DLIST, .+1 .+5 /DCA 0301;0 PDPMR DCA 0 0 /DECIMAL 0503;1115 PSUDO 0100 DECX ELIST, .+1 .+5 /EJECT 1205;0324 PSUDO EJECTX 0 /END 1604;0 PSUDO ENDX FLIST, .+1 .+5 /FADD 0104;0400 FPPMRF 1000 .+5 /FADDL 0104;0414 FPMRFL 1000 .+5 /FADDM 0104;0415 FPPMRF 5000 .+5 /FADDML 0104;0415 FPMRFL+1400 5000 .+5 /FCLA 0314;0100 FPPSF3 0002 .+5 /FDIV 0411;2600 FPPMRF 3000 .+5 /FDIVL 0411;2614 FPMRFL 3000 .+5 /FEXIT 0530;1124 FPPSF3 0000 .+5 /FLDA 1404;0100 FPPMRF 0000 .+5 /FLDAL 1404;0114 FPMRFL 0000 .+5 /FMUL 1525;1400 FPPMRF 4000 .+5 /FMULL 1525;1414 FPMRFL 4000 .+5 /FMULM 1525;1415 FPPMRF 7000 .+5 /FMULML 1525;1415 FPMRFL+1400 7000 .+5 /FNEG 1605;0700 FPPSF3 0003 .+5 /FNOP 1617;2000 FPPSF3 0040 .+5 /FNORM 1617;2215 FPPSF3 0004 .+5 /FPAUSE 2001;2523 FPPSF3+0500 0001 .+5 /FPCOM 2003;1715 PDPOP 6553 .+5 /FPHLT 2010;1424 PDPOP 6554 .+5 /FPICL 2011;0314 PDPOP 6552 .+5 /FPINT 2011;1624 PDPOP 6551 .+5 /FPIST 2011;2324 PDPOP 6557 .+5 /FPRST 2022;2324 PDPOP 6556 .+5 /FPST 2023;2400 PDPOP 6555 .+5 /FSTA 2324;0100 FPPMRF 6000 .+5 /FSTAL 2324;0114 FPMRFL 6000 .+5 /FSUB 2325;0200 FPPMRF 2000 0 /FSUBL 2325;0214 FPMRFL 2000 GLIST, 0 HLIST, .+1 0 /HLT 1424;0 PDPOP 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 0 /ISZ 2332;0 PDPMR ISZ 0 JLIST, .+1 .+5 /JA 0100;0 FPPSF2 1030 .+5 /JAC 0103;0 FPPSF3 0007 .+5 /JAL 0114;0 FPPSF2 1070 .+5 /JEQ 0521;0 FPPSF2 1000 .+5 /JGE 0705;0 FPPSF2 1010 .+5 /JGT 0724;0 FPPSF2 1060 .+5 /JLE 1405;0 FPPSF2 1020 .+5 /JLT 1424;0 FPPSF2 1050 .+5 /JMP 1520;0 PDPMR JMP 0 .+5 /JMS 1523;0 PDPMR JMS 0 .+5 /JNE 1605;0 FPPSF2 1040 .+5 /JSA 2301;0 FPPSF2 1120 .+5 /JSR 2322;0 FPPSF2 1130 0 /JXN 3016;0 FPPSF1 2000 KLIST, .+1 .+5 /KCC 0303;0 PDPOP KCC .+5 /KRB 2202;0 PDPOP KRB .+5 /KRS 2223;0 PDPOP KRS 0 /KSF 2306;0 PDPOP KSF LLIST, .+1 .+5 /LAS 0123;0 PDPOP LAS .+5 /LDX 0430;0 FPPSF5 0100 .+5 /LISTOFF 1123;2417 PSUDO+0600 LSTOFX .+5 /LISTON 1123;2417 PSUDO+1600 LSTONX 0 /LITORG 1124;1722 PSUDO+00700 LITORX MLIST, 0 NLIST, .+1 0 /NOP 1720;0 PDPOP NOP OLIST, .+1 .+5 /OCTAL 0324;0114 PSUDO OCTALX .+5 /ORG 2207;0 PSUDO ORGX 0 /OSR 2322;0 PDPOP OSR PLIST, .+1 0 /PAGE 0107;0500 PSUDO PAGEX QLIST, 0 RLIST, .+1 .+5 /RAL 0114;0 PDPOP RAL .+5 /RAR 0122;0 PDPOP RAR .+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 /RTL 2414;0 PDPOP RTL 0 /RTR 2422;0 PDPOP RTR SLIST, .+1 .+5 /SETB 0524;0200 FPPSF2 1110 .+5 /SETX 0524;3000 FPPSF2 1100 .+5 /SKP 1320;0 PDPOP SKP .+5 /SMA 1501;0 PDPOP SMA .+5 /SNA 1601;0 PDPOP SNA .+5 /SNL 1614;0 PDPOP SNL .+5 /SPA 2001;0 PDPOP SPA .+5 /STARTD 2401;2224 FPPSF3+0400 0006 .+5 /STARTF 2401;2224 FPPSF3+0600 0005 .+5 /SZA 3201;0 PDPOP SZA 0 /SZL 3214;0 PDPOP SZL TLIST, .+1 .+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 /TPC 2003;0 PDPOP TPC .+5 /TRAP3 2201;2063 FPPSF1 3000 .+5 /TRAP4 2201;2064 FPPSF1 4000 .+5 /TRAP5 2201;2065 FPPSF1 5000 .+5 /TRAP6 2201;2066 FPPSF1 6000 .+5 /TRAP7 2201;2067 FPPSF1 7000 0 /TSF 2306;0 PDPOP TSF ULIST, 0 VLIST, 0 WLIST, 0 LISTX, .+1 0 /XTA 2401;0 FPPSF4 0030 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 FLD1 7000 1000 JMS I (7774 /FIND FUDGE FACTOR FOR SOURCE DUMYS TAD I (7770 /GET READ ENTRY POINT DCA RDDIAL TAD I (7771 /SOURCE FUDGE NUMBER DCA FUDGES JMS I (7774 /FIND STUFF FOR BINARY DUMYB TAD I (7770 /MAKE SURE ITS THE SAME HANDLER CIA TAD RDDIAL SZA CLA HLT /TWO DIFFERENT HANDLERS TAD I (7771 /STORE BINARY FUDGE CDF FLD0 DCA I (BFUDGE TAD FUDGES /NOW SOURCE FUDGE DCA I (SFUDGE TAD RDDIAL /READ ENTRY POINT AND (177 /GET PAGE DISPLACEMENT TAD (7600 /PLUS BASE DCA I (DIALRD CLL CML RTL TAD I (DIALRD /NOW WRITE ENTRY POINT DCA I (DIALWR CDF FLD1 TAD RDDIAL AND (7600 /GET PAGE ADDR OF I/O ROUTINE DCA .+3 JMS I (7200 /MOVE ROUTINE TO FIELD 0 CDF FLD1 0 CDF FLD0 7600 200 JMP I (GETLPT /GO FIND LINE PRINTER DUMYS, 110;SOURCB;0;1 DUMYB, 111;BINARB;0;1 RDSYS, 100;30;22;2 FUDGES, 0 RDDIAL, 0 PAGE 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, CDF CIF JMP I (START 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 TSTLST ISLP08, TAD (LP08 DCA I (PC TAD (-121 /SET WIDTH TO 80 DCA I (WIDTH JMP TSTLST LPT, 0 LPT2, 0 END