100 110 INCON, .-. /CONSOLE INPUT ROUTINE 120 JMP I [CONIN] /GO HANDLE IT THERE 130 140 OUTCON, .-. /CONSOLE OUTPUT ROUTINE 150 JMP I [CONOUT] /GO HANDLE IT THERE 160 170 OUTLPT, .-. /LPT: OUTPUT ROUTINE 180 JMP I [LPTOUT] /GO HANDLER IT THERE 190 200 EMPTPTR,.-. /BUFFER EMPTYING POINTER 210 EMPTR, .-. /TEMPORARY EMPTYING POINTER 220 FILLPTR,.-. /BUFFER FILLING POINTER 230 LSTATUS,0 /LPT: STATUS 240 250 / THE FOLLOWING WORDS ARE USED BY THE CONSOLE UTILITY CODE TO DETERMINE THE 260 / CHECKSUMMED REGION OF THE OVERLAY. DUE TO RESTRICTIONS OF THE UTILITY, 270 / THIS REGION MUST BE LOCATED BETWEEN 0000 AND 2577. 280 290 CHKCNT, CONOFF+1-ENDROM /CHECKSUM COUNT 300 CHKPTR, CONOFF+1 /CHECKSUM POINTER 310 320 / THE FOLLOWING ARE LINKAGE POINTERS PROVIDED FOR THE TRAP BLOCK ROUTINES. 330 340 IOTRAP, JMP I [TRAPIO&177+TRPAGE] /GO HANDLE I/O CALLS THERE 350 ERRTRP, JMP I [TRPERR&177+TRPAG2] /GO HANDLE I/O ERRORS THERE 360 IOWAIT, JMP I [WAITIO&177+TRPAGE] /GO WAIT FOR I/O TO COMPLETE THERE 370 0 /RESERVED FOR ADDITIONAL HANDLER INTERCEPT 380 390 / THE FOLLOWING WORD IS USED TO INDICATE INITIAL RELOADING OF THE OVERLAY. 400 / ANY CLEANUP CAUSED BY RELOADING OF THE OVERLAY IS GOVERNED BY THE 410 / VALUE OF THIS WORD. THE TRAP BLOCKS WILL BE RELOADED IF THIS WORD IS -1. 420 430 INITSW, -1 /FIRST TIME SINCE RELOAD SWITCH 440 EJECT 450 / THE INTERRUPT ROUTINE EXITS HERE. 460 470 INTRET, .-. /WILL BE CIF CDF RETURN FIELD 480 JMP I CONINT /RETURN TO CALLER 490 500 / THE CONSOLE TURNOFF ROUTINE EXITS HERE. 510 520 OFFRET, .-. /WILL BE CIF CDF RETURN FIELD 530 JMP I CONOFF /RETURN TO CALLER 540 550 / THE LPT: ROUTINE EXITS HERE. 560 570 LPTRET, .-. /WILL BE CIF CDF RETURN FIELD 580 JMP I OUTLPT /RETURN TO CALLER 590 600 / THE INPUT ROUTINE RETURNS HERE. 610 620 INRET, .-. /WILL BE CIF CDF RETURN FIELD 630 JMP I INCON /RETURN TO CALLER 640 650 / THE OUTPUT ROUTINE RETURNS HERE. 660 670 OUTRET, .-. /WILL BE CIF CDF RETURN FIELD 680 JMP I OUTCON /RETURN TO CALLER 690 700 / PRINTER BAUD RATE VARIABLE. 710 720 BAUDRAT,IRATE /HOLDS PRINTER BAUD RATE VALUE 730 740 ZBLOCK 77-. /EMPTY SPACE 750 760 ESTATUS,.-. /ERROR STATUS STORED HERE DURING ERROR RECOVERY 770 780 / THE FOLLOWING ENTRY IS USED FOR ANY HOUSEKEEPING NEEDED BY 790 / THE OVERLAY ROUTINES WHEN THE OVERLAY IS REQUESTED TO SHUT DOWN 800 / BY VARIOUS PROGRAMS SUCH AS "BIN" ETC., WHICH CAN'T FUNCTION DURING 810 / DMA, ETC. CAUSED BY VARIOUS VERSIONS OF THE OVERLAY. 820 830 CONOFF, .-. /CONSOLE OFF ROUTINE 840 JMP I [OFFCON] /HANDLE IT THERE 850 860 / THE FOLLOWING IS THE SPECIAL ENTRY POINT FOR THE KEYBOARD MONITOR. IT IS 870 / DELIBERATELY PLACED WITHIN THE "ROM" AREA (WHICH STARTED ONE WORD AGO) 880 / AS A DELIBERATE MEASURE TO CAUSE RELOAD IN CASE THE OVERLAY IS PARTIALLY 890 / CLOBBERED, BUT NOT WITHIN THE "ROM" AREA. SHOULD THE MONITOR INITIALIZATION 900 / FAIL TO COMPLETE, THIS LOCATION WILL BE NON-ZERO, THUS FURTHER ATTEMPTS 910 / TO REBOOT THE SYSTEM WILL RELOAD THE OVERLAY. THIS ENTRY WILL INITIALIZE 920 / THE MONITOR'S CONSOLE ROUTINES TO CALL THE OVERLAY, AND WILL INTERCEPT 930 / ALL SYSTEM READ/WRITE I/O ACCORDING TO THE DICTATES OF THE TRAP BLOCKS. 940 950 XIOMON, 0 /KEYBOARD MONITOR INITIALIZATION ENTRY POINT 960 JMP I [MONINIT] /GO HANDLE IT THERE 970 EJECT