100 / THE FOLLOWING WORD WILL EVENTUALLY CONTAIN THE ID VALUE FOR THE 110 / PARTICULAR READ/WRITE I/O SYSTEM. THIS VALUE IS INCLUDED IN THE CHECKSUM 120 / FOR THE "ROM" AREA AND SHOULD BE SET TO ZERO INITIALLY. 130 140 DEVWRD, 0 /WILL BE HARDWARE ID NUMBER 150 160 NOPUNCH /FOOL THE ASSEMBLER 170 180 / THE FOLLOWING WORD IS PROVIDED TO "KLUDGE" THE CHECKSUM TO A UNIQUE VALUE 190 / TO PREVENT INCORRECT MONITOR/OVERLAY LINKAGE WHEN BOOTING TO A NEW 200 / SYSTEM DEVICE/OVERLAY COMBINATION. THE OVERLAY TYPE*100+HARDWARE ID# 210 / SHOULD BE THE TOTAL CHECKSUM VALUE (INVERTED). 220 230 FUDWRD, .-. /WILL BE CHANGED AS NECESSARY 240 250 / OVERLAY ID NAME FIELD. 260 270 / THE FOLLOWING WORDS WILL BE UPDATED FROM THE BINARY OVERLAY FILES' 280 / SPECIAL ORIGIN SETTINGS IN THEIR HEADERS. 290 300 OVID, NMCH1 /FIRST PAIR OF DEVICE NAME CHARACTERS 310 NMCH2 /SECOND PAIR OF DEVICE NAME CHARACTERS 320 NMCH3 /THIRD PAIR OF DEVICE NAME CHARACTERS 330 340 ENPUNCH /UN-FOOL THE ASSEMBLER 350 360 *. /ESTABLISH CURRENT ORIGIN AGAIN 370 380 / THE FOLLOWING WORD WILL BE USED TO CALCULATE THE CHECKSUM FOR THE 390 / OVERLAY AND WILL BE ITS FINAL CHECKSUM VALUE. IT SHOULD CONTAIN THE 400 / UNIQUE OVERLAY TYPE NUMBER*100. 410 420 OVRWRD, OVTYPE^100 /OVERLAY TYPE WORD 430 EJECT 440 PAGE 450 460 / MONITOR INITIALIZATION STARTS HERE. 470 480 MONINIT,TAD INITSW /GET FIRST TIME SWITCH 490 SZA CLA /SKIP IF NOT FIRST TIME 500 JMS I (TRPINIT) /ELSE RELOAD THE TRAP BLOCKS 510 JMS I [SETFLD] /SET OUR DATA FIELD 520 TAD (ADRLST&177+TRPAGE-1) /SETUP 530 DCA CXR1 /ADDRESS POINTER 540 TAD (ZAPLST&177+TRPAGE-1) /SETUP 550 DCA CXR2 /REPLACEMENT POINTER 560 NL7776 /SETUP THE 570 DCA INCON /ZAPPING COUNT 580 IOZAPLP,TAD I CXR1 /GET AN ADDRESS TO ZAP 590 SNA /END OF A LIST? 600 JMP IOZAPEND /YES 610 DCA OUTLPT /NO, STASH THE POINTER 620 TAD I CXR2 /GET A REPLACEMENT VALUE 630 DCA OUTCON /STASH IT 640 TAD OUTCON /GET IT BACK 650 TAD (-CIF10) /COMPARE TO MAGIC VALUE 660 SZA CLA /SKIP IF IT MATCHES 670 JMP IOZAPOK /JUMP IF NOT 680 RIF /GET OUR FIELD 690 TAD [CDF] /FORM CDF OUR FIELD 700 IAC /TAD (CIF-CDF) /MAKE IT CIF OUR FIELD 710 DCA OUTCON /SAVE AS NEW REPLACEMENT VALUE 720 IOZAPOK,CDF 00 /GO TO FIELD ZERO 730 TAD OUTCON /GET REPLACEMENT VALUE 740 DCA I OUTLPT /ZAP IT IN 750 JMS I [SETFLD] /BACK TO OUR FIELD 760 JMP IOZAPLP /KEEP GOING 770 780 IOZAPEN,TAD (MONADR-1) /SETUP THE 790 DCA CXR1 /MONITOR ZAP LIST 800 TAD (MONZAP-1) /SETUP THE 810 DCA CXR2 /MONITOR CONTENTS LIST 820 ISZ INCON /DONE BOTH LISTS? 830 JMP IOZAPLP /NO, GO DO MONITOR ZAPS 840 ISZ INITSW /FIRST TIME? 850 JMP INITNORM /NO, JUST KEEP GOING 860 JMS I (INITEST) /GO PROVE THE CONSOLE HARDWARE EXISTS 870 880 / CLEAR EVERYTHING UPON OVERLAY RELOAD HERE. 890 900 JMS I (CLEAR) /DO CLEAR OPERATIONS NOW 910 EJECT 920 INITNOR,DCA INITSW /CLEAR THE SWITCH 930 JMS I (INTSET) /ENABLE DEVICE INTERRUPTS 940 JMS I (PDP12ENABLE) /ENABLE PDP-12 INTERRUPTS 950 TAD BAUDRATE /GET PRINTER BAUD RATE FOR DECMATE 960 LSBIOT /SET THE BAUD RATE 970 NOP /JUST IN CASE 980 CLA /CLEAN UP 990 TAD (-10) /SETUP THE 1000 DCA INCON /TIME-OUT COUNTER 1010 OUTTST, TSFIOT /FLAG UP? 1020 JMP OUTIME /NO, TIME IT OUT 1030 TFLIOT /RESET IT FOR DECMATE 1040 JMP OUTCOMMON /CONTINUE THERE 1050 1060 OUTIME, ISZ OUTLPT /WAITED ENOUGH? 1070 JMP OUTTST /NO, KEEP GOING 1080 ISZ INCON /WAITED TOO LONG? 1090 JMP OUTTST /NO, KEEP GOING 1100 TLSIOT /YES, SET THE FLAG NOW 1110 OUTCOMM,DCA XIOMON /RESET "ROM" LOCATION 1120 NL7775 /-3 1130 TAD INCHAR /COMPARE TO LATEST INPUT 1140 AND [177] /JUST SEVEN BITS