File: KL8E.LS of Disk: V50/Init/Build-Init
(Source file text)
/SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 1 /SUPER TTY HANDLER VERSION V50 / / / / / / / / / /COPYRIGHT (C) 1980 BY DATAPLAN GMBH, LAUDA, BRD / AND 2015 W. VAN DER MARK / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH. /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR /IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN. / /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN. / / / / / / / / / / / /W.V.D.MARK, DP CONSULTING, ZUERICH. /1-JAN-80 /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 2 0000 *0 000000 7777 -1 000001 1314 DEVICE KL8E;DEVICE TTY;0;TTY&177+4000;ZBLOCK 2 000002 7005 000003 2424 000004 3100 000005 0000 000006 4176 000007 0000 /TWO-PAGE TELETYPE HANDLER FOR OS/8 V3. /ON INPUT, RECOGNIZES ^Z, ^C, ^U, RUBOUT (RO) /^Z MEANS END OF INPUT, INSERT ^Z IN BUFFER, / PAD WITH ZEROES, AND ECHO "^Z,CRLF" /^C MEANS ABORT JOB, RETURN TO OS/8 VIA LOC 7600 TO SAVE CORE /^U MEANS DELETE THE LAST LINE, ALLOW OPERATOR TO RETYPE / (LINE STARTS AT BEGIN OF BUFFER AND IS TERMINATED BY A CR) / A CR GETS ENTERED INTO BUFFER, CAUSES A LF TO ALSO ECHO / AND GET ENTERED INTO BUFFER, BUFFER IS THEN PADDED WITH NULLS. /RO DELETES LAST CHARACTER FROM BUFFER, IF BEGIN OF BUFFER / REACHED A CRLF (LIKE ^U) IS GIVEN. / SCOPE RO'S CONSIST IN BS/SPACE/BS. / PAPER RO'S CONSIST IN BS/LINEFEED. /ON OUTPUT RECOGNIZES ^C, ^O, ^S, ^Q FROM KEYBOARD /^C CAUSES JOB TO ABORT, RETURN TO OS/8 VIA LOCATION 7600 / TO SAVE CORE. /^O CAUSES ECHOING BY THE HANDLER TO CEASE / TYPING ANY OTHER CHARACTER RESUMES ECHOING. /^S CAUSES THE HANDLER TO STOP SENDING TO TERMINAL /^Q (OR ANY OTHER CHAR) RESUMES HANDLER SENDING / AND REENABLES PAUSE IF SCOPE-MODE AFTER ^S. / ANY CHAR GIVEN DURING PAUSE DISABLES PAUSE. /WHENEVER PRINTING CHARACTERS (EITHER ON OUTPUT OR WHEN ECHOING), /SEVERAL OPTIONS CAN BE ACTIVATED OR NOT. / ALWAYS IGNORES NULLS / CONVERTS LC TO UC OR NOT. / HANDLES TABS CORRECTLY (INCLUDING COLUMN COUNTING) / PRINTS ESCAPE AS $, AS ^[ OR AS ESC. / PRINTS CONTROL CHARACTERS AS "^K" OR UNMODIFIED. / DOES AUTOMATIC CR/LF AT END OF LINE WIDTH. / DELAYS AFTER FORM-FEED IF NON-SCOPE MODE. 0030 TTYVERSION="X&77 /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 3 0001 VT78=1 /SET TO 0 TO ALLOW OTHER PARAMETERS /SET TO 1 TO FORCE OTHER PARAMETERS TO VT78 COMPATIBLE 0001 CTRL=1 /SET TO 1 TO ECHO CONTROL CHARS AS ^K /SET TO 0 TO ACCEPT CONTROL CHARACTERS AND PUT /IN BUFFER, AS WELL AS ECHO THEM. 0000 RUB=0 /SET TO 0 TO ECHO EACH RUBOUT BY TYPING BS/LF. /SET TO 1 TO PERFORM SCOPE TYPE RUBOUTS: BS/SP/BS 0001 SIMTAB=1 /SET TO 1 TO SIMULATE TABS AS THE CORRECT NUMBER OF SPACES /SET TO 0 TO TYPE TABS AS TABS 0001 ESC=1 /SET TO 1 TO ECHO ESCAPE AS $ /SET TO 0 TO ECHO ESCAPE AS A CONTROL CHAR (^[) 0001 CNVLC=1 /SET TO 1 TO CONVERT LOWER CASE CHARS TO UPPER CASE /SET TO 0 TO PRINT LOWER CASE CHARS AS THEY ARE 0000 PAG=0 /NO CONTROL-S FEATURE ON TTY 0000 PAUS=0 /NO PAUSE ON TTY 0110 HEIGHT=110 /NUMBER OF LINES ON TTY PAGE 0110 WIDTH=110 /TTY WIDTH = 72 IFNZRO VT78 < 0001 CTRL=1 0001 RUB=1 0000 SIMTAB=0 0001 ESC=1 0000 CNVLC=0 0001 PAG=1 /CONTROL-S FEATURE ON SCOPE 0100 PAUS=100 /PAUSE ENABLED ON SCOPE 0030 HEIGHT=30 /NUMBER OF LINES PER SCREEN 0120 WIDTH=120 /SCOPE WIDTH=80 > /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 4 /CROSS PAGE LINKAGE: /THIS CODE MUST BE ABLE TO LOAD INTO ANY TWO PAGES OF CORE /THE ENTRY POINT IS AT THE NEXT LOCATION TO THE END OF THE FIRST PAGE /AT THE END OF THE FIRST PAGE WE JMS TO PLINK, /THIS LEAVES THE ADDRESS OF THE FIRST LOCATION OF THE NEXT PAGE /IN LOCATION 'PLINK' . THIS JUST HAPPENS TO BE THE ADDRESS /OF BOTH TTYPCH AND TTYGCH. /TTYPCH AND TTYGCH SHARE THE SAME ENTRY POINT. /IF IT IS CALLED WITH A 0 AC, IT IS A CALL TO TTYGCH, /IF IT IS CALLED WITH A NON-ZERO AC, IT IS A CALL TO TTYPCH. /TTYGCH JUST GETS THE CHARACTER FROM THE KEYBOARD AND /CHECKS IF IT IS ^C, IF NOT, IT RETURNS THIS CHAR TO /PAGE 1, WHERE THE DIFFERENT INPUT OPTIONS ARE DECODED. /TTYPCH TAKES RETURN 1 IF IT WANTS THE HANDLER TO GO AWAY, /I.E IF IT SAW A ^Z. /IT NORMALLY TAKES RETURN 2 /AND TAKES RETURN 3 IF THE LINE OVERFLOWED. /WHEN ECHOING WE PREVENT THE ^Z RETURN BY TELLING /PAGE 2. (LINK=1 MEANS ECHOING) /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 5 0200 *200 000200 3700 L3700, 3700 /*200 000201 0000 PUNCH, 0 /MAKE SURE AC NON-ZERO 000202 4616 JMS I PLINK /CALL TTYPCH 000203 5271 JMP TTYRTN /RETURN ON OUTPUT 000204 5601 JMP I PUNCH /DID WE REACH END OF TTY LINE?:NO 000205 4345 JMS CRLF /YES, PERFORM CR/LF 000206 5601 JMP I PUNCH /RETURN 000207 6201 TTYCDF, CDF 0 000210 0000 BUFSIZ, 0 000211 0000 BUFSTRT,0 000212 0070 TTY70, 70 /*212 000213 0000 TTYCA, 0 000214 0000 TTYWC, 0 000215 6203 CIFCDF, CIF CDF 0 /*215 000216 0000 PLINK, 0 /GETS ADDRESS OF TTYPCH AND TTYGCH (START OF NEXT PAGE) 000217 7330 STL CLA RAR /4000 000220 1776 TAD I TTY /RETRIEVE FUNCTION WORD, BUT PUT R/W BIT IN LINK 000221 0200 TTY200, AND L3700 /EXTRACT NUMBER OF DOUBLE-WORDS TO TRANSFER 000222 7040 CMA /GET COUNT+1 000223 3210 DCA BUFSIZ /STORE AWAY 000224 6214 RDF /FIND OUT THE USER'S DATA FIELD 000225 1215 TTY215, TAD CIFCDF /FORM OUR EXIT CIF CDF 000226 3272 DCA TTYXIT /STORE AWAY FOR EXIT ROUTINE 000227 1776 TAD I TTY /GET FUNCTION WORD 000230 0212 TTY212, AND TTY70 /ISOLATE FIELD OF BUFFER 000231 1207 TAD TTYCDF /FORM CDF TO FIELD OF BUFFER 000232 3240 DCA TTCDBF /STORE WHERE IT WILL BE USEFUL /AT SAME TIME, INITIALIZE TTYEOF 000233 2376 ISZ TTY /POINT TO BUFFER ADDRESS 000234 1776 TAD I TTY /AND GET IT 000235 3211 DCA BUFSTRT /AND SAVE IT 000236 2376 ISZ TTY /POINT TO BLOCK # 000237 2376 ISZ TTY /POINT TO ERROR RETURN SHIFT, /OUTPUT SHIFT REGISTER TTYEOF, /0 IF SAW CR OR ^Z AND WISH TO PAD BUFFER WITH 0'S 000240 7402 TTCDBF, HLT /*240 : CDF BUFFER FIELD 000241 5265 JMP TTYKLG 000242 7620 TTYLP, SNL CLA /LINK=1 MEANS OUTPUT 000243 5275 JMP TTYGET /INPUT IS FROM TTY: /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 6 /LINK MUST BE SET FIRST TIME THROUGH HERE. /IT ACTS AS A GUARD BIT IN THE SHIFT REGISTER 000244 7006 ROTL, RTL 000245 7006 RTL 000246 7510 SPA /DO WE HAVE 8 BITS SHIFTED IN? 000247 5263 JMP TELP 000250 3240 DCA SHIFT /SAVE SHIFT REGISTER 000251 1611 TAD I BUFSTRT 000252 7440 SZA /PREVENT ZERO KILLER 000253 4201 JMS PUNCH /PRINT A CHARACTER 000254 1611 TAD I BUFSTRT 000255 2211 ISZ BUFSTRT /BUMP INPUT POINTER 000256 7400 TT7400, 7400 /PROTECT ISZ 000257 0256 AND TT7400 000260 7104 CLL RAL 000261 1240 TTY240, TAD SHIFT /SHIFT HIGH ORDER 4 BITS INTO 000262 5244 JMP ROTL /SHIFT REGISTER 000263 4201 TELP, JMS PUNCH /PRINT 3RD CHARACTER OF DOUBLE-WORD 000264 7120 STL /*KLUDGE 000265 2210 TTYKLG, ISZ BUFSIZ /DONE? 000266 5242 JMP TTYLP /NOT YET 000267 1240 TTYX, TAD TTYEOF /IF INPUT AND WE WERE PADDING WITH 0'S 000270 7640 SZA CLA /TAKE SOFT ERROR EXIT 000271 2376 TTYRTN, ISZ TTY /POINT TO NORMAL RETURN /CAN'T GET ERROR OR END-OF-FILE ON OUTPUT 000272 7402 TTYXIT, HLT /RETURN TO USER'S FIELD 000273 5776 JMP I TTY /RETURN TO USER /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 7 000274 4345 CTRLU, JMS CRLF /PERFORM A CR/LF 000275 1211 TTYGET, TAD BUFSTRT 000276 3213 DCA TTYCA /POINT TO START OF BUFFER 000277 1210 TAD BUFSIZ 000300 7104 CLL RAL /CONVERT DOUBLE-WORDS TO WORDS 000301 3214 DCAWC, DCA TTYWC /SET SIZE OF BUFFER 000302 1240 TSTEND, TAD TTYEOF 000303 7650 SNA CLA 000304 5306 JMP ZERO 000305 4616 JMS I PLINK /CALL TTYGCH TO GET A CHARACTER 000306 1221 ZERO, TAD TTY200 /SET BIT 200 CONVENTION 000307 3613 DCA I TTYCA /STORE AWAY TEMPORARILY /USING USER'S BUFFER AS A TEMP LOCATION 000310 7321 CLA IAC STL /SET LINK FOR ECHO 000311 1613 TAD I TTYCA /GET FOR RO TEST (377+1=400) 000312 1256 TAD TT7400 /=-400 000313 7650 SNA CLA 000314 5355 JMP RUBOUT /WE HAVE A RO IFNZRO ECHO < 000315 1613 TAD I TTYCA> /GET BACK CHARACTER IFZERO ECHO < SKP> /*NO ECHO 000316 4201 JMS PUNCH /ECHO IT 000317 1613 TAD I TTYCA /AND AGAIN FOR CTRL Z TEST 000320 1353 TAD M232 000321 7450 SNA 000322 3240 DCA TTYEOF /EOF: SET ZERO FILL 000323 7450 SNA 000324 4345 JMS CRLF /AND POLISH PAGING 000325 1350 TAD TTY5 /^Z-^U 000326 7450 SNA /IS IT ^U? 000327 5274 JMP CTRLU /YES 000330 1333 TAD TTY7 000331 3345 DCA TMP 000332 2213 ISZ TTYCA /NO 000333 0007 TTY7, 7 000334 2214 ISZ TTYWC /IS BUFFER FULL? 000335 7410 TTY10, SKP 000336 5267 JMP TTYX 000337 2345 ISZ TMP /WAS LAST CHAR A CR? 000340 5302 JMP TSTEND /NO 000341 3240 DCA TTYEOF /YES, SET "PAD WITH 0'S" FLAG 000342 2376 ISZ TTY /POINT TO NORMAL RETURN /CR IS NOT AN ERROR OR END-OF-FILE 000343 1230 TAD TTY212 /IF LAST CHAR INPUT WAS CR, NOW PRETEND LF WAS INPUT 000344 5307 JMP ZERO+1 /REJOIN PROCESSING /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 8 TMP, 000345 0000 CRLF, 0 000346 1225 TAD TTY215 000347 4616 JMS I PLINK /CALL TTYPCH TO PRINT CR 000350 0005 TTY5, 5 /*EOF AND EOL IMPOSSIBLE 000351 1230 TAD TTY212 000352 4616 JMS I PLINK /CALL TTYPCH TO PRINT LF 000353 7546 M232, -232 /*EOF AND EOL IMPOSSIBLE 000354 5745 JMP I CRLF /RETURN 000355 1213 RUBOUT, TAD TTYCA 000356 7041 CIA 000357 1211 TAD BUFSTRT 000360 7650 SNA CLA /ARE WE AT BEGIN OF BUFFER? 000361 5274 JMP CTRLU /YES 000362 7240 STA 000363 1213 TAD TTYCA /NO; SET POINTER BACK ONE 000364 3213 DCA TTYCA 000365 1335 TAD TTY10 000366 4201 JMS PUNCH IFNZRO RUB < /SCOPE TYPE RUBOUT: 000367 1261 TAD TTY240> /BACKSPACE-SPACE-BACKSPACE IFZERO RUB < /PAPER TYPE RUBOUT: TAD TTY212> /BACKSPACE-LINEFEED 000370 4201 JMS PUNCH IFNZRO RUB < 000371 1335 TAD TTY10> IFZERO RUB < SKP> 000372 4201 JMS PUNCH 000373 7240 STA 000374 1214 TAD TTYWC 000375 5301 JMP DCAWC /BUMP BACK WC AND GET ANOTHER CHAR ZBLOCK 376-. 000376 0030 TTY, TTYVERSION /ENTRY POINT TO HANDLER 000377 4216 JMS PLINK /SET UP CROSS PAGE LINKAGE IFNZRO TTY-376 <ENTERR,QQQQ> 0400 PAGE /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 9 /INTERLUDE: /USA STANDARD CODE FOR INFORMATION INTERCHANGE: / XX XX0 XX1 XX2 XX3 XX4 XX5 XX6 XX7 / 000 001 010 011 100 101 110 111 / / 00 0000 NUL SOH STX ETX EOT ENQ ACK BEL / / 01 0001 BS HT LF VT FF CR SO SI / / 02 0010 DLE DC1 DC2 DC3 DC4 NAK SYN ETB / / 03 0011 CAN EM SUB ESC FS GS RS US / / 04 0100 SP ! " # $ % & ' / / 05 0101 ( ) * + , - . / / / 06 0110 0 1 2 3 4 5 6 7 / / 07 0111 8 9 : ; < = > ? / / 10 1000 @ A B C D E F G / / 11 1001 H I J K L M N O / / 12 1010 P Q R S T U V W / / 13 1011 X Y Z [ \ ] ^ _ / / 14 1100 ` a b c d e f g / / 15 1101 h i j k l m n o / / 16 1110 p q r s t u v w / / 17 1111 x y z { | } ~ DEL / /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 10 /MUST BE AT TOP OF PAGE TTYPCH, /ENTRY POINT TO TTY PRINT ROUTINE 000400 0000 TTYGCH, 0 /ENTRY POINT TO TTY GET CHAR ROUTINE 000401 7450 SNA 000402 5302 JMP TGCH /ZERO AC-MEANT CALL TO TTYGCH 000403 0336 TTYUPA, AND TT177 /REDUCE TO 7 BIT (ECHO:L=1) 000404 1377 TAD (-33 000405 7450 SNA /IS IT ESC? IFNZRO ESC < 000406 1337 TAD TT11> /YES CONVERT TO $ IFZERO ESC < NOP> /*ESC 000407 7001 IAC /TEST CTRL Z 000410 7430 SZL /ECHO NOW L=0:DON'T MAKE EOF RETURN 000411 7440 SZA /IF 0:EOF; RETURN ON EOF,NO ECHO 000412 7410 SKP 000413 5600 JMP I TTYPCH /CTRL Z RETURN 000414 1345 TAD TT32 000415 3275 DCA TCHAR /THIS IS OUR CHAR 000416 2200 ISZ TTYPCH /SET TO NORMAL RETURN IFNZRO PAUS < 000417 1343 TAD PAUSN 000420 3264 DCA TTYTLS> /SET PAUSE DELAY IFZERO PAUS < SNL /IF ECHO DON'T KSF JMP ECHO> 000421 1337 TAD TT11 000422 7140 TTY140, CMA CLL /=-12 000423 1275 TTC, TAD TCHAR /GET CHAR BACK FOR PAGE TEST 000424 7650 SNA CLA /LOOK FOR LF 000425 2301 ISZ LINCNT /GOT LF. AT END OF PAGE? 000426 1301 TAD LINCNT /NOT AT END OR NO LF: AC=C(LINCNT) 000427 6031 PAUSL, KSF /3-WAY BRANCH IFNZRO PAUS < 000430 5327 JMP WAIT> /WAIT IF AC=0. IFZERO PAUS < JMP NOPAUS> /*NO PAUSE 000431 4307 JMS TTYTST /GET KEYBOARD CHAR AND CLA 000432 1223 TAD TTC /GET 'TAD TCHAR' 000433 3250 DCA ECHO /RESTORE *KLUDGE 000434 1264 TAD TTYTLS /GET INPUT CHAR 000435 1376 TAD (-17 000436 7450 SNA /^O? 000437 3250 DCA ECHO /YES, SET *KLUDGE FOR EXIT 000440 1351 TAD TTM4 /NO (17-23=-4) 000441 7640 M140, SZA CLA /^S? 000442 5245 JMP NOPAUS /NO, IGNORE CHAR 000443 6031 KSF IFNZRO PAG < 000444 5243 JMP .-1> /WAIT FOR SOME CHAR IFZERO PAG < NOP> /*NO PAUSE 000445 7450 NOPAUS, SNA /IF C(LINCNT)=0 /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 10-1 000446 1300 TAD PAGSIZ /RESET FOR NEXT PAGEFUL 000447 3301 DCA LINCNT 000450 1275 ECHO, TAD TCHAR /*K* OR 0 TO RETURN ON ^O 000451 7450 SNA 000452 5600 JMP I TTYPCH /IGNORE NULLS /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 11 000453 1376 TAD (-17 /AT CR+2=SO+1 000454 7100 TTY100, CLL 000455 1344 TAD TT7 000456 7420 SNL 000457 7344 CLL STA RAL /-2 WILL BECOME +2 FOR 'TNORM' 000460 7040 CMA /CONTROL -, NORMAL +1 000461 7104 CLL RAL /CONTROL -2*, NORMAL +2 000462 1341 TAD TTJUMP /'JMP TTSET' 000463 3264 DCA TTYTLS /AND FALL INTO JUMP 000464 0000 TTYTLS, 0 000465 6046 TLS 000466 7600 TT7600, 7600 /CLEAR AC 000467 6041 TSF 000470 5267 JMP .-1 000471 2277 ISZ TABCTR /END OF LINE? 000472 5664 JMP I TTYTLS /NO: NORMAL RETURN 000473 2200 ISZ TTYPCH /YES: EOL RETURN 000474 5664 JMP I TTYTLS 000475 0000 TCHAR, 0 000476 7657 LINSIZ, -WIDTH-1 /-1 BECAUSE CR WILL INC ONCE 000477 7660 TABCTR, -WIDTH 000500 7750 PAGSIZ, -HEIGHT 000501 7750 LINCNT, -HEIGHT 000502 6031 TGCH, KSF /NON-ZERO MEANS TTYGCH WAS CALLED 000503 5302 JMP .-1 /WAIT FOR CHAR TO BE TYPED 000504 4307 JMS TTYTST /GET CHAR AND CLA 000505 1264 TAD TTYTLS 000506 5600 JMP I TTYGCH /TAKE ONLY RETURN 000507 0000 TTYTST, 0 /'KRB' WILL CLEAR AC 000510 6036 KRB /FLAG IS UP 000511 0336 AND TT177 000512 3264 DCA TTYTLS /KEEP INPUT 000513 7346 CLL STA RTL /CTRL C? 000514 1264 TAD TTYTLS 000515 7640 SZA CLA 000516 5707 JMP I TTYTST /NO 000517 6203 CIF CDF 0 /BRANCH TO OS/8 MONITOR AT 07600 000520 5666 JMP I TT7600 /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 12 000521 1203 TUPA, TAD TTYUPA /ECHO 201-237 AS ^X (EXCEPT 210-216) 000522 4264 JMS TTYTLS 000523 1254 TCONV, TAD TTY100 /ADD X100 TO ^K TO GET K 000524 1275 PRIN, TAD TCHAR 000525 4264 JMS TTYTLS 000526 5600 TKILL, JMP I TTYPCH /*K* OR ZEROED BY FF IFZERO PAUS < /IF FF FALL INTO HERE FROM PRINT TAD TTJRT /RESTORE 'JMP I TTYPCH' DCA TKILL ISZ TCHAR /MAKE 'CR' OUT OF 'FF' JMS TTYTLS /PRINT NULLS ISZ LINCNT /TILL PAGE HAS HAD TIME JMP .-2 /TO POSITION JMP NOPAUS> /RESET LINE AND CR RESET COLUMN IFNZRO PAUS < 000527 7440 WAIT, SZA /IF AC=0, WAIT 000530 5245 JMP NOPAUS /C(LINCNT) IN AC 000531 2301 ISZ LINCNT 000532 5331 JMP .-1 /WAIT 18MS 000533 2264 ISZ TTYTLS /OUTER LOOP 000534 5227 JMP PAUSL /CHECK FLAG 000535 5245 JMP NOPAUS> /RESET LINCNT TO PAGE SIZE /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 13 000536 0177 TT177, 177 /'SO' ENTRY POINT 000537 0011 TT11, 11 /FALL THRU TO 'CR' 000540 1276 CR, TAD LINSIZ /CR AND SO RESET COLUMN COUNTER 000541 5354 TTJUMP, JMP TTSET IFNZRO PAUS < /IGNORE 'FF' ON SCOPE 000542 7410 FF, SKP 000543 7700 PAUSN, -PAUS> IFZERO PAUS < /FORCE 'FF' DELAY ON LA36 FF, DCA TKILL /FALL OUT OF PRINT AFTER FF PAUSN, JMP TTSET> /PAGE MAY BE LONGER THAN LINE 000544 0007 TT7, 7 /'VT' ENTRY POINT 000545 0032 TT32, 32 /VT FALL ON LF 000546 7240 LF, STA /LF NO MOVE OF 'TABCTR' 000547 5353 JMP BS+1 000550 5367 TAB, JMP TTYTAB 000551 7774 TTM4, -4 000552 7344 BS, CLL STA RAL /-2 000553 1277 TAD TABCTR 000554 3277 TTSET, DCA TABCTR 000555 5324 JMP PRIN 000556 1275 TNORM, TAD TCHAR /NORMAL ENTRY: GET BACK CHAR 000557 0222 AND TTY140 /HIGH ORDER BITS IRRELEVANT 000560 7450 SNA IFNZRO CTRL < 000561 5321 JMP TUPA> /A CONTROL CHARACTER IFZERO CTRL < JMP LF> /*NO ARROW (NO TABCTR MOVE) 000562 1241 TAD M140 /BUT IS IT LC? IFNZRO CNVLC < SZA CLA> IFZERO CNVLC < 000563 7600 7600> /*LC 000564 5324 JMP PRIN /NO PRINT UC 000565 1241 TAD M140 /YES, CONVERT TO UC 000566 5323 JMP TCONV /-140+100=-40 /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 14 IFZERO SIMTAB < 000567 1344 TTYTAB, TAD TT7 000570 7040 CMA /MAKES 7770 MASK 000571 0277 AND TABCTR /GO BACK TO THIS TAB STOP 000572 1344 TAD TT7 /ADD 7 AND... 000573 3277 DCA TABCTR 000574 5324 JMP PRIN> /1 FROM TAB TO NEXT TAB STOP IFNZRO SIMTAB < TTYTAB, TAD M140 /USE AS SPACE JMS TTYTLS /ALWAYS ONE MOVE TAD TABCTR AND TT7 SZA CLA /ARE WE AT NEXT TAB STOP? JMP TTYTAB> /NO, ANOTHER SPACE PLEASE! 000575 5600 TTJRT, JMP I TTYPCH /YES, GET OUT 000576 7761 000577 7745 $$$ /SUPER TTY HANDLER VERSION V50 PAL8-V50X 31-MAY-87 PAGE 15 BS 0552 TTYGET 0275 BUFSIZ 0210 TTYKLG 0265 BUFSTR 0211 TTYLP 0242 CIFCDF 0215 TTYPCH 0400 CNVLC 0000 TTYRTN 0271 CR 0540 TTYTAB 0567 CRLF 0345 TTYTLS 0464 CTRL 0001 TTYTST 0507 CTRLU 0274 TTYUPA 0403 DCAWC 0301 TTYVER 0030 ECHO 0450 TTYWC 0214 ESC 0001 TTYX 0267 FF 0542 TTYXIT 0272 HEIGHT 0030 TTY10 0335 LF 0546 TTY100 0454 LINCNT 0501 TTY140 0422 LINSIZ 0476 TTY200 0221 L3700 0200 TTY212 0230 M140 0441 TTY215 0225 M232 0353 TTY240 0261 NOPAUS 0445 TTY5 0350 PAG 0001 TTY7 0333 PAGSIZ 0500 TTY70 0212 PAUS 0100 TT11 0537 PAUSL 0427 TT177 0536 PAUSN 0543 TT32 0545 PLINK 0216 TT7 0544 PRIN 0524 TT7400 0256 PUNCH 0201 TT7600 0466 ROTL 0244 TUPA 0521 RUB 0001 VT78 0001 RUBOUT 0355 WAIT 0527 SHIFT 0240 WIDTH 0120 SIMTAB 0000 ZERO 0306 TAB 0550 TABCTR 0477 TCHAR 0475 TCONV 0523 TELP 0263 TGCH 0502 TKILL 0526 TMP 0345 TNORM 0556 TSTEND 0302 TTC 0423 TTCDBF 0240 TTJRT 0575 TTJUMP 0541 TTM4 0551 TTSET 0554 TTY 0376 TTYCA 0213 TTYCDF 0207 TTYEOF 0240 TTYGCH 0400 ERRORS DETECTED: 0 LINKS GENERATED: 0