1 / VT-8/E OVERLAY FOR P?S/8 FOCAL 2 3 / LAST EDIT: 08-APR-1987 23:00:00 CJL 4 5 / MAY BE ASSEMBLED WITH '/J' SWITCH SET. 6 7 / P?S/8 FOCAL OVERLAY FOR DISPLAY OF X-Y POINTS ON THE VT-8/E. 8 9 / THIS OVERLAY PROVIDES A DISPLAY FUNCTION TO P?S/8 FOCAL SIMILAR TO FOCAL-12 10 / OR BASIC-RT. 11 12 / FUNCTIONS AVAILABLE: 13 14 / FDIS(X,Y) INSERT POINT AT (X,Y) (POINT NEED NOT BE CLEAR). 15 16 / FDIS(X,Y,0) CLEAR POINT AT (X,Y) (POINT NEED NOT BE PRESENT). 17 18 / FDIS(X,Y,NON-ZERO) TEST POINT AT (X,Y); RETURN 0 IF NOT PRESENT, -1 19 / IF PRESENT. 20 21 / FDIS(0) CLEAR ALL POINTS FROM DISPLAY. 22 23 / FDIS(NON-ZERO) SET ALL POINTS ON DISPLAY. 24 25 / FIO(NEGATIVE) RETURNS NUMERICAL VALUE (MODULO 128) OF NEXT ASCII 26 / CHARACTER TYPED; P?S/8 FOCAL WILL WAIT FOR INPUT 27 / IF NECESSARY (WHILE BUFFERING THE DISPLAY). SINCE 28 / INTEGER CONVERSION IS USED FOR EVALUATION, THE 29 / ARGUMENT MUST BE NEGATIVE OR WITHIN THE RANGE 30 / 2048-4095 MOD 4096. 31 32 / FIO(CHAR<2048) OUTPUT ASCII CHARACTER; P?S/8 FOCAL WILL BUFFER 33 / THE DISPLAY IF IT MUST WAIT TO OUTPUT THE CHARACTER. 34 / SINCE INTEGER CONVERSION IS USED FOR EVALUATION, 35 / THE ARGUMENT MUST BE POSITIVE AND BETWEEN 0000-2047 36 / MOD 2048. NORMAL OUTPUT DEVICES GENERALLY REDUCE 37 / THE CHARACTER VALUE RANGE TO 0000-0255 MOD 256 38 / ALLOWING ANY COMBINATION OF ASCII CHARACTER OUTPUT 39 / WITH OR WITHOUT PARITY SET. 40 / DOMAIN FOR X: [-94,+94] 41 42 / RANGE FOR Y: [-100,+99] 43 44 / OPTIONS (FOCAL/O): 45 46 / O(UTPUT) A(LTERNATING) OUTPUT BLINKING CHARACTERS (TO VT-8/E) 47 48 / O(UTPUT) B(OLD) OUTPUT BOLD CHARACTERS (TO VT-8/E) (DEFAULT) 49 50 / O(UTPUT) C(LEAR) CLEAR ALL OUTPUT, OUTPUT SCOPE, DISPLAY CHARACTERS-ONLY 51 52 / O(UTPUT) D(ELETE) DELETE POINTS, OUTPUT SCOPE, DISPLAY CHARACTERS-ONLY 53 54 / O(UTPUT) E(RASE) ERASE CHARACTERS, OUTPUT SCOPE, DISPLAY GRAPHICS-ONLY 55 56 / O(UTPUT) F(REE) OUTPUT IS FREE OF CURSOR 57 58 / O(PTION) G(ENERIC) GENERIC CONSOLE INPUT DEVICE; VT-8/E IF NO OVERLAY 59 60 / O(UTPUT) I(NVERTING) OUTPUT CURSOR CHARACTERS (TO VT-8/E) 61 62 / O(PTION) K(EYBOARD) DEVICE 03 (CONSOLE TERMINAL) KEYBOARD INPUT 63 64 / O(UTPUT) L(PT) DEVICE 66 (LINEPRINTER) OUTPUT 65 66 / O(PTION) M(ONITOR) RETURN TO P?S/8 KEYBOARD MONITOR. 67 68 / O(UTPUT) N(ORMAL) OUTPUT NORMAL CHARACTERS (TO VT-8/E) 69 70 / O(UTPUT) O(N) OUTPUT CURSOR IS ON 71 72 / O(UTPUT) P(RINTER) LOGICAL PRINTER OUTPUT (DEVICE 66 IF NO OVERLAY) 73 74 / O(UTPUT) S(COPE) OUTPUT TO VT-8/E (CONSOLE OVERLAY OR INTERNAL ROUTINES) 75 76 / O(UTPUT) T(ERMINAL) DEVICE 04 (CONSOLE TERMINAL) TERMINAL OUTPUT 77 78 / O(UTPUT) U(NIVERSAL) OUTPUT TO CONSOLE (VT-8/E IF NO OVERLAY) 79 80 / O(PTION) V(T-8/E) INPUT FROM VT-8/E KEYBOARD 81 82 / O(UTPUT) W(AIT) DISPLAY GRAPHICS-ONLY UNTIL NEXT INPUT, SET FORMER MODE 83 84 / ALL "O" COMMAND ERRORS REPORT ?30.00. 85 86 / ALL FOCAL "?" REPORTS (INCLUDING <^P>-CAUSED ?01.00) REVERT 87 / INPUT TO O(PTION) V(T-8/E) AND OUTPUT TO O(UTPUT) S(COPE). 88 / ASSEMBLY PARAMETERS. 89 90 / SET THE DISPLAY FIELD: 91 92 / DFIELD= 40 /DISPLAY FIELD(S) 93 94 / CONDITIONAL ASSEMBLY PARAMETERS. 95 96 IFNDEF DFIELD /USE FIELD FOUR (AND FIVE) FOR DISPLAY 97 IFNDEF CI /CONSOLE KEYBOARD IS DEVICE 03 98 IFNDEF CO /CONSOLE PRINTER IS DEVICE 04 99 IFNDEF KEY /VT-8/E KEYBOARD IS DEVICE 43 100 IFNDEF LP /LINE PRINTER IS DEVICE 66 101 IFNDEF VT /VT-8/E VIDEO IS DEVICE 45 102 103 / IOT DEFINITIONS. 104 105 DKIEIOT=KEY^10+6005 /KEYBOARD INTERRUPT ENABLE PER AC[11] 106 DKRBIOT=KEY^10+6006 /READ KEYBOARD BUFFER, CLEAR KEYBOARD FLAG 107 DKSFIOT=KEY^10+6001 /SKIP ON KEYBOARD FLAG 108 DPBLIOT=VT^10+6007 /GENERATE BELL TONE 109 DPCLIOT=VT^10+6006 /SKIP ON, CLEAR VIDEO RETRACE FLAG 110 DPGOIOT=VT^10+6001 /LOAD INTERRUPT ENABLE, VIDEO MODE, GO 111 DPLAIOT=VT^10+6000 /LOAD VIDEO DISPLAY ADDRESS 112 DPMSIOT=VT^10+6005 /READ SENSE REGISTER 113 DPSMIOT=VT^10+6002 /STOP DISPLAY 114 KIEIOT= CI^10+6005 /KEYBOARD INTERRUPT ENABLE PER AC[11] 115 KRBIOT= CI^10+6006 /READ KEYBOARD BUFFER, CLEAR FLAG 116 KSFIOT= CI^10+6001 /SKIP ON KEYBOARD FLAG 117 LLSIOT= LP^10+6006 /OUTPUT LPT: CHARACTER, CLEAR FLAG 118 LSFIOT= LP^10+6001 /SKIP ON (CLEAR IF 6120) LPT: FLAG 119 TCFIOT= CO^10+6002 /CLEAR TTY: FLAG 120 TLSIOT= CO^10+6006 /OUTPUT CHARACTER, CLEAR FLAG 121 TSFIOT= CO^10+6001 /SKIP ON (CLEAR IF 6120) OUTPUT FLAG 122 / DEFINITIONS FROM FOCAL, 1969 (ORIGINAL PAPER-TAPE VERSION). 123 124 BOTTOM= 0035 /END OF PUSHDOWN AREA 125 CHAR= 0066 /FOCAL'S CHARACTER BUFFER 126 COMGO= 1163 /COMMAND DISPATCH TABLE ADDRESS 127 COMLST= 0774 /COMMAND DECODING LIST 128 CSTAR= 0225 /ACKNOWLEDGE CHARACTER 129 EFUN3I= 0136 /FUNCTION RETURN POINTER 130 ERROR5= 2725 /ERROR FUNCTION 131 EVAL= 1613 /EVALUATOR ROUTINE 132 FIX= 6724 /INTEGER ROUTINE 133 FLAC= 0044 /FLOATING AC 134 FNTABF= 0374 /FUNCTION ADDRESS TABLE 135 FNTABL= 2165 /HASHED FUNCTION NAME TABLE 136 GETC= JMS I 145 /UNPACK A CHARACTER 137 INDEV= 0064 /INPUT ROUTINE POINTER 138 INTEGER=0053 /FLOATING TO FIXED CONVERSION POINTER 139 KEYHND= 3200 /KEYBOARD HANDLING ROUTINE 140 OUTDEV= 0063 /OUTPUT ROUTINE POINTER 141 PDLXR= 0013 /PUSHDOWN AUTO-INDEX REGISTER 142 POPA= TAD I PDLXR /REMOVE WORD FROM STACK 143 PROC= 0611 /FOCAL PROCESSING ADDRESS 144 PUSHA= JMS I 142 /PUSH WORD ONTO STACK 145 P7600= 0104 /CONSTANT 7600 146 RECOVR= 2740 /RECOVERY ADDRESS 147 RECOVX= 2761 /RECOVERY ADDRESS 148 RETURN= JMP I EFUN3I /FUNCTION RETURN INSTRUCTION 149 SORTC= JMS I 150 /SORT CHAR AGAINST LIST 150 SORTCN= 0054 /SORTC INDEX NUMBER 151 SPLAT= 3051 / LOCATION 152 SPNOR= JMS I 160 /IGNORE LEADING ZEROES AND SPACES 153 TELSW= 0016 /TERMINAL I/O IN PROGRESS SWITCH 154 TERMS= 1770 /TERMINATOR TABLE 155 XADC= 1343 /FADC FUNCTION ADDRESS 156 XDYS= 1142 /FDIS FUNCTION ADDRESS 157 XINT= 1160 /INTEGER PART ROUTINE 158 / DEFINITIONS FROM P?S/8 AND THE P?S/8 FOCAL AND VT-8/E OVERLAYS. 159 160 BEOFZAP=7505 /BINARY LOADER ZAP WORD 161 BLINK= 200-200 /BLINK MODE BITS 162 BOLD= 400-200 /BOLD MODE BITS 163 BONCE= 3600 /OVERLAY ONCE-ONLY ADDRESS 164 BUMPIT= 2613 /INTERRUPT LOCATION 165 CHKKCC= 3207 /KEYBOARD INTERRUPT LOCATION 166 CHKKSF= 2657 /KEYBOARD INTERRUPT LOCATION 167 CINPUT= 2600 /FOCAL INPUT ROUTINE 168 CONPAT= 2742 /RESTART PATCH LOCATION 169 COUTPUT=2630 /FOCAL OUTPUT ROUTINE 170 CSCQSW= 0037 /<^S>/<^Q> SWITCH 171 CURSOR= 600-200 /CURSOR MODE BITS 172 CURSW= 0075 /CURSOR ON SWITCH 173 DFINT= 2641 /DF32 INTERRUPT POINTER 174 INCHAR= 0126 /INPUT BUFFER 175 INCON= 0031 /CONSOLE INPUT ROUTINE 176 INTLST= 0003 /INTERRUPT LIST POINTER IN CONSOLE OVERLAY 177 INTXIT= 2711 /INTERRUPT EXIT ROUTINE IN P?S/8 FOCAL 178 LCOMZAP=7427 /"L" COMMAND ADDRESS 179 LIBZAP= 7500 /"L" COMMAND ADDRESS (/L) 180 MONSTRT=0353 /KEYBOARD MONITOR STARTUP ADDRESS 181 NORMAL= 000-200 /NORMAL MODE BITS 182 OUTCON= 0033 /CONSOLE OUTPUT ROUTINE 183 OUTLPT= 0035 /LOGICAL LPT: 184 SBOOT= 7600 /SYSTEM BOOTSTRAP ADDRESS 185 SBTFUN= 7602 /SYSTEM BOOTSTRAP FUNCTION 186 SCRSIZE=7611 /SYSTEM CORE SIZE WORD 187 SWAPBLK=2417 /SWAP BLOCK 188 SWAL= 7604 /PASSED SWITCHES: A-L 189 SWMX= 7605 /PASSED SWITCHES: M-X 190 SYSIO= 7640 /SYSTEM I/O ENTRY POINT 191 TABCNT= 0054 /TAB-IN COUNT LOCATION 192 TRYOUT= 2673 /OUTPUT INTERRUPT LOCATION 193 VMODE= 0074 /VT-8/E OUTPUT AUGMENTATION WORD 194 VTBFEND=4600 /END OF VT-8/E CHARACTER BUFFER 195 VTBUFFE=2200 /VT-8/E CHARACTER BUFFER 196 VTMODE= 0005 /VT-8/E MODE WORD IN OVERLAY 197 VTOFFSE=0200 /BUFFER OFFSET 198 / MISCELLANEOUS DEFINITIONS. 199 200 JMPC= JMP . /CURRENT PAGE JUMP INSTRUCTION 201 JMPIC= JMP I . /CURRENT PAGE JUMP INDIRECT INSTRUCTION 202 NL0001= CLA IAC /LOAD AC WITH 0001 203 NL0002= CLA CLL CML RTL /LOAD AC WITH 0002 204 NL0004= CLA CLL IAC RTL /LOAD AC WITH 00004 205 NL0006= CLA STL IAC RTL /LOAD AC WITH 0006 206 NL0100= CLA IAC BSW /LOAD AC WITH 0100 207 NL3777= CLA CLL CMA RAR /LOAD AC WITH 3777 208 NL4000= CLA CLL CML RAR /LOAD AC WITH 4000 209 NL7777= CLA CMA /LOAD AC WITH 7777 210 OSTART= 4070 /"O" COMMAND PATCH STARTING ADDRESS 211 VTWORDS=6200 /LENGTH OF VT-8/E GRAPHICS BUFFER 212 FIELD 0 /ENSURE FIELD ZERO 213 214 *174 /OVER AVAILABLE LOCATION 215 216 000174 1357 PCTCXIT,CTCXIT /<^C> EXIT ROUTINE POINTER 217 218 *FNTABF+3 /OVER FDIS ADDRESS 219 220 000377 1146 XDIS /POINT TO DISPLAY FUNCTION 221 222 *FNTABF+14 /OVER FNEW ADDRESS 223 224 000410 1142 XIO /POINT TO INPUT/OUTPUT FUNCTION 225 226 *XDYS /OVER EXISTING FDIS CODE 227 228 / FIO FUNCTION. 229 230 001142 4453 XIO, JMS I INTEGER /GET LOW-ORDER FROM FIXED FLAC 231 001143 7700 SMA CLA /SKIP IF INPUT REQUESTED 232 001144 5350 JMP XOUT /JUMP IF OUTPUT REQUESTED 233 001145 4464 JMS I INDEV /GET A CHARACTER 234 235 / AC WILL BE NON-ZERO IF FIO(NEGATIVE), ZERO IF FDIS(XX). 236 237 / FDIS FUNCTION ENTERS HERE WITH CLEAR AC. 238 239 001146 6242 XDIS, CIF DFIELD /GOTO CODE FIELD 240 001147 5103 JMP XIOMORE /CONTINUE THERE 241 242 / COMES HERE IF FIO(POSITIVE). 243 244 001150 1046 XOUT, TAD FLAC+2 /GET LOW-ORDER AGAIN 245 001151 4463 JMS I OUTDEV /OUTPUT IT 246 001152 5536 XRET, RETURN 247 248 / FLAC FIX FINISHES HERE. 249 250 001153 6242 INTRET, CIF DFIELD /GOTO CODE FIELD 251 001154 5062 JMP INTMORE /CONTINUE THERE 252 253 / FIELD ZERO EVALUATOR RETURN. 254 255 001155 6242 EVALRET,CIF DFIELD /GOTO CODE FIELD 256 001156 5100 JMP EVALMORE /CONTINUE THERE 257 258 001157 0000 ZBLOCK XINT-. /EMPTY SPACE 259 260 XINT= . /UPPER LIMIT FOR SUPPORT CODE 261 262 *COMGO+10 /OVER "L" ENTRY 263 264 001173 1360 LRET /USE OUR "L" COMMAND FOR NOW 265 *XADC+14 /OVER END OF FADC FUNCTION 266 267 CTCXIT= . /LOCATION WHICH WILL BE CLOBBERED TO A POSITIVE 268 /VALUE IF <^C> (OR LESS) IS HIT 269 270 001357 5536 CTCXIT, RETURN /RETURN FROM FADC FUNCTION; THIS WILL ENSURE A 271 /NORMAL (NEGATIVE) INSTRUCTION VALUE 272 273 / "L" COMMAND COMES HERE. 274 275 001360 6242 LRET, CIF DFIELD /GOTO CODE FIELD 276 001361 5063 JMP LMORE /CONTINUE THERE 277 278 *FNTABL+3 /OVER HASHED NAME TABLE ENTRY FOR FDIS 279 280 002170 2565 "D^2+"I^2+"S /MAKE SURE FDIS FUNCTION IS PRESENT 281 282 *FNTABL+14 /OVER HASHED NAME TABLE ENTRY FOR FNEW 283 284 002201 1141 "I^2+"O /ENTER FIO FUNCTION HASHED NAME VALUE 285 286 *SWAPBLK+3 /OVER EMPTY SPACE PAST SWAPPER 287 288 / PUSH ROUTINE COMES HERE. 289 290 002422 4542 DOPUSHA,PUSHA /SAVE AC ON STACK 291 002423 6242 CIF DFIELD /GOTO CODE FIELD 292 002424 5054 JMP PUSHMORE /CONTINUE THERE 293 294 *SPLAT /OVER CHARACTER 295 296 003051 0034 "\&37 /USE SPECIAL CHARACTER 297 298 *KEYHND+6 /OVER JMP I P7600/[SBOOT] 299 300 003206 4574 JMS I PCTCXIT/[CTCXIT]/CLOBBER CODE AND EXIT 301 FIELD DFIELD%10 /IN (FIRST) BUFFER FIELD 302 303 *0 /START AT THE BEGINNING 304 305 / EXTENDED INTERRUPT HANDLER. 306 307 040000 5577 OURINT, JMP I [MORINT] /CONTINUE THERE 308 309 040001 7211 ODEV, VTCON /**** NOT VT-8/E CONSOLE **** INTVT8E 310 040002 7211 OSCOPE, VTCON /**** NOT VT-8/E CONSOLE **** INTVT8E 311 040003 0000 POPTEM, .-. /POPAC TEMPORARY 312 040004 0000 REM, .-. /BIT COUNT 313 040005 0000 STORFLG,.-. /SET/CLEAR SWITCH 314 040006 0000 WORD, .-. /WORD ADDRESS 315 040007 0000 Y, .-. /LINE BASE 316 317 *10 /GET TO AUTO-INDEX AREA 318 319 040010 0000 XR1, .-. /AUTO-INDEX FOR DISPLAY 320 040011 0000 CHNGFLG,.-. /CHANGE POSSIBLE (NO-TEST) SWITCH 321 040012 5252 DBLALPH,DFIELD+10+2^101 /**** VT-8/E CONSOLE **** MCS+10+2^101 322 040013 0000 DCHAR, .-. /VT-8/E KEYBOARD CHARACTER BUFFER 323 040014 0000 KCHAR, .-. /DEVICE 03 KEYBOARD CHARACTER BUFFER 324 040015 0000 LOFOLD, -BOLD+BOLD /LOWER-CASE COMPENSATION 325 040016 0000 OCHAR, .-. /LATEST "O" COMMAND CHARACTER 326 040017 0000 UPFOLD, BOLD-BOLD /UPPER-CASE COMPENSATION FOR BOLD OUTPUT 327 328 *20 /GET PAST AUTO-INDEX AREA 329 330 040020 0000 DFLAG, 0 /VT-8/E KEYBOARD INTERRUPT WAKEUP FLAG 331 040021 0000 ISTAT, 0 /INTERRUPT STATUS WORD 332 040022 0000 I03MSK, 0 /DEVICE 03'S INTERRUPT STATUS BIT MASK 333 040023 0000 I43MSK, 0 /DEVICE 43'S INTERRUPT STATUS BIT MASK 334 040024 0000 KFLAG, 0 /DEVICE 03 KEYBOARD INTERRUPT WAKEUP FLAG 335 040025 7600 LSAVE, SBOOT /WILL BE ADDRESS OF PRIOR "L" COMMAND 336 040026 0020 OGENABL,DFLAG /**** CONSOLE **** OVFLAG 337 040027 0024 OKENABL,KFLAG /**** DEVICE 03 CONSOLE **** OVFLAG 338 040030 7221 OLPT, LPT /**** DEVICE 66 LPT: OVERLAY **** LLPT OR CON 339 040031 7221 OPRINT, LPT /**** CONSOLE **** LLPT 340 040032 7265 OTTY, TTY /**** DEVICE 04 OVERLAY **** CON OR LLPT 341 040033 7314 OUNPTR, INTVT8E /**** (VT-8/E) CONSOLE **** (VTCON OR) CON 342 040034 0000 OVCHAR, .-. /OVERLAY KEYBOARD CHARACTER BUFFER 343 040035 0020 OVENABL,DFLAG /**** VT-8/E CONSOLE **** OVFLAG 344 040036 0000 OVFLAG, 0 /OVERLAY INPUT INTERRUPT WAKEUP FLAG 345 040037 0000 O04MSK, 0 /DEVICE 04 INTERRUPT MASK FOR OVERLAY 346 040040 0000 O66MSK, 0 /DEVICE 66 INTERRUPT MASK FOR OVERLAY 347 040041 0000 TFLAG, 0 /DEVICE 04 DONE FLAG 348 / POP AC ROUTINE. 349 350 040042 0000 POPAC, .-. /POP THE AC ROUTINE 351 040043 6201 CDF 00 /GOTO FIELD ZERO 352 040044 2576 ISZ I [PDLXR] /BUMP LIST POINTER 353 040045 1576 TAD I [PDLXR] /GET THE LATEST VALUE 354 040046 3003 DCA POPTEM /STASH THE POINTER 355 040047 1403 TAD I POPTEM /GET THE VALUE FROM THE STACK INTO THE AC 356 040050 5442 JMP I POPAC /RETURN 357 358 / PUSH AC ONTO STACK ROUTINE. 359 360 040051 0000 PUSHAC, .-. /PUSH THE AC ROUTINE 361 040052 6203 CIF CDF 00 /GOING TO FIELD ZERO 362 040053 5575 JMP I [DOPUSHAC] /CONTINUE THERE 363 364 / COMES BACK HERE WHEN THROUGH. 365 366 040054 5451 PUSHMOR,JMP I PUSHAC /RETURN TO CALLER 367 368 / FIX THE FLAC ROUTINE. 369 370 040055 0000 INTAC, .-. /FIX THE FLAC ROUTINE 371 040056 1174 TAD [INTRET] /GET OUR RETURN ADDRESS 372 040057 6203 CIF CDF 00 /GOING TO FIELD ZERO 373 040060 3573 DCA I [FIX] /SETUP RETURN 374 040061 5572 JMP I [FIX+1] /GO EXECUTE ROUTINE THEN COME BACK 375 376 / COMES BACK HERE WHEN THROUGH. 377 378 040062 5455 INTMORE,JMP I INTAC /RETURN TO CALLER 379 380 / THE "L" COMMAND CONTINUES HERE. 381 382 040063 5571 LMORE, JMP I [LMORE2] /CONTINUE THERE 383 384 / RECURSIVE ARGUMENT EVALUATOR ROUTINE. 385 386 040064 0000 ARG, .-. /ARGUMENT ROUTINE 387 040065 1570 TAD I [CHAR] /GET LATEST CHARACTER 388 040066 1167 TAD [-",] /COMPARE TO "," 389 040067 7640 SZA CLA /SKIP IF IT MATCHES 390 040070 5464 JMP I ARG /ELSE JUST RETURN 391 040071 1064 TAD ARG /GET OUR CALLER 392 040072 7001 IAC /MAKE IT SKIP ULTIMATELY 393 040073 4051 JMS PUSHAC /SAVE ON STACK 394 040074 1166 TAD [EVALRETURN] /SETUP OUR RETURN ADDRESS 395 040075 4051 JMS PUSHAC /SAVE ON STACK ALSO 396 040076 6203 CIF CDF 00 /GOING TO FIELD ZERO 397 040077 5565 JMP I [EVAL-1] /GO EVALUATE ARGUMENT AND COME BACK 398 / COMES HERE AFTER EVALUATING OUR ARGUMENT. 399 400 040100 4042 EVALMOR,JMS POPAC /GET OUR RETURN ADDRESS 401 040101 3064 DCA ARG /RESTORE IT 402 040102 5464 JMP I ARG /RETURN TO CALLER (SKIP RETURN) 403 404 / COMES HERE TO FINISH THE "FIO", "FDIS" FUNCTIONS. 405 406 040103 7450 XIOMORE,SNA /I/O FUNCTION? 407 040104 5564 JMP I [DODISP] /NO, MUST BE DISPLAY 408 040105 0163 AND [177] /JUST SEVEN-BIT 409 040106 3562 VTSTRET,DCA I [FLAC+1] /STORE IN HIGH-ORDER 410 040107 3561 DCA I [FLAC+2] /CLEAR LOW-ORDER 411 040110 1176 TAD [13] /GET SHIFT FACTOR 412 040111 3560 DCA I [FLAC] /SET EXPONENT 413 040112 6203 DISPRET,CIF CDF 00 /GOING TO FIELD ZERO 414 040113 5557 JMP I [XRET] /FINISH IT THERE 415 PAGE 416 417 IFNZRO .&1777-VTOFFSET 418 419 VTGBUFFER=. /VT-8/E GRAPHICS BUFFER HERE 420 421 / ONCE-ONLY CODE (FROM BONCE) CONTINUES HERE. 422 423 / AC CONTAINS POTENTIAL "C" BIT FROM SOFTWARE CORE-SIZE WORD. 424 425 040200 7650 BONCE2, SNA CLA /SKIP IF "C" BIT SET 426 040201 5254 ILPTR, JMP NOCONSOLE /JUMP IF NOT SET 427 040202 1777 TAD I (SCRSIZE) /GET THE CORE SIZE WORD 428 040203 7012 RTR;RAR /MOVE OVER AND 040204 7010 429 040205 0376 AND (70) /ISOLATE MCS BITS 430 040206 1375 TAD (CDF 10) /FORM CDF MCS+10 431 040207 3006 DCA WORD /STASH IT 432 040210 6241 CDF DFIELD /GOTO OUR FIELD 433 040211 1006 TAD WORD /GET CDF MCS+10 434 040212 7001 IAC/TAD (CIF-CDF) /MAKE IT CIF MCS+10 435 040213 3774 DCA I (CON) /STORE IN VT-8/E CONSOLE OUTPUT ROUTINE 436 040214 1774 TAD I (CON) /GET IT BACK 437 040215 3773 DCA I (LPTCIF) /STORE IN LOGICAL LPT: ROUTINE 438 040216 1773 TAD I (LPTCIF) /GET IT BACK 439 040217 3772 DCA I (OVICIF) /STORE IN CONSOLE OVERLAY INPUT INTERRUPT HANDLER 440 040220 1006 TAD WORD /GET CDF MCS+10 441 040221 3222 DCA INLIN1 /STORE IN-LINE 442 040222 0000 INLIN1, .-. /WILL BE CDF MCS+10 443 040223 7307 NL0004 /SET OFFSET TO POTENTIAL INSTRUCTION 444 040224 1771 TAD I (INTLST) /POINT TO POTENTIAL DPCL INSTRUCTION 445 040225 3201 DCA ILPTR /STASH THE POINTER 446 040226 1770 TAD I (VTMODE) /GET CURRENT VT-8/E MODE WORD 447 040227 3007 DCA Y /SAVE IN CASE WE NEED IT 448 040230 1601 TAD I ILPTR /GET THE INTERRUPT ELEMENT 449 040231 1367 TAD (-DPCLIOT) /COMPARE TO EXPECTED VALUE 450 040232 7640 SZA CLA /SKIP IF IT MATCHES 451 040233 5253 JMP OCONSOLE /JUMP IF OTHER OVERLAY 452 040234 6241 CDF DFIELD /BACK TO OUR FIELD 453 040235 1006 TAD WORD /GET CDF MCS+10 454 040236 3766 DCA I (CONFOLD) /STORE IN OUTPUT FOLD ROUTINE 455 040237 1006 TAD WORD /GET IT AGAIN 456 040240 3765 DCA I (FRCACDF) /STORE IN ALPHA FORCE ROUTINE 457 040241 1006 TAD WORD /GET IT AGAIN 458 040242 3764 DCA I (GRPHCDF) /STORE IN GRAPHICS CHECK ROUTINE 459 040243 1006 TAD WORD /GET IT AGAIN 460 040244 3763 DCA I (OO) /STORE OVER CURSOR OFF ROUTINE 461 040245 1006 TAD WORD /GET IT AGAIN 462 040246 3762 DCA I (OW) /STORE OVER OUTPUT WAIT ROUTINE 463 040247 1006 TAD WORD /GET IT AGAIN 464 040250 3761 DCA I (VTRCDF) /STORE OVER "L" COMMAND CONTINUATION 465 040251 3760 DCA I (OVTENABLE) /ENABLE PREVIOUS MODE RESTORATION IN "L" COMMAND 466 040252 7350 NL3777 /INDICATE VT-8/E OVERLAY 467 040253 7001 OCONSOL,IAC /SET CORRECT CONSOLE TYPE 468 040254 3004 NOCONSO,DCA REM /STORE CONSOLE TYPE INDICATOR AS NECESSARY 469 040255 6241 CZAPLUP,CDF DFIELD /GOTO OUR FIELD 470 040256 1705 TAD I CZTPTR /GET AN OUTPUT ROUTINE ZAP WORD 471 040257 7450 SNA /END OF LIST? 472 040260 5266 JMP CZAPEND /YES 473 040261 6201 CDF 00 /GOTO FIELD ZERO 474 040262 3704 DCA I CZAPTR /ZAP IT IN 475 040263 2305 ISZ CZTPTR /BUMP TO NEXT ELEMENT 476 040264 2304 ISZ CZAPTR /BUMP TO NEXT ADDRESS 477 040265 5255 JMP CZAPLUP /KEEP GOING 478 479 040266 1004 CZAPEND,TAD REM /GET CONSOLE TYPE 480 040267 7710 SPA CLA /SKIP IF NON-VT-8/E CONSOLE OR NO CONSOLE AT ALL 481 040270 5757 JMP I (USEVT8EOVERLAY) /JUMP IF VT-8/E CONSOLE 482 040271 1356 TAD (INTVT8E) /POINT OUTPUT ROUTINE 483 040272 3001 DCA ODEV /AT OUR VT-8/E HANDLER 484 040273 1356 TAD (INTVT8E) /POINT THE O(UTPUT) S(COPE) ROUTINE 485 040274 3002 DCA OSCOPE /AT OUR VT-8/E HANDLER 486 040275 6252 CIF DFIELD+10 /GOTO OUR HANDLER FIELD 487 040276 4755 JMS I (CLEAR) /CLEAR OUR BUFFER 488 040277 1354 TAD (VTBUFFER) /POINT AT DISPLAY BUFFER 489 040300 6450 DPLAIOT /LOAD DISPLAY ADDRESS 490 040301 1353 TAD (DFIELD+10+1) /GET FIELD, MODE, INTERRUPT ENABLE 491 040302 6451 DPGOIOT /START UP THE DISPLAY 492 040303 5752 JMP I (OCOMN) /CONTINUE THERE 493 494 040304 2633 CZAPTR, COUTPUT+3 /WHERE OUTPUT CODE GOES 495 040305 1031 CZTPTR, CZTABLE /POINTER TO OUTPUT REPLACEMENT CODE 496 497 040352 0405 PAGE 040353 0051 040354 2200 040355 0670 040356 7314 040357 0400 040360 6524 040361 6526 040362 7102 040363 7032 040364 7405 040365 6537 040366 7335 040367 1322 040370 0005 040371 0003 040372 6651 040373 7260 040374 7212 040375 6211 040376 0070 040377 7611 498 040400 1007 USEVT8E,TAD Y /GET CURRENT DOUBLE-MODE WORD FROM OVERLAY 499 040401 3012 ILPTR2, DCA DBLALPHA /USE INSTEAD OF INTERNAL VALUE 500 040402 3777 DCA I (VT8LEAVE) /PREVENT DISPLAY LOSS IN "L" COMMAND 501 040403 1376 TAD (SKP) /PREVENT THE 502 040404 3775 DCA I (IVTINT) /OTHER VT-8/E INTERRUPT HANDLING 503 040405 1004 OCOMN, TAD REM /GET CONSOLE TYPE VALUE 504 040406 7450 SNA /SKIP IF SOME CONSOLE PRESENT 505 040407 5277 JMP NOCONENTRY /JUMP IF NO CONSOLE AT ALL 506 040410 7710 SPA CLA /SKIP IF NON-VT-8/E CONSOLE 507 040411 5214 JMP VCON /JUMP IF VT-8/E CONSOLE 508 040412 3774 DCA I (OUSPLAT) /MAKE SPLAT CHARACTER HARDCOPY-ORIENTED 509 040413 1373 TAD (CON-VTCON) /GET NORMAL CONSOLE OFFSET 510 040414 1372 VCON, TAD (VTCON) /GET VT-8/E CONSOLE ROUTINE ADDRESS 511 040415 3033 DCA OUNPTR /SETUP O(UTPUT) U(NIVERSAL) POINTER 512 040416 1006 TAD WORD /GET CDF MCS+10 513 040417 3222 DCA INLIN2 /STORE IN-LINE 514 040420 1006 TAD WORD /GET IT AGAIN 515 040421 3225 DCA DEVLUP /STORE IN-LINE 516 040422 0000 INLIN2, .-. /WILL BE CDF MCS+10 517 040423 1771 TAD I (INTLST) /GET INTERRUPT ELEMENT LIST POINTER 518 040424 3201 DCA ILPTR2 /STASH THE POINTER 519 040425 0000 DEVLUP, .-. /WILL BE CDF MCS+10 520 040426 1601 TAD I ILPTR2 /GET AN ELEMENT 521 040427 6241 CDF DFIELD /BACK TO OUR FIELD 522 040430 7450 SNA /END OF LIST? 523 040431 5251 JMP DEVEND /YES 524 040432 1370 TAD (-KSFIOT) /COMPARE TO POSSIBLE VALUE 525 040433 7440 SZA /SKIP IF IT MATCHES 526 040434 5237 JMP TEST43 /ELSE TRY OTHER VALUE 527 040435 1336 TAD IMASK /GET CURRENT INTERRUPT MASK 528 040436 3301 DCA ALLOW03 /STORE OVER CODE 529 040437 1367 TEST43, TAD (-DKSFIOT+KSFIOT) /COMPARE TO OTHER POSSIBLE VALUE 530 040440 7640 SZA CLA /SKIP IF IT MATCHES 531 040441 5244 JMP NXTEST /ELSE GO TRY NEXT ELEMENT 532 040442 1336 TAD IMASK /GET CURRENT INTERRUPT MASK 533 040443 3302 DCA ALLOW43 /STORE OVER CODE 534 040444 2201 NXTEST, ISZ ILPTR2 /BUMP TO NEXT ELEMENT 535 040445 1336 TAD IMASK /GET CURRENT MASK 536 040446 7104 CLL RAL /MOVE LEFT ONE BIT 537 040447 3336 DCA IMASK /STORE BACK 538 040450 5225 JMP DEVLUP /KEEP GOING 539 040451 1366 DEVEND, TAD (OVFLAG) /POINT THE O(PTION) G(ENERIC) COMMAND 540 040452 3026 DCA OGENABLE /AT THE CONSOLE OVERLAY 541 040453 3765 DCA I (OVINT) /ENABLE OVERLAY INPUT INTERRUPT HANDLER 542 040454 1302 TAD ALLOW43 /GET ENABLE INSTRUCTION 543 040455 7510 SPA /SKIP IF ZAPPED 544 040456 5277 JMP NOCONENTRY /ELSE FORGET IT 545 040457 3023 DCA I43MSK /SAVE AS INTERRUPT MASK (IF NEEDED) 546 040460 7240 NL7777 /SET PRIMARY COMPARE VALUE 547 040461 1023 TAD I43MSK /COMPARE TO ACTUAL VALUE 548 040462 7640 SZA CLA /SKIP IF PRIMARY INTERRUPT 549 040463 5270 JMP SEC43 /GO HANDLE AS SECONDARY DEVICE 550 040464 2036 ISZ OVFLAG /ENABLE OVERLAY INPUT BY DEFAULT (O(PTION) V(T8E)) 551 040465 1366 TAD (OVFLAG) /POINT THE O(PTION) V(T-8/E) COMMAND 552 040466 3035 DCA OVENABLE /AT THE CONSOLE OVERLAY 553 040467 5301 JMP ALLOW03 /CONTINUE THERE 554 555 / IF THE DEVICE 43 KEYBOARD IS NOT THE PRIMARY INPUT DEVICE WITHIN THIS 556 / OVERLAY, WE MUST HANDLE INTERRUPTS FROM IT DIFFERENTLY. 557 558 040470 1364 SEC43, TAD (TAD I43MSK) /GET MASK INSTRUCTION 559 040471 3763 DCA I (INT43) /ZAP DEVICE 43 INTERRUPT HANDLER 560 040472 1362 TAD (AND ISTAT) /GET "AND ISTAT" INSTRUCTION 561 040473 3761 DCA I (INT43+1) /ZAP THE INTERRUPT HANDLER 562 040474 1360 TAD (SNA CLA) /GET "SNA CLA" INSTRUCTION 563 040475 3757 DCA I (INT43+2) /ZAP THE INTERRUPT HANDLER 564 040476 4756 JMS I (ENAB43) /ENABLE DEVICE 43 INTERRUPTS 565 040477 2020 NOCONEN,ISZ DFLAG /ENABLE DEVICE 43 FOR INPUT 566 040500 7200 CLA /CLEAN UP 567 040501 4755 ALLOW03,JMS I (ENAB03) /**** ZAPPED **** C(IMASK) 568 040502 4756 ALLOW43,JMS I (ENAB43) /**** ZAPPED **** C(IMASK) 569 040503 1301 TAD ALLOW03 /GET INSTRUCTION 570 040504 7510 SPA /SKIP IF ZAPPED 571 040505 5325 JMP NORM03 /JUMP IF NOT 572 040506 3022 DCA I03MSK /SAVE AS INTERRUPT MASK (IF NEEDED) 573 040507 7240 NL7777 /SET PRIMARY COMPARE VALUE 574 040510 1022 TAD I03MSK /COMPARE TO ACTUAL VALUE 575 040511 7640 SZA CLA /SKIP IF PRIMARY INTERRUPT 576 040512 5316 JMP SEC03 /GO HANDLE AS SECONDARY DEVICE 577 040513 1366 TAD (OVFLAG) /POINT THE O(PTION) K(EYBOARD) COMMAND 578 040514 3027 DCA OKENABLE /AT OUR ROUTINE 579 040515 5325 JMP NORM03 /CONTINUE THERE 580 581 040516 1354 SEC03, TAD (TAD I03MSK) /GET MASK INSTRUCTION 582 040517 3753 DCA I (INT03) /ZAP DEVICE 03 INTERRUPT HANDLER 583 040520 1362 TAD (AND ISTAT) /GET "AND ISTAT" INSTRUCTION 584 040521 3752 DCA I (INT03+1) /STORE OVER INTERRUPT HANDLER 585 040522 1360 TAD (SNA CLA) /GET "SNA CLA" INSTRUCTION 586 040523 3751 DCA I (INT03+2) /STORE OVER INTERRUPT HANDLER 587 040524 4755 JMS I (ENAB03) /ENABLE DEVICE 03 INTERRUPTS 588 040525 7200 NORM03, CLA /CLEAN UP 589 040526 1004 TAD REM /GET CONSOLE TYPE 590 040527 7710 SPA CLA /SKIP IF NOT VT-8/E CONSOLE 591 040530 5750 JMP I (NOSTAR) /ELSE DON'T REPEAT PROMPT 592 040531 6201 CDF 00 /GOTO FIELD ZERO 593 040532 1747 TAD I (CSTAR) /GET PREVAILING PROMPT CHARACTER 594 040533 6241 CDF DFIELD /BACK TO OUR FIELD 595 040534 4746 JMS I (OUT) /SEND THE CHARACTER 596 040535 5750 JMP I (NOSTAR) /CONTINUE THERE 597 598 040536 0001 IMASK, 1 /INTERRUPT LIST ELEMENT MASK VALUE 599 600 040546 7200 PAGE 040547 0225 040550 0600 040551 6630 040552 6627 040553 6626 040554 1022 040555 1000 040556 1005 040557 6612 040560 7650 040561 6611 040562 0021 040563 6610 040564 1023 040565 6643 040566 0036 040567 7400 040570 1747 040571 0003 040572 7211 040573 0001 040574 7151 040575 6605 040576 7410 040577 7516 601 040600 1004 NOSTAR, TAD REM /GET CONSOLE TYPE 602 040601 7650 ILPTR3, SNA CLA /SKIP IF OVERLAY PRESENT 603 040602 5274 JMP NOLOVER /JUMP IF NOT 604 040603 1377 TAD (LLPT) /SETUP FOR LOGICAL PRINTER 605 040604 3031 DCA OPRINT /IN O(UTPUT) P(RINTER) COMMAND 606 040605 1006 TAD WORD /GET CDF MCS+10 607 040606 3207 DCA INLIN3 /STORE IN-LINE 608 040607 0000 INLIN3, .-. /WILL BE CDF MCS+10 609 040610 1776 TAD I (INTLST) /GET INTERRUPT LIST POINTER 610 040611 3201 DCA ILPTR3 /STASH IT 611 040612 1601 OUTLUP, TAD I ILPTR3 /GET AN ELEMENT 612 040613 7450 SNA /END OF LIST? 613 040614 5234 JMP OUTEND /YES 614 040615 1375 TAD (-TSFIOT) /COMPARE TO DEVICE 04 VALUE 615 040616 7440 SZA /SKIP IF IT MATCHES 616 040617 5222 JMP TEST66 /ELSE TRY LPT: 617 040620 1324 TAD OMASK /GET CURRENT MASK 618 040621 3037 DCA O04MSK /USE FOR DEVICE 04 619 040622 1374 TEST66, TAD (-LSFIOT+TSFIOT)/COMPARE TO DEVICE 66 VALUE 620 040623 7640 SZA CLA /SKIP IF IT MATCHES 621 040624 5227 JMP NXTTEST /JUMP IF NOT 622 040625 1324 TAD OMASK /GET CURRENT MASK 623 040626 3040 DCA O66MSK /USE FOR DEVICE 66 624 040627 2201 NXTTEST,ISZ ILPTR3 /BUMP TO NEXT ELEMENT 625 040630 1324 TAD OMASK /GET THE MASK 626 040631 7104 CLL RAL /MOVE UP 627 040632 3324 DCA OMASK /STORE BACK 628 040633 5212 JMP OUTLUP /KEEP GOING 629 630 040634 6241 OUTEND, CDF DFIELD /BACK TO OUR FIELD 631 040635 1040 TAD O66MSK /GET THE DEVICE 66 MASK VALUE 632 040636 7450 SNA /SKIP IF FOUND 633 040637 5254 JMP TEST04 /JUMP IF NOT 634 040640 1373 TAD (-2) /COMPARE TO CONSOLE OUTPUT VALUE 635 040641 7450 SNA /SKIP IF OTHER 636 040642 5251 JMP USECON /JUMP IF CONSOLE VALUE 637 040643 1372 TAD (-10+2) /COMPARE TO LOGICAL PRINTER VALUE 638 040644 7650 SNA CLA /SKIP IF OTHER 639 040645 5252 JMP USELLPT /JUMP IF LOGICAL PRINTER VALUE 640 040646 1371 TAD (SECLPT) /SETUP FOR 641 040647 3770 DCA I (LPTR) /SECONDARY HANDLING 642 040650 5254 JMP TEST04 /CONTINUE THERE 643 644 040651 1367 USECON, TAD (CON-LLPT) /USE CON VALUE 645 040652 1377 USELLPT,TAD (LLPT) /USE LOGICAL LPT: VALUE 646 040653 3030 DCA OLPT /STASH THE ROUTINE POINTER 647 040654 1037 TEST04, TAD O04MSK /GET DEVICE 04 MASK VALUE 648 040655 7450 SNA /SKIP IF FOUND 649 040656 5274 JMP NOLOVER /JUMP IF NOT 650 040657 1373 TAD (-2) /COMPARE TO CONSOLE VALUE 651 040660 7450 SNA /SKIP IF OTHER 652 040661 5270 JMP USETCON /JUMP IF CONSOLE VALUE 653 040662 1372 TAD (-10+2) /COMPARE TO LOGICAL PRINTER VALUE 654 040663 7650 SNA CLA /SKIP IF OTHER 655 040664 5271 JMP USETLPT /JUMP IF LOGICAL PRINTER VALUE 656 040665 1366 TAD (SECTTY) /GET SECONDARY HANDLER VALUE 657 040666 3765 DCA I (TPTR) /STASH THE POINTER 658 040667 5277 JMP NOLCOM /CONTINUE THERE 659 660 040670 1367 USETCON,TAD (CON-LLPT) /USE CON VALUE 661 040671 1377 USETLPT,TAD (LLPT) /USE LPT VALUE 662 040672 3032 DCA OTTY /STASH THE POINTER 663 040673 5277 JMP NOLCOM /CONTINUE THERE 664 665 040674 4764 NOLOVER,JMS I (ENABLE) /ENABLE DEVICE 04 666 040675 6035 KIEIOT /WITH THIS FOR INTERRUPT ENABLE 667 040676 6664 TTYTST /ENABLE THIS INTERRUPT HANDLER 668 040677 6203 NOLCOM, CIF CDF 00 /GOING TO FIELD ZERO 669 040700 1363 TAD (INTXIT&177+JMPC) /GET INTERRUPT BYPASS INSTRUCTION 670 040701 3762 DCA I (CHKKSF) /PREVENT NORMAL HANDLING 671 040702 1361 TAD (INTXIT+4&177+JMPC) /GET INTERRUPT BYPASS INSTRUCTION 672 040703 3760 DCA I (TRYOUT) /PREVENT NORMAL HANDLING 673 040704 1357 TAD (CLA!400) /GET CLEARING INSTRUCTION 674 040705 3756 DCA I (CONPAT) /PREVENT IN-PROGRESS SWITCH SET 675 040706 3755 DCA I (TELSW) /CANCEL ANY I/O IN PROGRESS 676 040707 1354 TAD (CIF DFIELD) /GET FIELD INSTRUCTION 677 040710 3753 DCA I (INTXIT+2) /ZAP IT IN 678 040711 1352 TAD (JMP OURINT) /GET INTERRUPT JUMP INSTRUCTION 679 040712 3751 DCA I (INTXIT+3) /ZAP IT IN 680 040713 1354 TAD (CIF DFIELD) /GET FIELD INSTRUCTION 681 040714 3750 DCA I (RECOVR+15) /ZAP IT IN 682 040715 1347 TAD (RECOVR+17&177+JMPIC) /GET JUMP INSTRUCTION 683 040716 3746 DCA I (RECOVR+16) /ZAP IT IN 684 040717 1345 TAD (RECFIX) /GET POINTER 685 040720 3744 DCA I (RECOVR+17) /ZAP IT IN 686 040721 3743 DCA I (RECOVR+20) /PREVENT POINTER UPDATE 687 040722 3742 DCA I (RECOVX+1) /PREVENT RECOVERY PROBLEMS 688 040723 5741 JMP I (BONCE3) /REJOIN FIELD ZERO ONCE-ONLY CODE 689 690 040724 0001 OMASK, 1 /OUTPUT INTERRUPT MASK VARIABLE 691 040741 3604 PAGE 040742 2762 040743 2760 040744 2757 040745 7144 040746 2756 040747 5757 040750 2755 040751 2714 040752 5000 040753 2713 040754 6242 040755 0016 040756 2742 040757 7600 040760 2673 040761 5315 040762 2657 040763 5311 040764 1012 040765 7274 040766 7303 040767 7744 040770 7231 040771 7235 040772 7772 040773 7776 040774 7160 040775 1737 040776 0003 040777 7246 692 041000 0000 ENAB03, .-. /DEVICE 03 ENABLE ROUTINE 693 041001 4212 JMS ENABLE /CALL ENABLE ROUTINE 694 041002 6035 KIEIOT /OUR INTERRUPT ENABLE IOT 695 041003 6625 KEYINT /WHERE TO ZAP THE ROUTINE 696 041004 5600 JMP I ENAB03 /RETURN 697 698 041005 0000 ENAB43, .-. /DEVICE 43 ENABLE ROUTINE 699 041006 4212 JMS ENABLE /CALL ENABLE ROUTINE 700 041007 6435 DKIEIOT /OUR INTERRUPT ENABLE IOT 701 041010 6607 MORBACK /WHERE TO ZAP THE ROUTINE 702 041011 5605 JMP I ENAB43 /RETURN 703 704 041012 0000 ENABLE, .-. /DEVICE ENABLE ROUTINE 705 041013 6241 CDF DFIELD /ENSURE OUR FIELD 706 041014 1612 TAD I ENABLE /GET ENABLE IOT 707 041015 3223 DCA ENABIOT /STORE IN-LINE 708 041016 2212 ISZ ENABLE /BUMP TO NEXT 709 041017 1612 TAD I ENABLE /GET ROUTINE ADDRESS 710 041020 3230 DCA ENAPTR /STASH THE POINTER 711 041021 2212 ISZ ENABLE /BUMP PAST ARGUMENT 712 041022 7240 NL7777 /SET INTERRUPT ENABLE BITS 713 041023 0000 ENABIOT,.-. /WILL BE PASSED IOT 714 041024 7000 NOP /JUST IN CASE 715 041025 7200 CLA /CLEAN UP 716 041026 3630 DCA I ENAPTR /ENABLE THE ROUTINE ALSO 717 041027 5612 JMP I ENABLE /RETURN 718 719 041030 0000 ENAPTR, .-. /ENABLE POINTER 720 721 CZTABLE,RELOC COUTPUT+3 /WHERE NEW OUTPUT CODE GOES 722 723 042633* 1037 TAD CSCQSW /GET <^S>/<^Q> SWITCH 724 042634* 7640 SZA CLA /SKIP IF CLEAR 725 042635* 5233 JMP .-2 /ELSE WAIT FOR IT 726 042636* 1200 TAD CINPUT /GET THE VALUE 727 042637* 6242 CIF DFIELD /GOTO CODE FIELD 728 042640* 4645 JMS I POUT/(OUT) /CALL CURRENT OUTPUT ROUTINE 729 042641* 7650 DFINT, SNA CLA /THIS WILL NEVER SKIP 730 042642* 3016 DCA TELSW /CLEAR IN-PROGRESS SWITCH 731 042643* 6001 ION /MAKE SURE INTERRUPT IS ON 732 042644* 5630 JMP I COUTPUT /RETURN 733 734 042645* 7200 POUT, OUT /POINTER TO OUTPUT ROUTINE 735 042646* 0000 0 /THIS ENDS THE LIST 736 737 RELOC /BACK TO NORMAL 738 PAGE 739 740 NOPUNCH /FOOL THE ASSEMBLER 741 742 041200 0000 ZBLOCK VTGBUF+VTWORDS-./REST OF GRAPHICS BUFFER 041201 0000 041202 0000 041203 0000 041204 0000 041205 0000 041206 0000 041207 0000 041210 0000 041211 0000 041212 0000 041213 0000 041214 0000 041215 0000 041216 0000 041217 0000 041220 0000 041221 0000 041222 0000 041223 0000 041224 0000 041225 0000 041226 0000 041227 0000 041230 0000 041231 0000 041232 0000 041233 0000 041234 0000 041235 0000 041236 0000 041237 0000 041240 0000 041241 0000 041242 0000 041243 0000 041244 0000 041245 0000 041246 0000 041247 0000 041250 0000 041251 0000 041252 0000 041253 0000 041254 0000 041255 0000 041256 0000 041257 0000 041260 0000 041261 0000 041262 0000 041263 0000 041264 0000 041265 0000 041266 0000 041267 0000 041270 0000 041271 0000 041272 0000 041273 0000 041274 0000 041275 0000 041276 0000 041277 0000 041300 0000 041301 0000 041302 0000 041303 0000 041304 0000 041305 0000 041306 0000 041307 0000 041310 0000 041311 0000 041312 0000 041313 0000 041314 0000 041315 0000 041316 0000 041317 0000 041320 0000 041321 0000 041322 0000 041323 0000 041324 0000 041325 0000 041326 0000 041327 0000 041330 0000 041331 0000 041332 0000 041333 0000 041334 0000 041335 0000 041336 0000 041337 0000 041340 0000 041341 0000 041342 0000 041343 0000 041344 0000 041345 0000 041346 0000 041347 0000 041350 0000 041351 0000 041352 0000 041353 0000 041354 0000 041355 0000 041356 0000 041357 0000 041360 0000 041361 0000 041362 0000 041363 0000 041364 0000 041365 0000 041366 0000 041367 0000 041370 0000 041371 0000 041372 0000 041373 0000 041374 0000 041375 0000 041376 0000 041377 0000 041400 0000 041401 0000 041402 0000 041403 0000 041404 0000 041405 0000 041406 0000 041407 0000 041410 0000 041411 0000 041412 0000 041413 0000 041414 0000 041415 0000 041416 0000 041417 0000 041420 0000 041421 0000 041422 0000 041423 0000 041424 0000 041425 0000 041426 0000 041427 0000 041430 0000 041431 0000 041432 0000 041433 0000 041434 0000 041435 0000 041436 0000 041437 0000 041440 0000 041441 0000 041442 0000 041443 0000 041444 0000 041445 0000 041446 0000 041447 0000 041450 0000 041451 0000 041452 0000 041453 0000 041454 0000 041455 0000 041456 0000 041457 0000 041460 0000 041461 0000 041462 0000 041463 0000 041464 0000 041465 0000 041466 0000 041467 0000 041470 0000 041471 0000 041472 0000 041473 0000 041474 0000 041475 0000 041476 0000 041477 0000 041500 0000 041501 0000 041502 0000 041503 0000 041504 0000 041505 0000 041506 0000 041507 0000 041510 0000 041511 0000 041512 0000 041513 0000 041514 0000 041515 0000 041516 0000 041517 0000 041520 0000 041521 0000 041522 0000 041523 0000 041524 0000 041525 0000 041526 0000 041527 0000 041530 0000 041531 0000 041532 0000 041533 0000 041534 0000 041535 0000 041536 0000 041537 0000 041540 0000 041541 0000 041542 0000 041543 0000 041544 0000 041545 0000 041546 0000 041547 0000 041550 0000 041551 0000 041552 0000 041553 0000 041554 0000 041555 0000 041556 0000 041557 0000 041560 0000 041561 0000 041562 0000 041563 0000 041564 0000 041565 0000 041566 0000 041567 0000 041570 0000 041571 0000 041572 0000 041573 0000 041574 0000 041575 0000 041576 0000 041577 0000 041600 0000 041601 0000 041602 0000 041603 0000 041604 0000 041605 0000 041606 0000 041607 0000 041610 0000 041611 0000 041612 0000 041613 0000 041614 0000 041615 0000 041616 0000 041617 0000 041620 0000 041621 0000 041622 0000 041623 0000 041624 0000 041625 0000 041626 0000 041627 0000 041630 0000 041631 0000 041632 0000 041633 0000 041634 0000 041635 0000 041636 0000 041637 0000 041640 0000 041641 0000 041642 0000 041643 0000 041644 0000 041645 0000 041646 0000 041647 0000 041650 0000 041651 0000 041652 0000 041653 0000 041654 0000 041655 0000 041656 0000 041657 0000 041660 0000 041661 0000 041662 0000 041663 0000 041664 0000 041665 0000 041666 0000 041667 0000 041670 0000 041671 0000 041672 0000 041673 0000 041674 0000 041675 0000 041676 0000 041677 0000 041700 0000 041701 0000 041702 0000 041703 0000 041704 0000 041705 0000 041706 0000 041707 0000 041710 0000 041711 0000 041712 0000 041713 0000 041714 0000 041715 0000 041716 0000 041717 0000 041720 0000 041721 0000 041722 0000 041723 0000 041724 0000 041725 0000 041726 0000 041727 0000 041730 0000 041731 0000 041732 0000 041733 0000 041734 0000 041735 0000 041736 0000 041737 0000 041740 0000 041741 0000 041742 0000 041743 0000 041744 0000 041745 0000 041746 0000 041747 0000 041750 0000 041751 0000 041752 0000 041753 0000 041754 0000 041755 0000 041756 0000 041757 0000 041760 0000 041761 0000 041762 0000 041763 0000 041764 0000 041765 0000 041766 0000 041767 0000 041770 0000 041771 0000 041772 0000 041773 0000 041774 0000 041775 0000 041776 0000 041777 0000 042000 0000 042001 0000 042002 0000 042003 0000 042004 0000 042005 0000 042006 0000 042007 0000 042010 0000 042011 0000 042012 0000 042013 0000 042014 0000 042015 0000 042016 0000 042017 0000 042020 0000 042021 0000 042022 0000 042023 0000 042024 0000 042025 0000 042026 0000 042027 0000 042030 0000 042031 0000 042032 0000 042033 0000 042034 0000 042035 0000 042036 0000 042037 0000 042040 0000 042041 0000 042042 0000 042043 0000 042044 0000 042045 0000 042046 0000 042047 0000 042050 0000 042051 0000 042052 0000 042053 0000 042054 0000 042055 0000 042056 0000 042057 0000 042060 0000 042061 0000 042062 0000 042063 0000 042064 0000 042065 0000 042066 0000 042067 0000 042070 0000 042071 0000 042072 0000 042073 0000 042074 0000 042075 0000 042076 0000 042077 0000 042100 0000 042101 0000 042102 0000 042103 0000 042104 0000 042105 0000 042106 0000 042107 0000 042110 0000 042111 0000 042112 0000 042113 0000 042114 0000 042115 0000 042116 0000 042117 0000 042120 0000 042121 0000 042122 0000 042123 0000 042124 0000 042125 0000 042126 0000 042127 0000 042130 0000 042131 0000 042132 0000 042133 0000 042134 0000 042135 0000 042136 0000 042137 0000 042140 0000 042141 0000 042142 0000 042143 0000 042144 0000 042145 0000 042146 0000 042147 0000 042150 0000 042151 0000 042152 0000 042153 0000 042154 0000 042155 0000 042156 0000 042157 0000 042160 0000 042161 0000 042162 0000 042163 0000 042164 0000 042165 0000 042166 0000 042167 0000 042170 0000 042171 0000 042172 0000 042173 0000 042174 0000 042175 0000 042176 0000 042177 0000 042200 0000 042201 0000 042202 0000 042203 0000 042204 0000 042205 0000 042206 0000 042207 0000 042210 0000 042211 0000 042212 0000 042213 0000 042214 0000 042215 0000 042216 0000 042217 0000 042220 0000 042221 0000 042222 0000 042223 0000 042224 0000 042225 0000 042226 0000 042227 0000 042230 0000 042231 0000 042232 0000 042233 0000 042234 0000 042235 0000 042236 0000 042237 0000 042240 0000 042241 0000 042242 0000 042243 0000 042244 0000 042245 0000 042246 0000 042247 0000 042250 0000 042251 0000 042252 0000 042253 0000 042254 0000 042255 0000 042256 0000 042257 0000 042260 0000 042261 0000 042262 0000 042263 0000 042264 0000 042265 0000 042266 0000 042267 0000 042270 0000 042271 0000 042272 0000 042273 0000 042274 0000 042275 0000 042276 0000 042277 0000 042300 0000 042301 0000 042302 0000 042303 0000 042304 0000 042305 0000 042306 0000 042307 0000 042310 0000 042311 0000 042312 0000 042313 0000 042314 0000 042315 0000 042316 0000 042317 0000 042320 0000 042321 0000 042322 0000 042323 0000 042324 0000 042325 0000 042326 0000 042327 0000 042330 0000 042331 0000 042332 0000 042333 0000 042334 0000 042335 0000 042336 0000 042337 0000 042340 0000 042341 0000 042342 0000 042343 0000 042344 0000 042345 0000 042346 0000 042347 0000 042350 0000 042351 0000 042352 0000 042353 0000 042354 0000 042355 0000 042356 0000 042357 0000 042360 0000 042361 0000 042362 0000 042363 0000 042364 0000 042365 0000 042366 0000 042367 0000 042370 0000 042371 0000 042372 0000 042373 0000 042374 0000 042375 0000 042376 0000 042377 0000 042400 0000 042401 0000 042402 0000 042403 0000 042404 0000 042405 0000 042406 0000 042407 0000 042410 0000 042411 0000 042412 0000 042413 0000 042414 0000 042415 0000 042416 0000 042417 0000 042420 0000 042421 0000 042422 0000 042423 0000 042424 0000 042425 0000 042426 0000 042427 0000 042430 0000 042431 0000 042432 0000 042433 0000 042434 0000 042435 0000 042436 0000 042437 0000 042440 0000 042441 0000 042442 0000 042443 0000 042444 0000 042445 0000 042446 0000 042447 0000 042450 0000 042451 0000 042452 0000 042453 0000 042454 0000 042455 0000 042456 0000 042457 0000 042460 0000 042461 0000 042462 0000 042463 0000 042464 0000 042465 0000 042466 0000 042467 0000 042470 0000 042471 0000 042472 0000 042473 0000 042474 0000 042475 0000 042476 0000 042477 0000 042500 0000 042501 0000 042502 0000 042503 0000 042504 0000 042505 0000 042506 0000 042507 0000 042510 0000 042511 0000 042512 0000 042513 0000 042514 0000 042515 0000 042516 0000 042517 0000 042520 0000 042521 0000 042522 0000 042523 0000 042524 0000 042525 0000 042526 0000 042527 0000 042530 0000 042531 0000 042532 0000 042533 0000 042534 0000 042535 0000 042536 0000 042537 0000 042540 0000 042541 0000 042542 0000 042543 0000 042544 0000 042545 0000 042546 0000 042547 0000 042550 0000 042551 0000 042552 0000 042553 0000 042554 0000 042555 0000 042556 0000 042557 0000 042560 0000 042561 0000 042562 0000 042563 0000 042564 0000 042565 0000 042566 0000 042567 0000 042570 0000 042571 0000 042572 0000 042573 0000 042574 0000 042575 0000 042576 0000 042577 0000 042600 0000 042601 0000 042602 0000 042603 0000 042604 0000 042605 0000 042606 0000 042607 0000 042610 0000 042611 0000 042612 0000 042613 0000 042614 0000 042615 0000 042616 0000 042617 0000 042620 0000 042621 0000 042622 0000 042623 0000 042624 0000 042625 0000 042626 0000 042627 0000 042630 0000 042631 0000 042632 0000 042633 0000 042634 0000 042635 0000 042636 0000 042637 0000 042640 0000 042641 0000 042642 0000 042643 0000 042644 0000 042645 0000 042646 0000 042647 0000 042650 0000 042651 0000 042652 0000 042653 0000 042654 0000 042655 0000 042656 0000 042657 0000 042660 0000 042661 0000 042662 0000 042663 0000 042664 0000 042665 0000 042666 0000 042667 0000 042670 0000 042671 0000 042672 0000 042673 0000 042674 0000 042675 0000 042676 0000 042677 0000 042700 0000 042701 0000 042702 0000 042703 0000 042704 0000 042705 0000 042706 0000 042707 0000 042710 0000 042711 0000 042712 0000 042713 0000 042714 0000 042715 0000 042716 0000 042717 0000 042720 0000 042721 0000 042722 0000 042723 0000 042724 0000 042725 0000 042726 0000 042727 0000 042730 0000 042731 0000 042732 0000 042733 0000 042734 0000 042735 0000 042736 0000 042737 0000 042740 0000 042741 0000 042742 0000 042743 0000 042744 0000 042745 0000 042746 0000 042747 0000 042750 0000 042751 0000 042752 0000 042753 0000 042754 0000 042755 0000 042756 0000 042757 0000 042760 0000 042761 0000 042762 0000 042763 0000 042764 0000 042765 0000 042766 0000 042767 0000 042770 0000 042771 0000 042772 0000 042773 0000 042774 0000 042775 0000 042776 0000 042777 0000 043000 0000 043001 0000 043002 0000 043003 0000 043004 0000 043005 0000 043006 0000 043007 0000 043010 0000 043011 0000 043012 0000 043013 0000 043014 0000 043015 0000 043016 0000 043017 0000 043020 0000 043021 0000 043022 0000 043023 0000 043024 0000 043025 0000 043026 0000 043027 0000 043030 0000 043031 0000 043032 0000 043033 0000 043034 0000 043035 0000 043036 0000 043037 0000 043040 0000 043041 0000 043042 0000 043043 0000 043044 0000 043045 0000 043046 0000 043047 0000 043050 0000 043051 0000 043052 0000 043053 0000 043054 0000 043055 0000 043056 0000 043057 0000 043060 0000 043061 0000 043062 0000 043063 0000 043064 0000 043065 0000 043066 0000 043067 0000 043070 0000 043071 0000 043072 0000 043073 0000 043074 0000 043075 0000 043076 0000 043077 0000 043100 0000 043101 0000 043102 0000 043103 0000 043104 0000 043105 0000 043106 0000 043107 0000 043110 0000 043111 0000 043112 0000 043113 0000 043114 0000 043115 0000 043116 0000 043117 0000 043120 0000 043121 0000 043122 0000 043123 0000 043124 0000 043125 0000 043126 0000 043127 0000 043130 0000 043131 0000 043132 0000 043133 0000 043134 0000 043135 0000 043136 0000 043137 0000 043140 0000 043141 0000 043142 0000 043143 0000 043144 0000 043145 0000 043146 0000 043147 0000 043150 0000 043151 0000 043152 0000 043153 0000 043154 0000 043155 0000 043156 0000 043157 0000 043160 0000 043161 0000 043162 0000 043163 0000 043164 0000 043165 0000 043166 0000 043167 0000 043170 0000 043171 0000 043172 0000 043173 0000 043174 0000 043175 0000 043176 0000 043177 0000 043200 0000 043201 0000 043202 0000 043203 0000 043204 0000 043205 0000 043206 0000 043207 0000 043210 0000 043211 0000 043212 0000 043213 0000 043214 0000 043215 0000 043216 0000 043217 0000 043220 0000 043221 0000 043222 0000 043223 0000 043224 0000 043225 0000 043226 0000 043227 0000 043230 0000 043231 0000 043232 0000 043233 0000 043234 0000 043235 0000 043236 0000 043237 0000 043240 0000 043241 0000 043242 0000 043243 0000 043244 0000 043245 0000 043246 0000 043247 0000 043250 0000 043251 0000 043252 0000 043253 0000 043254 0000 043255 0000 043256 0000 043257 0000 043260 0000 043261 0000 043262 0000 043263 0000 043264 0000 043265 0000 043266 0000 043267 0000 043270 0000 043271 0000 043272 0000 043273 0000 043274 0000 043275 0000 043276 0000 043277 0000 043300 0000 043301 0000 043302 0000 043303 0000 043304 0000 043305 0000 043306 0000 043307 0000 043310 0000 043311 0000 043312 0000 043313 0000 043314 0000 043315 0000 043316 0000 043317 0000 043320 0000 043321 0000 043322 0000 043323 0000 043324 0000 043325 0000 043326 0000 043327 0000 043330 0000 043331 0000 043332 0000 043333 0000 043334 0000 043335 0000 043336 0000 043337 0000 043340 0000 043341 0000 043342 0000 043343 0000 043344 0000 043345 0000 043346 0000 043347 0000 043350 0000 043351 0000 043352 0000 043353 0000 043354 0000 043355 0000 043356 0000 043357 0000 043360 0000 043361 0000 043362 0000 043363 0000 043364 0000 043365 0000 043366 0000 043367 0000 043370 0000 043371 0000 043372 0000 043373 0000 043374 0000 043375 0000 043376 0000 043377 0000 043400 0000 043401 0000 043402 0000 043403 0000 043404 0000 043405 0000 043406 0000 043407 0000 043410 0000 043411 0000 043412 0000 043413 0000 043414 0000 043415 0000 043416 0000 043417 0000 043420 0000 043421 0000 043422 0000 043423 0000 043424 0000 043425 0000 043426 0000 043427 0000 043430 0000 043431 0000 043432 0000 043433 0000 043434 0000 043435 0000 043436 0000 043437 0000 043440 0000 043441 0000 043442 0000 043443 0000 043444 0000 043445 0000 043446 0000 043447 0000 043450 0000 043451 0000 043452 0000 043453 0000 043454 0000 043455 0000 043456 0000 043457 0000 043460 0000 043461 0000 043462 0000 043463 0000 043464 0000 043465 0000 043466 0000 043467 0000 043470 0000 043471 0000 043472 0000 043473 0000 043474 0000 043475 0000 043476 0000 043477 0000 043500 0000 043501 0000 043502 0000 043503 0000 043504 0000 043505 0000 043506 0000 043507 0000 043510 0000 043511 0000 043512 0000 043513 0000 043514 0000 043515 0000 043516 0000 043517 0000 043520 0000 043521 0000 043522 0000 043523 0000 043524 0000 043525 0000 043526 0000 043527 0000 043530 0000 043531 0000 043532 0000 043533 0000 043534 0000 043535 0000 043536 0000 043537 0000 043540 0000 043541 0000 043542 0000 043543 0000 043544 0000 043545 0000 043546 0000 043547 0000 043550 0000 043551 0000 043552 0000 043553 0000 043554 0000 043555 0000 043556 0000 043557 0000 043560 0000 043561 0000 043562 0000 043563 0000 043564 0000 043565 0000 043566 0000 043567 0000 043570 0000 043571 0000 043572 0000 043573 0000 043574 0000 043575 0000 043576 0000 043577 0000 043600 0000 043601 0000 043602 0000 043603 0000 043604 0000 043605 0000 043606 0000 043607 0000 043610 0000 043611 0000 043612 0000 043613 0000 043614 0000 043615 0000 043616 0000 043617 0000 043620 0000 043621 0000 043622 0000 043623 0000 043624 0000 043625 0000 043626 0000 043627 0000 043630 0000 043631 0000 043632 0000 043633 0000 043634 0000 043635 0000 043636 0000 043637 0000 043640 0000 043641 0000 043642 0000 043643 0000 043644 0000 043645 0000 043646 0000 043647 0000 043650 0000 043651 0000 043652 0000 043653 0000 043654 0000 043655 0000 043656 0000 043657 0000 043660 0000 043661 0000 043662 0000 043663 0000 043664 0000 043665 0000 043666 0000 043667 0000 043670 0000 043671 0000 043672 0000 043673 0000 043674 0000 043675 0000 043676 0000 043677 0000 043700 0000 043701 0000 043702 0000 043703 0000 043704 0000 043705 0000 043706 0000 043707 0000 043710 0000 043711 0000 043712 0000 043713 0000 043714 0000 043715 0000 043716 0000 043717 0000 043720 0000 043721 0000 043722 0000 043723 0000 043724 0000 043725 0000 043726 0000 043727 0000 043730 0000 043731 0000 043732 0000 043733 0000 043734 0000 043735 0000 043736 0000 043737 0000 043740 0000 043741 0000 043742 0000 043743 0000 043744 0000 043745 0000 043746 0000 043747 0000 043750 0000 043751 0000 043752 0000 043753 0000 043754 0000 043755 0000 043756 0000 043757 0000 043760 0000 043761 0000 043762 0000 043763 0000 043764 0000 043765 0000 043766 0000 043767 0000 043770 0000 043771 0000 043772 0000 043773 0000 043774 0000 043775 0000 043776 0000 043777 0000 044000 0000 044001 0000 044002 0000 044003 0000 044004 0000 044005 0000 044006 0000 044007 0000 044010 0000 044011 0000 044012 0000 044013 0000 044014 0000 044015 0000 044016 0000 044017 0000 044020 0000 044021 0000 044022 0000 044023 0000 044024 0000 044025 0000 044026 0000 044027 0000 044030 0000 044031 0000 044032 0000 044033 0000 044034 0000 044035 0000 044036 0000 044037 0000 044040 0000 044041 0000 044042 0000 044043 0000 044044 0000 044045 0000 044046 0000 044047 0000 044050 0000 044051 0000 044052 0000 044053 0000 044054 0000 044055 0000 044056 0000 044057 0000 044060 0000 044061 0000 044062 0000 044063 0000 044064 0000 044065 0000 044066 0000 044067 0000 044070 0000 044071 0000 044072 0000 044073 0000 044074 0000 044075 0000 044076 0000 044077 0000 044100 0000 044101 0000 044102 0000 044103 0000 044104 0000 044105 0000 044106 0000 044107 0000 044110 0000 044111 0000 044112 0000 044113 0000 044114 0000 044115 0000 044116 0000 044117 0000 044120 0000 044121 0000 044122 0000 044123 0000 044124 0000 044125 0000 044126 0000 044127 0000 044130 0000 044131 0000 044132 0000 044133 0000 044134 0000 044135 0000 044136 0000 044137 0000 044140 0000 044141 0000 044142 0000 044143 0000 044144 0000 044145 0000 044146 0000 044147 0000 044150 0000 044151 0000 044152 0000 044153 0000 044154 0000 044155 0000 044156 0000 044157 0000 044160 0000 044161 0000 044162 0000 044163 0000 044164 0000 044165 0000 044166 0000 044167 0000 044170 0000 044171 0000 044172 0000 044173 0000 044174 0000 044175 0000 044176 0000 044177 0000 044200 0000 044201 0000 044202 0000 044203 0000 044204 0000 044205 0000 044206 0000 044207 0000 044210 0000 044211 0000 044212 0000 044213 0000 044214 0000 044215 0000 044216 0000 044217 0000 044220 0000 044221 0000 044222 0000 044223 0000 044224 0000 044225 0000 044226 0000 044227 0000 044230 0000 044231 0000 044232 0000 044233 0000 044234 0000 044235 0000 044236 0000 044237 0000 044240 0000 044241 0000 044242 0000 044243 0000 044244 0000 044245 0000 044246 0000 044247 0000 044250 0000 044251 0000 044252 0000 044253 0000 044254 0000 044255 0000 044256 0000 044257 0000 044260 0000 044261 0000 044262 0000 044263 0000 044264 0000 044265 0000 044266 0000 044267 0000 044270 0000 044271 0000 044272 0000 044273 0000 044274 0000 044275 0000 044276 0000 044277 0000 044300 0000 044301 0000 044302 0000 044303 0000 044304 0000 044305 0000 044306 0000 044307 0000 044310 0000 044311 0000 044312 0000 044313 0000 044314 0000 044315 0000 044316 0000 044317 0000 044320 0000 044321 0000 044322 0000 044323 0000 044324 0000 044325 0000 044326 0000 044327 0000 044330 0000 044331 0000 044332 0000 044333 0000 044334 0000 044335 0000 044336 0000 044337 0000 044340 0000 044341 0000 044342 0000 044343 0000 044344 0000 044345 0000 044346 0000 044347 0000 044350 0000 044351 0000 044352 0000 044353 0000 044354 0000 044355 0000 044356 0000 044357 0000 044360 0000 044361 0000 044362 0000 044363 0000 044364 0000 044365 0000 044366 0000 044367 0000 044370 0000 044371 0000 044372 0000 044373 0000 044374 0000 044375 0000 044376 0000 044377 0000 044400 0000 044401 0000 044402 0000 044403 0000 044404 0000 044405 0000 044406 0000 044407 0000 044410 0000 044411 0000 044412 0000 044413 0000 044414 0000 044415 0000 044416 0000 044417 0000 044420 0000 044421 0000 044422 0000 044423 0000 044424 0000 044425 0000 044426 0000 044427 0000 044430 0000 044431 0000 044432 0000 044433 0000 044434 0000 044435 0000 044436 0000 044437 0000 044440 0000 044441 0000 044442 0000 044443 0000 044444 0000 044445 0000 044446 0000 044447 0000 044450 0000 044451 0000 044452 0000 044453 0000 044454 0000 044455 0000 044456 0000 044457 0000 044460 0000 044461 0000 044462 0000 044463 0000 044464 0000 044465 0000 044466 0000 044467 0000 044470 0000 044471 0000 044472 0000 044473 0000 044474 0000 044475 0000 044476 0000 044477 0000 044500 0000 044501 0000 044502 0000 044503 0000 044504 0000 044505 0000 044506 0000 044507 0000 044510 0000 044511 0000 044512 0000 044513 0000 044514 0000 044515 0000 044516 0000 044517 0000 044520 0000 044521 0000 044522 0000 044523 0000 044524 0000 044525 0000 044526 0000 044527 0000 044530 0000 044531 0000 044532 0000 044533 0000 044534 0000 044535 0000 044536 0000 044537 0000 044540 0000 044541 0000 044542 0000 044543 0000 044544 0000 044545 0000 044546 0000 044547 0000 044550 0000 044551 0000 044552 0000 044553 0000 044554 0000 044555 0000 044556 0000 044557 0000 044560 0000 044561 0000 044562 0000 044563 0000 044564 0000 044565 0000 044566 0000 044567 0000 044570 0000 044571 0000 044572 0000 044573 0000 044574 0000 044575 0000 044576 0000 044577 0000 044600 0000 044601 0000 044602 0000 044603 0000 044604 0000 044605 0000 044606 0000 044607 0000 044610 0000 044611 0000 044612 0000 044613 0000 044614 0000 044615 0000 044616 0000 044617 0000 044620 0000 044621 0000 044622 0000 044623 0000 044624 0000 044625 0000 044626 0000 044627 0000 044630 0000 044631 0000 044632 0000 044633 0000 044634 0000 044635 0000 044636 0000 044637 0000 044640 0000 044641 0000 044642 0000 044643 0000 044644 0000 044645 0000 044646 0000 044647 0000 044650 0000 044651 0000 044652 0000 044653 0000 044654 0000 044655 0000 044656 0000 044657 0000 044660 0000 044661 0000 044662 0000 044663 0000 044664 0000 044665 0000 044666 0000 044667 0000 044670 0000 044671 0000 044672 0000 044673 0000 044674 0000 044675 0000 044676 0000 044677 0000 044700 0000 044701 0000 044702 0000 044703 0000 044704 0000 044705 0000 044706 0000 044707 0000 044710 0000 044711 0000 044712 0000 044713 0000 044714 0000 044715 0000 044716 0000 044717 0000 044720 0000 044721 0000 044722 0000 044723 0000 044724 0000 044725 0000 044726 0000 044727 0000 044730 0000 044731 0000 044732 0000 044733 0000 044734 0000 044735 0000 044736 0000 044737 0000 044740 0000 044741 0000 044742 0000 044743 0000 044744 0000 044745 0000 044746 0000 044747 0000 044750 0000 044751 0000 044752 0000 044753 0000 044754 0000 044755 0000 044756 0000 044757 0000 044760 0000 044761 0000 044762 0000 044763 0000 044764 0000 044765 0000 044766 0000 044767 0000 044770 0000 044771 0000 044772 0000 044773 0000 044774 0000 044775 0000 044776 0000 044777 0000 045000 0000 045001 0000 045002 0000 045003 0000 045004 0000 045005 0000 045006 0000 045007 0000 045010 0000 045011 0000 045012 0000 045013 0000 045014 0000 045015 0000 045016 0000 045017 0000 045020 0000 045021 0000 045022 0000 045023 0000 045024 0000 045025 0000 045026 0000 045027 0000 045030 0000 045031 0000 045032 0000 045033 0000 045034 0000 045035 0000 045036 0000 045037 0000 045040 0000 045041 0000 045042 0000 045043 0000 045044 0000 045045 0000 045046 0000 045047 0000 045050 0000 045051 0000 045052 0000 045053 0000 045054 0000 045055 0000 045056 0000 045057 0000 045060 0000 045061 0000 045062 0000 045063 0000 045064 0000 045065 0000 045066 0000 045067 0000 045070 0000 045071 0000 045072 0000 045073 0000 045074 0000 045075 0000 045076 0000 045077 0000 045100 0000 045101 0000 045102 0000 045103 0000 045104 0000 045105 0000 045106 0000 045107 0000 045110 0000 045111 0000 045112 0000 045113 0000 045114 0000 045115 0000 045116 0000 045117 0000 045120 0000 045121 0000 045122 0000 045123 0000 045124 0000 045125 0000 045126 0000 045127 0000 045130 0000 045131 0000 045132 0000 045133 0000 045134 0000 045135 0000 045136 0000 045137 0000 045140 0000 045141 0000 045142 0000 045143 0000 045144 0000 045145 0000 045146 0000 045147 0000 045150 0000 045151 0000 045152 0000 045153 0000 045154 0000 045155 0000 045156 0000 045157 0000 045160 0000 045161 0000 045162 0000 045163 0000 045164 0000 045165 0000 045166 0000 045167 0000 045170 0000 045171 0000 045172 0000 045173 0000 045174 0000 045175 0000 045176 0000 045177 0000 045200 0000 045201 0000 045202 0000 045203 0000 045204 0000 045205 0000 045206 0000 045207 0000 045210 0000 045211 0000 045212 0000 045213 0000 045214 0000 045215 0000 045216 0000 045217 0000 045220 0000 045221 0000 045222 0000 045223 0000 045224 0000 045225 0000 045226 0000 045227 0000 045230 0000 045231 0000 045232 0000 045233 0000 045234 0000 045235 0000 045236 0000 045237 0000 045240 0000 045241 0000 045242 0000 045243 0000 045244 0000 045245 0000 045246 0000 045247 0000 045250 0000 045251 0000 045252 0000 045253 0000 045254 0000 045255 0000 045256 0000 045257 0000 045260 0000 045261 0000 045262 0000 045263 0000 045264 0000 045265 0000 045266 0000 045267 0000 045270 0000 045271 0000 045272 0000 045273 0000 045274 0000 045275 0000 045276 0000 045277 0000 045300 0000 045301 0000 045302 0000 045303 0000 045304 0000 045305 0000 045306 0000 045307 0000 045310 0000 045311 0000 045312 0000 045313 0000 045314 0000 045315 0000 045316 0000 045317 0000 045320 0000 045321 0000 045322 0000 045323 0000 045324 0000 045325 0000 045326 0000 045327 0000 045330 0000 045331 0000 045332 0000 045333 0000 045334 0000 045335 0000 045336 0000 045337 0000 045340 0000 045341 0000 045342 0000 045343 0000 045344 0000 045345 0000 045346 0000 045347 0000 045350 0000 045351 0000 045352 0000 045353 0000 045354 0000 045355 0000 045356 0000 045357 0000 045360 0000 045361 0000 045362 0000 045363 0000 045364 0000 045365 0000 045366 0000 045367 0000 045370 0000 045371 0000 045372 0000 045373 0000 045374 0000 045375 0000 045376 0000 045377 0000 045400 0000 045401 0000 045402 0000 045403 0000 045404 0000 045405 0000 045406 0000 045407 0000 045410 0000 045411 0000 045412 0000 045413 0000 045414 0000 045415 0000 045416 0000 045417 0000 045420 0000 045421 0000 045422 0000 045423 0000 045424 0000 045425 0000 045426 0000 045427 0000 045430 0000 045431 0000 045432 0000 045433 0000 045434 0000 045435 0000 045436 0000 045437 0000 045440 0000 045441 0000 045442 0000 045443 0000 045444 0000 045445 0000 045446 0000 045447 0000 045450 0000 045451 0000 045452 0000 045453 0000 045454 0000 045455 0000 045456 0000 045457 0000 045460 0000 045461 0000 045462 0000 045463 0000 045464 0000 045465 0000 045466 0000 045467 0000 045470 0000 045471 0000 045472 0000 045473 0000 045474 0000 045475 0000 045476 0000 045477 0000 045500 0000 045501 0000 045502 0000 045503 0000 045504 0000 045505 0000 045506 0000 045507 0000 045510 0000 045511 0000 045512 0000 045513 0000 045514 0000 045515 0000 045516 0000 045517 0000 045520 0000 045521 0000 045522 0000 045523 0000 045524 0000 045525 0000 045526 0000 045527 0000 045530 0000 045531 0000 045532 0000 045533 0000 045534 0000 045535 0000 045536 0000 045537 0000 045540 0000 045541 0000 045542 0000 045543 0000 045544 0000 045545 0000 045546 0000 045547 0000 045550 0000 045551 0000 045552 0000 045553 0000 045554 0000 045555 0000 045556 0000 045557 0000 045560 0000 045561 0000 045562 0000 045563 0000 045564 0000 045565 0000 045566 0000 045567 0000 045570 0000 045571 0000 045572 0000 045573 0000 045574 0000 045575 0000 045576 0000 045577 0000 045600 0000 045601 0000 045602 0000 045603 0000 045604 0000 045605 0000 045606 0000 045607 0000 045610 0000 045611 0000 045612 0000 045613 0000 045614 0000 045615 0000 045616 0000 045617 0000 045620 0000 045621 0000 045622 0000 045623 0000 045624 0000 045625 0000 045626 0000 045627 0000 045630 0000 045631 0000 045632 0000 045633 0000 045634 0000 045635 0000 045636 0000 045637 0000 045640 0000 045641 0000 045642 0000 045643 0000 045644 0000 045645 0000 045646 0000 045647 0000 045650 0000 045651 0000 045652 0000 045653 0000 045654 0000 045655 0000 045656 0000 045657 0000 045660 0000 045661 0000 045662 0000 045663 0000 045664 0000 045665 0000 045666 0000 045667 0000 045670 0000 045671 0000 045672 0000 045673 0000 045674 0000 045675 0000 045676 0000 045677 0000 045700 0000 045701 0000 045702 0000 045703 0000 045704 0000 045705 0000 045706 0000 045707 0000 045710 0000 045711 0000 045712 0000 045713 0000 045714 0000 045715 0000 045716 0000 045717 0000 045720 0000 045721 0000 045722 0000 045723 0000 045724 0000 045725 0000 045726 0000 045727 0000 045730 0000 045731 0000 045732 0000 045733 0000 045734 0000 045735 0000 045736 0000 045737 0000 045740 0000 045741 0000 045742 0000 045743 0000 045744 0000 045745 0000 045746 0000 045747 0000 045750 0000 045751 0000 045752 0000 045753 0000 045754 0000 045755 0000 045756 0000 045757 0000 045760 0000 045761 0000 045762 0000 045763 0000 045764 0000 045765 0000 045766 0000 045767 0000 045770 0000 045771 0000 045772 0000 045773 0000 045774 0000 045775 0000 045776 0000 045777 0000 046000 0000 046001 0000 046002 0000 046003 0000 046004 0000 046005 0000 046006 0000 046007 0000 046010 0000 046011 0000 046012 0000 046013 0000 046014 0000 046015 0000 046016 0000 046017 0000 046020 0000 046021 0000 046022 0000 046023 0000 046024 0000 046025 0000 046026 0000 046027 0000 046030 0000 046031 0000 046032 0000 046033 0000 046034 0000 046035 0000 046036 0000 046037 0000 046040 0000 046041 0000 046042 0000 046043 0000 046044 0000 046045 0000 046046 0000 046047 0000 046050 0000 046051 0000 046052 0000 046053 0000 046054 0000 046055 0000 046056 0000 046057 0000 046060 0000 046061 0000 046062 0000 046063 0000 046064 0000 046065 0000 046066 0000 046067 0000 046070 0000 046071 0000 046072 0000 046073 0000 046074 0000 046075 0000 046076 0000 046077 0000 046100 0000 046101 0000 046102 0000 046103 0000 046104 0000 046105 0000 046106 0000 046107 0000 046110 0000 046111 0000 046112 0000 046113 0000 046114 0000 046115 0000 046116 0000 046117 0000 046120 0000 046121 0000 046122 0000 046123 0000 046124 0000 046125 0000 046126 0000 046127 0000 046130 0000 046131 0000 046132 0000 046133 0000 046134 0000 046135 0000 046136 0000 046137 0000 046140 0000 046141 0000 046142 0000 046143 0000 046144 0000 046145 0000 046146 0000 046147 0000 046150 0000 046151 0000 046152 0000 046153 0000 046154 0000 046155 0000 046156 0000 046157 0000 046160 0000 046161 0000 046162 0000 046163 0000 046164 0000 046165 0000 046166 0000 046167 0000 046170 0000 046171 0000 046172 0000 046173 0000 046174 0000 046175 0000 046176 0000 046177 0000 046200 0000 046201 0000 046202 0000 046203 0000 046204 0000 046205 0000 046206 0000 046207 0000 046210 0000 046211 0000 046212 0000 046213 0000 046214 0000 046215 0000 046216 0000 046217 0000 046220 0000 046221 0000 046222 0000 046223 0000 046224 0000 046225 0000 046226 0000 046227 0000 046230 0000 046231 0000 046232 0000 046233 0000 046234 0000 046235 0000 046236 0000 046237 0000 046240 0000 046241 0000 046242 0000 046243 0000 046244 0000 046245 0000 046246 0000 046247 0000 046250 0000 046251 0000 046252 0000 046253 0000 046254 0000 046255 0000 046256 0000 046257 0000 046260 0000 046261 0000 046262 0000 046263 0000 046264 0000 046265 0000 046266 0000 046267 0000 046270 0000 046271 0000 046272 0000 046273 0000 046274 0000 046275 0000 046276 0000 046277 0000 046300 0000 046301 0000 046302 0000 046303 0000 046304 0000 046305 0000 046306 0000 046307 0000 046310 0000 046311 0000 046312 0000 046313 0000 046314 0000 046315 0000 046316 0000 046317 0000 046320 0000 046321 0000 046322 0000 046323 0000 046324 0000 046325 0000 046326 0000 046327 0000 046330 0000 046331 0000 046332 0000 046333 0000 046334 0000 046335 0000 046336 0000 046337 0000 046340 0000 046341 0000 046342 0000 046343 0000 046344 0000 046345 0000 046346 0000 046347 0000 046350 0000 046351 0000 046352 0000 046353 0000 046354 0000 046355 0000 046356 0000 046357 0000 046360 0000 046361 0000 046362 0000 046363 0000 046364 0000 046365 0000 046366 0000 046367 0000 046370 0000 046371 0000 046372 0000 046373 0000 046374 0000 046375 0000 046376 0000 046377 0000 743 744 ENPUNCH /UN-FOOL THE ASSEMBLER 745 746 *. /ESTABLISH ORIGIN 747 748 / COMES HERE TO FINISH "FDIS" FUNCTION. 749 750 046400 4055 DODISP, JMS INTAC /TAKE INTEGER PART OF FIRST ARGUMENT 751 046401 4051 JMS PUSHAC /PUSH IT 752 046402 4064 JMS ARG /IS THERE A SECOND ARGUMENT? 753 046403 5306 JMP DWIPE /NO, CLEAR (OR SET) THE ENTIRE SCREEN 754 046404 4055 JMS INTAC /TAKE INTEGER PART OF SECOND ARGUMENT 755 046405 4051 JMS PUSHAC /PUSH IT 756 046406 4064 JMS ARG /IS THERE A THIRD ARGUMENT? 757 046407 7240 NL7777 /NO, SET STORE SWITCH 758 046410 3005 DCA STORFLG /SAVE EITHER WAY 759 046411 1005 TAD STORFLG /GET THE SWITCH BACK 760 046412 7650 SNA CLA /SKIP IF NO THIRD ARGUMENT 761 046413 4055 JMS INTAC /ELSE TAKE INTEGER PART OF THIRD ARGUMENT 762 046414 7650 SNA CLA /SKIP IF THIRD ARGUMENT PRESENT AND NON-ZERO 763 046415 7240 NL7777 /ELSE SET NO-TEST FLAG 764 046416 3011 DCA CHNGFLG /STORE EITHER WAY 765 046417 4042 JMS POPAC /GET SECOND ARGUMENT BACK 766 046420 7040 CMA /FLIP IT AND 767 046421 1377 TAD (144-310) /ADJUST FOR SYMMETRY AND TEST 768 046422 7100 CLL /CLEAR LINK FOR LIMIT TEST 769 046423 1376 TAD (310) /ADD ON RANGE 770 046424 7420 SNL /SKIP IF OK 771 046425 5276 JMP DISBAD /ELSE COMPLAIN 772 046426 7106 CLL RTL;RTL /*20 WORDS/LINE 046427 7006 773 046430 3007 DCA Y /SAVE LINE BASE 774 046431 3006 DCA WORD /CLEAR WORD QUOTIENT 775 046432 4042 JMS POPAC /GET FIRST ARGUMENT 776 046433 1375 TAD (136-275) /CENTER IT AND ADD ON TEST VALUE 777 046434 7100 CLL /CLEAR LINK FOR LIMIT TEST 778 046435 1374 TAD (275) /ADD ON RANGE 779 046436 7420 SNL /SKIP IF OK 780 046437 5276 JMP DISBAD /ELSE COMPLAIN 781 046440 7410 SKP /DON'T BUMP FIRST TIME 782 046441 2006 DIVLUP, ISZ WORD /BUMP WORD QUOTIENT 783 046442 7100 CLL /CLEAR LINK FOR TEST 784 046443 1373 TAD (-14) /SUBTRACT 12 BITS WORTH 785 046444 7430 SZL /SKIP IF TOO FAR 786 046445 5241 JMP DIVLUP /ELSE KEEP GOING 787 046446 3004 DCA REM /SAVE BIT COUNT 788 046447 1007 TAD Y /GET LINE BASE 789 046450 1006 TAD WORD /ADD ON RELATIVE WORD COUNT 790 046451 1156 TAD [VTGBUFFER] /MAKE IT ABSOLUTE 791 046452 3006 DCA WORD /STORE WORD POINTER 792 046453 1004 TAD REM /GET BIT COUNT 793 046454 3007 DCA Y /SETUP SECOND COUNTER 794 046455 6241 CDF DFIELD /GOTO OUR FIELD 795 046456 1406 TAD I WORD /GET THE CURRENT VALUE 796 046457 7010 RAR /MOVE DOWN 797 046460 2004 ISZ REM /ENOUGH? 798 046461 5257 JMP .-2 /NO, KEEP GOING 799 046462 2011 ISZ CHNGFLG /SHOULD WE TEST IT? 800 046463 5302 JMP VTEST /YES 801 046464 7120 STL /NO, ASSUME WE SET IT 802 046465 2005 ISZ STORFLG /IS THAT RIGHT? 803 046466 7100 CLL /NO, CLEAR IT INSTEAD 804 046467 7004 RAL /MOVE BACK 805 046470 2007 ISZ Y /ENOUGH? 806 046471 5267 JMP .-2 /NO, KEEP GOING 807 046472 3406 DCA I WORD /STORE BACK 808 046473 4555 JMS I [LCHECK] /CHECK FOR "L" COMMAND LOCATION 809 046474 4554 CHKGRAP,JMS I [GRPHCHK] /ENSURE AT LEAST HALF-TIME GRAPHICS 810 046475 5112 JMP DISPRETURN /EXIT THERE 811 812 / COMES HERE IF EITHER X OR Y IS OUT OF RANGE. 813 814 046476 7200 DISBAD, CLA /CLEAN UP 815 046477 1153 TAD [XDYS+6] /GET ERROR ADDRESS 816 046500 6202 CIF 00 /GOING TO FIELD ZERO 817 046501 5772 JMP I (ERROR5) /GO COMPLAIN THERE 818 819 / COMES HERE TO TEST THE POINT AT (X,Y). 820 821 046502 6201 VTEST, CDF 00 /BACK TO FIELD ZERO 822 046503 7630 SZL CLA /POINT CURRENTLY SET OR CLEAR? 823 046504 7240 NL7777 /INDICATE SET 824 046505 5106 JMP VTSTRETURN /CONTINUE THERE 825 / COMES HERE TO CLEAR (OR SET) THE ENTIRE SCREEN. 826 827 046506 4042 DWIPE, JMS POPAC /GET ARGUMENT BACK 828 046507 3007 DCA Y /STORE IT 829 046510 1007 TAD Y /GET VALUE 830 046511 7640 SZA CLA /SKIP IF ZERO 831 046512 7240 NL7777 /ELSE SET ALL BITS 832 046513 4552 JMS I [GRCLEAR] /CLEAR (OR SET) ALL POINTS IN THE BUFFER 833 046514 1007 TAD Y /GET THE VALUE AGAIN 834 046515 7640 SZA CLA /SKIP IF ZERO 835 046516 5274 JMP CHKGRAPHICS /JUMP IF NON-ZERO 836 046517 4336 JMS FRCALPHA /FORCE DOUBLE-ALPHA MODE 837 046520 5112 JMP DISPRETURN /FINISH IT THERE 838 839 / COMES HERE TO CONTINUE "L" COMMAND OR FINISH FROM <^C>. 840 841 046521 1771 LMORE2, TAD I (CTCXIT) /GET CLOBBERABLE LOCATION 842 046522 7700 SMA CLA /SKIP IF NOT CLOBBERED 843 046523 5770 JMP I (OM) /JUMP IF CLOBBERED 844 046524 5332 OVTENAB,JMP NOVTRESTORE /**** VT-8/E CONSOLE **** 0000 845 046525 6242 CIF DFIELD /INHIBIT INTERRUPTS FOR NOW 846 046526 0000 VTRCDF, .-. /WILL BE CDF MCS+10 847 046527 1012 TAD DBLALPHA /GET PRIOR MODE WORD 848 046530 3767 DCA I (VTMODE) /RESTORE IT 849 046531 7410 SKP /DON'T STOP VT-8/E! 850 046532 6452 NOVTRES,DPSMIOT /STOP THE DISPLAY 851 046533 7200 CLA /CLEAN UP 852 046534 6203 CIF CDF 00 /GOING TO FIELD ZERO 853 046535 5425 JMP I LSAVE /CONTINUE FORMER "L" COMMAND 854 855 / DOUBLE-ALPHA FORCE ROUTINE. 856 857 046536 0000 FRCALPH,.-. /FORCE ALPHA ROUTINE 858 046537 6251 FRCACDF,CDF DFIELD+10 /**** VT-8/E CONSOLE **** CDF MCS+10 859 046540 1012 TAD DBLALPHA /GET DOUBLE-ALPHA VALUE 860 046541 6001 ION /PROTECT NEXT INSTRUCTION 861 046542 3551 DCA I [VTMODE] /STORE NEW MODE 862 046543 6241 CDF DFIELD /BACK TO OUR FIELD 863 046544 5736 JMP I FRCALPHA /RETURN 864 865 / DOUBLE-GRAPHICS FORCE ROUTINE. 866 867 046545 0000 FRCGRAP,.-. /FORCE GRAPHICS ROUTINE 868 046546 1012 TAD DBLALPHA /GET DOUBLE-ALPHA VALUE 869 046547 7041 CIA /COUNTERACT IT 870 046550 1366 TAD (DFIELD+1^101) /GET DOUBLE-GRAPHICS VALUE 871 046551 4336 JMS FRCALPHA /FORCE GRAPHICS ON 872 046552 5745 JMP I FRCGRAPHICS /RETURN 873 046566 4141 PAGE 046567 0005 046570 7053 046571 1357 046572 2725 046573 7764 046574 0275 046575 7641 046576 0310 046577 7634 874 / INTERRUPT HANDLER CONTINUES HERE. 875 876 046600 1777 MORINT, TAD I (BUMPIT) /GET CONSOLE INTERRUPT STATUS 877 046601 7040 CMA /INVERT IT 878 046602 0021 AND ISTAT /KEEP NON-CONFLICTING BITS 879 046603 1777 TAD I (BUMPIT) /ADD ON NEW ONES 880 046604 3021 DCA ISTAT /STORE COMPOSITE 881 046605 6252 IVTINT, CIF DFIELD+10 /**** VT-8/E CONSOLE **** SKP 882 046606 5024 JMP VT8INT /CALL VT-8/E INTERRUPT ROUTINE 883 884 / COMES BACK HERE FROM VT-8/E INTERRUPT ROUTINE. 885 886 046607 7410 MORBACK,SKP /**** DEVICE 43 NOT HANDLED ELSEWHERE **** 0000 887 046610 6431 INT43, DKSFIOT /**** CONSOLE SECONDARY **** TAD I43MSK 888 046611 5225 JMP KEYINT /**** CONSOLE SECONDARY **** AND ISTAT 889 046612 7410 SKP /**** CONSOLE SECONDARY **** SNA CLA 890 046613 5225 JMP KEYINT /FORGET IT 891 046614 6436 DKRBIOT /READ IT IN 892 046615 0163 AND [177] /JUST SEVEN-BIT 893 046616 3013 DCA DCHAR /SAVE IT 894 046617 1023 TAD I43MSK /GET INTERRUPT BIT 895 046620 4323 JMS INTCLR /CLEAR IT 896 046621 1013 TAD DCHAR /GET IT BACK 897 046622 4776 JMS I (CSCQ) /CHECK FOR <^S>/<^Q> 898 046623 5274 JMP DCHECK /WAS SOMETHING ELSE 899 046624 3013 DIGNORE,DCA DCHAR /OBLITERATE THE CHARACTER 900 046625 7410 KEYINT, SKP /**** DEVICE 03 NOT HANDLED ELSEWHERE **** 0000 901 046626 6031 INT03, KSFIOT /**** CONSOLE SECONDARY **** TAD I03MSK 902 046627 5243 JMP OVINT /**** CONSOLE SECONDARY **** AND ISTAT 903 046630 7410 SKP /**** CONSOLE SECONDARY **** SNA CLA 904 046631 5243 JMP OVINT /FORGET IT 905 046632 6036 KRBIOT /READ IT IN 906 046633 0163 AND [177] /JUST SEVEN BITS 907 046634 3014 DCA KCHAR /SAVE IT 908 046635 1022 TAD I03MSK /GET INTERRUPT BIT 909 046636 4323 JMS INTCLR /CLEAR IT 910 046637 1014 TAD KCHAR /GET IT BACK 911 046640 4776 JMS I (CSCQ) /CHECK FOR <^S>/<^Q> 912 046641 5305 JMP KCHECK /WAS SOMETHING ELSE 913 046642 3014 KIGNORE,DCA KCHAR /OBLITERATE THE CHARACTER 914 046643 7410 OVINT, SKP /**** CONSOLE **** 0000 915 046644 7201 NL0001 /SET INPUT FLAG MASK 916 046645 0021 AND ISTAT /GET THE STATUS BIT 917 046646 7650 SNA CLA /SKIP IF SET 918 046647 5264 JMP TTYTST /ELSE FORGET IT 919 046650 6241 CDF DFIELD /INDICATE OUR FIELD 920 046651 0000 OVICIF, .-. /WILL BE CIF MCS+10 921 046652 4031 JMS INCON /GET THE INPUT 922 046653 5264 JMP TTYTST /WASN'T ANY! 923 046654 0163 AND [177] /JUST SEVEN BITS 924 046655 3034 DCA OVCHAR /SAVE IT 925 046656 7201 NL0001 /GET INTERRUPT BIT 926 046657 4323 JMS INTCLR /CLEAR IT 927 046660 1034 TAD OVCHAR /GET IT BACK 928 046661 4776 JMS I (CSCQ) /CHECK FOR <^S>/<^Q> 929 046662 5314 JMP OCHECK /WAS SOMETHING ELSE 930 046663 3034 OVIGNOR,DCA OVCHAR /OBLITERATE THE CHARACTER 931 046664 7410 TTYTST, SKP /**** DEVICE 04 NOT HANDLED ELSEWHERE **** 0000 932 046665 6041 TSFIOT /FLAG UP? 933 046666 5272 JMP MOREXIT /NO 934 046667 6042 TCFIOT /YES, CLEAR IT 935 046670 7240 NL7777 /SET THE 936 046671 3041 DCA TFLAG /DONE FLAG 937 046672 6203 MOREXIT,CIF CDF 00 /GOING TO FIELD ZERO 938 046673 5775 JMP I (INTXIT+4) /REJOIN MAIN INTERRUPT HANDLER 939 940 046674 1020 DCHECK, TAD DFLAG /GET ENABLE FLAG 941 046675 7650 SNA CLA /SKIP IF CURRENT KEYBOARD 942 046676 5224 JMP DIGNORE /ELSE IGNORE FURTHER INPUT 943 046677 1013 TAD DCHAR /GET THE CHARACTER 944 046700 4774 JMS I (CHKC) /CHECK FOR <^C>, ETC. 945 046701 1013 TAD DCHAR /GET THE CHARACTER 946 046702 3773 KENTRY, DCA I (INCHAR) /STORE IN INPUT BUFFER 947 046703 6202 CIF 00 /GOING TO FIELD ZERO 948 046704 5772 JMP I (CHKKCC+1) /CONTINUE THERE 949 950 046705 1024 KCHECK, TAD KFLAG /GET ENABLE FLAG 951 046706 7650 SNA CLA /SKIP IF CURRENT KEYBOARD 952 046707 5242 JMP KIGNORE /ELSE IGNORE FURTHER INPUT 953 046710 1014 TAD KCHAR /GET THE CHARACTER 954 046711 4774 JMS I (CHKC) /CHECK FOR <^C>, ETC. 955 046712 1014 TAD KCHAR /GET THE CHARACTER 956 046713 5302 JMP KENTRY /CONTINUE THERE 957 958 046714 1036 OCHECK, TAD OVFLAG /GET ENABLE FLAG 959 046715 7650 SNA CLA /SKIP IF CURRENT KEYBOARD 960 046716 5263 JMP OVIGNORE /ELSE IGNORE FURTHER INPUT 961 046717 1034 TAD OVCHAR /GET THE CHARACTER 962 046720 4774 JMS I (CHKC) /CHECK FOR <^C>, ETC. 963 046721 1034 TAD OVCHAR /GET THE CHARACTER 964 046722 5302 JMP KENTRY /CONTINUE THERE 965 / INTERRUPT CLEAR ROUTINE. 966 967 046723 0000 INTCLR, .-. /CLEAR INTERRUPT ROUTINE 968 046724 6201 CDF 00 /ENSURE FIELD ZERO 969 046725 7040 CMA /INVERT TO FORM MASK 970 046726 6242 CIF DFIELD /SET OUR FIELD TO INHIBIT INTERRUPTS 971 046727 0021 AND ISTAT /SAVE OTHER BITS 972 046730 3021 DCA ISTAT /STORE BACK 973 046731 5723 JMP I INTCLR /RETURN 974 975 / GRAPHICS BUFFER CLEAR ROUTINE. 976 977 046732 0000 GRCLEAR,.-. /GRAPHICS CLEAR ROUTINE 978 046733 3346 DCA GRTEMP /SAVE PASSED VALUE 979 046734 1163 TAD [VTGBUFFER-1] /SETUP THE 980 046735 3010 DCA XR1 /BUFFER POINTER 981 046736 1371 TAD (-VTWORDS) /SETUP THE 982 046737 3006 DCA WORD /BUFFER COUNT 983 046740 6241 CDF DFIELD /GOTO BUFFER FIELD 984 046741 1346 GRCLUP, TAD GRTEMP /GET PASSED VALUE 985 046742 3410 DCA I XR1 /SET OR CLEAR A WORD 986 046743 2006 ISZ WORD /DONE YET? 987 046744 5341 JMP GRCLUP /NO, KEEP GOING 988 046745 5732 JMP I GRCLEAR /YES, RETURN 989 990 046746 0000 GRTEMP, .-. /TEMPORARY 991 992 046771 1600 PAGE 046772 3210 046773 0126 046774 7436 046775 2715 046776 7463 046777 2613 993 / O(UTPUT) A(LTERNATING). 994 995 047000 1377 OA, TAD (BLINK-BOLD) /GET BLINK COMPENSATION 996 047001 3017 DCA UPFOLD /STORE IT 997 047002 1376 TAD (-BLINK+BOLD+BLINK+200) /GET LOWER-CASE COMPENSATION 998 047003 5262 JMP OBENTRY /CONTINUE THERE 999 1000 / O(OUTPUT) B(OLD). 1001 1002 OB, /TAD (BOLD-BOLD) /GET BOLD COMPENSATION 1003 047004 3017 DCA UPFOLD /STORE IT 1004 /TAD (-BOLD+BOLD) /GET LOWER-CASE COMPENSATION 1005 047005 5262 JMP OBENTRY /CONTINUE THERE 1006 1007 / O(UTPUT) C(LEAR). 1008 1009 047006 4327 OC, JMS OSUB /SETUP SCOPE MODE 1010 047007 4552 JMS I [GRCLEAR] /CLEAR GRAPHICS BUFFER 1011 047010 1375 TAD (35) /GET A CHARACTER 1012 047011 4774 JMS I (OUT) /SEND IT 1013 047012 1373 TAD (37) /GET AN CHARACTER 1014 047013 4774 JMS I (OUT) /SEND IT 1015 047014 4772 JMS I (FRCALPHA) /FORCE ALPHA-ONLY MODE 1016 047015 5315 JMP OEXIT /CONTINUE THERE 1017 1018 / O(UTPUT) D(ELETE). 1019 1020 047016 4327 OD, JMS OSUB /SETUP SCOPE MODE 1021 047017 4552 JMS I [GRCLEAR] /CLEAR GRAPHICS BUFFER 1022 047020 4772 JMS I (FRCALPHA) /FORCE ALPHA-ONLY MODE 1023 047021 5315 JMP OEXIT /CONTINUE THERE 1024 1025 / O(UTPUT) E(RASE). 1026 1027 047022 4327 OE, JMS OSUB /SETUP SCOPE MODE 1028 047023 1375 TAD (35) /GET A CHARACTER 1029 047024 4774 JMS I (OUT) /SEND IT 1030 047025 1373 TAD (37) /GET AN CHARACTER 1031 047026 4774 JMS I (OUT) /SEND IT 1032 047027 4771 JMS I (FRCGRAPHICS) /FORCE GRAPHICS-ONLY MODE 1033 047030 5315 JMP OEXIT /CONTINUE THERE 1034 1035 / O(UTPUT) F(REE) (OF CURSOR). 1036 1037 047031 7201 OF, NL0001 /INDICATE CURSOR REMOVAL 1038 1039 / O(UTPUT) O(N) (CURSOR). 1040 1041 047032 6251 OO, CDF DFIELD+10 /**** VT-8/E CONSOLE **** CDF MCS+10 1042 047033 3770 DCA I (CURSW) /SET CURSOR SWITCH EITHER WAY 1043 1044 / O(UTPUT) S(COPE). 1045 1046 047034 4327 OS, JMS OSUB /SETUP SCOPE MODE 1047 047035 5315 JMP OEXIT /CONTINUE THERE 1048 / O(PTION) G(ENERIC). 1049 1050 047036 4767 OG, JMS I (INCLEAR) /CLEAR ALL INPUT FLAGS 1051 047037 2426 ISZ I OGENABLE /ENABLE GENERIC INPUT FLAG 1052 047040 5315 JMP OEXIT /CONTINUE THERE 1053 1054 / O(UTPUT) I(NVERTING). 1055 1056 047041 1156 OI, TAD [CURSOR-BOLD] /GET CURSOR COMPENSATION 1057 047042 3017 DCA UPFOLD /STORE IT 1058 047043 1376 TAD (-CURSOR+BOLD+CURSOR+200) /GET LOWER-CASE COMPENSATION 1059 047044 5262 JMP OBENTRY /CONTINUE THERE 1060 1061 / O(PTION) K(EYBOARD). 1062 1063 047045 4767 OK, JMS I (INCLEAR) /CLEAR ALL INPUT FLAGS 1064 047046 2427 ISZ I OKENABLE /SET KEYBOARD INPUT FLAG 1065 047047 5315 JMP OEXIT /CONTINUE THERE 1066 1067 / O(UTPUT) L(PT). 1068 1069 047050 4337 OL, JMS SETSPLAT /SET HARDCOPY 1070 047051 1030 TAD OLPT /GET OUR ROUTINE POINTER 1071 047052 5266 JMP OLENTRY /CONTINUE THERE 1072 1073 / O(PTION) M(ONITOR). 1074 1075 047053 6452 OM, DPSMIOT /STOP THE DISPLAY 1076 047054 6002 IOF /PREVENT PROBLEMS 1077 047055 6203 CIF CDF 00 /GOING TO FIELD ZERO 1078 047056 5777 JMP I (SBOOT) /GOODBYE! 1079 1080 / O(UTPUT) N(ORMAL). 1081 1082 047057 1366 ON, TAD (NORMAL-BOLD) /GET NORMAL COMPENSATION 1083 047060 3017 DCA UPFOLD /STORE IT 1084 047061 1376 TAD (-NORMAL+BOLD) /GET LOWER-CASE COMPENSATION 1085 047062 3015 OBENTRY,DCA LOFOLD /STORE LOWER-CASE VALUE 1086 047063 5315 JMP OEXIT /CONTINUE THERE 1087 1088 / O(UTPUT) P(RINTER). 1089 1090 047064 4337 OP, JMS SETSPLAT /SET HARDCOPY 1091 047065 1031 TAD OPRINT /GET OUR ROUTINE POINTER 1092 047066 3001 OLENTRY,DCA ODEV /STASH THE POINTER 1093 047067 5315 JMP OEXIT /CONTINUE THERE 1094 1095 / O(UTPUT) T(ERMINAL). 1096 1097 047070 4337 OT, JMS SETSPLAT /SETUP HARDCOPY 1098 047071 1032 TAD OTTY /GET OUR OUTPUT POINTER 1099 047072 5266 JMP OLENTRY /CONTINUE THERE 1100 / O(UTPUT) U(NIVERSAL. 1101 1102 047073 1351 OU, TAD OUSPLAT /GET OUR SPLAT AUGMENTATION 1103 047074 4337 JMS SETSPLAT /SET PROPER 1104 047075 1033 TAD OUNPTR /GET OUR POINTER 1105 047076 5266 JMP OLENTRY /CONTINUE THERE 1106 1107 / O(PTION) V(T-8/E). 1108 1109 047077 4767 OV, JMS I (INCLEAR) /CLEAR ALL INPUT FLAGS 1110 047100 2435 ISZ I OVENABLE /SET VT-8/E KEYBOARD INPUT FLAG 1111 047101 5315 JMP OEXIT /CONTINUE THERE 1112 1113 / O(UTPUT) W(AIT). 1114 1115 047102 6251 OW, CDF DFIELD+10 /**** VT-8/E CONSOLE **** CDF MCS+10 1116 047103 1551 TAD I [VTMODE] /GET CURRENT MODE 1117 047104 3352 DCA OWTEMP /SAVE IT 1118 047105 4771 JMS I (FRCGRAPHICS) /FORCE GRAPHICS MODE FOR NOW 1119 047106 6203 CIF CDF 00 /GOING TO FIELD ZERO 1120 047107 4753 JMS I PDOWAIT /WAIT FOR A CHARACTER 1121 047110 7200 CLA /THROW IT AWAY 1122 047111 1012 TAD DBLALPHA /GET DOUBLE ALPHA WORD 1123 047112 7041 CIA /COUNTERACT IT 1124 047113 1352 TAD OWTEMP /ADD ON PREVIOUS VALUE 1125 047114 4772 JMS I (FRCALPHA) /RESTORE FORMER MODE 1126 1127 / COMMON EXIT ROUTINE. 1128 1129 047115 6203 OEXIT, CIF CDF 00 /GOING TO FIELD ZERO 1130 047116 1016 TAD OCHAR /GET THE DELIMITER 1131 047117 3765 DCA I (CHAR) /RESTORE IT 1132 047120 1016 TAD OCHAR /GET IT AGAIN 1133 047121 1364 TAD (-" ) /COMPARE TO 1134 047122 7440 SZA /SKIP IF IT MATCHES 1135 047123 1363 TAD (-",+" ) /ELSE COMPARE TO "," 1136 047124 7640 SZA CLA /SKIP IF EITHER 1137 047125 5762 JMP I (PROC) /ELSE CONTINUE PROCESSING THERE 1138 047126 5754 JMP I POCOMAGN /PROCESS ADDITIONAL "O" SUB-COMMANDS THERE 1139 1140 / SCOPE MODE SETUP ROUTINE. 1141 1142 047127 0000 OSUB, .-. /SCOPE MODE ROUTINE 1143 047130 1002 TAD OSCOPE /GET SCOPE ROUTINE POINTER 1144 047131 3001 DCA ODEV /SET IT UP 1145 047132 6201 CDF 00 /GOTO FIELD ZERO 1146 047133 1361 TAD ("\&37) /GET SPECIAL CHARACTER 1147 047134 3760 DCA I (SPLAT) /STORE IN ROUTINE 1148 047135 6241 CDF DFIELD /BACK TO OUR FIELD 1149 047136 5727 JMP I OSUB /RETURN 1150 / SET HARDCOPY ROUTINE. 1151 1152 047137 0000 SETSPLA,.-. /SET SPLAT CHARACTER ROUTINE 1153 047140 6201 CDF 00 /GOTO FIELD ZERO 1154 047141 1357 TAD ("\) /GET NORMAL CHARACTER 1155 047142 3760 DCA I (SPLAT) /STORE IN ROUTINE 1156 047143 5737 JMP I SETSPLAT /RETURN 1157 1158 / RECOVERY FIXUP ROUTINE. 1159 1160 047144 4327 RECFIX, JMS OSUB /SETUP O(UTPUT) S(COPE) 1161 047145 4767 JMS I (INCLEAR) /CLEAR ALL INPUT FLAGS 1162 047146 2435 ISZ I OVENABLE /SET VT-8/E KEYBOARD INPUT FLAG 1163 047147 6203 CIF CDF 00 /GOING TO FIELD ZERO 1164 047150 5756 JMP I (RECOVR+20) /CONTINUE THERE 1165 1166 047151 7500 OUSPLAT,-300 /**** NON-VT-8/E CONSOLE **** 0000 1167 047152 0000 OWTEMP, .-. /O(UTPUT) W(AIT) ROUTINE TEMPORARY 1168 047153 0122 PDOWAIT,DOWAIT&177 /**** RELOCATE **** 1169 047154 0070 POCOMAG,OCOMAGN&177 /**** RELOCATE **** 1170 1171 047156 2760 PAGE 047157 0334 047160 3051 047161 0034 047162 0611 047163 7764 047164 7540 047165 0066 047166 7400 047167 7343 047170 0075 047171 6545 047172 6536 047173 0037 047174 7200 047175 0035 047176 0400 047177 7600 1172 / GENERALIZED OUTPUT ROUTINE. 1173 1174 047200 0000 OUT, .-. /OUTPUT ROUTINE 1175 047201 3352 DCA OUTEMP /SAVE PASSED VALUE 1176 047202 7326 NL0002 /SET CIF BIT 1177 047203 6214 RDF /GET CALLING FIELD 1178 047204 1377 TAD (CDF) /MAKE IT CIF CDF RETURN FIELD 1179 047205 3217 DCA OUTCIDF /STORE IN-LINE 1180 047206 1352 TAD OUTEMP /GET PASSED VALUE 1181 047207 6241 CDF DFIELD /INDICATE OUR FIELD AS NEEDED FOR SOME ROUTINES 1182 047210 5401 JMP I ODEV /GOTO CURRENT ROUTINE 1183 1184 / VT-8/E CONSOLE OUTPUT ROUTINE. 1185 1186 047211 4320 VTCON, JMS VTFOLD /DO SELECTIVE FOLD 1187 1188 / CONSOLE OUTPUT ROUTINE. 1189 1190 047212 0000 CON, .-. /WILL BE CIF MCS+10 1191 047213 4033 JMS OUTCON /CALL OVERLAY ROUTINE 1192 047214 5212 JMP CON /TRY AGAIN IF NECESSARY 1193 1194 / RETURNS HERE AFTER OUTPUTTING. 1195 1196 047215 7200 OUTEXIT,CLA /CLEAN UP 1197 047216 4555 JMS I [LCHECK] /CHECK IF "L" HAS BEEN LOCATED 1198 047217 0000 OUTCIDF,.-. /WILL BE CIF CDF RETURN FIELD 1199 047220 5600 JMP I OUT /RETURN TO CALLER 1200 1201 / DEVICE 66 LPT: OUTPUT ROUTINE. 1202 1203 047221 3352 LPT, DCA OUTEMP /SAVE THE CHARACTER 1204 047222 1230 TAD LINIT /GET INITIALIZE VARIABLE 1205 047223 7440 SZA /SKIP IF ALREADY INITIALIZED 1206 047224 6666 LLSIOT /ELSE OUTPUT NOW 1207 047225 7200 CLA /CLEAN UP 1208 047226 3230 DCA LINIT /PREVENT FURTHER INITIALIZATION 1209 047227 5631 JMP I LPTR /GO TO PROPER ROUTINE 1210 1211 047230 7777 LINIT, -1 /LPT: INITIALIZE SWITCH 1212 047231 7232 LPTR, LPTNORMAL /**** SECONDARY DEVICE 66 OVERLAY HANDLING **** SECLPT 1213 1214 / COMES HERE FOR NORMAL DEVICE 66 LPT: HANDLING. 1215 1216 047232 6661 LPTNORM,LSFIOT /FLAG UP? 1217 047233 5232 JMP LPTNORMAL /NO, WAIT FOR IT 1218 047234 5243 JMP LNORMENTRY /YES, CONTINUE THERE 1219 / COMES HERE IF DEVICE 66 IS HANDLED BY CONSOLE OVERLAY. 1220 1221 047235 1040 SECLPT, TAD O66MSK /GET INTERRUPT BIT 1222 047236 0021 AND ISTAT /GET THE FLAG BIT 1223 047237 7650 SNA CLA /FLAG UP? 1224 047240 5235 JMP SECLPT /NO, WAIT FOR IT 1225 047241 1040 TAD O66MSK /GET THE FLAG BIT 1226 047242 4776 JMS I (INTCLR) /CLEAR IT 1227 047243 1352 LNORMEN,TAD OUTEMP /GET THE CHARACTER 1228 047244 6666 LLSIOT /OUTPUT IT 1229 047245 5215 JMP OUTEXIT /FINISH THERE 1230 1231 / LOGICAL LPT: OUTPUT ROUTINE. 1232 1233 047246 3352 LLPT, DCA OUTEMP /SAVE THE CHARACTER 1234 047247 1256 TAD LLINIT /GET INITIALIZE SWITCH 1235 047250 7440 SZA /SKIP IF ALREADY INITIALIZED 1236 047251 4257 JMS LLPTOUT /ELSE OUTPUT IT 1237 047252 3256 DCA LLINIT /CLEAR INITIALIZE SWITCH 1238 047253 1352 TAD OUTEMP /GET THE CHARACTER 1239 047254 4257 JMS LLPTOUT /OUTPUT IT 1240 047255 5215 JMP OUTEXIT /FINISH THERE 1241 1242 047256 7777 LLINIT, -1 /LOGICAL LPT: INITIALIZE SWITCH 1243 1244 / LOGICAL LPT: OUTPUT SUBROUTINE. 1245 1246 047257 0000 LLPTOUT,.-. /LLPT: OUTPUT 1247 047260 0000 LPTCIF, .-. /WILL BE CIF MCS+10 1248 047261 4035 JMS OUTLPT /OUTPUT THE CHARACTER 1249 047262 5260 JMP LPTCIF /WAIT FOR IT 1250 047263 7200 CLA /CLEAN UP 1251 047264 5657 JMP I LLPTOUT /RETURN 1252 1253 / DEVICE 04 OUTPUT ROUTINE. 1254 1255 047265 3352 TTY, DCA OUTEMP /SAVE THE CHARACTER 1256 047266 1275 TAD TTINIT /GET INITIALIZE SWITCH 1257 047267 7440 SZA /SKIP IF CLEAR 1258 047270 6046 TLSIOT /ELSE OUTPUT NOW 1259 047271 7200 CLA /CLEAN UP 1260 047272 3275 DCA TTINIT /CLEAR INITIALIZE SWITCH 1261 047273 5674 JMP I TPTR /GOTO PROPER ROUTINE 1262 1263 047274 7276 TPTR, TTYNORMAL /**** SECONDARY CONSOLE HANDLING **** SECTTY 1264 047275 7777 TTINIT, -1 /TTY: INITIALIZE SWITCH 1265 1266 047276 1041 TTYNORM,TAD TFLAG /DONE YET? 1267 047277 7650 SNA CLA /SKIP IF SO 1268 047300 5276 JMP TTYNORMAL /NO, WAIT FOR IT 1269 047301 3041 DCA TFLAG /YES, CLEAR THE FLAG 1270 047302 5311 JMP TNORMENTRY /CONTINUE THERE 1271 047303 1037 SECTTY, TAD O04MSK /GET INTERRUPT MASK VALUE 1272 047304 0021 AND ISTAT /GET THE FLAG BIT 1273 047305 7650 SNA CLA /SKIP IF SET 1274 047306 5303 JMP SECTTY /JUMP IF NOT 1275 047307 1037 TAD O04MSK /GET THE BIT AGAIN 1276 047310 4776 JMS I (INTCLR) /CLEAR IT 1277 047311 1352 TNORMEN,TAD OUTEMP /GET THE CHARACTER 1278 047312 6046 TLSIOT /OUTPUT IT 1279 047313 5215 JMP OUTEXIT /CONTINUE THERE 1280 1281 / INTERNAL VT-8/E OUTPUT ROUTINE. 1282 1283 047314 4320 INTVT8E,JMS VTFOLD /DO SELECTIVE FOLD 1284 047315 6252 CIF DFIELD+10 /GOTO ROUTINE FIELD 1285 047316 4055 JMS IVTOUT /CALL OUR INTERNAL ROUTINE 1286 047317 5215 JMP OUTEXIT /FINISH IT THERE 1287 1288 / VT-8/E FOLDING ROUTINE. 1289 1290 047320 0000 VTFOLD, .-. /FOLD ROUTINE 1291 047321 3351 DCA FOLDTMP /SAVE PASSED VALUE 1292 047322 1351 TAD FOLDTMP /GET IT BACK 1293 047323 0163 AND [177] /JUST SEVEN-BIT 1294 047324 1375 TAD (-" !200) /COMPARE TO CONTROL CHARACTER 1295 047325 7710 SPA CLA /SKIP IF GREATER 1296 047326 5335 JMP CONFOLD /ELSE FORGET IT 1297 047327 1351 TAD FOLDTMP /GET IT AGAIN 1298 047330 0163 AND [177] /JUST SEVEN-BIT 1299 047331 1374 TAD (-140) /COMPARE TO LOWER-CASE 1300 047332 7700 SMA CLA /SKIP IF UPPER-CASE 1301 047333 1015 TAD LOFOLD /ELSE ADD ON LOWER-CASE COMPENSATION 1302 047334 1017 TAD UPFOLD /AT LEAST USE UPPER-CASE VALUE 1303 047335 6251 CONFOLD,CDF DFIELD+10 /**** VT-8/E CONSOLE **** CDF MCS+10 1304 047336 3773 DCA I (VMODE) /STORE AUGMENTATION VALUE 1305 047337 1012 TAD DBLALPHA /GET ALPHA VALUE 1306 047340 4554 JMS I [GRPHCHK] /ENSURE AT LAST HALF-TIME ALPHA MODE 1307 047341 1351 TAD FOLDTMP /GET ORIGINAL VALUE 1308 047342 5720 JMP I VTFOLD /RETURN 1309 1310 / INPUT ENABLE FLAG CLEAR ROUTINE. 1311 1312 047343 0000 INCLEAR,.-. /INPUT FLAG CLEAR ROUTINE 1313 047344 6242 CIF DFIELD /INHIBIT INTERRUPTS 1314 047345 3020 DCA DFLAG /DISABLE 43 KEYBOARD 1315 047346 3024 DCA KFLAG /DISABLE 03 KEYBOARD 1316 047347 3036 DCA OVFLAG /DISABLE OVERLAY KEYBOARD 1317 047350 5743 JMP I INCLEAR /RETURN 1318 1319 047351 0000 FOLDTMP,.-. /TEMPORARY FOR FOLD ROUTINE 1320 047352 0000 OUTEMP, .-. /OUTPUT TEMPORARY 1321 047373 0074 PAGE 047374 7640 047375 7740 047376 6723 047377 6201 1322 / GRAPHICS MODE CHECK ROUTINE. 1323 1324 047400 0000 GRPHCHK,.-. /GRAPHICS (OR ALPHA) CHECK ROUTINE 1325 047401 7450 SNA /ALPHA MODE PASSED? 1326 047402 1377 TAD (DFIELD+1) /NO, USE GRAPHICS VALUE 1327 047403 0376 AND (77) /JUST SIX-BIT EITHER WAY 1328 047404 3234 DCA GRPHCOMPARE /SAVE IT 1329 047405 6251 GRPHCDF,CDF DFIELD+10 /**** VT-8/E CONSOLE **** CDF MCS+10 1330 047406 1551 TAD I [VTMODE] /GET CURRENT MODE WORD 1331 047407 3235 DCA GRPHTMP /SAVE IT 1332 047410 1235 TAD GRPHTMP /GET IT BACK 1333 047411 0376 AND (77) /JUST SIX-BIT 1334 047412 7041 CIA /INVERT FOR TESTING 1335 047413 1234 TAD GRPHCOMPARE /COMPARE TO DESIRED VALUE 1336 047414 7650 SNA CLA /SKIP IF DIFFERENT 1337 047415 5232 JMP GRPHEXIT /JUMP IF IT MATCHES 1338 047416 1235 TAD GRPHTMP /GET IT AGAIN 1339 047417 7002 BSW /CHECK LEFT HALF 1340 047420 0376 AND (77) /REMOVE OTHER HALF 1341 047421 7041 CIA /INVERT FOR TESTING 1342 047422 1234 TAD GRPHCOMPARE /COMPARE TO DESIRED VALUE 1343 047423 7650 SNA CLA /SKIP IF DIFFERENT 1344 047424 5232 JMP GRPHEXIT /JUMP IF IT MATCHES 1345 047425 1235 TAD GRPHTMP /GET CURRENT VALUE 1346 047426 0375 AND (7700) /KEEP UPPER HALF 1347 047427 1234 TAD GRPHCOMPARE /ADD ON DESIRED VALUE AS LOWER HALF 1348 047430 6001 ION /PROTECT NEXT INSTRUCTION 1349 047431 3551 DCA I [VTMODE] /STORE NEW COMPOSITE VALUE 1350 047432 6241 GRPHEXI,CDF DFIELD /BACK TO OUR FIELD 1351 047433 5600 JMP I GRPHCHK /RETURN 1352 1353 047434 0000 GRPHCOM,.-. /TEMPORARY 1354 047435 0000 GRPHTMP,.-. /TEMPORARY 1355 / <^C> CHECK ROUTINE. 1356 1357 047436 0000 CHKC, .-. /<^C> CHECK ROUTINE 1358 047437 7450 SNA / PASSED? 1359 047440 5636 JMP I CHKC /YES, FORGET IT 1360 047441 1374 TAD (-3) /COMPARE TO <^C> 1361 047442 7450 SNA /SKIP IF DIFFERENT 1362 047443 2773 ISZ I (SCRSIZE) /ELSE SET <^C> INDICATOR 1363 047444 7740 SMA SZA CLA /SKIP IF <^C> OR LESS 1364 047445 5636 JMP I CHKC /RETURN IF NOT 1365 047446 1772 TAD I (SBTFUN) /GET BOOTSTRAP UNIT 1366 047447 0371 AND (7) /JUST UNIT BITS 1367 047450 1257 TAD BTFUN/(17^100) /ADD ON FUNCTION BITS 1368 047451 3257 DCA BTFUN /STORE IN-LINE 1369 047452 6452 DPSMIOT /STOP THE DISPLAY 1370 047453 6241 CDF DFIELD /INDICATE OUR FIELD 1371 047454 6202 CIF 00 /GOING TO FIELD ZERO 1372 047455 4770 JMS I (SYSIO) /CALL I/O ROUTINES 1373 047456 0000 0000 /TRANSFER ADDRESS 1374 047457 1700 BTFUN, 17^100+.-. /UNIT BITS WILL BE FILLED IN 1375 047460 0001 1 /BLOCK NUMBER 1376 047461 6203 CIF CDF 00 /GOING TO FIELD ZERO 1377 047462 5767 JMP I (MONSTRT) /GO START IT UP 1378 1379 / <^S>/<^Q> CHECK ROUTINE. 1380 1381 047463 0000 CSCQ, .-. /<^S>/<^Q> CHECK ROUTINE 1382 047464 1366 TAD (-"S!300) /COMPARE PASSED TO <^S> 1383 047465 7450 SNA /SKIP IF DIFFERENT 1384 047466 5273 JMP GOTCS /JUMP IF IT MATCHES 1385 047467 1365 TAD (-"Q+"S) /COMPARE TO <^Q> 1386 047470 7640 SZA CLA /SKIP IF IT MATCHES 1387 047471 5663 JMP I CSCQ /RETURN IF NEITHER 1388 047472 7410 SKP /DON'T SET IF <^Q> 1389 047473 7330 GOTCS, NL4000 /SET <^S> VALUE 1390 047474 3764 DCA I (CSCQSW) /STORE IN SWITCH 1391 047475 2263 ISZ CSCQ /BUMP RETURN ADDRESS 1392 047476 5663 JMP I CSCQ /TAKE SKIP RETURN 1393 / "L" COMMAND LOCATION ROUTINE. 1394 1395 047477 0000 LCHECK, .-. /CHECK IF "L" IS LOCATED ROUTINE 1396 047500 7410 DESTRUC,SKP /**** "L" COMMAND LOCATED **** 0000 1397 047501 5677 JMP I LCHECK /JUST RETURN 1398 047502 6201 CDF 00 /GOTO FIELD ZERO 1399 047503 1763 TAD I (COMGO+10) /GET CURRENT "L" COMMAND ADDRESS 1400 047504 1156 TAD [-7600] /ADD ON UPPER LIMIT 1401 047505 7100 CLL /CLEAR LINK FOR TEST 1402 047506 1156 TAD [7600-7400] /ADD ON RANGE 1403 047507 7620 SNL CLA /SKIP IF COMMAND DEFINED IN RANGE 1404 047510 5677 JMP I LCHECK /ELSE JUST RETURN 1405 047511 1763 TAD I (COMGO+10) /GET CURRENT COMMAND ADDRESS 1406 047512 3025 DCA LSAVE /SAVE IT 1407 047513 1362 TAD (LRET) /GET OUR "L" COMMAND ADDRESS 1408 047514 3763 DCA I (COMGO+10) /STORE IT IN TABLE 1409 047515 3300 DCA DESTRUCT /PREVENT OUR CHECK 1410 047516 7410 VT8LEAV,SKP /**** VT-8/E CONSOLE **** 0000 1411 047517 5677 JMP I LCHECK /RETURN NOW IF VT-8/E CONSOLE 1412 047520 7201 NL0001 /SET /L BIT MASK 1413 047521 0761 AND I (SWAL) /GET THE BIT 1414 047522 7650 SNA CLA /SKIP IF SET 1415 047523 5327 JMP NOEL /JUMP IF NOT 1416 047524 1360 TAD (DPSMIOT) /GET DISPLAY STOP INSTRUCTION 1417 047525 3757 DCA I (LIBZAP) /ZAP IT IN 1418 047526 5677 JMP I LCHECK /RETURN 1419 1420 047527 1360 NOEL, TAD (DPSMIOT) /GET DISPLAY STOP INSTRUCTION 1421 047530 3756 DCA I (LCOMZAP) /ZAP IT IN 1422 047531 5677 JMP I LCHECK /RETURN 1423 047556 7427 PAGE 047557 7500 047560 6452 047561 7604 047562 1360 047563 1173 047564 0037 047565 0002 047566 7755 047567 0353 047570 7640 047571 0007 047572 7602 047573 7611 047574 7775 047575 7700 047576 0077 047577 0041 1424 1425 040151 0005 FIELD DFIELD+10%10 /ON TO NEXT FIELD 040152 6732 040153 1150 040154 7400 040155 7477 040156 0200 040157 1152 040160 0044 040161 0046 040162 0045 040163 0177 040164 6400 040165 1612 040166 1155 040167 7524 040170 0066 040171 6521 040172 6725 040173 6724 040174 1153 040175 2422 040176 0013 040177 6600 1426 *0 /START AT THE BEGINNING 1427 1428 050000 0201 CADDRES,CADNORMAL /CURSOR ADDRESSING <^N> ROUTINE ADDRESS 1429 050001 0000 OUTAC, .-. /OUTPUT AC TEMPORARY 1430 050002 0000 OUTCHR, .-. /OUTPUT TEMPORARY 1431 050003 0200 SCAPADD,SCAPNORMAL / SEQUENCE ROUTINE ADDRESS 1432 050004 0000 VT8TMP, .-. /TEMPORARY FOR INTERRUPT HANDLER 1433 050005 5252 VTMODE, DFIELD+10+2^101 /INTERRUPT LEVEL MODE SWITCHING WORD 1434 050006 0000 VTEMP1, .-. /OUTPUT TEMPORARY 1435 050007 0000 VTEMP2, .-. /OUTPUT TEMPORARY 1436 1437 *10 /GET TO AUTO-INDEX AREA 1438 1439 050010 0000 CXR1, .-. /AUTO-INDEX NUMBER ONE 1440 050011 0000 CXR2, .-. /AUTO-INDEX NUMBER TWO 1441 1442 *20 /GET PAST AUTO-INDEX AREA 1443 1444 050020 0000 OLDCHR, .-. /PREVIOUS CONTENTS OF LOCATION WHERE CURSOR IS 1445 050021 0021 OLDPTR, OLDPTR /ADDRESS OF CURSED LOCATION 1446 050022 0000 VTLNPTR,.-. /POINTER TO BEGINNING OF CURRENT LINE IN DISPLAY BUFFER 1447 050023 0000 VTPTR, .-. /POINTER TO CURRENT CHARACTER IN DISPLAY BUFFER 1448 1449 / VT-8/E INTERRUPT HANDLING ROUTINE. 1450 1451 050024 6456 VT8INT, DPCLIOT /VIDEO RETRACE FLAG UP? 1452 050025 5047 JMP VTINTXT /NO, FORGET IT 1453 050026 1005 TAD VTMODE /YES, GET CURRENT MODE 1454 050027 7002 BSW /FLIP IT 1455 050030 3005 DCA VTMODE /STORE BACK 1456 050031 1005 TAD VTMODE /GET IT AGAIN 1457 050032 0177 AND [70] /JUST FIELD BITS 1458 050033 3004 DCA VT8TMP /STORE FOR NOW 1459 050034 7327 NL0006 /SETUP QUARTER MASK 1460 050035 0005 AND VTMODE /GET THE MEMORY QUARTER 1461 050036 7112 CLL RTR;RTR /MOVE UP 050037 7012 1462 050040 1176 TAD [VTOFFSET] /ADD ON IMPLIED OFFSET 1463 050041 6450 DPLAIOT /LOAD DISPLAY ADDRESS 1464 050042 7201 NL0001 /SET MODE MASK 1465 050043 0005 AND VTMODE /GET THE MODE BIT 1466 050044 7124 STL RAL /MOVE UP AND SET INTERRUPT ENABLE 1467 050045 1004 TAD VT8TMP /ADD ON FIELD BITS 1468 050046 6451 DPGOIOT /START IT UP 1469 050047 6242 VTINTXT,CIF DFIELD /GOING TO OTHER CODE FIELD 1470 050050 5575 JMP I [MORBACK] /CONTINUE THERE 1471 1472 *54 /FOR COMPATIBILITY 1473 1474 / THE FOLLOWING LOCATION CONTROLS THE TAB-IN FOR A CONTINUED LINE AFTER 1475 / A BLINKING "+" CHARACTER IS INSERTED AT THE BEGINNING OF THE LINE. 1476 1477 050054 7730 TABCNT, -50 /TAB-IN COUNT 1478 050055 0000 IVTOUT, .-. /OUTPUT ROUTINE 1479 050056 3001 DCA OUTAC /SAVE PASSED VALUE 1480 050057 6251 CDF DFIELD+10 /ENSURE OUR FIELD 1481 050060 1001 TAD OUTAC /GET PASSED VALUE BACK 1482 050061 0174 AND [177] /JUST SEVEN-BIT 1483 050062 3002 DCA OUTCHR /STASH THE CHARACTER 1484 050063 5403 JMP I SCAPADDRESS /GO TO HANDLING ROUTINE 1485 1486 *74 /FOR COMPATIBILITY 1487 1488 050074 0000 VMODE, 0 /OUTPUT AUGMENTATION BITS 1489 050075 0000 CURSW, 0 /CURSOR ON SWITCH 1490 PAGE 1491 1492 / WHEN HANDLING IS DISABLED, IT COMES HERE. 1493 1494 050200 5400 SCAPNOR,JMP I CADDRESS /GO TO CURSOR ADDRESSING ROUTINE 1495 1496 / WHEN CURSOR ADDRESSING IS DISABLED, IT COMES HERE. 1497 1498 050201 1002 CADNORM,TAD OUTCHR /GET THE LATEST CHARACTER 1499 050202 1377 TAD (-" !200) /COMPARE TO 1500 050203 7510 SPA /SKIP IF NOT CONTROL CHARACTER 1501 050204 5776 JMP I (CONTROL) /JUMP IF CONTROL CHARACTER 1502 050205 1173 TAD [-100] /COMPARE TO LOWER-CASE 1503 050206 7510 SPA /SKIP IF LOWER-CASE 1504 050207 1375 TAD (BOLD+200+" -200) /MAKE IT UPPER-CASE 1505 050210 1374 TAD (NORMAL+200+100) /ADD ON RESTORATION BITS 1506 050211 1074 TAD VMODE /ADD ON AUGMENTATION BITS 1507 050212 3006 DCA VTEMP1 /SAVE FOR NOW 1508 050213 4572 JMS I [PUTBACK] /RESTORE OLD CURSOR POSITION 1509 050214 1006 TAD VTEMP1 /GET THE CHARACTER 1510 050215 4571 JMS I [PRTCHR] /OUTPUT IT 1511 050216 4773 VTEXIT, JMS I (ROLCHK) /CHECK IF IT FITS 1512 050217 1023 TAD VTPTR /GET CURRENT POINTER 1513 050220 3021 DCA OLDPTR /SAVE IT 1514 050221 1421 TAD I OLDPTR /GET CURRENT CHARACTER 1515 050222 3020 DCA OLDCHR /SAVE IT 1516 050223 1075 TAD CURSW /GET CURSOR SWITCH 1517 050224 7640 SZA CLA /SKIP IF CLEAR 1518 050225 5232 JMP VSNSTST /JUMP IF SET 1519 050226 1020 TAD OLDCHR /GET CURRENT CHARACTER 1520 050227 0372 AND (7177) /REMOVE MODE BITS 1521 050230 1171 TAD [CURSOR+200] /MAKE IT CURSOR INSTEAD 1522 050231 3421 DCA I OLDPTR /STORE IT BACK 1523 050232 6455 VSNSTST,DPMSIOT /GET THE SENSE SWITCH 1524 050233 7710 SPA CLA /SKIP IF NOT SET 1525 050234 5245 JMP VEXIT /EXIT NOW IF SET 1526 050235 7604 LAS /GET SWITCH REGISTER 1527 050236 3771 DCA I (WASTE) /SETUP WASTE COUNTER 1528 050237 1170 TAD [-4] /GET INNER WASTE VALUE 1529 050240 3006 DCA VTEMP1 /SETUP COUNTER 1530 050241 2006 ISZ VTEMP1 /WASTE 1531 050242 5241 JMP .-1 /SOME TIME 1532 050243 2771 ISZ I (WASTE) /WASTED ENOUGH TIME? 1533 050244 5237 JMP .-5 /NO, KEEP WASTING AWAY 1534 050245 6243 VEXIT, CIF CDF DFIELD /BACK TO CALLING FIELD 1535 050246 5455 JMP I IVTOUT /RETURN TO CALLER 1536 / COMES HERE. 1537 1538 050247 1022 VTCR, TAD VTLNPTR /GET LINE POINTER 1539 050250 7041 CIA /INVERT 1540 050251 1023 TAD VTPTR /ADD ON CURRENT POINTER 1541 050252 1054 TAD TABCNT /NOW HAVE LINE DIFFERENCE 1542 050253 7450 SNA /SKIP IF NOT ON FIRST LINE 1543 050254 5260 JMP BACKIN /JUMP IF JUST THE TRIVIAL CASE 1544 050255 0167 AND [77] /CHECK FOR JUST-CONTINUED LINE 1545 050256 7650 SNA CLA /SKIP IF OTHER 1546 050257 5264 JMP BACKUP /JUST BACKUP A WHOLE LINE 1547 050260 1023 BACKIN, TAD VTPTR /GET CURRENT POINTER 1548 050261 0173 AND [7700] /JUST LINE BITS 1549 050262 3023 CUPIN, DCA VTPTR /NOW AT BEGINNING OF LINE 1550 050263 5770 JMP I (COMMON) /CONTINUE THERE 1551 1552 050264 1023 BACKUP, TAD VTPTR /GET THE POINTER 1553 050265 0173 AND [7700] /JUST LINE BITS 1554 050266 3023 DCA VTPTR /STORE BACK 1555 050267 1166 TAD [" &177+4000] /GET A 1556 050270 3423 DCA I VTPTR /PUT IT IN BUFFER 1557 050271 1173 TAD [-100] /GET BACKUP FACTOR 1558 050272 5260 JMP BACKIN /CONTINUE THERE 1559 1560 / ARROW MODE (^) CONTROL CHARACTERS COME HERE. 1561 1562 050273 1367 PRCONT, TAD ("^+BOLD) /GET AN "^" 1563 050274 4571 JMS I [PRTCHR] /INSERT IT 1564 050275 1002 TAD OUTCHR /GET THE CHARACTER 1565 050276 1366 TAD (BOLD+300+4000) /MAKE IT BOLD 1566 050277 4571 JMS I [PRTCHR] /INSERT IT 1567 050300 5770 JMP I (COMMON) /CONTINUE THERE 1568 1569 / SPECIAL HANDLING CHARACTER COMES HERE. 1570 1571 050301 1023 VTRUB, TAD VTPTR /GET CURRENT POINTER 1572 050302 1365 TAD (-VTBUFFER) /COMPARE TO LOWER LIMIT 1573 050303 7750 SPA SNA CLA /SKIP IF NOT AT BEGINNING 1574 050304 5337 JMP VTHOME /ELSE FORGET IT 1575 050305 7240 NL7777 /\ 1576 050306 1023 TAD VTPTR / >BACKUP THE POINTER 1577 050307 3023 DCA VTPTR // 1578 050310 1423 TAD I VTPTR /GET THE PREVIOUS CHARACTER 1579 050311 7004 RAL /EXPENDABLE BIT TO LINK 1580 050312 7200 CLA /CLEAN UP 1581 050313 1166 TAD [" &177+4000] /GET A 1582 050314 3423 DCA I VTPTR /PUT IT IN BUFFER 1583 050315 7430 SZL /SKIP IF IT WAS A REGULAR CHARACTER 1584 050316 5301 JMP VTRUB /ELSE RUBOUT PREVIOUS ALSO 1585 / COMES HERE. 1586 1587 050317 1023 VTEOS, TAD VTPTR /GET CURRENT POINTER 1588 050320 1364 TAD (-VTBFEND) /ESTABLISH CLEAR COUNT 1589 050321 5325 JMP EOSENTRY /CONTINUE THERE 1590 1591 / COMES HERE. 1592 1593 050322 1023 VTEOL, TAD VTPTR /GET THE POINTER 1594 050323 0167 AND [77] /JUST ON-LINE BITS 1595 050324 1173 TAD [-100] /FORM ON-LINE CLEAR COUNT 1596 050325 3006 EOSENTR,DCA VTEMP1 /STORE CLEAR COUNT 1597 050326 7240 NL7777 /BACKUP 1598 050327 1023 TAD VTPTR /GET THE POINTER 1599 050330 3010 DCA CXR1 /STORE FOR CLEARING 1600 050331 1166 TAD [" &177+4000] /GET A 1601 050332 3410 DCA I CXR1 /CLEAR THE CHARACTER 1602 050333 2006 ISZ VTEMP1 /DONE YET? 1603 050334 5331 JMP .-3 /NO, KEEP GOING 1604 050335 5770 JMP I (COMMON) /CONTINUE THERE 1605 1606 / COMES HERE. 1607 1608 050336 4763 VTFF, JMS I (CLEAR) /CLEAR THE BUFFER 1609 1610 / COMES HERE. 1611 1612 050337 1165 VTHOME, TAD [VTBUFFER] /POINT TO BEGINNING OF BUFFER 1613 050340 5262 JMP CUPIN /CONTINUE THERE 1614 1615 / HANDLING COMES HERE. 1616 1617 050341 1362 ESCAPE, TAD (ESCAP2) /SETUP NEXT ADDRESS POINTER 1618 050342 3003 DCA SCAPADDRESS /STASH THE NEW POINTER 1619 050343 5770 JMP I (COMMON) /CONTINUE THERE 1620 1621 / HANDLING CONTINUES HERE. 1622 1623 050344 1176 ESCAP2, TAD [SCAPNORMAL] /RESET THE 1624 050345 3003 DCA SCAPADDRESS / ADDRESS 1625 050346 4572 JMS I [PUTBACK] /RESTORE THE PREVIOUS CHARACTER 1626 050347 1001 TAD OUTAC /GET THE VALUE 1627 1628 / DO SOMETHING HERE. 1629 1630 050350 7200 CLA /CLEAN UP 1631 050351 5770 JMP I (COMMON) /CONTINUE THERE 1632 050362 0344 PAGE 050363 0670 050364 3200 050365 5600 050366 4500 050367 0536 050370 0470 050371 0756 050372 7177 050373 0621 050374 0100 050375 0440 050376 0431 050377 7740 1633 / CURSOR ADDRESSING INITIALLY COMES HERE. 1634 1635 050400 1377 VTCAD, TAD (CADY) /GET NEXT ADDRESS 1636 050401 3000 DCA CADDRESS /SET IT UP 1637 050402 5270 JMP COMMON /CONTINUE THERE 1638 1639 / COMES HERE UPON FIRST CHARACTER AFTER <^N>. 1640 1641 050403 1002 CADY, TAD OUTCHR /GET LATEST CHARACTER 1642 050404 7650 SNA CLA /SKIP IF NOT 1643 050405 5270 JMP COMMON /IGNORE IN <^N> SEQUENCE 1644 050406 1376 TAD (CADX) /GET NEXT ADDRESS 1645 050407 3000 DCA CADDRESS /SET IT UP 1646 050410 4572 JMS I [PUTBACK] /RESTORE THE CHARACTER 1647 050411 1002 TAD OUTCHR /GET THE CHARACTER 1648 050412 1375 TAD (-40-24) /ADD ON UPPER LIMIT 1649 050413 7100 CLL /CLEAR LINK FOR TEST 1650 050414 1374 TAD (24) /ADD ON RANGE 1651 050415 7420 SNL /SKIP IF IN RANGE 1652 050416 7200 CLA /ELSE USE 0000 1653 050417 1373 TAD (VTBUFFER%100) /ADD ON SHIFTED BUFFER BASE 1654 050420 7002 BSW /MOVE UP 1655 050421 3023 DCA VTPTR /SAVE AS NEW POINTER 1656 050422 1002 TAD OUTCHR /GET THE CHARACTER AGAIN 1657 050423 1372 TAD (-16) /COMPARE TO <^N> 1658 050424 7450 SNA /SKIP IF OTHER 1659 050425 5270 JMP COMMON /DON'T DO IT AGAIN IN MIDDLE! 1660 050426 1371 TAD (-40+16) /COMPARE TO OTHER CONTROL CHARACTERS 1661 050427 7500 SMA /SKIP IF CONTROL CHARACTER 1662 050430 5270 JMP COMMON /ELSE NO FURTHER ACTION 1663 050431 1370 CONTROL,TAD (CTABLE+40) /POINT AT TABLE ELEMENT 1664 050432 3006 DCA VTEMP1 /STASH THE POINTER 1665 050433 4572 JMS I [PUTBACK] /PUT THE CHARACTER BACK NOW 1666 050434 1406 TAD I VTEMP1 /GET THE ADDRESS 1667 050435 3006 DCA VTEMP1 /STASH IT 1668 050436 5406 JMP I VTEMP1 /GO TO ROUTINE ADDRESS 1669 / COMES HERE UPON SECOND CHARACTER AFTER <^N>. 1670 1671 050437 1002 CADX, TAD OUTCHR /GET LATEST CHARACTER 1672 050440 7650 SNA CLA /SKIP IF NOT 1673 050441 5270 JMP COMMON /IGNORE IN <^N> SEQUENCE 1674 050442 1367 TAD (CADNORMAL) /RESET THE 1675 050443 3000 DCA CADDRESS /NORMAL ADDRESS 1676 050444 4572 JMS I [PUTBACK] /PUT THE CHARACTER BACK NOW 1677 050445 1002 TAD OUTCHR /GET THE CHARACTER 1678 050446 1366 TAD (-40-110) /ADD ON UPPER LIMIT 1679 050447 7100 CLL /CLEAR LINK FOR TEST 1680 050450 1365 TAD (110) /ADD ON RANGE 1681 050451 7420 SNL /SKIP IF LEGAL 1682 050452 7200 CLA /ELSE USE 0000 1683 050453 1173 TAD [-100] /COMPARE TO OUR LIMIT 1684 050454 7500 SMA /SKIP IF OK 1685 050455 7240 NL7777 /ELSE TRUNCATE ON RIGHT 1686 050456 1364 TAD (100) /RESTORE THE VALUE 1687 050457 1023 TAD VTPTR /ADD ON CURRENT POINTER 1688 050460 3023 DCA VTPTR /STORE NEW VALUE 1689 050461 1002 TAD OUTCHR /GET THE CHARACTER AGAIN 1690 050462 1372 TAD (-16) /COMPARE TO <^N> 1691 050463 7450 SNA /SKIP IF OTHER 1692 050464 5270 JMP COMMON /JUMP IF <^N> 1693 050465 1371 TAD (-40+16) /COMPARE TO CONTROL CHARACTER 1694 050466 7510 SPA /SKIP IF NOT CONTROL CHARACTER 1695 050467 5231 JMP CONTROL /ELSE ALSO DO ITS FUNCTION 1696 050470 7610 COMMON, SKP CLA /CLEAN UP AND DON'T RING THE 1697 050471 6457 VTBELL, DPBLIOT /BANG A GONG AND GET IT ON 1698 050472 1023 TAD VTPTR /GET THE POINTER 1699 050473 0173 AND [7700] /JUST LINE BITS 1700 050474 3022 DCA VTLNPTR /STORE BEGINNING POINTER 1701 050475 5763 JMP I (VTEXIT) /CONTINUE THERE 1702 1703 / COMES HERE. 1704 1705 050476 7350 VTTAB, NL3777 /SETUP MASK 1706 050477 0423 AND I VTPTR /GET THE WORD 1707 050500 4571 JMS I [PRTCHR] /PUT IT BACK WITHOUT WASTE BIT 1708 050501 1023 TAD VTPTR /GET THE POINTER 1709 050502 0362 AND (7) /JUST BITS 1710 050503 7450 SNA /SKIP IF NOT AT A STOP 1711 050504 5270 JMP COMMON /JUMP IF IT IS 1712 050505 1361 TAD (7770) /FORM CHARACTER COUNT 1713 050506 3007 DCA VTEMP2 /STASH THE COUNTER 1714 050507 1423 TAD I VTPTR /GET THE CHARACTER 1715 050510 4571 JMS I [PRTCHR] /PUT IT RIGHT BACK 1716 050511 2007 ISZ VTEMP2 /DONE YET? 1717 050512 5307 JMP .-3 /NO, KEEP GOING 1718 050513 5270 JMP COMMON /YES, FINISH IT THERE 1719 / COMES HERE. 1720 1721 050514 1023 CLEFT, TAD VTPTR /GET THE CURRENT POINTER 1722 050515 0167 AND [77] /JUST ON-LINE BITS 1723 050516 7640 SZA CLA /SKIP IF AT BEGINNING 1724 050517 7240 NL7777 /ELSE GENERATE BACKUP FACTOR 1725 050520 1023 CRITENT,TAD VTPTR /UPDATE POINTER 1726 050521 3023 DCA VTPTR /STORE BACK 1727 050522 5270 JMP COMMON /CONTINUE THERE 1728 1729 / COMES HERE. 1730 1731 050523 1023 CRIGHT, TAD VTPTR /GET THE POINTER 1732 050524 7001 IAC /ADD ONE 1733 050525 0167 AND [77] /WILL BE AT BEGINNING OF LINE? 1734 050526 7640 SZA CLA /SKIP IF SO 1735 050527 7201 NL0001 /ELSE ALLOW UPDATE 1736 050530 5320 JMP CRITENTRY /CONTINUE THERE 1737 1738 / COMES HERE. 1739 1740 050531 1023 CUP, TAD VTPTR /GET THE POINTER 1741 050532 1164 TAD [-VTBUFFER-100] /COMPARE TO BEGINNING LIMIT 1742 050533 7700 SMA CLA /SKIP IF AT TOP ALREADY 1743 050534 1173 TAD [-100] /ELSE ALLOW BACKUP FACTOR 1744 050535 5320 JMP CRITENTRY /CONTINUE THERE 1745 1746 / COMES HERE. 1747 1748 050536 1023 CDOWN, TAD VTPTR /GET THE POINTER 1749 050537 1360 TAD (100-VTBFEND) /COMPARE TO UPPER LIMIT 1750 050540 7710 SPA CLA /SKIP IF TOO FAR 1751 050541 7203 VTLF, NL0100 /ELSE ALLOW UPDATE 1752 050542 5320 JMP CRITENTRY /CONTINUE THERE 1753 1754 050560 3300 PAGE 050561 7770 050562 0007 050563 0216 050564 0100 050565 0110 050566 7630 050567 0201 050570 0754 050571 7756 050572 7762 050573 0022 050574 0024 050575 7714 050576 0437 050577 0403 1755 050600 0000 PRTCHR, .-. /INSERT PRINTABLE CHARACTER ROUTINE 1756 050601 4260 JMS INSERT /INSERT IT AT FIRST 1757 050602 1023 TAD VTPTR /GET THE NEW POINTER VALUE 1758 050603 0167 AND [77] /JUST LINE BITS 1759 050604 7640 SZA CLA /SKIP IF AT BEGINNING OF LINE 1760 050605 5600 JMP I PRTCHR /ELSE JUST RETURN 1761 050606 4221 JMS ROLCHK /CHECK IF WE STILL FIT 1762 050607 1377 TAD ("++BLINK+4000) /GET A BLINKING "+" 1763 050610 4260 JMS INSERT /PUT AT BEGINNING OF LINE 1764 050611 1054 TAD TABCNT /GET COUNT 1765 050612 3006 DCA VTEMP1 /SETUP THE COUNTER 1766 050613 2006 VTABLP, ISZ VTEMP1 /DONE YET? 1767 050614 7410 SKP /SKIP IF NOT 1768 050615 5600 JMP I PRTCHR /RETURN IF SO 1769 050616 1166 TAD [" &177+4000] /GET A 1770 050617 4260 JMS INSERT /PUT IN THE BUFFER 1771 050620 5213 JMP VTABLP /TRY AGAIN 1772 1773 050621 0000 ROLCHK, .-. /CHECK IF BUFFER ROLL NEEDED ROUTINE 1774 050622 7200 CLA /JUST IN CASE 1775 050623 1023 TAD VTPTR /GET CURRENT POINTER 1776 050624 1376 TAD (-VTBFEND) /COMPARE TO UPPER LIMIT 1777 050625 7710 SPA CLA /SKIP IF TOO FAR 1778 050626 5621 JMP I ROLCHK /RETURN IF NOT 1779 050627 1023 TAD VTPTR /GET THE POINTER 1780 050630 3355 DCA ROLTMP /SAVE IT FOR NOW 1781 050631 1375 TAD (VTBUFFER+100-1) /SETUP 1782 050632 3010 DCA CXR1 /THE 1783 050633 1374 TAD (VTBUFFER-1) /ROLLING 1784 050634 3011 DCA CXR2 /POINTERS 1785 050635 1164 TAD [VTBUFFER-VTBFEND+100] /SETUP THE 1786 050636 3006 DCA VTEMP1 /ROLL COUNT 1787 050637 1410 TAD I CXR1 /GET A WORD 1788 050640 3411 DCA I CXR2 /PUT A WORD 1789 050641 2006 ISZ VTEMP1 /DONE YET? 1790 050642 5237 JMP .-3 /NO, KEEP GOING 1791 050643 1173 TAD [-100] /SETUP THE 1792 050644 3006 DCA VTEMP1 /EXTRA LINE COUNT 1793 050645 1166 TAD [" &177+4000] /GET A 1794 050646 3411 DCA I CXR2 /PUT IN BUFFER 1795 050647 2006 ISZ VTEMP1 /DONE YET? 1796 050650 5245 JMP .-3 /NO, KEEP GOING 1797 050651 1355 TAD ROLTMP /GET SAVED BUFFER POINTER 1798 050652 1173 TAD [-100] /BACKUP ONE LINE 1799 050653 3023 DCA VTPTR /POINT TO CORRECTED ADDRESS 1800 050654 1022 TAD VTLNPTR /GET LINE POINTER 1801 050655 1173 TAD [-100] /BACK IT UP ALSO 1802 050656 3022 DCA VTLNPTR /STORE BACK 1803 050657 5621 JMP I ROLCHK /RETURN 1804 1805 050660 0000 INSERT, .-. /INSERT A CHARACTER ROUTINE 1806 050661 3423 DCA I VTPTR /STORE THE PASSED CHARACTER 1807 050662 2023 ISZ VTPTR /BUMP TO NEXT 1808 050663 5660 JMP I INSERT /RETURN 1809 050664 0000 PUTBACK,.-. /PREVIOUS CHARACTER UNDER CURSOR RESTORE ROUTINE 1810 050665 1020 TAD OLDCHR /GET PREVIOUS CHARACTER 1811 050666 3421 DCA I OLDPTR /PUT IT BACK 1812 050667 5664 JMP I PUTBACK /RETURN 1813 1814 050670 0000 CLEAR, .-. /CLEAR ROUTINE 1815 050671 7326 NL0002 /SET CIF BIT 1816 050672 6214 RDF /GET CALLING FIELD 1817 050673 1373 TAD (CDF) /MAKE IT CIF CDF RETURN FIELD 1818 050674 3312 DCA CLRXIT /STORE IN-LINE 1819 050675 6251 CDF DFIELD+10 /GOTO OUR FIELD 1820 050676 1165 TAD [VTBUFFER] /SETUP 1821 050677 3023 DCA VTPTR /BUFFER POINTER 1822 050700 1165 TAD [VTBUFFER] /SETUP 1823 050701 3022 DCA VTLNPTR /LINE POINTER 1824 050702 1372 TAD (VTBUFFER-VTBFEND) /SETUP THE 1825 050703 3354 DCA CLEARTMP /CLEAR COUNT 1826 050704 1374 TAD (VTBUFFER-1) /SETUP THE 1827 050705 3010 DCA CXR1 /CLEAR POINTER 1828 050706 1166 TAD [" &177+4000] /GET CLEAR CHARACTER 1829 050707 3410 DCA I CXR1 /CLEAR A WORD 1830 050710 2354 ISZ CLEARTMP /DONE ALL YET? 1831 050711 5306 JMP .-3 /NO, GO BACK 1832 050712 0000 CLRXIT, .-. /WILL BE CIF CDF RETURN FIELD 1833 050713 5670 JMP I CLEAR /RETURN 1834 / CONTROL CHARACTER TABLE. 1835 1836 050714 0470 CTABLE, COMMON/PRCONT /000 <^> 1837 050715 0273 PRCONT /001 <^A> 1838 050716 0273 PRCONT /002 <^B> 1839 050717 0273 PRCONT /003 <^C> 1840 050720 0273 PRCONT /004 <^D> 1841 050721 0273 PRCONT /005 <^E> 1842 050722 0273 PRCONT /006 <^F> 1843 050723 0471 VTBELL /007 <^G> 1844 050724 0514 CLEFT /010 <^H> 1845 050725 0476 VTTAB /011 <^I> 1846 050726 0541 VTLF /012 <^J> 1847 050727 0536 CDOWN /013 <^K> 1848 050730 0336 VTFF /014 <^L> 1849 050731 0247 VTCR /015 <^M> 1850 050732 0400 VTCAD /016 <^N> 1851 050733 0273 PRCONT /017 <^O> 1852 050734 0273 PRCONT /020 <^P> 1853 050735 0273 PRCONT /021 <^Q> 1854 050736 0273 PRCONT /022 <^R> 1855 050737 0273 PRCONT /023 <^S> 1856 050740 0273 PRCONT /024 <^T> 1857 050741 0273 PRCONT /025 <^U> 1858 050742 0273 PRCONT /026 <^V> 1859 050743 0273 PRCONT /027 <^W> 1860 050744 0523 CRIGHT /030 <^X> 1861 050745 0273 PRCONT /031 <^Y> 1862 050746 0531 CUP /032 <^Z> 1863 050747 0341 ESCAPE /033 <^[> 1864 050750 0301 VTRUB /034 <^\> > 1865 050751 0337 VTHOME /035 <^]> 1866 050752 0322 VTEOL /036 <^^> 1867 050753 0317 VTEOS /037 <^ 1868 1869 050754 0000 CLEARTM,.-. /TEMPORARY 1870 050755 0000 ROLTMP, .-. /TEMPORARY 1871 050756 0000 WASTE, .-. /TIME WASTE LOCATION 1872 1873 050772 5400 PAGE 050773 6201 050774 2177 050775 2277 050776 3200 050777 4253 1874 050164 5500 FIELD 0 /BACK TO FIELD ZERO 050165 2200 050166 4040 050167 0077 050170 7774 050171 0600 050172 0664 050173 7700 050174 0177 050175 6607 050176 0200 050177 0070 1875 / ONCE-ONLY CODE STARTS HERE. 1876 1877 *BONCE /OVER DEFAULT ONCE-ONLY AREA 1878 1879 003600 7326 BONCE, NL0002 /SETUP "C" BIT MASK 1880 003601 0777 PBASE, AND I (SCRSIZE) /GET THE "C" BIT 1881 003602 6242 CIF DFIELD /GOTO CODE FIELD 1882 003603 5776 JMP I (BONCE2) /CONTINUE ONCE-ONLY CODE THERE 1883 1884 / COMES BACK HERE AFTER ONCE-ONLY CODE IN FIELD DFIELD IS FINISHED. 1885 1886 003604 6241 BONCE3, CDF DFIELD /GOTO DISPLAY FIELD 1887 003605 3661 DCA I CLRPTR /CLEAR A WORD 1888 003606 2261 ISZ CLRPTR /BUMP TO NEXT 1889 003607 2260 ISZ CLRCNT /DONE YET? 1890 003610 5205 JMP .-3 /NO, KEEP GOING 1891 003611 6201 CDF 00 /BACK TO OUR FIELD 1892 003612 1775 TAD I (SWMX) /GET /M-/X SWITCHES 1893 003613 0374 AND (1000) /JUST /O BIT 1894 003614 7650 SNA CLA /SKIP IF SET 1895 003615 5256 JMP ONO /JUMP IF NOT 1896 003616 1373 TAD ("O) /GET "O" 1897 003617 3772 DCA I (COMLST+16) /STORE IN COMMAND CHARACTER TABLE 1898 003620 1035 TAD BOTTOM /\ 1899 003621 1371 TAD (-200+1) / \ESTABLISH 1900 003622 0104 AND P7600/[7600] / /BASE ADDRESS 1901 003623 3201 DCA PBASE // 1902 003624 1201 TAD PBASE /\ 1903 003625 1370 TAD (OSTART&177-1) / >ESTABLISH NEW LIMIT 1904 003626 3035 DCA BOTTOM // 1905 003627 1201 TAD PBASE /GET BASE 1906 003630 1767 TAD I (OLISTP) /RELOCATE "O" LIST POINTER 1907 003631 3767 DCA I (OLISTP) /STORE ADJUSTED POINTER 1908 003632 1201 TAD PBASE /GET BASE 1909 003633 1366 TAD (OCOM&177) /POINT TO RELOCATED "O" COMMAND 1910 003634 3765 DCA I (COMGO+16) /STORE IN COMMAND DISPATCH TABLE 1911 003635 6241 CDF DFIELD /GOTO CODE FIELD 1912 003636 1201 TAD PBASE /GET BASE 1913 003637 1764 TAD I (POCOMAGN) /POINT TO RELOCATED "O" COMMAND REENTRY 1914 003640 3764 DCA I (POCOMAGN) /STORE ADJUSTED POINTER 1915 003641 1201 TAD PBASE /GET BASE 1916 003642 1763 TAD I (PDOWAIT) /POINT TO RELOCATED WAIT ROUTINE 1917 003643 3763 DCA I (PDOWAIT) /STORE ADJUSTED POINTER 1918 003644 6201 CDF 00 /BACK TO FIELD ZERO 1919 003645 1035 TAD BOTTOM /\ 1920 003646 7001 IAC / >SETUP MOVE BASE 1921 003647 3201 DCA PBASE // 1922 003650 1662 OMVLUP, TAD I LOSTART /\ 1923 003651 3601 DCA I PBASE / \ 1924 003652 2262 ISZ LOSTART / \MOVE DOWN THE "O" 1925 003653 2201 ISZ PBASE / /COMMAND CODE 1926 003654 2263 ISZ MOVCNT / / 1927 003655 5250 JMP OMVLUP // 1928 003656 3762 ONO, DCA I (BEOFZAP) /REPAIR LOADER 1929 003657 5762 JMP I (BEOFZAP) /RESUME LOADING 1930 003660 1600 CLRCNT, -VTWORDS /CLEAR COUNTER 1931 003661 0200 CLRPTR, VTGBUFFER /CLEAR POINTER 1932 003662 4070 LOSTART,OSTART /"O" COMMAND CURRENTLY HERE 1933 003663 7670 MOVCNT, OSTART-OEND /LENGTH OF "O" COMMAND CODE TO MOVE 1934 1935 003762 7505 PAGE 003763 7153 003764 7154 003765 1201 003766 0071 003767 4111 003770 0067 003771 7601 003772 1012 003773 0317 003774 1000 003775 7605 003776 0200 003777 7611 1936 *OSTART /"O" COMMAND CODE STARTS HERE 1937 1938 / "O" COMMAND REENTERS HERE. 1939 1940 004070 4545 OCOMAGN,GETC /GET PAST DELIMITER 1941 1942 / "O" COMMAND ENTRY. 1943 1944 004071 4560 OCOM, SPNOR /IGNORE ANY SPACES 1945 004072 1066 TAD CHAR /GET COMMAND CHARACTER 1946 004073 4542 PUSHA /SAVE IT ON STACK 1947 004074 7410 SKP /MAY ALREADY BE A TERMINATIOR 1948 004075 4545 OCOMLP, GETC /GET NEXT CHARACTER 1949 004076 4550 SORTC /COMPARE TO 1950 004077 1767 TERMS-1 /TERMINATORS IN LIST 1951 004100 7410 SKP /SKIP IF IT MATCHES 1952 004101 5275 JMP OCOMLP /ELSE THROW AWAY AND TRY AGAIN 1953 004102 1066 TAD CHAR /GET THE TERMINATOR 1954 004103 6241 CDF DFIELD /GOTO CODE FIELD 1955 004104 3777 DCA I (OCHAR) /SAVE IT 1956 004105 6201 CDF 00 /BACK TO FIELD ZERO 1957 004106 1413 POPA /GET COMMAND CHARACTER BACK 1958 004107 3066 DCA CHAR /RESTORE IT 1959 004110 4550 SORTC /COMPARE TO OUR LIST 1960 004111 0125 OLISTP, OLIST-1&177 /**** RELOCATE **** 1961 004112 5315 JMP NOERROR /JUMP IF FOUND 1962 004113 1376 TAD (7401) /GET ERROR ADDRESS 1963 004114 5775 JMP I (ERROR5) /FINISH IT THERE 1964 1965 004115 1054 NOERROR,TAD SORTCN /GET INDEX 1966 004116 1374 TAD (JMP I ODISP) /MAKE INTO INSTRUCTION 1967 004117 3321 DCA .+2 /STORE IN-LINE 1968 004120 6243 CIF CDF DFIELD /GOTO CODE FIELD 1969 004121 5751 JMP I ODISP+.-. /GOTO PROPER ROUTINE 1970 1971 / INPUT WAIT ROUTINE FOR "O(UTPUT) W(AIT)". 1972 1973 004122 0000 DOWAIT, .-. /INPUT WAIT ROUTINE 1974 004123 4464 JMS I INDEV /GET NEXT INPUT CHARACTER 1975 004124 6242 CIF DFIELD /GOTO CODE FIELD 1976 004125 5722 JMP I DOWAIT /RETURN TO CALLER 1977 / "O" COMMAND CHARACTER LIST. 1978 1979 004126 0301 OLIST, "A /O(UTPUT) A(LTERNATING): USE BLINKING OUTPUT 1980 004127 0302 "B /O(UTPUT) B(OLD): USE BOLD OUTPUT 1981 004130 0303 "C /O(UTPUT) C(LEAR): CLEAR ALL POINTS, CHARACTERS 1982 004131 0304 "D /O(UTPUT) D(ELETE): DELETE ALL POINTS 1983 004132 0305 "E /O(UTPUT) E(RASE): ERASE ALL CHARACTERS 1984 004133 0306 "F /O(UTPUT) F(REE) (OF CURSOR) 1985 004134 0307 "G /O(PTION) G(ENERIC) (INPUT) 1986 004135 0311 "I /O(UTPUT) I(NVERTING): USE CURSOR OUTPUT 1987 004136 0313 "K /O(PTION) K(EYBOARD) (INPUT) 1988 004137 0314 "L /O(UTPUT) L(PT) 1989 004140 0315 "M /O(PTION) M(ONITOR): RETURN (TO P?S/8) 1990 004141 0316 "N /O(UTPUT) N(ORMAL): USE NORMAL OUTPUT 1991 004142 0317 "O /O(UTPUT) O(N) (CURSOR) 1992 004143 0320 "P /O(UTPUT) P(RINTER) 1993 004144 0323 "S /O(UTPUT) S(COPE): USE VT-8/E FOR OUTPUT 1994 004145 0324 "T /O(UTPUT) T(ERMINAL) DEVICE 04 1995 004146 0325 "U /O(UTPUT) U(NIVERSAL) TO CONSOLE OVERLAY 1996 004147 0326 "V /O(PTION) V(T-8/E) (INPUT) 1997 004150 0327 "W /O(UTPUT) W(AIT): WAIT FOR A CHARACTER IN GRAPHICS MODE 1998 1999 / NEGATIVE VALUE (IN ODISP) TERMINATES THE LIST. 2000 2001 / "O" COMMAND DISPATCH ADDRESS LIST. 2002 2003 004151 7000 ODISP, OA /BLINKING OUTPUT 2004 004152 7004 OB /BOLD OUTPUT 2005 004153 7006 OC /CLEAR OUTPUT 2006 004154 7016 OD /DELETE OUTPUT 2007 004155 7022 OE /ERASE OUTPUT 2008 004156 7031 OF /CURSOR OFF 2009 004157 7036 OG /CONSOLE OVERLAY INPUT 2010 004160 7041 OI /CURSOR OUTPUT 2011 004161 7045 OK /KEYBOARD INPUT 2012 004162 7050 OL /LPT: OUTPUT 2013 004163 7053 OM /RETURN TO MONITOR 2014 004164 7057 ON /NORMAL OUTPUT 2015 004165 7032 OO /CURSOR ON 2016 004166 7064 OP /LOGICAL LPT: OUTPUT 2017 004167 7034 OS /VT-8/E OUTPUT 2018 004170 7070 OT /TERMINAL OUTPUT 2019 004171 7073 OU /CONSOLE OVERLAY OUTPUT 2020 004172 7077 OV /VT-8/E INPUT 2021 004173 7102 OW /OUTPUT WAIT 2022 2023 004174 5751 PAGE 004175 2725 004176 7401 004177 0016 2024 OEND= . /END OF RELOCATABLE CODE 2025 2026 *BEOFZAP /OVER LOADER 2027 2028 007505 7410 SKP /MAKE IT COME TO US 2029 2030 $ /THAT'S ALL FOLK! ALLOW0 0501 ALLOW4 0502 ARG 0064 BACKIN 0260 BACKUP 0264 BEOFZA 7505 BLINK 0000 BOLD 0200 BONCE 3600 BONCE2 0200 BONCE3 3604 BOTTOM 0035 BTFUN 7457 BUMPIT 2613 CADDRE 0000 CADNOR 0201 CADX 0437 CADY 0403 CDOWN 0536 CHAR 0066 CHKC 7436 CHKGRA 6474 CHKKCC 3207 CHKKSF 2657 CHNGFL 0011 CI 0003 CINPUT 2600 CLEAR 0670 CLEART 0754 CLEFT 0514 CLRCNT 3660 CLRPTR 3661 CLRXIT 0712 CO 0004 COMGO 1163 COMLST 0774 COMMON 0470 CON 7212 CONFOL 7335 CONPAT 2742 CONTRO 0431 COUTPU 2630 CRIGHT 0523 CRITEN 0520 CSCQ 7463 CSCQSW 0037 CSTAR 0225 CTABLE 0714 CTCXIT 1357 CUP 0531 CUPIN 0262 CURSOR 0400 CURSW 0075 CXR1 0010 CXR2 0011 CZAPEN 0266 CZAPLU 0255 CZAPTR 0304 CZTABL 1031 CZTPTR 0305 DBLALP 0012 DCHAR 0013 DCHECK 6674 DESTRU 7500 DEVEND 0451 DEVLUP 0425 DFIELD 0040 DFINT 2641 unreferenced DFLAG 0020 DIGNOR 6624 DISBAD 6476 DISPRE 0112 DIVLUP 6441 DKIEIO 6435 DKRBIO 6436 DKSFIO 6431 DODISP 6400 DOPUSH 2422 DOWAIT 4122 DPBLIO 6457 DPCLIO 6456 DPGOIO 6451 DPLAIO 6450 DPMSIO 6455 DPSMIO 6452 DWIPE 6506 EFUN3I 0136 ENAB03 1000 ENAB43 1005 ENABIO 1023 ENABLE 1012 ENAPTR 1030 EOSENT 0325 ERROR5 2725 ESCAP2 0344 ESCAPE 0341 EVAL 1613 EVALMO 0100 EVALRE 1155 FIX 6724 FLAC 0044 FNTABF 0374 FNTABL 2165 FOLDTM 7351 FRCACD 6537 FRCALP 6536 FRCGRA 6545 GETC 4545 GOTCS 7473 GRCLEA 6732 GRCLUP 6741 GRPHCD 7405 GRPHCH 7400 GRPHCO 7434 GRPHEX 7432 GRPHTM 7435 GRTEMP 6746 I03MSK 0022 I43MSK 0023 ILPTR 0201 ILPTR2 0401 ILPTR3 0601 IMASK 0536 INCHAR 0126 INCLEA 7343 INCON 0031 INDEV 0064 INLIN1 0222 INLIN2 0422 INLIN3 0607 INSERT 0660 INT03 6626 INT43 6610 INTAC 0055 INTCLR 6723 INTEGE 0053 INTLST 0003 INTMOR 0062 INTRET 1153 INTVT8 7314 INTXIT 2711 ISTAT 0021 IVTINT 6605 IVTOUT 0055 JMPC 5200 JMPIC 5600 KCHAR 0014 KCHECK 6705 KENTRY 6702 KEY 0043 KEYHND 3200 KEYINT 6625 KFLAG 0024 KIEIOT 6035 KIGNOR 6642 KRBIOT 6036 KSFIOT 6031 LCHECK 7477 LCOMZA 7427 LIBZAP 7500 LINIT 7230 LLINIT 7256 LLPT 7246 LLPTOU 7257 LLSIOT 6666 LMORE 0063 LMORE2 6521 LNORME 7243 LOFOLD 0015 LOSTAR 3662 LP 0066 LPT 7221 LPTCIF 7260 LPTNOR 7232 LPTR 7231 LRET 1360 LSAVE 0025 LSFIOT 6661 MONSTR 0353 MORBAC 6607 MOREXI 6672 MORINT 6600 MOVCNT 3663 NL0001 7201 NL0002 7326 NL0004 7307 NL0006 7327 NL0100 7203 NL3777 7350 NL4000 7330 NL7777 7240 NOCONE 0477 NOCONS 0254 NOEL 7527 NOERRO 4115 NOLCOM 0677 NOLOVE 0674 NORM03 0525 NORMAL 7600 NOSTAR 0600 NOVTRE 6532 NXTEST 0444 NXTTES 0627 O04MSK 0037 O66MSK 0040 OA 7000 OB 7004 OBENTR 7062 OC 7006 OCHAR 0016 OCHECK 6714 OCOM 4071 OCOMAG 4070 OCOMLP 4075 OCOMN 0405 OCONSO 0253 OD 7016 ODEV 0001 ODISP 4151 OE 7022 OEND 4200 OEXIT 7115 OF 7031 OG 7036 OGENAB 0026 OI 7041 OK 7045 OKENAB 0027 OL 7050 OLDCHR 0020 OLDPTR 0021 OLENTR 7066 OLIST 4126 OLISTP 4111 OLPT 0030 OM 7053 OMASK 0724 OMVLUP 3650 ON 7057 ONO 3656 OO 7032 OP 7064 OPRINT 0031 OS 7034 OSCOPE 0002 OSTART 4070 OSUB 7127 OT 7070 OTTY 0032 OU 7073 OUNPTR 0033 OURINT 0000 OUSPLA 7151 OUT 7200 OUTAC 0001 OUTCHR 0002 OUTCID 7217 OUTCON 0033 OUTDEV 0063 OUTEMP 7352 OUTEND 0634 OUTEXI 7215 OUTLPT 0035 OUTLUP 0612 OV 7077 OVCHAR 0034 OVENAB 0035 OVFLAG 0036 OVICIF 6651 OVIGNO 6663 OVINT 6643 OVTENA 6524 OW 7102 OWTEMP 7152 P7600 0104 PBASE 3601 PCTCXI 0174 PDLXR 0013 PDOWAI 7153 POCOMA 7154 POPA 1413 POPAC 0042 POPTEM 0003 POUT 2645 PRCONT 0273 PROC 0611 PRTCHR 0600 PUSHA 4542 PUSHAC 0051 PUSHMO 0054 PUTBAC 0664 RECFIX 7144 RECOVR 2740 RECOVX 2761 REM 0004 RETURN 5536 ROLCHK 0621 ROLTMP 0755 SBOOT 7600 SBTFUN 7602 SCAPAD 0003 SCAPNO 0200 SCRSIZ 7611 SEC03 0516 SEC43 0470 SECLPT 7235 SECTTY 7303 SETSPL 7137 SORTC 4550 SORTCN 0054 SPLAT 3051 SPNOR 4560 STORFL 0005 SWAL 7604 SWAPBL 2417 SWMX 7605 SYSIO 7640 TABCNT 0054 TCFIOT 6042 TELSW 0016 TERMS 1770 TEST04 0654 TEST43 0437 TEST66 0622 TFLAG 0041 TLSIOT 6046 TNORME 7311 TPTR 7274 TRYOUT 2673 TSFIOT 6041 TTINIT 7275 TTY 7265 TTYNOR 7276 TTYTST 6664 UPFOLD 0017 USECON 0651 USELLP 0652 USETCO 0670 USETLP 0671 USEVT8 0400 VCON 0414 VEXIT 0245 VMODE 0074 VSNSTS 0232 VT 0045 VT8INT 0024 VT8LEA 7516 VT8TMP 0004 VTABLP 0613 VTBELL 0471 VTBFEN 4600 VTBUFF 2200 VTCAD 0400 VTCON 7211 VTCR 0247 VTEMP1 0006 VTEMP2 0007 VTEOL 0322 VTEOS 0317 VTEST 6502 VTEXIT 0216 VTFF 0336 VTFOLD 7320 VTGBUF 0200 VTHOME 0337 VTINTX 0047 VTLF 0541 VTLNPT 0022 VTMODE 0005 VTOFFS 0200 VTPTR 0023 VTRCDF 6526 VTRUB 0301 VTSTRE 0106 VTTAB 0476 VTWORD 6200 WASTE 0756 WORD 0006 XADC 1343 XDIS 1146 XDYS 1142 XINT 1160 XIO 1142 XIOMOR 0103 XOUT 1150 XR1 0010 XRET 1152 Y 0007