100 ONEWAY-1&LISFIOT /FLAG UP NOW? 110 JMP LINBARE /NO, JUST RETURN 120 LIRBIOT /YES, READ THE CHARACTER AND CLEAR THE FLAG 130 GOTLINP,AND [177] /JUST SEVEN-BIT 140 TAD (-"S!300) /IS IT <^S>? 150 SNA /SKIP IF NOT 160 JMP LPSETS /JUMP IF SO 170 TAD (-"Q+"S) /IS IT <^Q>? 180 SZA CLA /SKIP IF SO 190 JMP LINBARE /JUMP IF NOT 200 NL2000 /SET <^Q> VALUE 210 SKP /NOT <^S> VALUE 220 LPSETS, NL4000 /SET <^S> VAUE 230 LINBARE,NOP /**** 6120 **** ION OR IOF 240 JMP I LINPUT /RETURN 250 EJECT 260 / INTERRUPT SETUP ROUTINE. 270 280 INTSET, .-. /INTERRUPT SETUP 290 NL7777 /SET ALL BITS 300 KINLOCA,KIEIOT /**** PRE-OMNIBUS DEVICE 03 **** 0000 310 NOP /JUST IN CASE 320 NL7777 /SET ALL BITS 330 TINLOCA,TIEIOT /**** PRE-OMNIBUS DEVICE 03 **** 0000 340 NOP /JUST IN CASE 350 NL7777 /SET ALL BITS 360 LINLOCA,ONEWAY-1&LIEIOT /ENABLE INTERRUPTS, ERRORS ON KL-8/JA 370 NOP /JUST IN CASE 380 NL7777 /SET ALL BITS 390 LOTLOCA,LPEIOT /ENABLE INTERRUPTS ON LS-8/E 400 NOP /JUST IN CASE 410 NL7777 /SET ALL BITS 420 DKILOCA,-VT8LPT&DKIEIOT /ENABLE INTERRUPTS ON VT-8/E KEYBOARD, LPT: 430 NOP /JUST IN CASE 440 CLA /CLEAN UP 450 JMP I INTSET /RETURN 460 470 PAGE 480 EJECT 490 / SUPPORT ROUTINES. 500 510 TRPINIT,.-. /TRAP BLOCK INITIAL READIN ROUTINE 520 TAD I (SBTFUN) /GET MONITOR'S UNIT 530 AND [7] /JUST UNIT BITS 540 TAD [2^100] /ADD ON READ BITS 550 RIF /ADD ON FIELD BITS 560 DCA TRDFUN /STORE IN-LINE 570 JMS I [SETFLD] /SETUP OUR FIELD 580 CIF 00 /GOTO MONITOR FIELD 590 JMS I (SYSIO) /CALL I/O ROUTINES 600 TRP, TRPAGE /TRANSFER ADDRESS 610 TRDFUN, 2^100+.-.+.-. /FIELD, UNIT BITS WILL BE FILLED IN 620 TRPBLK /TRAP BLOCK NUMBER 630 TAD I TRP/(HIDWRD&7600+TRPAGE)/GET ID NUMBER 640 DCA DEVWRD /STORE IT 650 JMP I TRPINIT /RETURN 660 670 / INPUT FLAG TEST ROUTINE. 680 690 INTEST, .-. /INPUT TEST ROUTINE 700 INPROT, SKP /**** NOT 6120 **** 0000 710 JMP INCIF1 /KEEP GOING 720 SKON /INTERRUPT ON? 730 IAC /TAD (IOF-ION) /NO, MAKE IT "IOF" 740 TAD [ION] /GET "ION" INSTRUCTION 750 DCA INBARE /STORE IN-LINE 760 SKP /DON'T DO CIF OUR FIELD 770 INCIF1, .-. /WILL BE CIF OUR FIELD 780 TAD INFLAG /GET INPUT FLAG 790 SNA /SKIP IF SET 800 JMP IFLGTEST /JUMP IF NOT 810 DCA INCHAR /SAVE IN INPUT BUFFER 820 DCA INFLAG /CLEAR EVENT FLAG 830 JMP INCOME /CONTINUE THERE 840 850 IFLGTES,SKP /**** NOT 6120 **** 0000 860 INCIF2, .-. /WILL BE CIF OUR FIELD 870 KSFIOT /FLAG UP? 880 JMP INBARE /NO, TAKE IMMEDIATE RETURN 890 KRBIOT /YES, GET THE CHARACTER AND CLEAR HARDWARE FLAG 900 DCA INCHAR /SAVE IN INPUT BUFFER 910 INCOME, ISZ INTEST /BUMP RETURN ADDRESS 920 INBARE, NOP /**** 6120 **** ION OR IOF 930 JMP I INTEST /RETURN TO INPUT ROUTINE 940 EJECT 950 OUTEST, .-. /OUTPUT TEST (AND PRINT) ROUTINE 960 OUTPROT,SKP /**** NOT 6120 **** 0000 970 JMP OUTCIF /KEEP GOING 980 SKON /INTERRUPT ON? 990 IAC /TAD (IOF-ION) /NO, MAKE IT "IOF" 1000 TAD [ION] /GET "ION" INSTRUCTION 1010 DCA OUTBARE /STORE IN-LINE 1020 SKP /DON'T USE CIF OUR FIELD 1030 OUTCIF, .-. /WILL BE CIF OUR FIELD 1040 TAD OUTFLAG /GET OUTPUT FLAG 1050 TSFIOT /OUTPUT FLAG SET? 1060 SKP /SKIP IF NOT 1070 NL7777 /ELSE INDICATE SO 1080 SNA /SKIP IF INTERRUPT OR FLAG UP NOW 1090 JMP OUTBARE /ELSE TAKE IMMEDIATE RETURN 1100 AND OUTCHR /GET THE CHARACTER 1110 TLSIOT /OUTPUT IT NOW 1120 CLA /CLEAN UP 1130 DCA OUTFLAG /CLEAR INTERRUPT FLAG 1140 ISZ OUTEST /BUMP TO GOOD RETURN 1150 OUTBARE,NOP /**** 6120 **** ION OR IOF 1160 JMP I OUTEST /TAKE SKIP RETURN TO CALLER 1170 1180 SETFLD, .-. /DATA FIELD SETUP ROUTINE