100 JMP .-3 /NO, KEEP GOING 110 TAD [-100] /SETUP THE 120 DCA VTEMP1 /EXTRA LINE COUNT 130 TAD [" &177+4000] /GET A 140 DCA I CXR2 /PUT IN BUFFER 150 ISZ VTEMP1 /DONE YET? 160 JMP .-3 /NO, KEEP GOING 170 TAD MOV4 /GET SAVED BUFFER POINTER 180 TAD [-100] /BACKUP ONE LINE 190 DCA VTPTR /POINT TO CORRECTED ADDRESS 200 TAD VTLNPTR /GET LINE POINTER 210 TAD [-100] /BACK IT UP ALSO 220 DCA VTLNPTR /STORE BACK 230 JMP I ROLCHK /RETURN 240 250 INSERT, .-. /INSERT A CHARACTER ROUTINE 260 DCA I VTPTR /STORE THE PASSED CHARACTER 270 ISZ VTPTR /BUMP TO NEXT 280 JMP I INSERT /RETURN 290 300 PUTBACK,.-. /PREVIOUS CHARACTER UNDER CURSOR RESTORE ROUTINE 310 TAD OLDCHR /GET PREVIOUS CHARACTER 320 DCA I OLDPTR /PUT IT BACK 330 JMP I PUTBACK /RETURN 340 350 PAGE 360 EJECT 370 LPTBUFF=. /LPT: BUFFER STARTS HERE 380 390 NOPUNCH /FOOL THE ASSEMBLER 400 410 *LPTBUFF+BUFSIZE /GET TO END OF LPT: BUFFER 420 430 TRPAGE, ZBLOCK 200 /FIRST TRAP BLOCK PAGE 440 450 TRPAG2, ZBLOCK 200 /SECOND TRAP BLOCK PAGE 460 470 ENPUNCH /UN-FOOL THE ASSEMBLER 480 490 *LPTBUFF /ESTABLIST CURRENT ORIGIN 500 EJECT 510 / ONCE-ONLY TEST FOR EXISTENCE CODE. THIS CAN BE LOCATED WITHIN A BUFFER 520 / ETC., SINCE IT IS ONLY USED WHEN THE OVERLAY IS RELOADED. 530 540 INITEST,.-. /EXISTENCE TEST ROUTINE 550 NL7775 /SETUP THE 560 DCA INCON /TIME-OUT COUNTER 570 JMS I [SETFLD] /SETUP OUR DATA FIELD 580 NL0002 /SETUP CIF BIT 590 TAD I (SETCDF) /FORM CIF CDF OUR FIELD 600 DCA I (INCIDF) /STORE IN-LINE 610 TAD I (INCIDF) /GET IT BACK 620 DCA I (INTST2) /STORE IN-LINE 630 TAD I (INCIDF) /GET IT BACK 640 DCA I (LPCIDF) /STORE IN-LINE 650 TAD I (INCIDF) /GET IT BACK 660 DCA I (LOUTRY) /STORE IN-LINE 670 TAD I (INCIDF) /GET IT BACK 680 DCA I (LINETST) /STORE IN-LINE 690 TAD I (SETCDF) /GET CDF OUR FIELD 700 DCA I (LPECDF) /STORE IN-LINE 710 TAD I (SETCDF) /GET CDF OUR FIELD 720 DCA I (LPFCDF) /STORE IN-LINE 730 TAD I (SETCDF) /GET CDF OUR FIELD 740 DCA I (OUTCDF) /STORE IN-LINE 750 TIMTST, DPCLIOT /VIDEO FLAG UP? 760 JMP TIMOUT /NO, GO TEST IT 770 CLA CLL /YES, CLEAN UP 780 JMP I INITEST /RETURN 790 800 TIMOUT, ISZ OUTLPT /WASTE 810 JMP TIMTST /SOME TIME 820 ISZ INCON /WAITED TOO LONG? 830 JMP TIMTST /NO, TRY AGAIN 840 850 / SINCE THE VT-8/E HARDWARE IS NOT AVAILABLE, WE RESTORE THE ORIGINAL 860 / KEYBOARD MONITOR AND LET IT FEND FOR ITSELF. 870 880 NL7776 /SETUP THE 890 DCA INCON /ZAP COUNT 900 TAD (ADRLST&177+TRPAGE-1) /POINT AT 910 DCA CXR1 /ADDRESS LIST 920 TAD (CNTLST&177+TRPAGE-1) /POINT AT 930 DCA CXR2 /NORMAL CONTENTS LIST 940 PTBKLP, TAD I CXR1 /GET AN ADDRESS 950 SNA /END OF LIST? 960 JMP PTBKDONE /YES 970 DCA OUTCON /NO, STASH IT 980 TAD I CXR2 /GET A VALUE 990 CDF 00 /GOTO MONITOR'S FIELD 1000 DCA I OUTCON /ZAP IT BACK 1010 JMS I [SETFLD] /BACK TO OUR FIELD 1020 JMP PTBKLP /KEEP GOING 1030 EJECT 1040 PTBKDON,TAD (MONADR-1) /POINT AT MONITOR'S 1050 DCA CXR1 /ADDRESS LIST 1060 TAD (MONCON-1) /POINT AT MONITOR'S 1070 DCA CXR2 /CONTENTS LIST 1080 ISZ INCON /DONE WITH BOTH YET? 1090 JMP PTBKLP /NO, KEEP GOING 1100 1110 / NOW DETERMINE HOW WE SHOULD READ THE MONITOR'S KEYBOARD FOR <^S>/<^Q> 1120 / ETC. PURPOSES. 1130 1140 CDF 00 /GOTO MONITOR'S FIELD 1150 TAD I (SBOOT) /GET THE BOOTSTRAP INSTRUCTION 1160 TAD (-SYSINST) /COMPARE TO POSSIBLE VALUE 1170 SZA CLA /SKIP IF IT MATCHES 1180 JMP EROK /JUMP IF OTHER 1190 ISZ CTZAP1 /CHANGE "MONKRS" 1200 ISZ CTZAP1 /TO "MONKRB" 1210 DCA CTZAP2 /ELIMINATE "MONKCC" 1220 EROK, JMS I [SETFLD] /RESTORE OUR FIELD 1230 MONTLS /SET THE OUTPUT FLAG NOW