100 XLIST OFF 110 IFZERO FILE < 120 XLIST ON 130 /TELETYPE OUTPUT ROUTINES 140 150 P6CH, .-. /PRINT 6-BIT CHARACTERS 160 SZA /? 170 JMP PR6BT1 /NO 180 TAD (15) /PRINT 190 JMS PCH /A 200 TAD (12) /PRINT 210 JMS PCH /A 220 DCA COLUMN /RESET COLUMN COUNT 230 JMP I P6CH /RETURN 240 250 PR6BT1, TAD (-37) /- 260 SNA /NOT A ? 270 JMP P6TAB /YES A 280 AND [77] /TRIM TO 6-BIT 290 TAD [37] /RESTORE 300 JMS PCH /AND PRINT 310 JMP I P6CH /RETURN 320 330 P6TAB, TAD COLUMN /GET CORRECT COLUMN 340 AND [7] /MODULO 8 350 TAD [7770] /-8 FOR COUNT 360 DCA TABCNT /SAVE IT 370 TAD [" &77] /PRINT 380 JMS PCH /A 390 ISZ TABCNT /FOR LENGTH 400 JMP .-3 /OF TAB STOP 410 JMP I P6CH /RETURN 420 430 PCH, .-. /7-BIT OUTPUT ROUTINE 440 ISZ COLUMN /BUMP COLUMN COUNT 450 TAD [200] /THIS MAY BE SKIPPED 460 TSF /WAIT 470 JMP .-1 /FOR IT 480 TLS /START UP NEXT 490 CLA /CLEAN UP 500 JMP I PCH /RETURN 510 520 XLIST OFF 530 IFNZRO EAESET < 540 XLIST ON 550 FILXT2, SWBA /TURN EAE OFF 560 JMP I [SBOOT] /BOOTSTRAP 570 XLIST OFF > 580 IFZERO EAESET < 590 XLIST ON 600 FILXT2, JMP I [SBOOT] /BOOTSTRAP 610 XLIST OFF > 620 XLIST ON 630 640 COLUMN, 0 /COLUMN COUNT 650 TABCNT, 0 /TAB COUNT 660 XLIST OFF > 670 IFNZRO FILE < 680 XLIST ON 690 P6CH, .-. /FILE OUTPUT ROUTINE 700 JMS I (PQWRITE) /WRITE OUT A CHARACTER 710 SKP /FULL RETURN 720 JMP I P6CH /NORMAL RETURN 730 ISZ FILPTR /BUMP POINTER 740 TAD I FILPTR /GET NEXT FILE 750 SNA /END OF LIST? 760 JMP FILXIT /YES, BARF 770 DCA FILBLK /OK, PUT INLINE 780 TAD (FILBUF+3775) /OLD RELIC LINE POINTER 790 DCA FILNUM /SAVE AS POINTER 800 FRELIC, NL7776 /-2 810 TAD FILNUM /+FILNUM 820 DCA FILNUM /TO POINTER 830 TAD I FILNUM /IS IT 840 CMA /"??"? 850 READ, SZA CLA /SKIP IF YES 860 JMP FRELIC /NO, LOOK AGAIN 870 NL0002 /YES, GO FORWARD 880 TAD FILNUM /GET AGAIN 890 DCA FILNUM /SAVE TEMPORARILY 900 NL0001 /+1 910 TAD I FILNUM /+OLD HIGH NUMBER 920 DCA FILNUM /SAVE IN FILE NUMBER ARGUMENT 930 JMS I (PQINIT) /SETUP NEXT CALL 940 FILBLK, 0 /FILE AND UNIT 950 FILNUM, 1 /LINE NUMBER 960 INCR, 1 /LINE INCREMENT 970 JMP I P6CH /RETURN 980 990 FILPTR, SFILES /FILE POINTER 1000 1010 FILXIT, STA STL /TURN ON SOME LIGHTS 1020 MQL /MORE 1030 MQA /LIGHTS 1040 XLIST OFF 1050 IFNZRO EAESET < 1060 FILXT2, SWBA /RESTORE MODE A 1070 SPA /HERE DUE TO ERROR? 1080 XLIST OFF > 1090 IFZERO EAESET < 1100 XLIST ON 1110 FILXT2, SPA /HERE DUE TO ERROR? 1120 XLIST OFF > 1130 XLIST ON 1140 HLT /YES, BARF 1150 JMP I [SBOOT] /BOOTSTRAP 1160 1170 FLCLOS, STA /NEED NEGATIVE AC 1180 JMS I (PQWRITE) /TO CLOSE FILE 1190 JMP FILXT2 /CLEAN UP AND BOOTSTRAP 1200 XLIST OFF > 1210 XLIST ON 1220 EJECT 1230 INITIAL,XLIST OFF 1240 IFNZRO EAESET < 1250 XLIST ON 1260 INITIAL,SWAB /SET MODE B 1270 XLIST OFF > 1280 IFZERO EAESET < 1290 XLIST ON 1300 INITIAL,SWBA /USE MODE A 1310 NOP /JUST IN CASE! 1320 XLIST OFF > 1330 XLIST ON 1340 JMS I [SYSIO] /CALL I/O ROUTINES 1350 LIMIT, 0 /CORE ADDRESS 1360 10+UNIT /READ I/O UNIT FIELD 1, 40 BLOCKS 1370 0 /STARTING FROM BLOCK 0 1380 CDF 10 /GET THE 1390 TAD I LIMIT /LIMITING 1400 CDF 00 /BLOCK 1410 CIA /INVERT 1420 DCA BLIMIT /SAVE IT FOR OTHERS 1430 XLIST OFF 1440 IFNZRO FILE < 1450 XLIST ON 1460 TAD I (SOUTFLS) /GET NUMBER OF OUTPUT FILES 1470 SNA /SKIP IF ANY 1480 JMP FILXIT /BARF IF NONE 1490 TAD FLBLK /UPDATE INPUT POINTER 1500 DCA FLBLK /SAVE IT BACK 1510 DCA I FLBLK /DESTROY INPUT FILES 1520 TAD I FILPTR /GET FIRST FILE