File: TECOVT.LS of Disk: V50/Source/Source-Listing-MAC-2
(Source file text)
/6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 1 FILE # 1 1 /6G VT52 Support for OS/8 TECO V50 2 3 /MEMORY NOTES: (only applies if scope is VT52 or VT100) 4 5 /MEMORY 'MEMSIZ' big res vt BATCH 6 7 / 8K 0 no no no ? 8 / 12K 1 yes no no no no no 9 / 16K 2 yes no yes yes no no 10 / 20K 3 yes yes yes yes no yes 11 / 24K 4 yes yes yes yes yes yes 12 13 /Notes: 14 15 / big means text buffer and Q-register space get bigger 16 / res means overlays are resident and get extended error msgs 17 / vt means get VT support /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 2 FILE # 1 18 19 /JR 2-Oct-78 for Mario 20 /JR 4-Oct-78 Put in type-ahead feature 21 /JR 23-Nov-78 Convert to MACREL 22 /JR 25-Dec-78 Fix ^S, ^C trapping, fix scope classification 23 /SR 06-JAN-79 Added CIF4B, CIF4C, removed CDF4D, CDF4E 24 /SR 02-Mar-79 read with no wait plus miscellaneous 25 /SR 09-Mar-79 Fixed 16K bug 26 /SR 08-Apr-79 Made 'update factor' default to 1 not 4 27 28 .EXTERN P,ZZ,N,NFLG,CTLWR,OUTDNE,ERR34 29 .EXTERN CHKCTR,TYIRET,GETQX,VPATCH,VT52D,VT52KL 30 .GLOBAL SWATCH,VTCHKC,VTYI,VTGETQ,VTCCB 31 .GLOBAL CUR 32 .EXTERN TPUTX,CHKCTC,NCOM 33 34 0030 CUR= 30 /Define field of VT52 routine 35 36 0030 VSIZE= 30 /Number of lines on screen 37 0120 HSIZE= 120 /Number of characters per line on screen 38 39 3000 TTYBEG= 3000 /Start of type ahead buffer for Teco 40 3600 TTYEND= 3600 /End of type ahead buffer 41 42 3600 CHKBUF= TTYEND /Define match buffer for screen alignment 43 44 4000 MAPST= 4000 /Start of phantom screen 45 3600 MAPSZ= VSIZE^HSIZE /Size of phantom screen 46 7600 MAPND= MAPST+MAPSZ /End of phantom screen /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 3 FILE # 1 47 48 0200 .ASECT VWATCH 49 50 0001 FIELD 1 /Set the field now 51 52 0010 *10 53 10010 0000 BXR, 0 54 10011 0000 CXR, 0 55 56 0020 *20 57 10020 0000 MAPCOL, 0 /Current logical column in phantom screen 58 10021 0000 MAPPTR, 0 /Absolute pointer to current char pos in phantom screen 59 10022 0000 CURLIN, 0 /Video line where cursor goes 60 10023 0000 CURCOL, 0 /Video column where cursor goes 61 10024 0000 CURPTR, 0 /Absolute ptr to char pos under cursor in phantom screen 62 10025 0000 VIDLIN, 0 /Physical cursor position on terminal 63 10026 0000 VIDCOL, 0 /Physical cursor colunm on terminal 64 10027 0000 TXTPTR, 0 /Pointer to Teco's text buffer during text expansion 65 10030 0000 CHRCNT, 0 /One's complement count of chars to do in text buffer 66 10031 0000 PTRTXT, 0 /Text buffer pointer 67 10032 0000 LINBAS, 0 /Absolute addr of start of current line in map 68 10033 0000 LINPTR, 0 69 10034 0000 UNDERC, 0 /-addr of P for flagging saving of cursor parameters 70 10035 0000 CRSLIN, 0 /Line we are currently putting cursor at 71 10036 0000 LINCNT, 0 /Logical line being processed 72 10037 0000 RTMOST, 0 /Saves rightmost col used in current line 73 10040 0000 CHKLIN, 0 /Line current being used for screen alignment matching 74 10041 0000 CHKFLG, 0 /Flag set -1 if a line has been saved 75 10042 0000 ZZSAV, 0 76 10043 0000 PSAV, 0 77 10044 0000 CHKPTR, 0 78 10045 0000 OUTCHR, 0 /Points to current output routine during text expansion 79 10046 0000 OUTBLN, 0 /Points to current line blanking routine 80 10047 0020 NWATCH, 20 /User selected cursor line number 81 10050 0000 INITFL, 0 /Set -1 if state of screen is known 82 10051 0000 CNT, 0 83 10052 0000 PTR, 0 84 10053 0000 OFFSET, 0 /Char offset of current screen alignment attempt 85 10054 0000 LOFFST, 0 /Line offset of current screen alignment attempt 86 87 /REGISTERS FOR VT ROUTINES 88 10055 0000 TYIFLG, 0 /Keyboard wait flag 89 10056 0000 KCHAR, 0 /Temp input character 90 10057 3000 TTYINP, TTYBEG /TA Input pointer 91 10060 3000 TTYOUP, TTYBEG /TA Output pointer 92 10061 0000 QSAVE, 0 /GETQ Address temp 93 10062 0244 DPOLL, KBDCHK /Indirect for POLL 94 10063 0000 TIMOUT, 0 95 96 10064 0000 POLL, 0 /Check keyboard (specially XOF) 97 10065 3063 DCA TIMOUT /Reset timout 98 10066 3055 DCA TYIFLG /Enable ^O and ^S check 99 10067 4462 LPOLL, JMS I DPOLL 100 10070 1100 TAD VTM20 /Was it XOF-3? 101 10071 7640 SZA CLA /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 3-1 FILE # 1 102 10072 5464 JMP I POLL /No, go back to update screen 103 10073 2063 ISZ TIMOUT /We hope to get a XON 104 10074 5067 JMP LPOLL /Not yet! Approx. 400msec timout 105 10075 5464 JMP I POLL 106 107 /SOME CONSTANTS 108 10076 0177 VT177, 177 109 10077 0077 VT77, 77 110 10100 7760 VTM20, -20 111 10101 0040 VT40, 40 112 10102 7775 VTM3, -3 113 10103 0007 VT7, 7 114 10104 0004 VT4, 4 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 4 FILE # 1 115 116 /Type ahead routines for Teco 117 118 0200 *200 119 120 10200 4244 VTCHKC, JMS KBDCHK /See if key hit 121 10201 6203 CIF CDF /Nothing special, just exit 122 10202 5777 JMP I (CHKCTR /*K* AC set to 14 if ^O hit 123 124 10203 7001 VTYILP, IAC /Set keyboard wait flag 125 10204 3055 VTYI, DCA TYIFLG /Clear flag first time through 126 10205 4232 JMS TAHCHK /Check if input pending 127 10206 5221 JMP 3$ /Type-ahead buffer is empty 128 10207 3055 DCA TYIFLG /Clear flag again 129 10210 1060 TAD TTYOUP /Bump output pointer now 130 10211 1376 TAD (-TTYEND+1 /Mod size of buffer 131 10212 7450 SNA 132 10213 1375 TAD (TTYBEG-TTYEND 133 10214 1374 TAD (TTYEND 134 10215 3060 DCA TTYOUP 135 10216 1460 TAD I TTYOUP /Pick up char 136 10217 6203 2$: CIF CDF /Exit with it 137 10220 5773 JMP I (TYIRET 138 139 10221 6201 3$: CDF 0 140 10222 1772 TAD I (ETFLAG /Check if want read with no wait 141 10223 6231 CDF 30 142 10224 0101 AND VT40 143 10225 7650 SNA CLA 144 10226 5203 JMP VTYILP /No, loop 145 10227 3055 DCA TYIFLG /Yes 146 10230 7240 STA /Should really check that echo is off *** 147 10231 5217 JMP 2$ 148 149 10232 0000 TAHCHK, 0 /Check for input 150 10233 4244 JMS KBDCHK /Sample keyboard flag 151 10234 7200 CLA /Clear ^O if any 152 10235 1057 TAD TTYINP /See if anything in buffer 153 10236 7041 CIA 154 10237 1060 TAD TTYOUP 155 10240 7100 CLL 156 10241 7640 SZA CLA 157 10242 2232 ISZ TAHCHK /Skp if yes 158 10243 5632 JMP I TAHCHK /First return if no (Link cleared) /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 5 FILE # 1 159 160 /Catch type ahead chars 161 162 10244 0000 KBDCHK, 0 163 10245 6031 KSF /*M8 CHANGED TO 'CLA' 164 10246 5644 JMP I KBDCHK /Just exit if no flag 165 10247 4315 JMS CTCTST /Test for ^C hit 166 10250 7200 CLA 167 10251 1055 TAD TYIFLG /Test if called during keyboard wait 168 10252 7640 SZA CLA /Skp if no 169 10253 5266 JMP NOTOUT /Else handle normally 170 10254 4315 JMS CTCTST /Test keyboard 171 10255 1371 TAD (3-17 /Test if ^O 172 10256 7440 SZA 173 10257 1370 TAD (17-23 /Test if ^s 174 10260 7640 SZA CLA /Skp if either 175 10261 5266 JMP NOTOUT 176 10262 1057 KBDCTO, TAD TTYINP /Clear type ahead buffer if ^O 177 10263 3060 DCA TTYOUP 178 10264 4315 JMS CTCTST /Re test keyboard 179 10265 5644 JMP I KBDCHK /Return 180 181 10266 6036 NOTOUT, KRB /Reload char 182 10267 0076 AND VT177 183 10270 3056 DCA KCHAR 184 10271 1057 TAD TTYINP /Bump pointer first, see if room 185 10272 1376 TAD (-TTYEND+1 186 10273 7450 SNA 187 10274 1375 TAD (TTYBEG-TTYEND 188 10275 1374 TAD (TTYEND 189 10276 7041 CIA 190 10277 1060 TAD TTYOUP 191 10300 7450 SNA 192 10301 5310 JMP NOROOM /No room, sound bell to warn him 193 10302 7041 CIA 194 10303 1060 TAD TTYOUP /Fix ptr 195 10304 3057 DCA TTYINP /And update it 196 10305 1056 TAD KCHAR /Now store char 197 10306 3457 DCA I TTYINP 198 10307 5245 JMP KBDCHK+1 /Check keyboard again and exit 199 10310 1103 NOROOM, TAD VT7 /Send ^G 200 10311 6041 TSF 201 10312 5311 JMP .-1 202 10313 6046 TLS 203 10314 5644 JMP I KBDCHK /Return AC=7 So what /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 6 FILE # 1 204 205 10315 0000 CTCTST, 0 206 10316 6034 KRS /Sample keyboard 207 10317 0076 AND VT177 208 10320 1102 TAD VTM3 /Test if ^C 209 10321 7440 SZA 210 10322 5715 JMP I CTCTST /Return if no with remainder in AC 211 10323 6201 KBDCTC, CDF /Test if ET flagging ^C intercept 212 10324 7330 CLA STL RAR 213 10325 1772 TAD I (ETFLAG 214 10326 7510 SPA /Skp if was set 215 10327 5333 JMP CCTRAP /Else trap normally 216 10330 3772 DCA I (ETFLAG 217 10331 6231 CDF CUR 218 10332 5266 JMP NOTOUT /Buffer the ^C char 219 10333 7200 CCTRAP, CLA 220 10334 1057 TAD TTYINP /Clear buffer if ^C abort 221 10335 3060 DCA TTYOUP 222 10336 6203 CIF CDF /Branch out to Teco's ^C trap 223 10337 5767 JMP I (ERR34 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 7 FILE # 1 224 225 10340 0000 VTCCB, 0 /Check if input pending (^] command) 226 10341 3055 DCA TYIFLG /We want to service XON/XOF 227 10342 4232 JMS TAHCHK /Is typahead buffer filled? 228 10343 7360 STL STA /No give back -1 229 10344 6203 CIF CDF 0 /Yes give back 0 230 10345 5766 JMP I (NCOM /As numeric argument 231 232 10346 3061 VTGETQ, DCA QSAVE /Save addr passed in AC 233 10347 6031 KSF 234 10350 5357 JMP OKGETQ /Jmp if no interrupt 235 10351 6034 KRS /Fudge, don't allow ^C trap since it may not be safe 236 10352 0076 AND VT177 237 10353 1102 TAD VTM3 238 10354 7640 SZA CLA /Skp to pretend we didn't really see it 239 10355 4244 JMS KBDCHK /Ok, buffer the character 240 10356 7200 CLA 241 10357 6221 OKGETQ, CDF 20 242 10360 1461 TAD I QSAVE /Now get word from q reg space 243 10361 6203 CIF CDF /Ready to exit now 244 10362 5765 JMP I (GETQX+4/Done 245 ------ 10365 0004 * 10366 0000 * 10367 0000 * 10370 7774 10371 7764 10372 0000 * 10373 0000 * 10374 3600 10375 7200 10376 4201 10377 0000 * 246 0400 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 8 FILE # 1 247 248 /change these to -4 (or any other value) to cause VT support 249 /to delay this many characters if there is type-ahead 250 251 10400 7777 FUDKNT, -1 /ORIGINAL VALUE 252 10401 7777 FUDCNT, -1 /COUNTER 253 254 /VT52 scope "WATCH" processor proper 255 256 10402 7300 SWATCH, CLA CLL 257 10403 6201 CDF /Make copies of buffer info 258 10404 1777 TAD I (P 259 10405 3043 DCA PSAV 260 10406 1776 TAD I (ZZ 261 10407 3042 DCA ZZSAV 262 10410 2775 ISZ I (NFLG /Skp if numeric arg passed 263 10411 5214 JMP 2$ /Jmp if no, use old arg 264 10412 1774 TAD I (N /Pick up arg 265 10413 7410 SKP 266 10414 1047 2$: TAD NWATCH /Pick up old arg 267 10415 7510 SPA /Skp if just setting number of lines to watch 268 10416 5222 JMP DOSTUF /Go do real work 269 10417 3047 DCA NWATCH /Save the arg 270 10420 6203 VTEXIT, CIF CDF 271 10421 5773 JMP I (CTLWR /And exit 272 10422 7140 DOSTUF, CLL CMA 273 10423 7450 SNA /Skp if should erase top N lines of screen 274 10424 5252 JMP 2$ /Else just update screen 275 10425 6231 CDF CUR /Reset df now 276 10426 1372 TAD (-VSIZE /Force in range [1,VSIZE] 277 10427 7430 SZL 278 10430 7200 CLA 279 10431 1371 TAD (VSIZE 280 10432 7041 CIA 281 10433 3333 DCA VCNT /Set line counter 282 10434 1370 TAD (MAPST-1 /Set auto XR to phantom screen 283 10435 3010 DCA BXR 284 10436 1367 L$: TAD (-HSIZE /Reset col count 285 10437 3334 DCA HCNT 286 10440 3410 1$: DCA I BXR /Forget the location in the map 287 10441 2334 ISZ HCNT 288 10442 5240 JMP 1$ 289 10443 2333 ISZ VCNT /For all lines requested 290 10444 5236 JMP L$ 291 10445 7240 STA /Forget last cursor position 292 10446 3025 DCA VIDLIN 293 10447 6203 CIF CDF /Get ready to exit 294 10450 3766 DCA I (OUTDNE /Fake out: pretend we didn't see Teco's output 295 10451 5773 JMP I (CTLWR /Now exit 296 10452 1766 2$: TAD I (OUTDNE /Clear init flag if any output done 297 10453 7640 SZA CLA 298 10454 3050 DCA INITFL 299 10455 6231 CDF CUR 300 10456 4765 JMS I (TAHCHK /See if anything in type ahead buffer 301 10457 5264 JMP 3$ /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 8-1 FILE # 1 302 10460 2201 ISZ FUDCNT 303 10461 5220 JMP VTEXIT /Don't update if count not zero 304 10462 1200 TAD FUDKNT 305 10463 3201 DCA FUDCNT /Reset count 306 10464 1043 3$: TAD PSAV /Set ptr to text 307 10465 3031 DCA PTRTXT 308 10466 1043 TAD PSAV /Save for comparison during text expansion 309 10467 7041 CIA /(anything for a machine cycle) 310 10470 3034 DCA UNDERC 311 10471 4764 JMS I (BAKUPL /Do a 0L 312 10472 1042 TAD ZZSAV /Calculate ones complement of size to end of buffer 313 10473 7040 CMA 314 10474 1031 TAD PTRTXT 315 10475 3030 DCA CHRCNT /Save count for text expansion routine 316 10476 1031 TAD PTRTXT /Set pointer for expansion routine 317 10477 3027 DCA TXTPTR 318 10500 1363 TAD (FCHAR /Setup dummy routines for counting lines only 319 10501 3045 DCA OUTCHR 320 10502 1362 TAD (FBLNK 321 10503 3046 DCA OUTBLN 322 10504 3036 DCA LINCNT /Clear line counter 323 10505 3020 DCA MAPCOL /Clear current map column 324 10506 1361 TAD (MAPST /Set base addr of line in map 325 10507 3032 DCA LINBAS 326 10510 3037 DCA RTMOST /Clear rightmost col to be safe ** 327 10511 4760 JMS I (DOTEXT /Go expand the text now 328 10512 1047 TAD NWATCH /Get specified cursor line number 329 10513 7450 SNA 330 10514 1357 TAD (20 /If zero, assume 16. 331 10515 1372 TAD (-VSIZE /Force in range [1,VSIZE] 332 10516 7500 SMA 333 10517 7200 CLA 334 10520 1371 TAD (VSIZE 335 10521 3047 DCA NWATCH /Update it 336 10522 1372 TAD (-VSIZE /See if cursor will fit towards bottom of screen 337 10523 1036 TAD LINCNT 338 10524 1047 TAD NWATCH 339 10525 7500 SMA 340 10526 7200 CLA 341 10527 7041 CIA 342 10530 1047 TAD NWATCH /Take MAX(NWATCH,calculated NWATCH) 343 10531 3035 DCA CRSLIN /Save it away 344 10532 5756 JMP I (DOLCNT /Jmp to do line counting now 345 10533 0000 VCNT, 0 346 10534 0000 HCNT, 0 ------ 10556 0600 10557 0020 10560 1600 10561 4000 10562 2420 10563 2414 10564 1302 10565 0232 10566 0000 * 10567 7660 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 8-2 FILE # 1 10570 3777 10571 0030 10572 7750 10573 0000 * 10574 0000 * 10575 0000 * 10576 0000 * 10577 0000 * 347 0600 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 9 FILE # 1 348 349 /Count lines to top of screen and save one for screen alignment 350 351 10600 3041 DOLCNT, DCA CHKFLG /Init flag to buffer unknown 352 10601 3036 DCA LINCNT /Clear line counter 353 10602 3037 DCA RTMOST /Clear rightmost col count for first line 354 10603 1377 LINES, TAD (FCHAR /Reset output routine to flush chars 355 10604 3045 DCA OUTCHR 356 10605 1031 TAD PTRTXT /Make copy of current line in buffer 357 10606 3033 DCA LINPTR 358 10607 1033 TAD LINPTR /See if beginning of buffer 359 10610 7650 SNA CLA 360 10611 5776 JMP I (TRYMOV /Jmp if yes, no more lines to count 361 10612 7001 IAC /Do a -1L 362 10613 4775 JMS I (BAKUPL 363 10614 1033 TAD LINPTR /Calc ones complement of line size just got 364 10615 7040 CMA 365 10616 1031 TAD PTRTXT 366 10617 3030 DCA CHRCNT 367 10620 1030 TAD CHRCNT /See if line is large enough to warrent saving 368 10621 1374 TAD (17 369 10622 7740 SMA SZA CLA 370 10623 5244 JMP DONTSV /Jmp if too small 371 10624 1373 TAD (CHKBUF /Else set ptr to match buffer 372 10625 3044 DCA CHKPTR 373 10626 1041 TAD CHKFLG /See if match buffer is already used 374 10627 7640 SZA CLA 375 10630 5244 JMP DONTSV /Jmp if yes 376 10631 2041 ISZ CHKFLG /Else flag it just being used now 377 10632 1372 TAD (CCHAR /Set output routine to save the line in buffer 378 10633 3045 DCA OUTCHR 379 10634 1371 TAD (-HSIZE /Set count to clear buffer 380 10635 3051 DCA CNT 381 10636 1370 TAD (CHKBUF-1 382 10637 3010 DCA BXR /Set ptr to blank buffer 383 10640 1101 TAD VT40 384 10641 3410 DCA I BXR /Blank whole buffer 385 10642 2051 ISZ CNT 386 10643 5240 JMP .-3 387 10644 1031 DONTSV, TAD PTRTXT /Setup pointer to the line to do 388 10645 3027 DCA TXTPTR 389 10646 1036 TAD LINCNT /Save current line count incase multi line overflow 390 10647 3270 DCA SAVCNT 391 10650 4767 JMS I (DOTEXT /Expand the text in one line 392 10651 1041 TAD CHKFLG 393 10652 7750 SPA SNA CLA /Skp if we just filled the buffer 394 10653 5260 JMP NOCSAV /Else dont save its line count 395 10654 1036 TAD LINCNT /Save check line number for screen alignment later 396 10655 3040 DCA CHKLIN 397 10656 7240 STA /Flag buffer is used now 398 10657 3041 DCA CHKFLG 399 10660 1035 NOCSAV, TAD CRSLIN /See if passed top of screen yet 400 10661 7041 CIA 401 10662 1036 TAD LINCNT 402 10663 7710 SPA CLA /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 9-1 FILE # 1 403 10664 5203 JMP LINES /Loop if no 404 10665 1270 TAD SAVCNT /Restore line just before overflow 405 10666 3036 DCA LINCNT 406 10667 5776 JMP I (TRYMOV /Now attempt to align the screen and map 407 10670 0000 SAVCNT, 0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 10 FILE # 1 408 409 10671 0000 DPATCH, 0 410 10672 6211 CDF 10 411 10673 1366 TAD (CIF CDF CUR 412 10674 3765 DCA I (VT52D+1 413 10675 1302 TAD XXXJMP 414 10676 3764 DCA I (VT52D+2 415 10677 1363 TAD (VTGETQ 416 10700 3762 DCA I (VT52D+3 417 10701 5671 JMP I DPATCH 418 10702 **** * XXXJMP, GETQX+3&177+5600 /JMP I .+1 ------ 10762 0003 * 10763 0346 10764 0002 * 10765 0001 * 10766 6233 10767 1600 10770 3577 10771 7660 10772 2400 10773 3600 10774 0017 10775 1302 10776 1000 10777 2414 419 1000 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 11 FILE # 1 420 421 /Now try to align the buffered line with the map 422 /to get an accurate move offset for up/down scrolling 423 424 11000 1050 TRYMOV, TAD INITFL /See if screen known 425 11001 7710 SPA CLA /Skp if no, no point trying to align it 426 11002 1041 TAD CHKFLG /See if anything was saved in match buffer 427 11003 7700 SMA CLA /Skp if yes 428 11004 5777 JMP I (OUTPUT /Else just do output 429 11005 1040 TAD CHKLIN /Calculate line number of saved line 430 11006 7041 CIA 431 11007 1036 TAD LINCNT 432 11010 3040 DCA CHKLIN 433 11011 1040 TAD CHKLIN /Calculate offset in map of saved line 434 11012 7106 CLL RTL /*4 435 11013 1040 TAD CHKLIN /*5 436 11014 7106 CLL RTL /*20. 437 11015 7106 CLL RTL /*80. 438 11016 3301 DCA CHKBAS /Save base offset of the saved line 439 11017 3053 DCA OFFSET /Clear present alignment offset 440 11020 3054 DCA LOFFST /Clear offset in lines too 441 11021 5227 JMP TRYGO /Jmp into alignment loop 442 11022 1053 NXTRY, TAD OFFSET /Try to align screen down 443 11023 7041 CIA 444 11024 4242 JMS TRYMAT 445 11025 5776 JMP I (DNMOVE /Jmp to move screen down if got a match 446 11026 1053 TAD OFFSET /Try to align screen up 447 11027 4242 TRYGO, JMS TRYMAT 448 11030 5775 JMP I (UPMOVE /Jmp to move screen up if got a match 449 11031 2054 ISZ LOFFST /Tally another line offset 450 11032 1053 TAD OFFSET 451 11033 1374 TAD (HSIZE /Bump char offset magnitude too 452 11034 3053 DCA OFFSET 453 0014 XX= VSIZE%2 454 11035 1054 TAD LOFFST /See if too far out 455 11036 1373 TAD (-XX 456 11037 7710 SPA CLA /Skp if yes 457 11040 5222 JMP NXTRY /Else try another set of moves 458 11041 5777 JMP I (OUTPUT /Quit trying to match, go do output /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 12 FILE # 1 459 460 /Compare the buffered line with a spot in the map 461 /CALL+1 = JMP to do up or down scroll and map move as case may be 462 463 11042 0000 TRYMAT, 0 464 11043 1301 TAD CHKBAS /Add base of saved line relative to map 465 11044 1372 TAD (MAPST-1 /Make absolute 466 11045 3010 DCA BXR 467 11046 4064 JMS POLL /Sample keyboard for type ahead 468 11047 1010 TAD BXR /Range check pointer for [MAPST-1,MAPND-1] 469 11050 1371 TAD (-MAPND 470 11051 7100 CLL 471 11052 1370 TAD (MAPSZ 472 11053 7620 SNL CLA /Skp if in range 473 11054 5277 JMP NOMTCH /Else off screen, just exit 474 11055 1367 TAD (CHKBUF-1 /Point at match buffer 475 11056 3011 DCA CXR 476 11057 1366 TAD (-HSIZE /Set count for size of line 477 11060 3051 DCA CNT 478 11061 1411 MATLUP, TAD I CXR /Compare chars 479 11062 7041 CIA 480 11063 1410 TAD I BXR 481 11064 7640 SZA CLA /Skp if same 482 11065 5277 JMP NOMTCH /Exit if not 483 11066 2051 ISZ CNT 484 11067 5261 JMP MATLUP /Iterate 485 11070 1053 TAD OFFSET /See if any offset 486 11071 7650 SNA CLA 487 11072 5777 JMP I (OUTPUT /Jmp if none, just do output 488 11073 1054 TAD LOFFST /Setup alignment count to shift screen by 489 11074 7041 CIA 490 11075 3051 DCA CNT 491 11076 5642 JMP I TRYMAT /Jmp to CALL+1 to move screen 492 11077 2242 NOMTCH, ISZ TRYMAT /Skp screen align branch 493 11100 5642 JMP I TRYMAT 494 11101 0000 CHKBAS, 0 495 ------ 11166 7660 11167 3577 11170 3600 11171 0200 11172 3777 11173 7764 11174 0120 11175 1224 11176 1200 11177 1400 496 1200 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 13 FILE # 1 497 498 /Align the screen downward if offset was negative 499 500 11200 3036 DNMOVE, DCA LINCNT /Set cursor to [0,0] 501 11201 3020 DCA MAPCOL 502 11202 4777 JMS I (SETCUR /Do the cursor sequence 503 11203 1376 DNLUP, TAD (REVSEQ /Now shift screen down with reverse LF sequence 504 11204 4775 JMS I (PUTCH 505 11205 2051 ISZ CNT 506 11206 5203 JMP DNLUP /The correct number of times 507 11207 1374 TAD (MAPND-1-HSIZE /Set pointers for phantom screen move 508 11210 3010 DCA BXR /Target pointer 509 11211 1053 TAD OFFSET 510 11212 7041 CIA 511 11213 1010 TAD BXR 512 11214 3011 DCA CXR /Source pointer 513 11215 1373 TAD (-HSIZE-HSIZE /XR offset 514 11216 5241 JMP ADJGO /Go do adjustment now 515 516 11217 0033 REVSEQ, 33;111;0 /Escape sequence for reverse line feed 11220 0111 11221 0000 517 11222 0012 LFSEQ, 12;0 /Phony escape sequence for normal LF 11223 0000 518 519 /Align screen upward with normal LF if offset was positive 520 521 11224 1372 UPMOVE, TAD (VSIZE-1 /Set cursor to bottom line 522 11225 3036 DCA LINCNT 523 11226 3020 DCA MAPCOL 524 11227 4777 JMS I (SETCUR /Do position sequence 525 11230 1371 UPLUP, TAD (LFSEQ /Use a simple line feed 526 11231 4775 JMS I (PUTCH 527 11232 2051 ISZ CNT 528 11233 5230 JMP UPLUP 529 11234 1370 TAD (MAPST-1 /Set XR for phantom screen move 530 11235 3010 DCA BXR /Target ptr 531 11236 1010 TAD BXR 532 11237 1053 TAD OFFSET 533 11240 3011 DCA CXR 534 11241 3301 ADJGO, DCA XOFFSET /Set xr offset now 535 11242 1367 TAD (-VSIZE /Set number of lines to shift 536 11243 1054 TAD LOFFST 537 11244 4253 JMS MAPADJ /Go do them 538 11245 1411 TAD I CXR /Instruction to shift a char 539 11246 1054 TAD LOFFST /Now number of lines remaining to blank 540 11247 7041 CIA 541 11250 4253 JMS MAPADJ /Do them 542 11251 1101 TAD VT40 /Instruction to blank a char 543 11252 5766 JMP I (OUTPUT /Now do the output 544 545 11253 0000 MAPADJ, 0 546 11254 3300 DCA LCNT /Store line count passed in AC 547 11255 1653 TAD I MAPADJ /Get proper source char inst passed in call+1 548 11256 2253 ISZ MAPADJ /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 13-1 FILE # 1 549 11257 3262 DCA MINST 550 11260 1365 MLOOP, TAD (-HSIZE /Set count for one line 551 11261 3051 DCA CNT 552 11262 7402 MINST, HLT /"TAD I CXR" or "TAD VT40" 553 11263 3410 DCA I BXR /Store the char 554 11264 2051 ISZ CNT 555 11265 5262 JMP MINST 556 11266 4064 JMS POLL /Now poll the damn keyboard 557 11267 1010 TAD BXR /Adjust XR's 558 11270 1301 TAD XOFFSET 559 11271 3010 DCA BXR 560 11272 1011 TAD CXR 561 11273 1301 TAD XOFFSET 562 11274 3011 DCA CXR 563 11275 2300 ISZ LCNT /Do next line 564 11276 5260 JMP MLOOP 565 11277 5653 JMP I MAPADJ 566 11300 0000 LCNT, 0 567 11301 0000 XOFFSET,0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 14 FILE # 1 568 569 /Do -NL in Teco's text buffer 570 /Entery AC = N 571 572 11302 0000 BAKUPL, 0 573 11303 7040 CMA 574 11304 3331 DCA BLCNT /Set count of lines to skip 575 11305 5310 JMP BAKGO /Go into loop 576 11306 1330 BAKLP, TAD BLPTR 577 11307 3031 DCA PTRTXT /Update pointer to text 578 11310 7340 BAKGO, CLL STA /Peek at prev char 579 11311 1031 TAD PTRTXT 580 11312 3330 DCA BLPTR 581 11313 7420 SNL /Unless at start of buffer 582 11314 5702 JMP I BAKUPL 583 11315 6211 CDF 10 584 11316 1730 TAD I BLPTR /Look at the char 585 11317 6231 CDF CUR 586 11320 0076 AND VT177 587 11321 1364 TAD (-15 /Range check in interval [12,14] 588 11322 7100 CLL 589 11323 1363 TAD (3 590 11324 7630 SZL CLA /Skp if not LF, VT, or FF 591 11325 2331 ISZ BLCNT /Decrement counter if is LF, VT or FF 592 11326 5306 JMP BAKLP /Repeat if not LF or count not done 593 11327 5702 JMP I BAKUPL 594 11330 0000 BLPTR, 0 595 11331 0000 BLCNT, 0 596 ------ 11363 0003 11364 7763 11365 7660 11366 1400 11367 7750 11370 3777 11371 1222 11372 0027 11373 7540 11374 7457 11375 2466 11376 1217 11377 2426 597 1400 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 15 FILE # 1 598 599 600 /Routine to actually do screen update after attempted alignment 601 602 11400 1377 OUTPUT, TAD (VTCHAR /Setup for actual terminal output now 603 11401 3045 DCA OUTCHR 604 11402 1376 TAD (VTBLNK 605 11403 3046 DCA OUTBLN 606 11404 3037 DCA RTMOST /Initialize rightmost col to zero 607 11405 3036 DCA LINCNT /Clear line counter too 608 11406 1042 TAD ZZSAV /Calculate a char counter 609 11407 7040 CMA 610 11410 1033 TAD LINPTR /From saved cursor line (0L) to Z 611 11411 3030 DCA CHRCNT 612 11412 1033 TAD LINPTR 613 11413 3027 DCA TXTPTR 614 11414 1375 TAD (MAPST /Set pointer to map for redundant output avoidance 615 11415 3032 DCA LINBAS 616 11416 1050 TAD INITFL /See if screen state known 617 11417 7710 SPA CLA 618 11420 5231 JMP KNWSCR /Jmp if screen not corrupted 619 11421 3020 DCA MAPCOL /Zero out map if screen is unknown 620 11422 7240 STA 621 11423 3025 DCA VIDLIN 622 11424 3775 DCA I (MAPST /Force a non blank char so screen will be cleared 623 11425 1374 TAD (MAPND /Blank whole screen and map 624 11426 4446 JMS I OUTBLN 625 11427 1676 EOSSEQ 626 11430 3026 DCA VIDCOL /Set video col to zero 627 11431 1373 KNWSCR, TAD (VSIZE-1 628 11432 3022 DCA CURLIN 629 11433 1372 TAD (HSIZE-1 630 11434 3023 DCA CURCOL 631 11435 4771 JMS I (DOTEXT /Go do the real output now! 632 11436 1022 TAD CURLIN /Position terminal cursor now 633 11437 3036 DCA LINCNT 634 11440 1023 TAD CURCOL 635 11441 3020 DCA MAPCOL 636 11442 4770 JMS I (SETCUR 637 11443 7340 CLL STA /Peek at char in front of P 638 11444 1043 TAD PSAV 639 11445 3267 DCA PTMP 640 11446 7620 SNL CLA /Skp if not at beginning of buffer 641 11447 5262 JMP OUTFIN /Just exit if no 642 11450 6211 CDF 10 /See if cursor is under a CR 643 11451 1667 TAD I PTMP 644 11452 6231 CDF CUR 645 11453 0076 AND VT177 /Only 7 bits 646 11454 1367 TAD (-15 647 11455 7640 SZA CLA 648 11456 5262 JMP OUTFIN /Jmp if no 649 11457 1366 TAD (CURSEQ /Else do fancy down arrow sequence 650 11460 4765 JMS I (PUTCH /Also moves cursor back under arrow 651 11461 3424 DCA I CURPTR /Zap char in map since we clobbered it on screen 652 11462 7240 OUTFIN, STA /Flag screen is known now /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 15-1 FILE # 1 653 11463 3050 DCA INITFL 654 11464 6203 CIF CDF /Now indicate that no output done 655 11465 3764 DCA I (OUTDNE /By zeroing flag in Teco's print routine 656 11466 5763 JMP I (CTLWR /Jmp back to a POPJ in Teco to exit 657 11467 0000 PTMP, 0 658 659 11470 0033 CURSEQ, 33;106;153;33;107;33;104;0 /Esc seq to flag cursor at CR 11471 0106 11472 0153 11473 0033 11474 0107 11475 0033 11476 0104 11477 0000 660 ------ 11563 0000 * 11564 0000 * 11565 2466 11566 1470 11567 7763 11570 2426 11571 1600 11572 0117 11573 0027 11574 7600 11575 4000 11576 2251 11577 2326 661 1600 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 16 FILE # 1 662 663 /Main routine to expand text 664 665 11600 0000 DOTEXT, 0 666 11601 5777 JMP I (EXPGO /Jmp into expansion loop 667 668 /Handle line overflows here 669 670 11602 6211 OVFCHK, CDF 10 /Get into text buffer field 671 11603 1427 TAD I TXTPTR 672 11604 6231 CDF CUR 673 11605 0076 AND VT177 674 11606 1376 TAD (-15 /See if overflow on cr 675 11607 7650 SNA CLA 676 11610 5775 JMP I (GETBYT /Ignore if yes 677 11611 6201 CDF /See if allowing line overflows 678 11612 1774 TAD I (ETFLAG 679 11613 0373 AND (400 680 11614 6231 CDF CUR 681 11615 7650 SNA CLA /Skp if should truncate to terminal width 682 11616 5227 JMP DOVFL 683 11617 2027 ISZ TXTPTR /Eat char 684 11620 1020 TAD MAPCOL 685 11621 1372 TAD (-HSIZE+1 686 11622 7700 SMA CLA 687 11623 5771 JMP I (CHKCUR 688 11624 1370 TAD (OVSEQ /Now send out right arrow escape sequence 689 11625 4445 JMS I OUTCHR 690 11626 5771 JMP I (CHKCUR /Go check cursor position 691 11627 7240 DOVFL, STA 692 11630 1030 TAD CHRCNT 693 11631 3030 DCA CHRCNT /Fake out char counter to reget char 694 11632 1020 TAD MAPCOL 695 11633 3037 DCA RTMOST 696 11634 3020 DCA MAPCOL 697 11635 4767 JMS I (NEWLIN /Goto new line 698 11636 1370 TAD (OVSEQ /Now send right arrow escape sequence 699 11637 4445 JMS I OUTCHR 700 11640 1101 TAD VT40 701 11641 4445 JMS I OUTCHR 702 11642 5771 JMP I (CHKCUR /Now go check if at cursor 703 704 11643 1042 CHKEOS, TAD ZZSAV /See if end of screen now 705 11644 7041 CIA 706 11645 1027 TAD TXTPTR 707 11646 7640 SZA CLA 708 11647 5256 JMP EORETN 709 11650 1020 TAD MAPCOL 710 11651 1372 TAD (-HSIZE+1 711 11652 7740 SMA SZA CLA 712 11653 5256 JMP EORETN 713 11654 1366 TAD (EOBSEQ /Send out special end of buffer char 714 11655 4445 JMS I OUTCHR 715 11656 1365 EORETN, TAD (MAPND /Pass pointer to end of map 716 11657 4446 JMS I OUTBLN /Blank rest of screen now /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 16-1 FILE # 1 717 11660 1676 EOSSEQ 718 11661 5600 JMP I DOTEXT /Return 719 720 11662 0033 OVSEQ, 33;106;150;33;107;0 /Esc seq to flag line overflow 11663 0106 11664 0150 11665 0033 11666 0107 11667 0000 721 11670 0033 EOBSEQ, 33;106;141;33;107;0 /Esc seq to flag end of buffer 11671 0106 11672 0141 11673 0033 11674 0107 11675 0000 722 11676 0033 EOSSEQ, 33;112;0 /Esc seq to clear to end of screen 11677 0112 11700 0000 723 ------ 11765 7600 11766 1670 11767 2200 11770 1662 11771 2024 11772 7661 11773 0400 11774 0000 * 11775 2005 11776 7763 11777 2140 724 2000 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 17 FILE # 1 725 726 /Continuation of text expansion routine 727 728 12000 4064 LOOP, JMS POLL /See if key struck 729 12001 1020 TAD MAPCOL /See if about to overflow line 730 12002 1377 TAD (-HSIZE+2 731 12003 7700 SMA CLA 732 12004 5776 JMP I (OVFCHK /Jmp if yes 733 12005 6211 GETBYT, CDF 10 /Get a char from Teco's text buffer 734 12006 1427 TAD I TXTPTR 735 12007 2027 ISZ TXTPTR /Bump the pointer now 736 12010 6231 CDF CUR 737 12011 0076 AND VT177 /Save only 7 bits 738 12012 3345 DCA TXTCHR 739 12013 1345 TAD TXTCHR 740 12014 1375 TAD (-177 741 12015 7450 SNA 742 12016 5270 JMP GOTDEL /Flag del as ^? since it doesn't echo otherwise 743 12017 1374 TAD (177-40 744 12020 7510 SPA /Skp if normal printing char, usual case 745 12021 5250 JMP TRYCTL /Else check type of control char 746 12022 1101 TAD VT40 /Restore char 747 12023 4445 OUTPTC, JMS I OUTCHR /Send it out 748 12024 1027 CHKCUR, TAD TXTPTR /Test if char is at cursor now 749 12025 1034 TAD UNDERC 750 12026 7650 SNA CLA /Skp if not under cursor, normal case 751 12027 5233 JMP SAVECP /Else save its position information for later 752 12030 2030 EXCONT, ISZ CHRCNT /Now bump count 753 12031 5200 JMP LOOP /Loop for more 754 12032 5773 JMP I (CHKEOS /Exit to check out end of screen status if done 755 756 12033 1021 SAVECP, TAD MAPPTR /Else save line and column for cursor postion later 757 12034 3024 DCA CURPTR 758 12035 1036 TAD LINCNT 759 12036 3022 DCA CURLIN 760 12037 1020 TAD MAPCOL 761 12040 3023 DCA CURCOL 762 12041 1020 TAD MAPCOL 763 12042 1372 TAD (-HSIZE /See if col is legal 764 12043 7710 SPA CLA 765 12044 5230 JMP EXCONT /Jmp if ok 766 12045 1371 TAD (HSIZE-1 /Fix it if no 767 12046 3023 DCA CURCOL 768 12047 5230 JMP EXCONT /Continue 769 770 12050 1370 TRYCTL, TAD (40-15 /See if CR 771 12051 7450 SNA 772 12052 5331 JMP GOTCR /Jmp if yes 773 12053 7100 CLL /See if carraige control LF, VT, FF 774 12054 1367 TAD (15-11 775 12055 7450 SNA 776 12056 5316 JMP GOTTAB /Jmp if happens to be TAB 777 12057 7420 SNL /Skp if carraige control 778 12060 5274 JMP GOTCTL /Else its a control char requiring flagging 779 12061 7041 GOTCRG, CIA /Form line feed count /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 17-1 FILE # 1 780 12062 7124 STL RAL 781 12063 3344 DCA CRGCNT 782 12064 4766 JMS I (NEWLIN /Emit a new line 783 12065 2344 ISZ CRGCNT /Bump count 784 12066 5264 JMP .-2 /Iterate 785 12067 5224 JMP CHKCUR /Go check cursor position 786 12070 1365 GOTDEL, TAD (136 /Flag del as ^? since it normally doesn't print 787 12071 4445 JMS I OUTCHR 788 12072 1077 TAD VT77 789 12073 5223 JMP OUTPTC 790 12074 7200 GOTCTL, CLA 791 12075 6201 CDF 0 792 12076 1764 TAD I (ETFLAG /Check if image mode 793 12077 6231 CDF CUR 794 12100 7010 RAR 795 12101 7630 SZL CLA 796 12102 5312 JMP IMGCTL /Yes, don't convert 797 12103 1345 TAD TXTCHR 798 12104 1363 TAD (-33 /Now test if ESC requiring special flagging 799 12105 7650 SNA CLA /Not usually 800 12106 5314 JMP GOTESC /Jmp if yes, echo as $ 801 12107 1365 TAD (136 /Send out a ^ to flag it 802 12110 4445 JMS I OUTCHR 803 12111 1362 TAD (100 /Make character visible 804 12112 1345 IMGCTL, TAD TXTCHR 805 12113 5223 JMP OUTPTC /Go output it 806 12114 1104 GOTESC, TAD VT4 /Echo $ 807 12115 5222 JMP OUTPTC-1 /* ADD VT40 808 12116 1101 GOTTAB, TAD VT40 /Simulate tabs 809 12117 4445 JMS I OUTCHR 810 12120 1020 TAD MAPCOL 811 12121 0103 AND VT7 812 12122 7650 SNA CLA /Skp if more to go 813 12123 5224 JMP CHKCUR /Else back to loop 814 12124 1020 TAD MAPCOL 815 12125 1361 TAD (-HSIZE+1 816 12126 7710 SPA CLA /Skp if over line 817 12127 5316 JMP GOTTAB /Else room to continue 818 12130 5224 JMP CHKCUR 819 12131 1020 GOTCR, TAD MAPCOL 820 12132 7041 CIA 821 12133 1037 TAD RTMOST 822 12134 7700 SMA CLA 823 12135 5340 JMP EXPGO 824 12136 1020 TAD MAPCOL 825 12137 3037 DCA RTMOST 826 12140 1032 EXPGO, TAD LINBAS 827 12141 3021 DCA MAPPTR 828 12142 3020 DCA MAPCOL /Reset column counter on CR 829 12143 5224 JMP CHKCUR /Check if cursor is here 830 831 12144 0000 CRGCNT, 0 832 12145 0000 TXTCHR, 0 833 ------ 12161 7661 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 17-2 FILE # 1 12162 0100 12163 7745 12164 0000 * 12165 0136 12166 2200 12167 0004 12170 0023 12171 0117 12172 7660 12173 1643 12174 0137 12175 7601 12176 1602 12177 7662 834 2200 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 18 FILE # 1 835 836 /Handle a new line 837 838 12200 0000 NEWLIN, 0 839 12201 1020 TAD MAPCOL 840 12202 3250 DCA SAVCOL 841 12203 4064 JMS POLL /Sample keyboard for type ahead 842 12204 1032 TAD LINBAS /Pass end of line in map to clear up to 843 12205 1377 TAD (HSIZE 844 12206 4446 JMS I OUTBLN /Do clear end of line sequence 845 12207 2346 CLNSEQ 846 12210 3037 DCA RTMOST /Zero rightmost col 847 12211 1032 TAD LINBAS 848 12212 1377 TAD (HSIZE 849 12213 3032 DCA LINBAS /Update base of current line in map 850 12214 2036 ISZ LINCNT /Tally another line done 851 12215 1250 TAD SAVCOL 852 12216 7650 SNA CLA 853 12217 5236 JMP NLDONE 854 12220 1036 TAD LINCNT 855 12221 1376 TAD (-VSIZE 856 12222 7700 SMA CLA 857 12223 5236 JMP NLDONE 858 12224 3020 DCA MAPCOL 859 12225 1032 TAD LINBAS /Point MAPPTR at beginning of new line 860 12226 3021 DCA MAPPTR /For OUTCHR matching 861 12227 1101 LEADBL, TAD VT40 862 12230 4445 JMS I OUTCHR 863 12231 1020 TAD MAPCOL 864 12232 7041 CIA 865 12233 1250 TAD SAVCOL 866 12234 7640 SZA CLA 867 12235 5227 JMP LEADBL 868 12236 1250 NLDONE, TAD SAVCOL 869 12237 3020 DCA MAPCOL 870 12240 1020 TAD MAPCOL /Now point MAPPTR at proper loc in new line 871 12241 1032 TAD LINBAS 872 12242 3021 DCA MAPPTR 873 12243 1036 TAD LINCNT /Test if off end of screen 874 12244 1376 TAD (-VSIZE 875 12245 7710 SPA CLA /Skp if yes 876 12246 5600 JMP I NEWLIN 877 12247 5775 JMP I (EORETN /Exit from text expansion 878 12250 0000 SAVCOL, 0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 19 FILE # 1 879 880 /Blank the remainder of a line and map 881 /Blanking is only done if map has any non blank chars in it 882 /Entry AC = limit addr to stop at in map 883 884 12251 0000 VTBLNK, 0 885 12252 3324 DCA BLNKCT /Save limit addr 886 12253 1020 TAD MAPCOL /**back up mapcol 887 12254 3325 DCA HOLDMC 888 12255 1037 TAD RTMOST /Take MAX(RTMOST,MAPCOL) 889 12256 7041 CIA 890 12257 1020 TAD MAPCOL 891 12260 7510 SPA 892 12261 7200 CLA 893 12262 1037 TAD RTMOST 894 12263 3020 DCA MAPCOL 895 12264 7240 STA 896 12265 1020 TAD MAPCOL 897 12266 1032 TAD LINBAS /Add to base of current line in map 898 12267 3010 DCA BXR /Setup auto xr 899 12270 1324 TAD BLNKCT /Calculate a counter 900 12271 7041 CIA 901 12272 1010 TAD BXR 902 12273 3324 DCA BLNKCT 903 12274 3774 DCA I (PUTCH /Use subroutine entry as a flag 904 12275 5302 JMP BLNKGO /Jmp into loop 905 12276 1410 BLNKLP, TAD I BXR /Examine a char in map 906 12277 1373 TAD (-40 907 12300 7640 SZA CLA /Skp if blank already, the usual case 908 12301 5310 JMP NOTBLN /Jmp if no, put space there now 909 12302 2324 BLNKGO, ISZ BLNKCT /Test count 910 12303 5276 JMP BLNKLP /Go again 911 12304 1325 TAD HOLDMC /Now restore mapcol 912 12305 3020 DCA MAPCOL 913 12306 2251 ISZ VTBLNK /Skip past escape seq 914 12307 5651 JMP I VTBLNK 915 12310 1010 NOTBLN, TAD BXR /Save pointer to map 916 12311 3323 DCA BLNKPT 917 12312 1101 TAD VT40 /Now store space there 918 12313 3723 DCA I BLNKPT 919 12314 1774 TAD I (PUTCH /See if already cleared to eol 920 12315 7640 SZA CLA /Skp if no 921 12316 5302 JMP BLNKGO /Else continue scanning 922 12317 4772 JMS I (SETCUR /First set cursor to end of line 923 12320 1651 TAD I VTBLNK /Now pick up terminal clearing seq 924 12321 4774 JMS I (PUTCH /Send it out 925 12322 5302 JMP BLNKGO /Continue 926 12323 0000 BLNKPT, 0 927 12324 0000 BLNKCT, 0 928 12325 0000 HOLDMC, 0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 20 FILE # 1 929 930 /Do actual output if updating screen 931 /Does no output if char matches map 932 /Slightly convoluted flow to minimize execution time 933 934 12326 0000 VTCHAR, 0 935 12327 7041 CIA 936 12330 1421 TAD I MAPPTR /See if corresponds to map 937 12331 7440 SZA /Skp if yes, usual case 938 12332 5336 JMP VTSEND /Else must send it 939 12333 2020 VTDONE, ISZ MAPCOL /Always tally new line column 940 12334 2021 ISZ MAPPTR /And bump absolute map pointer 941 12335 5726 JMP I VTCHAR 942 12336 7041 VTSEND, CIA /Restore char to ac 943 12337 1421 TAD I MAPPTR 944 12340 3421 DCA I MAPPTR /Now save in map 945 12341 4772 JMS I (SETCUR /Set cursor if necessary 946 12342 1421 TAD I MAPPTR /Get char back 947 12343 4774 JMS I (PUTCH /Send out char 948 12344 2026 ISZ VIDCOL /Tally new video column now 949 12345 5333 JMP VTDONE /Now exit 950 951 12346 0033 CLNSEQ, 33;113;0 /Escape seq to clear to end of line 12347 0113 12350 0000 952 ------ 12372 2426 12373 7740 12374 2466 12375 1656 12376 7750 12377 0120 953 2400 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 21 FILE # 1 954 955 /Phony output routne used to buffer a line in match buffer 956 /For later use in vertical screen alignment 957 958 12400 0000 CCHAR, 0 959 12401 2020 ISZ MAPCOL 960 12402 3444 DCA I CHKPTR /Save char in check buffer 961 12403 1444 TAD I CHKPTR /See if special escape or not 962 12404 2044 ISZ CHKPTR 963 12405 0377 AND (7600 964 12406 7650 SNA CLA /Skp if yes 965 12407 5600 JMP I CCHAR /Else return 966 12410 3041 DCA CHKFLG /Say match buffer not valid 967 12411 1376 TAD (FCHAR /Reset output routine to flush chars 968 12412 3045 DCA OUTCHR 969 12413 5600 JMP I CCHAR /Return 970 971 12414 0000 FCHAR, 0 972 12415 7200 CLA 973 12416 2020 ISZ MAPCOL 974 12417 5614 JMP I FCHAR 975 976 12420 0000 FBLNK, 0 977 12421 7200 CLA /Clear ending addr passed in ac 978 12422 2220 ISZ FBLNK /Skip past escape seq ptr in CALL+1 979 12423 1376 TAD (FCHAR /Reset output routine to flush chars now 980 12424 3045 DCA OUTCHR 981 12425 5620 JMP I FBLNK /Done /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 22 FILE # 1 982 983 /Cursor setting routine 984 /If LINCNT and MAPCOL are the same as VIDLIN and VIDCOL, 985 /No positioning is done. otherwise an escape seq is emitted. 986 987 12426 0000 SETCUR, 0 988 12427 1036 TAD LINCNT /Save map line 989 12430 3265 DCA VRTCHR /In case vertical position necessary 990 12431 1036 TAD LINCNT 991 12432 7041 CIA 992 12433 1025 TAD VIDLIN /Compare video and map cursor positions 993 12434 7640 SZA CLA 994 12435 5245 JMP DOSETC /Jmp if different, set cursor 995 12436 1375 TAD (VSIZE /If same, set vertical out of range to avoid VT52 flicker 996 12437 3265 DCA VRTCHR 997 12440 1020 TAD MAPCOL /Now compare column 998 12441 7041 CIA 999 12442 1026 TAD VIDCOL 1000 12443 7650 SNA CLA 1001 12444 5626 JMP I SETCUR /No need at all if same 1002 12445 1374 DOSETC, TAD (YSEQ /Send out direct addr seq 1003 12446 4773 JMS I (PUTCH 1004 12447 1265 TAD VRTCHR 1005 12450 1101 TAD VT40 /Make non control code out of it 1006 12451 4773 JMS I (PUTCH 1007 12452 1020 TAD MAPCOL 1008 12453 1101 TAD VT40 1009 12454 4773 JMS I (PUTCH 1010 12455 1036 TAD LINCNT /Now make video and map correspond 1011 12456 3025 DCA VIDLIN 1012 12457 1020 TAD MAPCOL 1013 12460 3026 DCA VIDCOL 1014 12461 5626 JMP I SETCUR /Return 1015 12462 0033 YSEQ, 33;131;0 /Escape seq for direct cursor addressing 12463 0131 12464 0000 1016 12465 0000 VRTCHR, 0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 23 FILE # 1 1017 1018 /Print a char or an escape seq passed in AC 1019 /If AC GE 200, assumes an escape seq addr, else a 7 bit char 1020 1021 12466 0000 PUTCH, 0 1022 12467 1377 TAD (7600 /Test if addr of escape seq or real char 1023 12470 7100 CLL 1024 12471 1372 TAD (200 1025 12472 7420 SNL /Skp if normal char 1026 12473 5276 JMP DOSEQ /Else to sequence 1027 12474 4306 JMS PCH 1028 12475 5666 JMP I PUTCH 1029 12476 3305 DOSEQ, DCA SEQPTR /Save pointer to escape sequence 1030 12477 1705 DOSEQL, TAD I SEQPTR 1031 12500 2305 ISZ SEQPTR 1032 12501 7450 SNA 1033 12502 5666 JMP I PUTCH /End of seq delimited by null 1034 12503 4306 JMS PCH 1035 12504 5277 JMP DOSEQL 1036 12505 0000 SEQPTR, 0 1037 1038 /Low level routine to print a char on terminal 1039 1040 12506 0000 PCH, 0 1041 12507 6031 TRYKBD, KSF 1042 12510 5314 JMP TRYTSF 1043 12511 3321 DCA PCHCHR 1044 12512 4064 JMS POLL 1045 12513 1321 TAD PCHCHR 1046 12514 6041 TRYTSF, TSF /Multi-8 changes this too 'SKP' 1047 12515 5307 JMP TRYKBD /OK, we don't have to check keyboard 1048 12516 6046 TLS 1049 12517 7200 CLA 1050 12520 5706 JMP I PCH 1051 12521 0000 PCHCHR, 0 1052 ------ 12572 0200 12573 2466 12574 2462 12575 0030 12576 2414 12577 7600 1053 2600 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 24 FILE # 1 1054 1055 /Once only setup routine 1056 1057 /If monitor scope flag not set, won't run VWATCH 1058 /If GT 16K, cause overlays to run in field 4 and run VWATCH 1059 /If lt 16K, do not run VWATCH 1060 /If eq 16K and no BATCH, swap overlays and run VWATCH 1061 /If eq 16K and batch running, don't run VWATCH 1062 1063 .EXTERN MEMSIZ 1064 .EXTERN CDF4A,CDF4B,CDF4C,CDF4F,CIF4A,CIF4B,CIF4C,HCDF1,CIF4E 1065 .EXTERN ETFLAG,SRHLEN,TWLVKP,VTSUP,L16K 1066 .GLOBAL CORTST 1067 1068 7777 BIPCCL= 7777 /OS/8 batch flag word in field 0 1069 7726 SCOPWD= 7726 /HLT-CLA HLT scope flag word in field 1 1070 1071 12600 0000 CORTST, 0 1072 12601 6201 CDF 0 /Enter with AC = "MEMSIZ" from Teco 1073 12602 3777 DCA I (MEMSIZ /Store it for Teco 1074 12603 1776 TAD I (BIPCCL /BATCH ACTIVE ? 1075 12604 7004 RAL 1076 12605 7700 SMA CLA 1077 12606 5212 JMP NOBATC /NO, KEEP MEMSIZ AS IS 1078 12607 7240 STA 1079 12610 1777 TAD I (MEMSIZ 1080 12611 3777 DCA I (MEMSIZ /REDUCE MEMSIZ FOR RESIDENT BATCH 1081 12612 1777 NOBATC, TAD I (MEMSIZ /Now test the size 1082 12613 7450 SNA 1083 12614 5333 JMP NOVT /Jmp if only 8k (12K BATCH) 1084 12615 2200 ISZ CORTST 1085 12616 7110 CLL RAR 1086 12617 7450 SNA 1087 12620 5333 JMP NOVT /Jmp if only 12k (16K BATCH) 1088 12621 7010 RAR /See if exactly 16K (20K BATCH) 1089 12622 7640 SZA CLA 1090 12623 5227 JMP OKMOVE /Jmp if no 1091 12624 1375 TAD (CLA /Reduce Teco to 12k 1092 12625 3774 DCA I (TWLVKP 1093 12626 3773 DCA I (L16K /Don't allow "/" 1094 12627 1372 OKMOVE, TAD (CLL STA RTL 1095 12630 3771 DCA I (VTSUP 1096 12631 6213 CIF CDF 10 /Ok, reset fields 1097 12632 1770 TAD I (SCOPWD /Test if scope or not 1098 12633 0367 AND (200 1099 12634 7650 SNA CLA 1100 12635 5327 JMP TECRTN /Jmp out if no, don't run VWATCH 1101 12636 4766 JMS I (VTSTUF /Now go check out type of vt terminal and Multi-8 1102 12637 1731 VTMOVL, TAD I VTAD1 /Relocate VWATCH routine to field 3 now 1103 12640 6231 CDF 30 1104 12641 3731 DCA I VTAD1 1105 12642 6211 CDF 10 1106 12643 2331 ISZ VTAD1 1107 12644 2332 ISZ VTCNT 1108 12645 5237 JMP VTMOVL /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 24-1 FILE # 1 1109 12646 1365 TAD (VPATCH-1 /Set up pointer to patch list 1110 12647 3010 DCA BXR 1111 12650 1410 PATLP1, TAD I BXR /See if more 1112 12651 7450 SNA 1113 12652 5266 JMP SETFIN /Jmp if no 1114 12653 3052 DCA PTR /Save pointer 1115 12654 1410 TAD I BXR /Get counter 1116 12655 3051 DCA CNT 1117 12656 1410 PATLUP, TAD I BXR /Get a word 1118 12657 6201 CDF 0 1119 12660 3452 DCA I PTR /Store in Teco 1120 12661 6211 CDF 10 1121 12662 2052 ISZ PTR 1122 12663 2051 ISZ CNT 1123 12664 5256 JMP PATLUP /Do this segment 1124 12665 5250 JMP PATLP1 /Now get next segment 1125 12666 4764 SETFIN, JMS I (DPATCH /*M8 CHANGED TO 'CLA' 1126 12667 6201 CDF 0 1127 12670 1363 TAD (1000 /Now set VWATCH bit in etflag 1128 12671 1762 TAD I (ETFLAG 1129 12672 3762 DCA I (ETFLAG 1130 12673 1361 TAD (-40 /And shorten search buffer to preserve "CTLW" routine 1131 12674 3760 DCA I (SRHLEN 1132 12675 7346 CLL STA RTL /-3 1133 12676 1777 TAD I (MEMSIZ /See if gt 16K now 1134 12677 7710 SPA CLA 1135 12700 5325 JMP ONLY16 /Jmp if only 16K (20K BATCH), force overlays to swap 1136 12701 1357 TAD (CDF 40 /Force overlays to load into field 4 1137 12702 3756 DCA I (CDF4A 1138 12703 1357 TAD (CDF 40 1139 12704 3755 DCA I (CDF4B 1140 12705 1357 TAD (CDF 40 1141 12706 3754 DCA I (CDF4C 1142 12707 1353 TAD (CIF 40 1143 12710 3752 DCA I (CIF4B 1144 12711 1351 TAD (CIF CDF 40 1145 12712 3750 DCA I (CIF4C 1146 12713 1351 TAD (CIF CDF 40 1147 12714 3747 DCA I (CIF4E 1148 12715 1357 TAD (CDF 40 1149 12716 6211 CDF 10 1150 12717 3746 DCA I (CDF4F 1151 12720 1353 TAD (CIF 40 1152 12721 3745 DCA I (CIF4A 1153 12722 1357 TAD (CDF 40 1154 12723 3744 DCA I (HCDF1 1155 12724 5327 JMP TECRTN 1156 12725 1375 ONLY16, TAD (CLA /Zap overlay space test 1157 12726 3774 DCA I (TWLVKP 1158 12727 6203 TECRTN, CIF CDF 1159 12730 5600 JMP I CORTST /All set, return to Teco core size routine 1160 12731 0000 VTAD1, 0 1161 12732 5200 VTCNT, -CORTST /Move up to this once only code 1162 1163 12733 6203 NOVT, CIF CDF 0 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 24-2 FILE # 1 1164 12734 3773 DCA I (L16K /Don't allow "/" 1165 12735 5600 JMP I CORTST ------ 12744 0000 * 12745 0000 * 12746 0000 * 12747 0000 * 12750 0000 * 12751 6243 12752 0000 * 12753 6242 12754 0000 * 12755 0000 * 12756 0000 * 12757 6241 12760 0000 * 12761 7740 12762 0000 * 12763 1000 12764 0671 12765 7777 * 12766 3002 12767 0200 12770 7726 12771 0000 * 12772 7346 12773 0000 * 12774 0000 * 12775 7200 12776 7777 12777 0000 * 1166 3000 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 25 FILE # 1 1167 1168 /TERMINAL CLASSIFICATION VIA ESACPE SEQUENCES 1169 /IF DESPERATE FOR ROOM, CAN REMOVE THIS 1170 1171 .EXTERN VT05A,VT05B,VT05C 1172 1173 13000 0000 VTSUBT, 0 /GETS THIRD CHAR OF TERMINAL ESC SEQ 1174 13001 0000 VTM8, 0 /=1 IF UNDER MULTI8 1175 13002 0000 VTSTUF, 0 1176 13003 6254 6254 /SKIP ON MULTI8 1177 13004 7610 SKP CLA 1178 13005 7201 CLA IAC /SET 1 FOR MULTI8 1179 13006 3201 DCA VTM8 1180 13007 7305 CLA CLL IAC RAL /GIOT 2 1181 13010 6770 6770 /TURN ECHO OFF 1182 13011 7200 CLA 1183 13012 1377 TAD (33 /SEND WHAT-ARE-YOU ESCAPE SEQ 1184 13013 4304 JMS CPCH 1185 13014 1376 TAD (132 1186 13015 4304 JMS CPCH 1187 13016 4251 JMS CGCH /GET CHAR OR TIME OUT 1188 13017 1375 TAD (-33 1189 13020 7640 SZA CLA 1190 13021 5265 JMP NOGDVT /JMP IF NOT A VALID ESC SEQ 1191 13022 4251 JMS CGCH 1192 13023 1374 TAD (-57 /'/' SHOULD FOLLOW 1193 13024 7640 SZA CLA 1194 13025 5265 JMP NOGDVT /JMP IF NOT VT5X OR VT100 1195 13026 4251 JMS CGCH /CLASSIFY TYPE OF VT5X 1196 13027 3200 VTNOT, DCA VTSUBT /SAVE VT5X TYPE FOR LATER USE 1197 13030 7325 CLA STL IAC RAL /GIOT 3 1198 13031 6770 6770 /TURN ECHO ON AGAIN 1199 13032 7200 CLA 1200 13033 1200 TAD VTSUBT /WAS IT VT5X? 1201 13034 7650 SNA CLA 1202 13035 5773 JMP I (TECRTN /NO, DON'T ENABLE VWATCH 1203 13036 1201 TAD VTM8 /ARE WE UNDER MULTI8? 1204 13037 7650 SNA CLA 1205 13040 5602 JMP I VTSTUF /NO, BUT VALID VT52 OR VT100 1206 13041 1372 TAD (NOP 1207 13042 3771 DCA I (KBDCHK+1 /DISABLE 'KBDCHK' 1208 13043 3770 DCA I (VT52KL /DISABLE TYPEAHEAD HOOKS 1209 13044 1372 TAD (NOP 1210 13045 3767 DCA I (SETFIN /AND ANOTHER ONE 1211 13046 1372 TAD (NOP 1212 13047 3766 DCA I (TRYKBD /DISABLE KEYBOARD CHECK IN VWATCH PRINT 1213 13050 5602 JMP I VTSTUF /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 26 FILE # 1 1214 1215 13051 0000 CGCH, 0 1216 13052 7346 CLL STA RTL /-3 1217 13053 3051 DCA CNT 1218 13054 6031 CGCHL, KSF 1219 13055 5261 JMP FIG8 1220 13056 6036 KRB 1221 13057 0076 AND VT177 1222 13060 5651 JMP I CGCH 1223 13061 2304 FIG8, ISZ CPCH 1224 13062 5254 JMP CGCHL 1225 13063 2051 ISZ CNT 1226 13064 5254 JMP CGCHL 1227 13065 1365 NOGDVT, TAD (10 /RUBOUT THE CRAPPY CHAR IF NOT VALID TERMINAL 1228 13066 4304 JMS CPCH 1229 13067 1101 TAD VT40 1230 13070 4304 JMS CPCH 1231 13071 1365 TAD (10 1232 13072 4304 JMS CPCH 1233 13073 6201 CDF /NOW DO MODS TO TECO, ASSUMING A VT05 1234 13074 1310 TAD O7200 1235 13075 3764 DCA I (VT05A 1236 13076 1363 TAD (32 1237 13077 3762 DCA I (VT05B 1238 13100 1361 TAD (36 1239 13101 6211 CDF 10 1240 13102 3760 DCA I (VT05C 1241 13103 5227 JMP VTNOT /RETURN WITHOUT VWATCH ENABLED 1242 1243 13104 0000 CPCH, 0 1244 13105 6046 TLS 1245 13106 6041 TSF 1246 13107 5306 JMP .-1 1247 13110 7200 O7200, 7200 1248 13111 5704 JMP I CPCH 1249 ------ 13160 0000 * 13161 0036 13162 0000 * 13163 0032 13164 0000 * 13165 0010 13166 2507 13167 2666 13170 0000 * 13171 0245 13172 7000 13173 2727 13174 7721 13175 7745 13176 0132 13177 0033 1250 3200 PAGE /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 27 SYMBOL TABLE ADJGO 1241 DOSETC 2445 MAPSZ 3600 SRHLEN X **** BAKGO 1310 DOSTUF 0422 MATLUP 1061 SWATCH G 0402 BAKLP 1306 DOTEXT 1600 MEMSIZ X **** TAHCHK 0232 BAKUPL 1302 DOVFL 1627 MINST 1262 TECRTN 2727 BIPCCL 7777 DPATCH 0671 MLOOP 1260 TIMOUT 0063 BLCNT 1331 DPOLL 0062 N X **** TPUTX X **** BLNKCT 2324 EOBSEQ 1670 NCOM X **** TRYCTL 2050 BLNKGO 2302 EORETN 1656 NEWLIN 2200 TRYGO 1027 BLNKLP 2276 EOSSEQ 1676 NFLG X **** TRYKBD 2507 BLNKPT 2323 ERR34 X **** NLDONE 2236 TRYMAT 1042 BLPTR 1330 ETFLAG X **** NOBATC 2612 TRYMOV 1000 BXR 0010 EXCONT 2030 NOCSAV 0660 TRYTSF 2514 CCHAR 2400 EXPGO 2140 NOGDVT 3065 TTYBEG 3000 CCTRAP 0333 FBLNK 2420 NOMTCH 1077 TTYEND 3600 CDF4A X **** FCHAR 2414 NOROOM 0310 TTYINP 0057 CDF4B X **** FIG8 3061 NOTBLN 2310 TTYOUP 0060 CDF4C X **** FLD: 0 0200 ASECT NOTOUT 0266 TWLVKP X **** CDF4F X **** FUDCNT 0401 NOVT 2733 TXTCHR 2145 CGCH 3051 FUDKNT 0400 NWATCH 0047 TXTPTR 0027 CGCHL 3054 GETBYT 2005 NXTRY 1022 TYIFLG 0055 CHKBAS 1101 GETQX X **** OFFSET 0053 TYIRET X **** CHKBUF 3600 GOTCR 2131 OKGETQ 0357 UNDERC 0034 CHKCTC X **** GOTCRG 2061 OKMOVE 2627 UPLUP 1230 CHKCTR X **** GOTCTL 2074 ONLY16 2725 UPMOVE 1224 CHKCUR 2024 GOTDEL 2070 OUTBLN 0046 VCNT 0533 CHKEOS 1643 GOTESC 2114 OUTCHR 0045 VIDCOL 0026 CHKFLG 0041 GOTTAB 2116 OUTDNE X **** VIDLIN 0025 CHKLIN 0040 HCDF1 X **** OUTFIN 1462 VPATCH X **** CHKPTR 0044 HCNT 0534 OUTPTC 2023 VRTCHR 2465 CHRCNT 0030 HOLDMC 2325 OUTPUT 1400 VSIZE 0030 CIF4A X **** HSIZE 0120 OVFCHK 1602 VTAD1 2731 CIF4B X **** IMGCTL 2112 OVSEQ 1662 VTBLNK 2251 CIF4C X **** INITFL 0050 O7200 3110 VTCCB G 0340 CIF4E X **** KBDCHK 0244 P X **** VTCHAR 2326 CLNSEQ 2346 KBDCTC 0323 PATLP1 2650 VTCHKC G 0200 CNT 0051 KBDCTO 0262 PATLUP 2656 VTCNT 2732 CORTST G 2600 KCHAR 0056 PCH 2506 VTDONE 2333 CPCH 3104 KNWSCR 1431 PCHCHR 2521 VTEXIT 0420 CRGCNT 2144 LCNT 1300 POLL 0064 VTGETQ G 0346 CRSLIN 0035 LEADBL 2227 PSAV 0043 VTMOVL 2637 CTCTST 0315 LFSEQ 1222 PTMP 1467 VTM20 0100 CTLWR X **** LINBAS 0032 PTR 0052 VTM3 0102 CUR G 0030 LINCNT 0036 PTRTXT 0031 VTM8 3001 CURCOL 0023 LINES 0603 PUTCH 2466 VTNOT 3027 CURLIN 0022 LINPTR 0033 QSAVE 0061 VTSEND 2336 CURPTR 0024 LOFFST 0054 REVSEQ 1217 VTSTUF 3002 CURSEQ 1470 LOOP 2000 RTMOST 0037 VTSUBT 3000 CXR 0011 LPOLL 0067 SAVCNT 0670 VTSUP X **** DNLUP 1203 L16K X **** SAVCOL 2250 VTYI G 0204 DNMOVE 1200 MAPADJ 1253 SAVECP 2033 VTYILP 0203 DOLCNT 0600 MAPCOL 0020 SCOPWD 7726 VT05A X **** DONTSV 0644 MAPND 7600 SEQPTR 2505 VT05B X **** DOSEQ 2476 MAPPTR 0021 SETCUR 2426 VT05C X **** DOSEQL 2477 MAPST 4000 SETFIN 2666 VT177 0076 /6G VT52 Support for OS/8 TECO V MACREL-V2C FRI 07-DEC-90 PAGE 27-1 SYMBOL TABLE VT4 0104 VT40 0101 VT52D X **** VT52KL X **** VT7 0103 VT77 0077 VWATCH 3200 ASECT XOFFSE 1301 XX 0014 XXXJMP 0702 YSEQ 2462 ZZ X **** ZZSAV 0042