100 110 INTFLGS,.-. /INTERRUPT FLAGS 120 INTLST, INTDEV /INTERRUPT DEVICE LIST POINTER 130 140 / THE FOLLOWING LOCATION CONTROLS WHETHER OR NOT LPT: BUFFERING OCCURS. 150 / SETTING LPMODE=1 PREVENTS BUFFERING, SETTING LPMODE=0 ALLOWS BUFFERING TO 160 / A CHARACTER. IF BUFFERING IS ALLOWED, LPMODE WILL BE NEGATIVE 170 / IMMEDIATELY AFTER SENDING A 7777 TO THE LPT: ROUTINE. THIS WILL STILL 180 / ALLOW BUFFERING, BUT WILL TEMPORARILY SUSPEND IT WHEN STARTING UP A NEW 190 / PROGRAM, SO THAT THE PROGRAM CAN TIME OUT THE EXISTENCE OF THE LPT: 200 / HARDWARE. THE LPMODE VALUE WILL BE THE TWO'S COMPLEMENT OF THE CURRENT 210 / COUNT OF CHARACTERS STILL LEFT TO BE SENT UNTIL FULL BUFFERING TO A 220 / IS TO BE REENABLED. IF LPMODE=1, THEN THIS WILL NOT OCCUR. 230 240 LPMODE, 1-LPBUFF /LPT: BUFFERING MODE; 1=NO BUFFERING ALLOWED 250 EJECT 260 / THE FOLLOWING WORD IS RESERVED FOR VT-8/E, ETC. OVERLAY STRUCTURES WHICH 270 / REQUIRE MODE SWITCHING ON INTERRUPT, ETC. IF THE USER PROGRAM DISCOVERS 280 / THAT THE VT-8/E VIDEO INTERRUPT IS BEING HANDLED BY SEARCHING THE INTERRUPT 290 / DEVICE LIST FOR AN EXTRA DEVICE, AND THAT DEVICE HAPPENS TO BE THE VT-8/E 300 / VIDEO INTERFACE, THEN THIS WORD CAN BE MODIFIED TO ALLOW USER GRAPHICS 310 / MODE, ETC. TO BE APPENDED TO THE INTERRUPT HANDLER. 320 330 VTMODE, .-. /VT-8/E MODE WORD 340 350 / THE FOLLOWING WORD CONTROLS THE DISPOSITION OF LOWER-CASE CHARACTERS TO 360 / BE OUTPUT TO THE LOGICAL LPT: HANDLER. IF LCMODE=0 THEN THESE CHARACTERS 370 / WILL BE OUTPUT AS IS; IF LCMODE=7740 THEN THEY WILL BE "FOLDED" TO THEIR 380 / UPPER-CASE EQUIVALENTS. 390 400 LCMODE, 0 /LOWER-CASE MODE; 7740=FOLD TO UPPER 410 LINCHAR,.-. /LPT: INPUT CHARACTER 420 430 *10 /GET TO AUTO-INDEX AREA 440 450 CXR1, .-. /AUTO-INDEX NUMBER ONE 460 CXR2, .-. /AUTO-INDEX NUMBER TWO 470 INCHAR, .-. /LATEST INPUT CHARACTER 480 KEYTMP, .-. /KEYBOARD INTERRUPT TEMPORARY 490 LPTAC, .-. /LPT: AC TEMPORARY 500 LPTCHAR,.-. /LPT: CHARACTER TEMPORARY 510 OUTAC, .-. /OUTPUT ROUTINE AC TEMPORARY 520 OUTCHR, .-. /OUTPUT CHARACTER TEMPORARY 530 540 *20 /GET PAST AUTO-INDEX AREA 550 560 / THE FOLLOW LOCATIONS ARE USED TO HOLD THE CALLER'S ADDRESS AND FIELD. THEY 570 / ARE USED BOTH BY THE TRAP BLOCK ROUTINES AND THE ERROR BLURB HANDLING 580 / ROUTINES OF THE OVERLAY. 590 600 CALADR, .-. /CALLING ADDRESS 610 CALFLD, .-. /CALLING FIELD 620 630 / THE FOLLOWING ARE ROUTINE POINTERS FOR THE TRAP BLOCK ROUTINES. 640 / THEY ARE EXPECTED TO HANDLE THEIR RESPECTIVE TASKS BY THE 650 / ERROR RECOVERY ROUTINES CONTAINED IN THE PARTICULAR TRAP BLOCKS OF 660 / THE CURRENTLY CONFIGURED SYSTEM. 670 680 MOVBLB, BLBMOVE /POINTER TO ERROR BLURB MOVE ROUTINE 690 FILBLB, BLBFILL /POINTER TO ERROR BLURB FILL ROUTINE 700 DSPBLB, BLBDISPLAY /POINTER TO ERROR BLURB DISPLAY ROUTINE 710 EJECT 720 / THE FOLLOWING ARE EVENT FLAGS FOR THE INTERRUPT HANDLERS OF THE DEVICES 730 / SUPPORTED BY THE OVERLAY. IT IS POSSIBLE TO REFERENCE THEM DIRECTLY FROM 740 / A REAL-TIME PROGRAM, BUT IT IS RECOMMENDED THAT THEY BE CLEARED BY CALLING 750 / THE APPROPRIATE OVERLAY ROUTINE ESPECIALLY THE LPT: INPUT FLAG. THIS FLAG 760 / IS USED TO ARBITRATE OUTPUT FLOW WITHIN THE LPT: ROUTINE ITSELF. UNLESS 770 / THE USER IS THOROUGHLY FAMILIAR WITH THE INNER STRUCTURE OF THE LPT: 780 / ROUTINE, IT IS BEST LEFT TO ITSELF! 790 800 INFLAG, 0 /CONSOLE INPUT INTERRUPT FLAG 810 OUTFLAG,0 /CONSOLE OUTPUT INTERRUPT FLAG 820 LPTFLAG,0 /LPT: OUTPUT INTERRUPT FLAG 830 LINFLAG,0 /LPT: INPUT INTERRUPT FLAG 840 850 / THE FOLLOWING ARE THE MAIN ENTRY POINTS FOR THE CONSOLE AND LPT: ROUTINES. 860 870 INCON, .-. /CONSOLE INPUT ROUTINE 880 JMP I [CONIN] /GO HANDLE IT THERE