100 LSFIOT= LPT^10+6001 /SKIP ON (CLEAR FLAG IF 6120) LPT: OUTPUT FLAG 110 120 / VT-8/E KEYBOARD DEFINITIONS. 130 140 DKCFIOT=DKEY^10+6000 /CLEAR VT-8/E KEYBOARD FLAG 150 DKIEIOT=DKEY^10+6005 /INTERRUPT ENABLE PER AC[11] ON VT-8/E, LPT: 160 DKSFIOT=DKEY^10+6001 /SKIP ON VT-8/E KEYBOARD FLAG 170 180 / KEYBOARD MONITOR I/O DEFINITIONS. 190 200 MONKCC= TTY^10+6002 /CLEAR KEYBOARD FLAG IN KEYBOARD MONITOR 210 MONKRB= TTY^10+6006 /READ KEYBOARD BUFFER, CLEAR IN MONITOR 220 MONKRS= TTY^10+6004 /READ KEYBOARD BUFFER IN KEYBOARD MONITOR 230 MONKSF= TTY^10+6001 /SKIP ON KEYBOARD FLAG IN KEYBOARD MONITOR 240 MONTLS= TTY+1^10+6006 /KEYBOARD MONITOR OUTPUT CHARACTER, CLEAR FLAG 250 MONTSF= TTY+1^10+6001 /SKIP ON OUTPUT FLAG IN KEYBOARD MONITOR 260 EJECT 270 / OTHER DEFINITIONS. 280 290 BCLI= 1560 /BIT CLEAR IMMEDIATE 300 BUFSIZE=2000 /SIZE OF LPT: BUFFER 310 CIF10= CIF 10 /CIF CONSTANT 320 COM= 0017 /COMPLEMENT AC 330 ESF= 0004 /LOAD SPECIAL FUNCTIONS REGISTER 340 JMPIC= JMP I . /CURRENT PAGE JMP INDIRECT INSTRUCTION 350 JMSC= JMS . /CURRENT PAGE JMS INSTRUCTION 360 LINC= 6141 /GOTO LINC MODE 370 NL0001= CLA IAC /LOAD AC WITH 0001 380 NL0002= CLA CLL CML RTL /LOAD AC WITH 0002 390 NL0010= CLA IAC RAL RAR /LOAD AC WITH 0010 **** ON 6120 ONLY **** 400 NL2000= CLA CLL CML RTR /LOAD AC WITH 2000 410 NL4000= CLA CLL CML RAR /LOAD AC WITH 4000 420 NL7775= CLA CLL CMA RTL /LOAD AC WITH 7775 430 NL7776= CLA CLL CMA RAL /LOAD AC WITH 7776 440 NL7777= CLA CMA /LOAD AC WITH 7777 450 PDP= 0002 /GOTO PDP-8 MODE 460 SFA= 0024 /READ SPECIAL FUNCTIONS REGISTER 470 SYSINST=SYSIO&177+JMSC /I/O CALL INSTRUCTION DEFINITION 480 EJECT 490 / FILE HEADER FOR CONSOLE UTILITY VALIDATION. 500 510 *NMCH1 /FIRST TWO DEVICE NAME CHARACTERS 520 530 *NMCH2 /SECOND TWO DEVICE NAME CHARACTERS 540 550 *NMCH3 /THIRD TWO DEVICE NAME CHARACTERS 560 570 / THE CONSOLE OVERLAY IMAGE STARTS HERE. IT EXTENDS FROM 0000-5777 ON 580 / THE SYSTEM DEVICE, BUT IS VIRTUALLY LOADED IN THREE PARTS: 0000-1777, 590 / 2000-3777, 4000-5777. THE PORTION FROM 0000-1777 WILL BE INITIALLY 600 / BROUGHT IN WITH THE CONSOLE UTILITY ITSELF FOR USE WITH /U LOADING OF 610 / BINARY FILES. WHEN CALCULATING THE CHECKSUM, THE PORTION FROM 0000-2577 620 / WILL BE LOADED. 630 640 *0 /START AT THE BEGINNING 650 660 / THE CONSOLE INTERRUPT ROUTINE IS ENTERED HERE. EVENT FLAGS WILL BE SET 670 / FOR THE BENEFIT OF THE NORMAL NON-INTERRUPT CONSOLE ROUTINES. THE SOLE 680 / PURPOSE IS TO CLEAR THE INTERRUPT FOR THE BENEFIT OF THE USER. IT IS STILL 690 / NECESSARY TO CALL THE I/O ROUTINES IN THE NORMAL MANNER TO DO THE ACTUAL 700 / I/O. THOUGH IT NORMALLY CAUSES THE RESPECTIVE FLAGS TO CLEAR, THE 710 / CONSOLE INTERRUPT HANDLER COULD CONCEIVABLY MISS AN INTERRUPT FLAG 720 / BELONGING TO THE OVERLAY. THEREFORE THE USER PROGRAM SHOULD ATTEMPT TO 730 / NOT DUPLICATE INTERRUPT HANDLING FOR THE DEVICES SUPPORTED BY THE OVERLAY, 740 / AS THIS COULD LEAD TO ANOMALOUS RESULTS. IT IS SUGGESTED THAT THE USER'S 750 / PROGRAM BE TAILORED TO THE SYSTEM AT HAND AND SHOULD "TIME-OUT" ANY 760 / STRAY INTERRUPTS FROM OTHER DEVICES SUSPECTED OF POSSIBLY BEING SUPPORTED 770 / BY THE OVERLAY. THE OVERLAY INTERRUPT HANDLER SHOULD ALWAYS BE CALLED 780 / BEFORE TESTING ANY FLAG POSSIBLY ASSOCIATED WITH THE OVERLAY. THE OVERLAY 790 / INTERRUPT ROUTINES WILL CHECK ALL OVERLAY ASSOCIATED FLAGS EACH TIME THE 800 / OVERLAY INTERRUPT HANDLER IS CALLED, AND SET STATUS BITS IN THE AC UPON 810 / INTERRUPT EXIT. 820 830 CONINT, .-. /CONSOLE INTERRUPT ENTRY POINT 840 JMP I [INTCON] /GO HANDLE IT THERE 850 860 / THE FOLLOWING LOCATIONS ARE PROVIDED TO ALLOW INTERRUPT-DRIVEN PROGRAMS