Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / tty.mima
1
2 <PACKAGE "TTY">
3
4 <ENTRY TERM-MOVE? NORMAL-OUT IMAGE-OUT SET-IMAGE-MODE SET-ECHO-MODE CLEAR-SCREEN CLEAR-EOL CLEAR-EOS KILL-CHAR ERASE-CHAR HOME-CURSOR BOTTOM-CURSOR HOR-POS-CURSOR VER-POS-CURSOR MOVE-CURSOR BACK-CURSOR DOWN-CURSOR UP-CURSOR FORWARD-CURSOR SAVE-CURSOR RESTORE-CURSOR INSERT-LINE INSERT-CHAR GET-TYPE PAD TYPE-AHEAD? TYPE-CHAR SET-CURSOR-POSITION>
5
6 <USE "TWAY">
7
8 "DONE"
9
10 <NEW-CHANNEL-TYPE TTY (TWAY DEFAULT) GET-TYPE TTY-GET-TYPE QUERY TTY-QUERY OPEN TTY-OPEN TYPE-AHEAD? TTY-TYPE-AHEAD? READ-BYTE-IMMEDIATE TTY-READ-IMMEDIATE READ-BYTE TTY-READ-BYTE READ-BUFFER TTY-READ-BUFFER FILL-READ-BUFFER TTY-FILL-READ BUFLEN TTY-BUFLEN GET-READ-BUFFER TTY-GET-READ PRINT-DATA TTY-PRINT-DATA TERM-MOVE? TTY-TERM-MOVE? NORMAL-OUT TTY-NORMAL-OUT IMAGE-OUT TTY-IMAGE-OUT SET-IMAGE-MODE TTY-SET-IMAGE SET-ECHO-MODE TTY-SET-ECHO RESET TTY-RESET PAGE-WIDTH TTY-PARM PAGE-HEIGHT TTY-PARM PAGE-X TTY-PARM PAGE-Y TTY-PARM SET-CURSOR-POSITION TTY-SET-CURS CLEAR-SCREEN CLEAR-SCREEN CLEAR-EOL CLEAR-EOL CLEAR-EOS CLEAR-EOS FRESH-LINE FRESH-LINE KILL-CHAR KILL-CHAR ERASE-CHAR ERASE-CHAR HOME-CURSOR HOME-CURSOR BOTTOM-CURSOR BOTTOM-CURSOR HOR-POS-CURSOR HOR-POS-CURSOR VER-POS-CURSOR VER-POS-CURSOR MOVE-CURSOR MOVE-CURSOR BACK-CURSOR BACK-CURSOR DOWN-CURSOR DOWN-CURSOR UP-CURSOR UP-CURSOR FORWARD-CURSOR FORWARD-CURSOR SAVE-CURSOR SAVE-CURSOR RESTORE-CURSOR RESTORE-CURSOR INSERT-LINE INSERT-LINE INSERT-CHAR INSERT-CHAR PAD TTY-PAD TYPE-CHAR TTY-TYPE-CHAR>
11
12 "This must be patterned according to the definition of TWAY-CHANNEL, so the
13 TWAY code will work when it's wanted."
14
15 <SETG TT-RJFN %<OFFSET 1 TTY-CHANNEL FIX>>
16
17 <MANIFEST TT-RJFN>
18
19 <SETG TT-MODE %<OFFSET 2 TTY-CHANNEL FIX>>
20
21 <MANIFEST TT-MODE>
22
23 <SETG TT-BSZ %<OFFSET 3 TTY-CHANNEL FIX>>
24
25 <MANIFEST TT-BSZ>
26
27 <SETG TT-RBUF %<OFFSET 4 TTY-CHANNEL '<OR FALSE STRING>>>
28
29 <MANIFEST TT-RBUF>
30
31 <SETG TT-RBC %<OFFSET 5 TTY-CHANNEL FIX>>
32
33 <MANIFEST TT-RBC>
34
35 <SETG TT-WJFN %<OFFSET 6 TTY-CHANNEL FIX>>
36
37 <MANIFEST TT-WJFN>
38
39 <SETG TT-WBUF %<OFFSET 7 TTY-CHANNEL '<OR FALSE STRING>>>
40
41 <MANIFEST TT-WBUF>
42
43 <SETG TT-WBC %<OFFSET 8 TTY-CHANNEL FIX>>
44
45 <MANIFEST TT-WBC>
46
47 <SETG TT-RFSAV %<OFFSET 9 TTY-CHANNEL FIX>>
48
49 <MANIFEST TT-RFSAV>
50
51 <SETG TT-RFCUR %<OFFSET 10 TTY-CHANNEL FIX>>
52
53 <MANIFEST TT-RFCUR>
54
55 <SETG TT-QUEUE %<OFFSET 11 TTY-CHANNEL '<OR STRING CHARACTER FALSE>>>
56
57 <MANIFEST TT-QUEUE>
58
59 <SETG TT-QCT %<OFFSET 12 TTY-CHANNEL FIX>>
60
61 <MANIFEST TT-QCT>
62
63 <NEWTYPE TTY-CHANNEL VECTOR '<<PRIMTYPE VECTOR> FIX FIX FIX <OR FALSE STRING> FIX FIX <OR FALSE STRING> FIX FIX FIX <OR STRING CHARACTER FALSE> FIX>>
64
65 <SETG TYPE-NAMES ["35" "37" "TI" "IMLAC" "DM2500" "HP2645" "NVT" "SYSTEM" "TVT" "VT05" "VT50" "LA30" "LINEPROCESSOR?" "LA36" "VT52" "GLASS" "FOX" "VT100V" "T1061" "H19" "C100" "VT100" "LA38" "LA120" "PTV" "SUPDUP" "HP2640" "AAA" "BBN"]>
66
67 #WORD *11256427112*
68 <GFCN \1aTTY-GET-TYPE ("VALUE" STRING CHANNEL ANY) CHANNEL4 OPER5>
69                     <TEMP DATA6 VEC7:VECTOR TEMP11>
70                     <INTGO>
71                     <NTHUV CHANNEL4 5 = DATA6 (TYPE TTY-CHANNEL)>
72                     <DEAD CHANNEL4>
73                     <GVAL 'TYPE-NAMES = VEC7>
74                     <NTHUV DATA6 1 = TEMP11 (TYPE FIX)>
75                     <DEAD DATA6>
76                     <SYSOP 'GTTYP TEMP11 (RETURN 2) = DATA6>
77                     <DEAD TEMP11>
78                     <LENUV VEC7 = TEMP11 (TYPE FIX)>
79                     <GRTR? DATA6 TEMP11 - PHRASE13 (TYPE FIX)>
80                     <DEAD TEMP11>
81                     <RETURN "UNKNOWN">
82 PHRASE13
83                     <NTHUV VEC7 DATA6 = TEMP11 (TYPE STRING)>
84                     <DEAD VEC7 DATA6>
85                     <RETURN TEMP11>
86                     <DEAD TEMP11>
87                     <END \1aTTY-GET-TYPE>
88 #WORD *34260306044*
89                     <GFCN \1aTTY-TYPE-AHEAD? ("VALUE" <OR FALSE FIX> CHANNEL ANY) CHANNEL4 OPER5>
90                     <TEMP DATA6 QC8:FIX>
91                     <INTGO>
92                     <NTHUV CHANNEL4 5 = DATA6 (TYPE TTY-CHANNEL)>
93                     <DEAD CHANNEL4>
94                     <NTHUV DATA6 12 = QC8 (TYPE FIX)>
95                     <NTHUV DATA6 1 = DATA6 (TYPE FIX)>
96                     <SYSOP 'SIBE DATA6 (RETURN 2) = DATA6>
97                     <TYPE? DATA6 <TYPE-CODE FALSE> + PHRASE10>
98                     <VEQUAL? DATA6 0 + PHRASE10 (TYPE FIX)>
99                     <ADD DATA6 QC8 = DATA6 (TYPE FIX)>
100                     <DEAD QC8>
101                     <RETURN DATA6>
102                     <DEAD DATA6>
103 PHRASE10
104                     <GRTR? QC8 0 + TAG16 (TYPE FIX)>
105                     <RETURN %<>>
106 TAG16
107                     <RETURN QC8>
108                     <DEAD QC8>
109                     <END \1aTTY-TYPE-AHEAD?>
110
111 #WORD *7573613245*
112 <FCN \1aTTY-READ-IMMEDIATE ("VALUE" <OR CHARACTER FALSE> CHANNEL ANY "OPTIONAL" <OR ATOM FALSE>) CHANNEL6 OPER7 NOWAIT?8>
113                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
114 OPT4
115                     <PUSH %<>>
116 OPT5
117                     <TEMP DATA9:TTY-CHANNEL (TEMP16 0) ECHO?11 IMAGE?12 TEMP3:LBIND TEMP25 TEMP39>
118                     <INTGO>
119                     <NTHUV CHANNEL6 5 = DATA9 (TYPE TTY-CHANNEL)>
120                     <NTHUV DATA9 10 = TEMP16 (TYPE FIX)>
121                     <AND TEMP16 #WORD *4000* = TEMP16>
122                     <VEQUAL? TEMP16 0 - TAG14 (TYPE FIX)>
123                     <DEAD TEMP16>
124                     <SET ECHO?11 %<> (TYPE FALSE)>
125                     <JUMP + TAG15>
126 TAG14
127                     <SET ECHO?11 'T (TYPE ATOM)>
128 TAG15
129                     <NTHUV DATA9 10 = TEMP16 (TYPE FIX)>
130                     <AND TEMP16 #WORD *300* = TEMP16>
131                     <VEQUAL? TEMP16 0 - TAG19 (TYPE FIX)>
132                     <DEAD TEMP16>
133                     <SET IMAGE?12 'T (TYPE ATOM)>
134                     <JUMP + TAG22>
135 TAG19
136                     <SET IMAGE?12 %<> (TYPE FALSE)>
137 TAG22
138                     <GETS 'BIND = TEMP3 (TYPE LBIND)>
139                     <LOCATION + TAG23 = TEMP16>
140                     <CFRAME = TEMP25 (TYPE FRAME)>
141                     <BBIND 'UNWIND TEMP16 'FIX TEMP25>
142                     <DEAD TEMP16 TEMP25>
143                     <LOOP>
144 AGAIN30
145                     <INTGO>
146                     <FRAME '\1aDUMP-WRITE-BUFFER>
147                     <PUSH DATA9>
148                     <CALL '\1aDUMP-WRITE-BUFFER 1>
149                     <FRAME '\1aGET-QUEUE-CHAR>
150                     <PUSH DATA9>
151                     <CALL '\1aGET-QUEUE-CHAR 1 = TEMP16>
152                     <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE33>
153                     <VEQUAL? IMAGE?12 0 - PHRASE65>
154                     <DEAD IMAGE?12>
155                     <VEQUAL? ECHO?11 0 + PHRASE65>
156                     <DEAD ECHO?11>
157                     <NTHUV DATA9 6 = TEMP25 (TYPE FIX)>
158                     <DEAD DATA9>
159                     <CHTYPE TEMP16 <TYPE-CODE FIX> = TEMP39>
160                     <SYSOP 'BOUT TEMP25 TEMP39>
161                     <DEAD TEMP25 TEMP39>
162                     <JUMP + PHRASE65>
163 PHRASE33
164                     <TYPE? NOWAIT?8 <TYPE-CODE FALSE> + TAG43>
165                     <NTHUV DATA9 1 = TEMP39 (TYPE FIX)>
166                     <SYSOP 'SIBE TEMP39 (RETURN 2) = TEMP25>
167                     <DEAD TEMP39>
168                     <SET TEMP16 TEMP25>
169                     <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE65>
170                     <VEQUAL? TEMP25 0 - TAG43 (TYPE FIX)>
171                     <DEAD TEMP25>
172                     <SET TEMP16 %<> (TYPE FALSE)>
173                     <JUMP + PHRASE65>
174 TAG43
175                     <VEQUAL? IMAGE?12 0 - PHRASE47>
176                     <FRAME '\1aTTY-SET-IMAGE>
177                     <PUSH CHANNEL6>
178                     <PUSH OPER7>
179                     <PUSH 'T>
180                     <PUSH %<>>
181                     <CALL '\1aTTY-SET-IMAGE 4>
182 PHRASE47
183                     <SETS 'RUNINT -1>
184                     <NTHUV DATA9 1 = TEMP25 (TYPE FIX)>
185                     <SYSOP 'BIN TEMP25 (RETURN 2) = TEMP16>
186                     <DEAD TEMP25>
187                     <SETS 'RUNINT 0>
188                     <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE50>
189                     <CHTYPE TEMP16 <TYPE-CODE CHARACTER> = TEMP16>
190                     <JUMP + PHRASE55>
191 PHRASE50
192                     <NTHL TEMP16 1 = TEMP25>
193                     <DEAD TEMP16>
194                     <EQUAL? TEMP25 196752 - PHRASE54>
195                     <DEAD TEMP25>
196                     <SET TEMP16 'T (TYPE ATOM)>
197                     <JUMP + PHRASE55>
198 PHRASE54
199                     <SET TEMP16 %<> (TYPE FALSE)>
200 PHRASE55
201                     <VEQUAL? IMAGE?12 0 - PHRASE60>
202                     <FRAME '\1aTTY-SET-IMAGE>
203                     <PUSH CHANNEL6>
204                     <PUSH OPER7>
205                     <PUSH %<>>
206                     <CALL '\1aTTY-SET-IMAGE 3>
207                     <VEQUAL? ECHO?11 0 + PHRASE60>
208                     <TYPE? TEMP16 <TYPE-CODE CHARACTER> - PHRASE60>
209                     <NTHUV DATA9 6 = TEMP25 (TYPE FIX)>
210                     <CHTYPE TEMP16 <TYPE-CODE FIX> = TEMP39>
211                     <SYSOP 'BOUT TEMP25 TEMP39>
212                     <DEAD TEMP25 TEMP39>
213 PHRASE60
214                     <TYPE? TEMP16 <TYPE-CODE ATOM> + AGAIN30>
215                     <TYPE? TEMP16 <TYPE-CODE FIX> - PHRASE65>
216                     <SET TEMP16 %<> (TYPE FALSE)>
217 PHRASE65
218                     <NTHR 'UNWIND 2 = TEMP39 (RECORD-TYPE ATOM) (TYPE LBIND)>
219                     <PUTR TEMP39 1 0 (RECORD-TYPE LBIND)>
220                     <DEAD TEMP39>
221                     <JUMP + TAG24>
222 TAG23
223                     <VEQUAL? IMAGE?12 0 - UNWCONT>
224                     <FRAME '\1aTTY-SET-IMAGE>
225                     <PUSH CHANNEL6>
226                     <PUSH OPER7>
227                     <PUSH %<>>
228                     <CALL '\1aTTY-SET-IMAGE 3>
229                     <JUMP + UNWCONT>
230 TAG24
231                     <UNBIND TEMP3>
232                     <DEAD TEMP3>
233                     <ADJ -9>
234                     <RETURN TEMP16>
235                     <DEAD TEMP16>
236                     <END \1aTTY-READ-IMMEDIATE>
237 #WORD *31471745014*
238 <GFCN \1aTTY-READ-BYTE ("VALUE" ANY CHANNEL ANY) CHANNEL4 OPER5>
239                     <TEMP DATA6:TTY-CHANNEL TEMP10>
240                     <INTGO>
241                     <NTHUV CHANNEL4 5 = DATA6 (TYPE TTY-CHANNEL)>
242                     <NTHUV DATA6 4 = TEMP10>
243                     <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE8>
244                     <DEAD TEMP10>
245                     <NTHUV DATA6 5 = TEMP10 (TYPE FIX)>
246                     <DEAD DATA6>
247                     <VEQUAL? TEMP10 0 - PHRASE8 (TYPE FIX)>
248                     <DEAD TEMP10>
249                     <RETURN %<>>
250 PHRASE8
251                     <FRAME '\1aTWAY-READ-BYTE>
252                     <PUSH CHANNEL4>
253                     <DEAD CHANNEL4>
254                     <PUSH OPER5>
255                     <DEAD OPER5>
256                     <CALL '\1aTWAY-READ-BYTE 2 = TEMP10>
257                     <RETURN TEMP10>
258                     <DEAD TEMP10>
259                     <END \1aTTY-READ-BYTE>
260 #WORD *715555023*
261 <GFCN \1aTTY-READ-BUFFER ("VALUE" ANY CHANNEL ANY STRING "OPTIONAL" FIX FIX) TTY7 OPER8 BUF9 LEN10 CONT11>
262                     <OPT-DISPATCH 3 %<> OPT4 OPT5 OPT6>
263 OPT4
264                     <PUSH #T$UNBOUND 0>
265 OPT5
266                     <PUSH 0>
267 OPT6
268                     <TEMP DATA12 TEMP17>
269                     <INTGO>
270                     <TYPE? LEN10 <TYPE-CODE UNBOUND> - TAG13>
271                     <LENUS BUF9 = LEN10 (TYPE FIX)>
272 TAG13
273                     <NTHUV TTY7 5 = DATA12 (TYPE TTY-CHANNEL)>
274                     <NTHUV DATA12 4 = TEMP17>
275                     <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE16>
276                     <DEAD TEMP17>
277                     <FRAME '\1aTWAY-READ-BUFFER>
278                     <PUSH TTY7>
279                     <DEAD TTY7>
280                     <PUSH OPER8>
281                     <DEAD OPER8>
282                     <PUSH BUF9>
283                     <DEAD BUF9>
284                     <PUSH LEN10>
285                     <DEAD LEN10>
286                     <PUSH CONT11>
287                     <DEAD CONT11>
288                     <CALL '\1aTWAY-READ-BUFFER 5 = TEMP17>
289                     <RETURN TEMP17>
290                     <DEAD TEMP17>
291 PHRASE16
292                     <NTHUV DATA12 1 = DATA12 (TYPE FIX)>
293                     <LENUS BUF9 = TEMP17 (TYPE FIX)>
294                     <GRTR? TEMP17 LEN10 - TAG22>
295                     <SET TEMP17 LEN10 (TYPE FIX)>
296                     <DEAD LEN10>
297 TAG22
298                     <READ DATA12 BUF9 TEMP17 CONT11 = TEMP17>
299                     <DEAD DATA12 BUF9 CONT11>
300                     <RETURN TEMP17>
301                     <DEAD TEMP17>
302                     <END \1aTTY-READ-BUFFER>
303 #WORD *27036321341*
304 <GFCN \1aTTY-GET-READ ("VALUE" <OR FALSE STRING> CHANNEL ANY "OPTIONAL" STRING) TTY6 OPER7 NEW8>
305                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
306 OPT4
307                     <PUSH #T$UNBOUND 0>
308 OPT5
309                     <TEMP DATA9>
310                     <INTGO>
311                     <NTHUV TTY6 5 = DATA9 (TYPE TTY-CHANNEL)>
312                     <DEAD TTY6>
313                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE11>
314                     <PUTUV DATA9 4 NEW8>
315                     <DEAD DATA9>
316                     <RETURN NEW8>
317                     <DEAD NEW8>
318 PHRASE11
319                     <NTHUV DATA9 4 = DATA9>
320                     <RETURN DATA9>
321                     <DEAD DATA9>
322                     <END \1aTTY-GET-READ>
323 #WORD *6355667155*
324 <GFCN \1aTTY-BUFLEN ("VALUE" FIX CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 NEW8>
325                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
326 OPT4
327                     <PUSH #T$UNBOUND 0>
328 OPT5
329                     <TEMP DATA9>
330                     <INTGO>
331                     <NTHUV TTY6 5 = DATA9 (TYPE TTY-CHANNEL)>
332                     <DEAD TTY6>
333                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE11>
334                     <PUTUV DATA9 5 NEW8 (TYPE FIX)>
335                     <DEAD DATA9>
336                     <RETURN NEW8>
337                     <DEAD NEW8>
338 PHRASE11
339                     <NTHUV DATA9 5 = DATA9 (TYPE FIX)>
340                     <RETURN DATA9>
341                     <DEAD DATA9>
342                     <END \1aTTY-BUFLEN>
343 #WORD *1615720501*
344 <GFCN \1aTTY-FILL-READ ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX <OR STRING FALSE> <OR STRING FALSE> <OR ATOM FALSE>) TTY9 OPER10 CONT11 RBUF12 END13 NOMORE14>
345                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
346 OPT4
347                     <PUSH 0>
348 OPT5
349                     <PUSH %<>>
350 OPT6
351                     <PUSH %<>>
352 OPT7
353                     <PUSH %<>>
354 OPT8
355                     <TEMP DATA15:TTY-CHANNEL OB16 BUF17 TEMP25 TS19 PROMPT21 TEMP68 OLD73:STRING NEW74:STRING TEMP96>
356                     <INTGO>
357                     <NTHUV TTY9 5 = DATA15 (TYPE TTY-CHANNEL)>
358                     <NTHUV DATA15 4 = OB16 (TYPE STRING)>
359                     <TOPU OB16 = BUF17>
360                     <GEN-ASSIGNED? 'READ-PROMPT + TAG27>
361                     <SET TEMP25 %<> (TYPE FALSE)>
362                     <JUMP + PHRASE24>
363 TAG27
364                     <GEN-LVAL 'READ-PROMPT = TS19>
365                     <TYPE? TS19 <TYPE-CODE STRING> + TAG32>
366                     <SET TEMP25 %<> (TYPE FALSE)>
367                     <JUMP + PHRASE24>
368 TAG32
369                     <SET TEMP25 TS19>
370                     <DEAD TS19>
371 PHRASE24
372                     <SET TS19 TEMP25>
373                     <DEAD TEMP25>
374                     <SET TEMP25 TS19>
375                     <TYPE? TEMP25 <TYPE-CODE FALSE> - BOOL35>
376                     <SET TEMP25 "" (TYPE STRING)>
377 BOOL35
378                     <PUSH TEMP25>
379                     <DEAD TEMP25>
380                     <PUSH !\\0>
381                     <SBLOCK <TYPE-CODE STRING> 2 = PROMPT21 (TYPE STRING)>
382                     <LENUS PROMPT21 = TEMP25>
383                     <IFSYS "TOPS20">
384                     <ADD TEMP25 4 = TEMP25>
385                     <DIV TEMP25 5 = TEMP25>
386                     <ENDIF "TOPS20">
387                     <IFSYS "VAX">
388                     <ADD TEMP25 3 = TEMP25>
389                     <DIV TEMP25 4 = TEMP25>
390                     <ENDIF "VAX">
391                     <SUB 0 TEMP25 = TEMP25>
392                     <TYPE? TS19 <TYPE-CODE FALSE> - PHRASE37>
393                     <DEAD TS19>
394                     <SET PROMPT21 %<> (TYPE FALSE)>
395 PHRASE37
396                     <TYPE? END13 <TYPE-CODE FALSE> - PHRASE39>
397                     <GEN-ASSIGNED? 'READ-BREAKS + TAG44>
398                     <SET TS19 %<> (TYPE FALSE)>
399                     <JUMP + TAG49>
400 TAG44
401                     <GEN-LVAL 'READ-BREAKS = TS19>
402                     <TYPE? TS19 <TYPE-CODE STRING> + TAG49>
403                     <SET TS19 %<> (TYPE FALSE)>
404 TAG49
405                     <SET END13 TS19>
406                     <DEAD TS19>
407 PHRASE39
408                     <TYPE? RBUF12 <TYPE-CODE FALSE> + PHRASE52>
409                     <SET OB16 RBUF12>
410                     <SET BUF17 OB16>
411                     <DEAD OB16>
412                     <JUMP + COND51>
413 PHRASE52
414                     <NTHUV DATA15 5 = TS19 (TYPE FIX)>
415                     <VEQUAL? TS19 0 - PHRASE53 (TYPE FIX)>
416                     <DEAD TS19>
417                     <VEQUAL? CONT11 0 + COND51 (TYPE FIX)>
418                     <BACKU OB16 CONT11 = OB16>
419                     <VEQUAL? OB16 BUF17 + COND51>
420                     <SET TS19 OB16 (TYPE STRING)>
421                     <DEAD OB16>
422                     <SET TEMP68 BUF17 (TYPE STRING)>
423                     <LOOP>
424 MAP63
425                     <INTGO>
426                     <EMPUS? TS19 + COND51>
427                     <EMPUS? TEMP68 + COND51>
428                     <SET OLD73 TS19>
429                     <SET NEW74 TEMP68>
430                     <NTHUS OLD73 1 = OB16 (TYPE CHARACTER)>
431                     <DEAD OLD73>
432                     <PUTUS NEW74 1 OB16>
433                     <DEAD NEW74 OB16>
434                     <RESTUS TS19 1 = TS19 (TYPE STRING)>
435                     <RESTUS TEMP68 1 = TEMP68 (TYPE STRING)>
436                     <JUMP + MAP63>
437 PHRASE53
438                     <SET CONT11 0 (TYPE FIX)>
439 COND51
440                     <VEQUAL? CONT11 0 - PHRASE77 (TYPE FIX)>
441                     <TYPE? PROMPT21 <TYPE-CODE FALSE> + PHRASE77>
442                     <FRAME '\1aTWAY-WRITE-BUFFER>
443                     <PUSH TTY9>
444                     <PUSH OPER10>
445                     <PUSH PROMPT21>
446                     <LENUS PROMPT21 = TEMP68 (TYPE FIX)>
447                     <SUB TEMP68 1 = STACK (TYPE FIX)>
448                     <DEAD TEMP68>
449                     <CALL '\1aTWAY-WRITE-BUFFER 4>
450 PHRASE77
451                     <RESTUS BUF17 CONT11 = TEMP68 (TYPE STRING)>
452                     <LOOP>
453 AGAIN85
454                     <INTGO>
455                     <FRAME '\1aGET-QUEUE-CHAR>
456                     <PUSH DATA15>
457                     <CALL '\1aGET-QUEUE-CHAR 1 = OB16>
458                     <TYPE? OB16 <TYPE-CODE FALSE> + EXIT82>
459                     <PUTUS TEMP68 1 OB16>
460                     <RESTUS TEMP68 1 = TEMP68 (TYPE STRING)>
461                     <ADD CONT11 1 = CONT11 (TYPE FIX)>
462                     <FRAME '\1aTWAY-WRITE-BYTE>
463                     <PUSH TTY9>
464                     <PUSH OPER10>
465                     <PUSH OB16>
466                     <DEAD OB16>
467                     <CALL '\1aTWAY-WRITE-BYTE 3>
468                     <JUMP + AGAIN85>
469 EXIT82
470                     <FRAME '\1aDUMP-WRITE-BUFFER>
471                     <PUSH DATA15>
472                     <CALL '\1aDUMP-WRITE-BUFFER 1>
473                     <LOOP>
474 AGAIN93
475                     <INTGO>
476                     <NTHUV DATA15 1 = TEMP68 (TYPE FIX)>
477                     <LENUS BUF17 = TS19 (TYPE FIX)>
478                     <SET OB16 END13>
479                     <TYPE? OB16 <TYPE-CODE FALSE> - BOOL94>
480                     <SET OB16 0 (TYPE FIX)>
481 BOOL94
482                     <SET TEMP96 PROMPT21>
483                     <TYPE? TEMP96 <TYPE-CODE FALSE> - BOOL95>
484                     <SET TEMP96 0 (TYPE FIX)>
485 BOOL95
486                     <READ TEMP68 BUF17 TS19 CONT11 OB16 TEMP96 = OB16>
487                     <DEAD TEMP68 TS19 CONT11 TEMP96>
488                     <TYPE? NOMORE14 <TYPE-CODE FALSE> - PHRASE98>
489                     <LENUS BUF17 = TEMP68 (TYPE FIX)>
490                     <EQUAL? TEMP68 OB16 - PHRASE98>
491                     <DEAD TEMP68>
492                     <LENUS BUF17 = TEMP68 (TYPE FIX)>
493                     <ADD TEMP68 320 = TEMP68 (TYPE FIX)>
494                     <UUBLOCK <TYPE-CODE STRING> TEMP68 = TEMP96 (TYPE STRING)>
495                     <DEAD TEMP68>
496                     <PUTUV DATA15 4 TEMP96>
497                     <DEAD TEMP96>
498                     <SET TEMP96 BUF17 (TYPE STRING)>
499                     <DEAD BUF17>
500                     <NTHUV DATA15 4 = TEMP68 (TYPE STRING)>
501                     <LOOP>
502 MAP101
503                     <INTGO>
504                     <EMPUS? TEMP96 + MAPAP104>
505                     <EMPUS? TEMP68 + MAPAP104>
506                     <SET OLD73 TEMP96>
507                     <SET NEW74 TEMP68>
508                     <NTHUS OLD73 1 = BUF17 (TYPE CHARACTER)>
509                     <DEAD OLD73>
510                     <PUTUS NEW74 1 BUF17>
511                     <DEAD NEW74 BUF17>
512                     <RESTUS TEMP96 1 = TEMP96 (TYPE STRING)>
513                     <RESTUS TEMP68 1 = TEMP68 (TYPE STRING)>
514                     <JUMP + MAP101>
515 MAPAP104
516                     <NTHUV DATA15 4 = BUF17 (TYPE STRING)>
517                     <SET CONT11 OB16>
518                     <DEAD OB16>
519                     <JUMP + AGAIN93>
520 PHRASE98
521                     <TYPE? RBUF12 <TYPE-CODE FALSE> - PHRASE113>
522                     <DEAD RBUF12>
523                     <PUTUV DATA15 4 BUF17>
524                     <DEAD BUF17>
525                     <PUTUV DATA15 5 OB16>
526                     <DEAD DATA15>
527 PHRASE113
528                     <SUB TEMP25 2 = TEMP25 (TYPE FIX)>
529                     <ADJ TEMP25>
530                     <DEAD TEMP25>
531                     <RETURN OB16>
532                     <DEAD OB16>
533                     <END \1aTTY-FILL-READ>
534 #WORD *16247637164*
535 <GFCN \1aTTY-TERM-MOVE? ("VALUE" <OR ATOM !<FALSE>> CHANNEL ANY) TTY4 OPER5>
536                     <TEMP DATA6>
537                     <INTGO>
538                     <NTHUV TTY4 5 = DATA6 (TYPE TTY-CHANNEL)>
539                     <DEAD TTY4>
540                     <NTHUV DATA6 6 = DATA6 (TYPE FIX)>
541                     <SYSOP 'RTCHR DATA6 (RETURN 2) = DATA6>
542                     <AND DATA6 #WORD *400000000000* = DATA6>
543                     <VEQUAL? DATA6 0 - TAG7 (TYPE FIX)>
544                     <DEAD DATA6>
545                     <RETURN %<>>
546 TAG7
547                     <RETURN 'T>
548                     <END \1aTTY-TERM-MOVE?>
549 #WORD *10713635054*
550 <GFCN \1aTTY-NORMAL-OUT ("VALUE" <OR CHARACTER FALSE FIX> CHANNEL ANY <OR BYTES STRING CHARACTER> "OPTIONAL" ANY) TTY6 OPER7 CHRS8 LENGTH9>
551                     <OPT-DISPATCH 3 %<> OPT4 OPT5>
552 OPT4
553                     <PUSH %<>>
554 OPT5
555                     <TEMP DATA10>
556                     <INTGO>
557                     <FRAME '\1aTTY-SET-IMAGE>
558                     <PUSH TTY6>
559                     <PUSH 'SET-IMAGE-MODE>
560                     <PUSH %<>>
561                     <CALL '\1aTTY-SET-IMAGE 3>
562                     <TYPE? CHRS8 <TYPE-CODE STRING> - PHRASE13>
563                     <FRAME '\1aTWAY-WRITE-BUFFER>
564                     <PUSH TTY6>
565                     <DEAD TTY6>
566                     <PUSH OPER7>
567                     <DEAD OPER7>
568                     <PUSH CHRS8>
569                     <TYPE? LENGTH9 <TYPE-CODE FALSE> + PHRASE16>
570                     <SET DATA10 LENGTH9>
571                     <DEAD LENGTH9>
572                     <JUMP + COND15>
573 PHRASE16
574                     <LENUS CHRS8 = DATA10 (TYPE FIX)>
575                     <DEAD CHRS8>
576 COND15
577                     <PUSH DATA10>
578                     <DEAD DATA10>
579                     <CALL '\1aTWAY-WRITE-BUFFER 4 = DATA10>
580                     <RETURN DATA10>
581                     <DEAD DATA10>
582 PHRASE13
583                     <FRAME '\1aTWAY-WRITE-BYTE>
584                     <PUSH TTY6>
585                     <DEAD TTY6>
586                     <PUSH OPER7>
587                     <DEAD OPER7>
588                     <PUSH CHRS8>
589                     <DEAD CHRS8>
590                     <CALL '\1aTWAY-WRITE-BYTE 3 = DATA10>
591                     <RETURN DATA10>
592                     <DEAD DATA10>
593                     <END \1aTTY-NORMAL-OUT>
594 #WORD *4434136522*
595 <GFCN \1aTTY-IMAGE-OUT ("VALUE" FIX CHANNEL ANY <OR FIX CHARACTER STRING BYTES> "OPTIONAL" <OR FIX FALSE> "TUPLE" <TUPLE [REST <OR FIX BYTES STRING CHARACTER>]>) TTY6 OPER7 CHRS8 LENGTH9>
596                     <OPT-DISPATCH 3 4 OPT4 OPT5>
597 OPT4
598                     <PUSH %<>>
599 OPT5
600                     <MAKTUP MORE10 DATA11 TEMP24:FIX X26 = MORE10>
601                     <INTGO>
602                     <FRAME '\1aTTY-SET-IMAGE>
603                     <PUSH TTY6>
604                     <PUSH 'SET-IMAGE-MODE>
605                     <PUSH 'T>
606                     <CALL '\1aTTY-SET-IMAGE 3>
607                     <FRAME '\1aWRITE-STUFF>
608                     <PUSH TTY6>
609                     <PUSH OPER7>
610                     <PUSH CHRS8>
611                     <DEAD CHRS8>
612                     <PUSH LENGTH9>
613                     <DEAD LENGTH9>
614                     <CALL '\1aWRITE-STUFF 4 = DATA11>
615                     <SET TEMP24 0 (TYPE FIX)>
616                     <CHTYPE MORE10 <TYPE-CODE VECTOR> = MORE10>
617                     <LOOP>
618 MAP16
619                     <INTGO>
620                     <EMPUV? MORE10 + MAPAP19>
621                     <NTHUV MORE10 1 = X26>
622                     <FRAME '\1aWRITE-STUFF>
623                     <PUSH TTY6>
624                     <PUSH OPER7>
625                     <PUSH X26>
626                     <DEAD X26>
627                     <PUSH %<>>
628                     <CALL '\1aWRITE-STUFF 4 = X26>
629                     <ADD TEMP24 X26 = TEMP24>
630                     <DEAD X26>
631                     <RESTUV MORE10 1 = MORE10 (TYPE VECTOR)>
632                     <JUMP + MAP16>
633 MAPAP19
634                     <ADD DATA11 TEMP24 = DATA11 (TYPE FIX)>
635                     <DEAD TEMP24>
636                     <RETURN DATA11>
637                     <DEAD DATA11>
638                     <END \1aTTY-IMAGE-OUT>
639 <SETG BUFSTR <ISTRING 12>>
640
641 #WORD *20122054327*
642 <GFCN \1aWRITE-STUFF ("VALUE" <OR FALSE FIX> CHANNEL ANY <OR STRING FIX CHARACTER> <OR FIX FALSE>) TTY4 OPER5 CHRS6 LENGTH7>
643                     <TEMP BS8:STRING (NEG?9 %<>) TEMP20>
644                     <INTGO>
645                     <GVAL 'BUFSTR = BS8>
646                     <TYPE? CHRS6 <TYPE-CODE STRING> + TAG12>
647                     <TYPE? CHRS6 <TYPE-CODE BYTES> - PHRASE11>
648 TAG12
649                     <FRAME '\1aTWAY-WRITE-BUFFER>
650                     <PUSH TTY4>
651                     <DEAD TTY4>
652                     <PUSH OPER5>
653                     <DEAD OPER5>
654                     <PUSH CHRS6>
655                     <TYPE? LENGTH7 <TYPE-CODE FALSE> + PHRASE15>
656                     <SET NEG?9 LENGTH7>
657                     <DEAD LENGTH7>
658                     <JUMP + COND14>
659 PHRASE15
660                     <LENUS CHRS6 = NEG?9 (TYPE FIX)>
661                     <DEAD CHRS6>
662 COND14
663                     <PUSH NEG?9>
664                     <DEAD NEG?9>
665                     <CALL '\1aTWAY-WRITE-BUFFER 4 = NEG?9>
666                     <RETURN NEG?9>
667                     <DEAD NEG?9>
668 PHRASE11
669                     <TYPE? CHRS6 <TYPE-CODE CHARACTER> - PHRASE17>
670                     <FRAME '\1aTWAY-WRITE-BYTE>
671                     <PUSH TTY4>
672                     <DEAD TTY4>
673                     <PUSH OPER5>
674                     <DEAD OPER5>
675                     <PUSH CHRS6>
676                     <DEAD CHRS6>
677                     <CALL '\1aTWAY-WRITE-BYTE 3>
678                     <RETURN 1>
679 PHRASE17
680                     <LENUS BS8 = TEMP20 (TYPE FIX)>
681                     <RESTUS BS8 TEMP20 = BS8 (TYPE STRING)>
682                     <DEAD TEMP20>
683                     <LESS? CHRS6 0 - PHRASE22 (TYPE FIX)>
684                     <SET NEG?9 'T (TYPE ATOM)>
685                     <SUB 0 CHRS6 = CHRS6 (TYPE FIX)>
686 PHRASE22
687                     <SET TEMP20 %<> (TYPE FALSE)>
688                     <LOOP>
689 AGAIN28
690                     <INTGO>
691                     <VEQUAL? CHRS6 0 - PHRASE30 (TYPE FIX)>
692                     <VEQUAL? TEMP20 0 - PHRASE34>
693                     <DEAD TEMP20>
694                     <BACKU BS8 1 = BS8>
695                     <PUTUS BS8 1 !\0>
696                     <JUMP + PHRASE35>
697 PHRASE34
698                     <VEQUAL? NEG?9 0 + PHRASE35>
699                     <DEAD NEG?9>
700                     <BACKU BS8 1 = BS8>
701                     <PUTUS BS8 1 !\->
702 PHRASE35
703                     <FRAME '\1aTWAY-WRITE-BUFFER>
704                     <PUSH TTY4>
705                     <DEAD TTY4>
706                     <PUSH OPER5>
707                     <DEAD OPER5>
708                     <PUSH BS8>
709                     <LENUS BS8 = STACK (TYPE FIX)>
710                     <CALL '\1aTWAY-WRITE-BUFFER 4>
711                     <LENUS BS8 = NEG?9 (TYPE FIX)>
712                     <DEAD BS8>
713                     <RETURN NEG?9>
714                     <DEAD NEG?9>
715 PHRASE30
716                     <MOD CHRS6 10 = TEMP20 (TYPE FIX)>
717                     <DIV CHRS6 10 = CHRS6 (TYPE FIX)>
718                     <BACKU BS8 1 = BS8>
719                     <ADD TEMP20 48 = TEMP20 (TYPE FIX)>
720                     <CHTYPE TEMP20 <TYPE-CODE CHARACTER> = TEMP20>
721                     <PUTUS BS8 1 TEMP20>
722                     <DEAD TEMP20>
723                     <SET TEMP20 'T (TYPE ATOM)>
724                     <JUMP + AGAIN28>
725                     <END \1aWRITE-STUFF>
726 #WORD *3164705316*
727 <GFCN \1aTTY-OPEN ("VALUE" <OR FALSE TTY-CHANNEL> ANY ANY "OPTIONAL" ANY ANY ANY ANY ANY) STYPE10 OPR11 NAME12 MODE13 BSZ14 OBUF?15 IBUF?16>
728                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7 OPT8 OPT9>
729 OPT4
730                     <PUSH %<>>
731 OPT5
732                     <PUSH "">
733 OPT6
734                     <PUSH "">
735 OPT7
736                     <PUSH #T$UNBOUND 0>
737 OPT8
738                     <PUSH #T$UNBOUND 0>
739 OPT9
740                     <TEMP TO21 IJFN18 VAL20>
741                     <INTGO>
742                     <TYPE? IBUF?16 <TYPE-CODE UNBOUND> - COND24>
743                     <TYPE? BSZ14 <TYPE-CODE STRING> - PHRASE25>
744                     <SET IBUF?16 'T (TYPE ATOM)>
745                     <JUMP + COND24>
746 PHRASE25
747                     <SET IBUF?16 BSZ14>
748                     <DEAD BSZ14>
749 COND24
750                     <TYPE? OBUF?15 <TYPE-CODE UNBOUND> - COND28>
751                     <TYPE? MODE13 <TYPE-CODE STRING> - PHRASE29>
752                     <SET OBUF?15 %<> (TYPE FALSE)>
753                     <JUMP + COND28>
754 PHRASE29
755                     <SET OBUF?15 MODE13>
756                     <DEAD MODE13>
757 COND28
758                     <TYPE? NAME12 <TYPE-CODE FALSE> - PHRASE31>
759                     <SET TO21 65 (TYPE FIX)>
760                     <SET IJFN18 64 (TYPE FIX)>
761                     <JUMP + PHRASE34>
762 PHRASE31
763                     <FRAME '\1aGET-JFN>
764                     <PUSH NAME12>
765                     <DEAD NAME12>
766                     <PUSH 106496>
767                     <PUSH 7>
768                     <PUSH %<>>
769                     <CALL '\1aGET-JFN 4 = TO21>
770                     <TYPE? TO21 <TYPE-CODE FALSE> + PHRASE32>
771                     <SET IJFN18 TO21>
772                     <JUMP + PHRASE34>
773 PHRASE32
774                     <RETURN TO21>
775                     <DEAD TO21>
776 PHRASE34
777                     <SYSOP 'RFMOD TO21 (RETURN 2) = VAL20>
778                     <PUSH IJFN18>
779                     <DEAD IJFN18>
780                     <PUSH -1>
781                     <PUSH 7>
782                     <SET IJFN18 IBUF?16>
783                     <DEAD IBUF?16>
784                     <TYPE? IJFN18 <TYPE-CODE FALSE> + PHRASE38>
785                     <UUBLOCK <TYPE-CODE STRING> 320 = IJFN18 (TYPE STRING)>
786 PHRASE38
787                     <PUSH IJFN18>
788                     <DEAD IJFN18>
789                     <PUSH 0>
790                     <PUSH TO21>
791                     <DEAD TO21>
792                     <SET IJFN18 OBUF?15>
793                     <DEAD OBUF?15>
794                     <TYPE? IJFN18 <TYPE-CODE FALSE> + PHRASE41>
795                     <UUBLOCK <TYPE-CODE STRING> 320 = IJFN18 (TYPE STRING)>
796 PHRASE41
797                     <PUSH IJFN18>
798                     <DEAD IJFN18>
799                     <PUSH 0>
800                     <PUSH VAL20>
801                     <PUSH VAL20>
802                     <DEAD VAL20>
803                     <PUSH %<>>
804                     <PUSH 0>
805                     <PUSH %<>>
806                     <PUSH %<>>
807                     <UBLOCK <TYPE-CODE VECTOR> 14 = IJFN18>
808                     <CHTYPE IJFN18 <TYPE-CODE TTY-CHANNEL> = IJFN18>
809                     <RETURN IJFN18>
810                     <DEAD IJFN18>
811                     <END \1aTTY-OPEN>
812 #WORD *13704672357*
813 <GFCN \1aTTY-SET-ECHO ("VALUE" CHANNEL CHANNEL ANY <OR ATOM FALSE>) TTY4 OPER5 ON?6>
814                     <TEMP DATA7 TEMP11>
815                     <INTGO>
816                     <NTHUV TTY4 5 = DATA7 (TYPE TTY-CHANNEL)>
817                     <NTHUV DATA7 10 = TEMP11 (TYPE FIX)>
818                     <AND TEMP11 #WORD *4000* = TEMP11>
819                     <VEQUAL? TEMP11 0 - TAG9 (TYPE FIX)>
820                     <DEAD TEMP11>
821                     <SET TEMP11 %<> (TYPE FALSE)>
822                     <JUMP + TAG10>
823 TAG9
824                     <SET TEMP11 'T (TYPE ATOM)>
825 TAG10
826                     <VEQUAL? TEMP11 ON?6 + PHRASE15>
827                     <DEAD TEMP11 ON?6>
828                     <NTHUV DATA7 10 = TEMP11 (TYPE FIX)>
829                     <XOR TEMP11 #WORD *4000* = TEMP11>
830                     <PUTUV DATA7 10 TEMP11 (TYPE FIX)>
831                     <DEAD TEMP11>
832                     <NTHUV DATA7 1 = TEMP11 (TYPE FIX)>
833                     <NTHUV DATA7 10 = DATA7 (TYPE FIX)>
834                     <SYSOP 'SFMOD TEMP11 DATA7>
835                     <DEAD TEMP11 DATA7>
836 PHRASE15
837                     <RETURN TTY4>
838                     <DEAD TTY4>
839                     <END \1aTTY-SET-ECHO>
840 #WORD *26564056631*
841 <GFCN \1aTTY-SET-IMAGE ("VALUE" CHANNEL CHANNEL ANY <OR ATOM FALSE> "OPTIONAL" ANY) TTY6 OPER7 ON?8 SCREW?9>
842                     <OPT-DISPATCH 3 %<> OPT4 OPT5>
843 OPT4
844                     <PUSH 'T>
845 OPT5
846                     <TEMP DATA10:TTY-CHANNEL TEMP12 TEMP27:FIX>
847                     <INTGO>
848                     <NTHUV TTY6 5 = DATA10 (TYPE TTY-CHANNEL)>
849                     <NTHUV DATA10 10 = TEMP12 (TYPE FIX)>
850                     <AND TEMP12 #WORD *300* = TEMP12>
851                     <VEQUAL? TEMP12 0 - TAG13 (TYPE FIX)>
852                     <DEAD TEMP12>
853                     <SET TEMP12 'T (TYPE ATOM)>
854                     <JUMP + TAG16>
855 TAG13
856                     <SET TEMP12 %<> (TYPE FALSE)>
857 TAG16
858                     <VEQUAL? TEMP12 ON?8 + PHRASE18>
859                     <DEAD TEMP12>
860                     <FRAME '\1aTWAY-BUFOUT>
861                     <PUSH TTY6>
862                     <PUSH 'BUFOUT>
863                     <PUSH %<>>
864                     <CALL '\1aTWAY-BUFOUT 3>
865                     <TYPE? ON?8 <TYPE-CODE FALSE> + PHRASE21>
866                     <TYPE? SCREW?9 <TYPE-CODE FALSE> + PHRASE21>
867                     <DEAD SCREW?9>
868                     <NTHUV DATA10 1 = TEMP12 (TYPE FIX)>
869                     <SYSOP 'SFPOS TEMP12 -1>
870                     <DEAD TEMP12>
871 PHRASE21
872                     <TYPE? ON?8 <TYPE-CODE FALSE> + PHRASE24>
873                     <DEAD ON?8>
874                     <NTHUV DATA10 10 = TEMP12 (TYPE FIX)>
875                     <AND TEMP12 #WORD *777777777477* = TEMP12>
876                     <JUMP + PHRASE25>
877 PHRASE24
878                     <NTHUV DATA10 10 = TEMP12 (TYPE FIX)>
879                     <NTHUV DATA10 9 = TEMP27 (TYPE FIX)>
880                     <AND TEMP27 #WORD *300* = TEMP27>
881                     <OR TEMP12 TEMP27 = TEMP12>
882                     <DEAD TEMP27>
883 PHRASE25
884                     <PUTUV DATA10 10 TEMP12 (TYPE FIX)>
885                     <DEAD TEMP12>
886                     <NTHUV DATA10 1 = TEMP12 (TYPE FIX)>
887                     <NTHUV DATA10 10 = TEMP27 (TYPE FIX)>
888                     <DEAD DATA10>
889                     <SYSOP 'SFMOD TEMP12 TEMP27>
890                     <DEAD TEMP12 TEMP27>
891 PHRASE18
892                     <RETURN TTY6>
893                     <DEAD TTY6>
894                     <END \1aTTY-SET-IMAGE>
895 \\f
896
897 #WORD *23204133012*
898 <GFCN \1aTTY-RESET ("VALUE" CHANNEL CHANNEL ANY "OPTIONAL" ANY <OR ATOM FALSE>) TTY7 OPER8 NEW?9 FLUSH?10>
899                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6>
900 OPT4
901                     <PUSH %<>>
902 OPT5
903                     <PUSH 'T>
904 OPT6
905                     <TEMP DATA11:TTY-CHANNEL TEMP14 TEMP20>
906                     <INTGO>
907                     <NTHUV TTY7 5 = DATA11 (TYPE TTY-CHANNEL)>
908                     <TYPE? NEW?9 <TYPE-CODE FALSE> + PHRASE13>
909                     <DEAD NEW?9>
910                     <NTHUV DATA11 1 = TEMP14 (TYPE FIX)>
911                     <SYSOP 'RFMOD TEMP14 (RETURN 2) = TEMP14>
912                     <PUTUV DATA11 10 TEMP14>
913                     <DEAD TEMP14>
914                     <FRAME '\1aTTY-SET-IMAGE>
915                     <PUSH TTY7>
916                     <PUSH OPER8>
917                     <PUSH %<>>
918                     <CALL '\1aTTY-SET-IMAGE 3>
919                     <FRAME '\1aTTY-SET-ECHO>
920                     <PUSH TTY7>
921                     <PUSH OPER8>
922                     <DEAD OPER8>
923                     <PUSH 'T>
924                     <CALL '\1aTTY-SET-ECHO 3>
925                     <NTHUV DATA11 10 = TEMP14 (TYPE FIX)>
926                     <PUTUV DATA11 9 TEMP14 (TYPE FIX)>
927                     <DEAD TEMP14>
928                     <JUMP + PHRASE22>
929 PHRASE13
930                     <NTHUV DATA11 10 = TEMP14 (TYPE FIX)>
931                     <NTHUV DATA11 9 = TEMP20 (TYPE FIX)>
932                     <VEQUAL? TEMP14 TEMP20 + PHRASE19 (TYPE FIX)>
933                     <DEAD TEMP14 TEMP20>
934                     <NTHUV DATA11 1 = TEMP20 (TYPE FIX)>
935                     <NTHUV DATA11 9 = TEMP14 (TYPE FIX)>
936                     <SYSOP 'SFMOD TEMP20 TEMP14>
937                     <DEAD TEMP20 TEMP14>
938                     <NTHUV DATA11 9 = TEMP20 (TYPE FIX)>
939                     <PUTUV DATA11 10 TEMP20 (TYPE FIX)>
940                     <DEAD TEMP20>
941 PHRASE19
942                     <TYPE? FLUSH?10 <TYPE-CODE FALSE> + PHRASE22>
943                     <DEAD FLUSH?10>
944                     <NTHUV DATA11 1 = TEMP20 (TYPE FIX)>
945                     <SYSOP 'CFIBF TEMP20>
946                     <DEAD TEMP20>
947 PHRASE22
948                     <NTHUV DATA11 4 = TEMP20>
949                     <TYPE? TEMP20 <TYPE-CODE FALSE> + PHRASE24>
950                     <DEAD TEMP20>
951                     <PUTUV DATA11 5 0 (TYPE FIX)>
952                     <NTHUV DATA11 4 = TEMP20 (TYPE STRING)>
953                     <TOPU TEMP20 = TEMP20>
954                     <PUTUV DATA11 4 TEMP20>
955                     <DEAD TEMP20>
956 PHRASE24
957                     <NTHUV DATA11 7 = TEMP20>
958                     <TYPE? TEMP20 <TYPE-CODE FALSE> + PHRASE26>
959                     <DEAD TEMP20>
960                     <PUTUV DATA11 8 0 (TYPE FIX)>
961                     <NTHUV DATA11 7 = TEMP20 (TYPE STRING)>
962                     <TOPU TEMP20 = TEMP20>
963                     <PUTUV DATA11 7 TEMP20>
964                     <DEAD TEMP20>
965 PHRASE26
966                     <PUTUV DATA11 12 0 (TYPE FIX)>
967                     <DEAD DATA11>
968                     <RETURN TTY7>
969                     <DEAD TTY7>
970                     <END \1aTTY-RESET>
971 #WORD *34147104564*
972 <GFCN \1aTTY-QUERY ("VALUE" <OR ATOM FALSE> CHANNEL ANY FIX) CHANNEL4 OPER5 BIT6>
973                     <TEMP DATA7>
974                     <INTGO>
975                     <NTHUV CHANNEL4 5 = DATA7 (TYPE TTY-CHANNEL)>
976                     <DEAD CHANNEL4>
977                     <VEQUAL? BIT6 2 + TAG11 (TYPE FIX)>
978                     <DEAD BIT6>
979                     <RETURN %<>>
980 TAG11
981                     <NTHUV DATA7 4 = DATA7>
982                     <TYPE? DATA7 <TYPE-CODE FALSE> + PHRASE13>
983                     <SET DATA7 'T (TYPE ATOM)>
984 PHRASE13
985                     <RETURN DATA7>
986                     <DEAD DATA7>
987                     <END \1aTTY-QUERY>
988 \\f
989
990 #WORD *31254076332*
991 <GFCN \1aTTY-SET-CURS ("VALUE" ATOM CHANNEL ANY FIX FIX) TTY4 OPER5 X6 Y7>
992                     <TEMP DATA8 SU11 TEMP16:FIX>
993                     <INTGO>
994                     <NTHUV TTY4 5 = DATA8 (TYPE TTY-CHANNEL)>
995                     <NTHUV TTY4 6 = SU11>
996                     <DEAD TTY4>
997                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
998                     <PUTUV SU11 4 Y7 (TYPE FIX)>
999                     <PUTUV SU11 2 X6 (TYPE FIX)>
1000                     <DEAD SU11>
1001 PHRASE14
1002                     <NTHUV DATA8 1 = DATA8 (TYPE FIX)>
1003                     <IFSYS "VAX">
1004                     <PUTBITS X6 16 16 Y7 = TEMP16>
1005                     <ENDIF "VAX">
1006                     <IFSYS "TOPS20">
1007                     <PUTBITS X6 18 18 Y7 = TEMP16>
1008                     <DEAD X6 Y7>
1009                     <ENDIF "TOPS20">
1010                     <SYSOP 'SFPOS DATA8 TEMP16>
1011                     <DEAD DATA8 TEMP16>
1012                     <RETURN 'T>
1013                     <END \1aTTY-SET-CURS>
1014 #WORD *33677634553*
1015 <GFCN \1aTTY-PARM ("VALUE" ANY CHANNEL ATOM "OPTIONAL" FIX) TTY6 OPER7 NEW8>
1016                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1017 OPT4
1018                     <PUSH #T$UNBOUND 0>
1019 OPT5
1020                     <TEMP DATA9 TEMP14 RN27:FIX TEMP29:FIX TEMP46:FIX>
1021                     <INTGO>
1022                     <NTHUV TTY6 5 = DATA9 (TYPE TTY-CHANNEL)>
1023                     <DEAD TTY6>
1024                     <VEQUAL? OPER7 'PAGE-WIDTH - PHRASE11>
1025                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE13>
1026                     <NTHUV DATA9 1 = TEMP14 (TYPE FIX)>
1027                     <DEAD DATA9>
1028                     <SYSOP 'MTOPR TEMP14 25 NEW8 (RETURN 3) = TEMP14>
1029                     <DEAD NEW8>
1030                     <RETURN TEMP14>
1031                     <DEAD TEMP14>
1032 PHRASE13
1033                     <NTHUV DATA9 1 = DATA9 (TYPE FIX)>
1034                     <SYSOP 'MTOPR DATA9 24 (RETURN 3) = TEMP14>
1035                     <DEAD DATA9>
1036                     <RETURN TEMP14>
1037                     <DEAD TEMP14>
1038 PHRASE11
1039                     <VEQUAL? OPER7 'PAGE-HEIGHT - PHRASE17>
1040                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE19>
1041                     <NTHUV DATA9 1 = DATA9 (TYPE FIX)>
1042                     <SYSOP 'MTOPR DATA9 27 NEW8 (RETURN 3) = TEMP14>
1043                     <DEAD DATA9 NEW8>
1044                     <RETURN TEMP14>
1045                     <DEAD TEMP14>
1046 PHRASE19
1047                     <NTHUV DATA9 1 = DATA9 (TYPE FIX)>
1048                     <SYSOP 'MTOPR DATA9 26 (RETURN 3) = TEMP14>
1049                     <DEAD DATA9>
1050                     <RETURN TEMP14>
1051                     <DEAD TEMP14>
1052 PHRASE17
1053                     <VEQUAL? OPER7 'PAGE-X - PHRASE21>
1054                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE23>
1055                     <NTHUV DATA9 1 = DATA9 (TYPE FIX)>
1056                     <SYSOP 'RFPOS DATA9 (RETURN 2) = TEMP14>
1057                     <SET RN27 NEW8>
1058                     <DEAD NEW8>
1059                     <IFSYS "VAX">
1060                     <PUTBITS TEMP14 16 0 RN27 = TEMP29>
1061                     <ENDIF "VAX">
1062                     <IFSYS "TOPS20">
1063                     <PUTBITS TEMP14 18 0 RN27 = TEMP29>
1064                     <DEAD TEMP14 RN27>
1065                     <ENDIF "TOPS20">
1066                     <SYSOP 'SFPOS DATA9 TEMP29 (RETURN 2) = TEMP14>
1067                     <DEAD DATA9 TEMP29>
1068                     <RETURN TEMP14>
1069                     <DEAD TEMP14>
1070 PHRASE23
1071                     <IFSYS "VAX">
1072                     <NTHUV DATA9 1 = TEMP14 (TYPE FIX)>
1073                     <SYSOP 'RFPOS TEMP14 (RETURN 2) = TEMP14>
1074                     <AND TEMP14 #WORD *177777* = TEMP14>
1075                     <ENDIF "VAX">
1076                     <IFSYS "TOPS20">
1077                     <NTHUV DATA9 1 = TEMP14 (TYPE FIX)>
1078                     <DEAD DATA9>
1079                     <SYSOP 'RFPOS TEMP14 (RETURN 2) = TEMP14>
1080                     <AND TEMP14 #WORD *777777* = TEMP14>
1081                     <ENDIF "TOPS20">
1082                     <RETURN TEMP14>
1083                     <DEAD TEMP14>
1084 PHRASE21
1085                     <VEQUAL? OPER7 'PAGE-Y + TAG38>
1086                     <DEAD OPER7>
1087                     <RETURN %<>>
1088 TAG38
1089                     <TYPE? NEW8 <TYPE-CODE UNBOUND> + PHRASE40>
1090                     <NTHUV DATA9 1 = DATA9 (TYPE FIX)>
1091                     <SYSOP 'RFPOS DATA9 (RETURN 2) = TEMP14>
1092                     <SET RN27 NEW8>
1093                     <DEAD NEW8>
1094                     <IFSYS "VAX">
1095                     <PUTBITS TEMP14 16 16 RN27 = TEMP46>
1096                     <ENDIF "VAX">
1097                     <IFSYS "TOPS20">
1098                     <PUTBITS TEMP14 18 18 RN27 = TEMP46>
1099                     <DEAD TEMP14 RN27>
1100                     <ENDIF "TOPS20">
1101                     <SYSOP 'SFPOS DATA9 TEMP46 (RETURN 2) = TEMP14>
1102                     <DEAD DATA9 TEMP46>
1103                     <RETURN TEMP14>
1104                     <DEAD TEMP14>
1105 PHRASE40
1106                     <IFSYS "VAX">
1107                     <NTHUV DATA9 1 = TEMP14 (TYPE FIX)>
1108                     <SYSOP 'RFPOS TEMP14 (RETURN 2) = TEMP14>
1109                     <GETBITS TEMP14 16 16 = TEMP14>
1110                     <ENDIF "VAX">
1111                     <IFSYS "TOPS20">
1112                     <NTHUV DATA9 1 = TEMP14 (TYPE FIX)>
1113                     <DEAD DATA9>
1114                     <SYSOP 'RFPOS TEMP14 (RETURN 2) = TEMP14>
1115                     <GETBITS TEMP14 18 18 = TEMP14>
1116                     <ENDIF "TOPS20">
1117                     <RETURN TEMP14>
1118                     <DEAD TEMP14>
1119                     <END \1aTTY-PARM>
1120 \\f
1121
1122 #WORD *2247222022*
1123 <GFCN \1aINSERT-LINE ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX <OR FIX FALSE> <OR FIX FALSE>) TTY8 OPER9 N10 TOP11 BOT12>
1124                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7>
1125 OPT4
1126                     <PUSH 1>
1127 OPT5
1128                     <PUSH %<>>
1129 OPT6
1130                     <PUSH %<>>
1131 OPT7
1132                     <TEMP DATA13 TEMP18 TEMP49:FIX>
1133                     <INTGO>
1134                     <NTHUV TTY8 5 = DATA13 (TYPE TTY-CHANNEL)>
1135                     <DEAD TTY8>
1136                     <VEQUAL? N10 0 - PHRASE15 (TYPE FIX)>
1137                     <RETURN 'T>
1138 PHRASE15
1139                     <TYPE? TOP11 <TYPE-CODE FALSE> - PHRASE19>
1140                     <TYPE? BOT12 <TYPE-CODE FALSE> - PHRASE19>
1141                     <NTHUV DATA13 7 = TEMP18>
1142                     <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE25>
1143                     <DEAD TEMP18>
1144                     <NTHUV DATA13 8 = TEMP18 (TYPE FIX)>
1145                     <VEQUAL? TEMP18 0 + PHRASE25 (TYPE FIX)>
1146                     <DEAD TEMP18>
1147                     <FRAME '\1aDUMP-WRITE-BUFFER>
1148                     <PUSH DATA13>
1149                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1150 PHRASE25
1151                     <NTHUV DATA13 6 = TEMP18 (TYPE FIX)>
1152                     <DEAD DATA13>
1153                     <SYSOP 'VTSOP TEMP18 17179869202 N10 = TEMP18>
1154                     <DEAD N10>
1155                     <RETURN TEMP18>
1156                     <DEAD TEMP18>
1157 PHRASE19
1158                     <TYPE? TOP11 <TYPE-CODE FALSE> - EXIT34>
1159                     <IFSYS "VAX">
1160                     <NTHUV DATA13 1 = TEMP18 (TYPE FIX)>
1161                     <SYSOP 'RFPOS TEMP18 (RETURN 2) = TEMP18>
1162                     <GETBITS TEMP18 16 16 = TOP11>
1163                     <DEAD TEMP18>
1164                     <ENDIF "VAX">
1165                     <IFSYS "TOPS20">
1166                     <NTHUV DATA13 1 = TEMP18 (TYPE FIX)>
1167                     <SYSOP 'RFPOS TEMP18 (RETURN 2) = TEMP18>
1168                     <GETBITS TEMP18 18 18 = TOP11>
1169                     <DEAD TEMP18>
1170                     <ENDIF "TOPS20">
1171 EXIT34
1172                     <TYPE? BOT12 <TYPE-CODE FALSE> - PHRASE38>
1173                     <NTHUV DATA13 1 = TEMP18 (TYPE FIX)>
1174                     <SYSOP 'MTOPR TEMP18 26 (RETURN 3) = TEMP18>
1175                     <SUB TEMP18 1 = BOT12 (TYPE FIX)>
1176                     <DEAD TEMP18>
1177 PHRASE38
1178                     <NTHUV DATA13 7 = TEMP18>
1179                     <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE42>
1180                     <DEAD TEMP18>
1181                     <NTHUV DATA13 8 = TEMP18 (TYPE FIX)>
1182                     <VEQUAL? TEMP18 0 + PHRASE42 (TYPE FIX)>
1183                     <DEAD TEMP18>
1184                     <FRAME '\1aDUMP-WRITE-BUFFER>
1185                     <PUSH DATA13>
1186                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1187 PHRASE42
1188                     <NTHUV DATA13 6 = TEMP18 (TYPE FIX)>
1189                     <DEAD DATA13>
1190                     <LSH TOP11 18 = DATA13 (TYPE FIX)>
1191                     <DEAD TOP11>
1192                     <AND BOT12 #WORD *777777* = TEMP49>
1193                     <DEAD BOT12>
1194                     <OR DATA13 TEMP49 = DATA13>
1195                     <DEAD TEMP49>
1196                     <SYSOP 'VTSOP TEMP18 25769803794 N10 DATA13 = TEMP18>
1197                     <DEAD N10 DATA13>
1198                     <RETURN TEMP18>
1199                     <DEAD TEMP18>
1200                     <END \1aINSERT-LINE>
1201 #WORD *33673411765*
1202 <GFCN \1aINSERT-CHAR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX <OR FIX FALSE> <OR FIX FALSE>) TTY8 OPER9 N10 LEFT11 RIGHT12>
1203                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7>
1204 OPT4
1205                     <PUSH 1>
1206 OPT5
1207                     <PUSH %<>>
1208 OPT6
1209                     <PUSH %<>>
1210 OPT7
1211                     <TEMP DATA13 TEMP24>
1212                     <INTGO>
1213                     <NTHUV TTY8 5 = DATA13>
1214                     <DEAD TTY8>
1215                     <TYPE? LEFT11 <TYPE-CODE FALSE> - PHRASE15>
1216                     <TYPE? RIGHT12 <TYPE-CODE FALSE> - PHRASE15>
1217                     <NTHUV DATA13 7 = TEMP24>
1218                     <TYPE? TEMP24 <TYPE-CODE FALSE> + PHRASE22>
1219                     <DEAD TEMP24>
1220                     <NTHUV DATA13 8 = TEMP24 (TYPE FIX)>
1221                     <VEQUAL? TEMP24 0 + PHRASE22 (TYPE FIX)>
1222                     <DEAD TEMP24>
1223                     <FRAME '\1aDUMP-WRITE-BUFFER>
1224                     <PUSH DATA13>
1225                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1226 PHRASE22
1227                     <NTHUV DATA13 6 = TEMP24 (TYPE FIX)>
1228                     <DEAD DATA13>
1229                     <SYSOP 'VTSOP TEMP24 17179869203 N10 = DATA13>
1230                     <DEAD TEMP24 N10>
1231                     <RETURN DATA13>
1232                     <DEAD DATA13>
1233 PHRASE15
1234                     <TYPE? LEFT11 <TYPE-CODE FALSE> - EXIT31>
1235                     <IFSYS "VAX">
1236                     <NTHUV DATA13 1 = TEMP24 (TYPE FIX)>
1237                     <SYSOP 'RFPOS TEMP24 (RETURN 2) = TEMP24>
1238                     <AND TEMP24 #WORD *177777* = LEFT11>
1239                     <DEAD TEMP24>
1240                     <ENDIF "VAX">
1241                     <IFSYS "TOPS20">
1242                     <NTHUV DATA13 1 = TEMP24 (TYPE FIX)>
1243                     <SYSOP 'RFPOS TEMP24 (RETURN 2) = TEMP24>
1244                     <AND TEMP24 #WORD *777777* = LEFT11>
1245                     <DEAD TEMP24>
1246                     <ENDIF "TOPS20">
1247 EXIT31
1248                     <TYPE? RIGHT12 <TYPE-CODE FALSE> - PHRASE35>
1249                     <NTHUV DATA13 1 = TEMP24 (TYPE FIX)>
1250                     <SYSOP 'MTOPR TEMP24 24 (RETURN 3) = TEMP24>
1251                     <SUB TEMP24 1 = RIGHT12 (TYPE FIX)>
1252                     <DEAD TEMP24>
1253 PHRASE35
1254                     <NTHUV DATA13 7 = TEMP24>
1255                     <TYPE? TEMP24 <TYPE-CODE FALSE> + PHRASE39>
1256                     <DEAD TEMP24>
1257                     <NTHUV DATA13 8 = TEMP24 (TYPE FIX)>
1258                     <VEQUAL? TEMP24 0 + PHRASE39 (TYPE FIX)>
1259                     <DEAD TEMP24>
1260                     <FRAME '\1aDUMP-WRITE-BUFFER>
1261                     <PUSH DATA13>
1262                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1263 PHRASE39
1264                     <NTHUV DATA13 6 = TEMP24 (TYPE FIX)>
1265                     <DEAD DATA13>
1266                     <AND RIGHT12 #WORD *777777000000* = DATA13>
1267                     <DEAD RIGHT12>
1268                     <OR DATA13 LEFT11 = DATA13>
1269                     <DEAD LEFT11>
1270                     <SYSOP 'VTSOP TEMP24 25769803795 N10 DATA13 = DATA13>
1271                     <DEAD TEMP24 N10>
1272                     <RETURN DATA13>
1273                     <DEAD DATA13>
1274                     <END \1aINSERT-CHAR>
1275 \\f
1276
1277 #WORD *11274531177*
1278 <GFCN \1aCLEAR-SCREEN ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1279                     <TEMP SU9>
1280                     <INTGO>
1281                     <NTHUV TTY4 6 = SU9>
1282                     <TYPE? SU9 <TYPE-CODE MUD-CHAN> - PHRASE12>
1283                     <PUTUV SU9 4 0 (TYPE FIX)>
1284                     <PUTUV SU9 2 0 (TYPE FIX)>
1285                     <DEAD SU9>
1286 PHRASE12
1287                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1288                     <NTHUV SU9 7 = SU9>
1289                     <TYPE? SU9 <TYPE-CODE FALSE> + PHRASE18>
1290                     <DEAD SU9>
1291                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1292                     <NTHUV SU9 8 = SU9 (TYPE FIX)>
1293                     <VEQUAL? SU9 0 + PHRASE18 (TYPE FIX)>
1294                     <DEAD SU9>
1295                     <FRAME '\1aDUMP-WRITE-BUFFER>
1296                     <NTHUV TTY4 5 = STACK>
1297                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1298 PHRASE18
1299                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1300                     <DEAD TTY4>
1301                     <NTHUV SU9 6 = SU9 (TYPE FIX)>
1302                     <SYSOP 'VTSOP SU9 13 = SU9>
1303                     <RETURN SU9>
1304                     <DEAD SU9>
1305                     <END \1aCLEAR-SCREEN>
1306 #WORD *21014113566*
1307 <GFCN \1aCLEAR-EOL ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1308                     <TEMP TEMP13>
1309                     <INTGO>
1310                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1311                     <NTHUV TEMP13 7 = TEMP13>
1312                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE11>
1313                     <DEAD TEMP13>
1314                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1315                     <NTHUV TEMP13 8 = TEMP13 (TYPE FIX)>
1316                     <VEQUAL? TEMP13 0 + PHRASE11 (TYPE FIX)>
1317                     <DEAD TEMP13>
1318                     <FRAME '\1aDUMP-WRITE-BUFFER>
1319                     <NTHUV TTY4 5 = STACK>
1320                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1321 PHRASE11
1322                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1323                     <DEAD TTY4>
1324                     <NTHUV TEMP13 6 = TEMP13 (TYPE FIX)>
1325                     <SYSOP 'VTSOP TEMP13 15 = TEMP13>
1326                     <RETURN TEMP13>
1327                     <DEAD TEMP13>
1328                     <END \1aCLEAR-EOL>
1329 #WORD *21014113306*
1330 <GFCN \1aCLEAR-EOS ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1331                     <TEMP TEMP13>
1332                     <INTGO>
1333                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1334                     <NTHUV TEMP13 7 = TEMP13>
1335                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE11>
1336                     <DEAD TEMP13>
1337                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1338                     <NTHUV TEMP13 8 = TEMP13 (TYPE FIX)>
1339                     <VEQUAL? TEMP13 0 + PHRASE11 (TYPE FIX)>
1340                     <DEAD TEMP13>
1341                     <FRAME '\1aDUMP-WRITE-BUFFER>
1342                     <NTHUV TTY4 5 = STACK>
1343                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1344 PHRASE11
1345                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1346                     <DEAD TTY4>
1347                     <NTHUV TEMP13 6 = TEMP13 (TYPE FIX)>
1348                     <SYSOP 'VTSOP TEMP13 14 = TEMP13>
1349                     <RETURN TEMP13>
1350                     <DEAD TEMP13>
1351                     <END \1aCLEAR-EOS>
1352 #WORD *10147325646*
1353 <GFCN \1aFRESH-LINE ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1354                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1355 OPT4
1356                     <PUSH 1>
1357 OPT5
1358                     <TEMP SU11>
1359                     <INTGO>
1360                     <NTHUV TTY6 6 = SU11>
1361                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1362                     <PUTUV SU11 2 0 (TYPE FIX)>
1363                     <DEAD SU11>
1364 PHRASE14
1365                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1366                     <NTHUV SU11 7 = SU11>
1367                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1368                     <DEAD SU11>
1369                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1370                     <NTHUV SU11 8 = SU11 (TYPE FIX)>
1371                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1372                     <DEAD SU11>
1373                     <FRAME '\1aDUMP-WRITE-BUFFER>
1374                     <NTHUV TTY6 5 = STACK>
1375                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1376 PHRASE20
1377                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1378                     <DEAD TTY6>
1379                     <NTHUV SU11 6 = SU11 (TYPE FIX)>
1380                     <SYSOP 'VTSOP SU11 17179869194 N8 = SU11>
1381                     <DEAD N8>
1382                     <RETURN SU11>
1383                     <DEAD SU11>
1384                     <END \1aFRESH-LINE>
1385 #WORD *21264113046*
1386 <GFCN \1aKILL-CHAR ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1387                     <TEMP TEMP13>
1388                     <INTGO>
1389                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1390                     <NTHUV TEMP13 7 = TEMP13>
1391                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE11>
1392                     <DEAD TEMP13>
1393                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1394                     <NTHUV TEMP13 8 = TEMP13 (TYPE FIX)>
1395                     <VEQUAL? TEMP13 0 + PHRASE11 (TYPE FIX)>
1396                     <DEAD TEMP13>
1397                     <FRAME '\1aDUMP-WRITE-BUFFER>
1398                     <NTHUV TTY4 5 = STACK>
1399                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1400 PHRASE11
1401                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1402                     <DEAD TTY4>
1403                     <NTHUV TEMP13 6 = TEMP13 (TYPE FIX)>
1404                     <SYSOP 'VTSOP TEMP13 16 = TEMP13>
1405                     <RETURN TEMP13>
1406                     <DEAD TEMP13>
1407                     <END \1aKILL-CHAR>
1408 #WORD *12640147511*
1409 <GFCN \1aERASE-CHAR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1410                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1411 OPT4
1412                     <PUSH 1>
1413 OPT5
1414                     <TEMP SU9 TEMP16>
1415                     <INTGO>
1416                     <NTHUV TTY6 6 = SU9>
1417                     <TYPE? SU9 <TYPE-CODE MUD-CHAN> - PHRASE15>
1418                     <NTHUV SU9 2 = TEMP16 (TYPE FIX)>
1419                     <SUB TEMP16 N8 = TEMP16 (TYPE FIX)>
1420                     <PUTUV SU9 2 TEMP16 (TYPE FIX)>
1421                     <DEAD SU9 TEMP16>
1422 PHRASE15
1423                     <NTHUV TTY6 5 = SU9 (TYPE TTY-CHANNEL)>
1424                     <NTHUV SU9 7 = SU9>
1425                     <TYPE? SU9 <TYPE-CODE FALSE> + PHRASE21>
1426                     <DEAD SU9>
1427                     <NTHUV TTY6 5 = SU9 (TYPE TTY-CHANNEL)>
1428                     <NTHUV SU9 8 = SU9 (TYPE FIX)>
1429                     <VEQUAL? SU9 0 + PHRASE21 (TYPE FIX)>
1430                     <DEAD SU9>
1431                     <FRAME '\1aDUMP-WRITE-BUFFER>
1432                     <NTHUV TTY6 5 = STACK>
1433                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1434 PHRASE21
1435                     <NTHUV TTY6 5 = SU9 (TYPE TTY-CHANNEL)>
1436                     <DEAD TTY6>
1437                     <NTHUV SU9 6 = SU9 (TYPE FIX)>
1438                     <SYSOP 'VTSOP SU9 17179869201 N8 = TEMP16>
1439                     <DEAD SU9 N8>
1440                     <RETURN TEMP16>
1441                     <DEAD TEMP16>
1442                     <END \1aERASE-CHAR>
1443 \\f
1444
1445 "SUBTITLE Cursor movement of various sorts"
1446
1447 #WORD *36225716445*
1448 <GFCN \1aHOME-CURSOR ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1449                     <TEMP SU8>
1450                     <INTGO>
1451                     <NTHUV TTY4 6 = SU8>
1452                     <TYPE? SU8 <TYPE-CODE MUD-CHAN> - PHRASE11>
1453                     <PUTUV SU8 4 0 (TYPE FIX)>
1454                     <PUTUV SU8 2 0 (TYPE FIX)>
1455                     <DEAD SU8>
1456 PHRASE11
1457                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1458                     <NTHUV SU8 7 = SU8>
1459                     <TYPE? SU8 <TYPE-CODE FALSE> + PHRASE17>
1460                     <DEAD SU8>
1461                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1462                     <NTHUV SU8 8 = SU8 (TYPE FIX)>
1463                     <VEQUAL? SU8 0 + PHRASE17 (TYPE FIX)>
1464                     <DEAD SU8>
1465                     <FRAME '\1aDUMP-WRITE-BUFFER>
1466                     <NTHUV TTY4 5 = STACK>
1467                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1468 PHRASE17
1469                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1470                     <DEAD TTY4>
1471                     <NTHUV SU8 6 = SU8 (TYPE FIX)>
1472                     <SYSOP 'VTSOP SU8 8 = SU8>
1473                     <RETURN SU8>
1474                     <DEAD SU8>
1475                     <END \1aHOME-CURSOR>
1476 #WORD *11170313764*
1477 <GFCN \1aBOTTOM-CURSOR ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1478                     <TEMP SU8>
1479                     <INTGO>
1480                     <NTHUV TTY4 6 = SU8>
1481                     <TYPE? SU8 <TYPE-CODE MUD-CHAN> - PHRASE11>
1482                     <PUTUV SU8 2 0 (TYPE FIX)>
1483                     <DEAD SU8>
1484 PHRASE11
1485                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1486                     <NTHUV SU8 7 = SU8>
1487                     <TYPE? SU8 <TYPE-CODE FALSE> + PHRASE17>
1488                     <DEAD SU8>
1489                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1490                     <NTHUV SU8 8 = SU8 (TYPE FIX)>
1491                     <VEQUAL? SU8 0 + PHRASE17 (TYPE FIX)>
1492                     <DEAD SU8>
1493                     <FRAME '\1aDUMP-WRITE-BUFFER>
1494                     <NTHUV TTY4 5 = STACK>
1495                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1496 PHRASE17
1497                     <NTHUV TTY4 5 = SU8 (TYPE TTY-CHANNEL)>
1498                     <DEAD TTY4>
1499                     <NTHUV SU8 6 = SU8 (TYPE FIX)>
1500                     <SYSOP 'VTSOP SU8 9 = SU8>
1501                     <RETURN SU8>
1502                     <DEAD SU8>
1503                     <END \1aBOTTOM-CURSOR>
1504 #WORD *17565616014*
1505 <GFCN \1aHOR-POS-CURSOR ("VALUE" ANY CHANNEL ANY ANY) TTY4 OPER5 X6>
1506                     <TEMP SU9>
1507                     <INTGO>
1508                     <NTHUV TTY4 6 = SU9>
1509                     <TYPE? SU9 <TYPE-CODE MUD-CHAN> - PHRASE12>
1510                     <PUTUV SU9 2 X6>
1511                     <DEAD SU9>
1512 PHRASE12
1513                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1514                     <NTHUV SU9 7 = SU9>
1515                     <TYPE? SU9 <TYPE-CODE FALSE> + PHRASE18>
1516                     <DEAD SU9>
1517                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1518                     <NTHUV SU9 8 = SU9 (TYPE FIX)>
1519                     <VEQUAL? SU9 0 + PHRASE18 (TYPE FIX)>
1520                     <DEAD SU9>
1521                     <FRAME '\1aDUMP-WRITE-BUFFER>
1522                     <NTHUV TTY4 5 = STACK>
1523                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1524 PHRASE18
1525                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1526                     <DEAD TTY4>
1527                     <NTHUV SU9 6 = SU9 (TYPE FIX)>
1528                     <SYSOP 'VTSOP SU9 17179869189 X6 = SU9>
1529                     <DEAD X6>
1530                     <RETURN SU9>
1531                     <DEAD SU9>
1532                     <END \1aHOR-POS-CURSOR>
1533 #WORD *32660202735*
1534 <GFCN \1aVER-POS-CURSOR ("VALUE" ANY CHANNEL ANY ANY) TTY4 OPER5 Y6>
1535                     <TEMP SU9>
1536                     <INTGO>
1537                     <NTHUV TTY4 6 = SU9>
1538                     <TYPE? SU9 <TYPE-CODE MUD-CHAN> - PHRASE12>
1539                     <PUTUV SU9 4 Y6>
1540                     <DEAD SU9>
1541 PHRASE12
1542                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1543                     <NTHUV SU9 7 = SU9>
1544                     <TYPE? SU9 <TYPE-CODE FALSE> + PHRASE18>
1545                     <DEAD SU9>
1546                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1547                     <NTHUV SU9 8 = SU9 (TYPE FIX)>
1548                     <VEQUAL? SU9 0 + PHRASE18 (TYPE FIX)>
1549                     <DEAD SU9>
1550                     <FRAME '\1aDUMP-WRITE-BUFFER>
1551                     <NTHUV TTY4 5 = STACK>
1552                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1553 PHRASE18
1554                     <NTHUV TTY4 5 = SU9 (TYPE TTY-CHANNEL)>
1555                     <DEAD TTY4>
1556                     <NTHUV SU9 6 = SU9 (TYPE FIX)>
1557                     <SYSOP 'VTSOP SU9 17179869190 Y6 = SU9>
1558                     <DEAD Y6>
1559                     <RETURN SU9>
1560                     <DEAD SU9>
1561                     <END \1aVER-POS-CURSOR>
1562 #WORD *16213765566*
1563 <GFCN \1aMOVE-CURSOR ("VALUE" ANY CHANNEL ANY ANY ANY) TTY4 OPER5 X6 Y7>
1564                     <TEMP CD8 SU11 TEMP27:FIX>
1565                     <INTGO>
1566                     <NTHUV TTY4 5 = CD8 (TYPE TTY-CHANNEL)>
1567                     <NTHUV TTY4 6 = SU11>
1568                     <DEAD TTY4>
1569                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1570                     <PUTUV SU11 4 Y7>
1571                     <PUTUV SU11 2 X6>
1572                     <DEAD SU11>
1573 PHRASE14
1574                     <NTHUV CD8 6 = SU11 (TYPE FIX)>
1575                     <SYSOP 'SFPOS SU11 -1>
1576                     <DEAD SU11>
1577                     <NTHUV CD8 7 = SU11>
1578                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1579                     <DEAD SU11>
1580                     <NTHUV CD8 8 = SU11 (TYPE FIX)>
1581                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1582                     <DEAD SU11>
1583                     <FRAME '\1aDUMP-WRITE-BUFFER>
1584                     <PUSH CD8>
1585                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1586 PHRASE20
1587                     <NTHUV CD8 6 = SU11 (TYPE FIX)>
1588                     <DEAD CD8>
1589                     <LSH Y7 18 = CD8 (TYPE FIX)>
1590                     <DEAD Y7>
1591                     <AND X6 #WORD *777777* = TEMP27>
1592                     <DEAD X6>
1593                     <OR CD8 TEMP27 = CD8>
1594                     <DEAD TEMP27>
1595                     <SYSOP 'VTSOP SU11 17179869191 CD8 = SU11>
1596                     <DEAD CD8>
1597                     <RETURN SU11>
1598                     <DEAD SU11>
1599                     <END \1aMOVE-CURSOR>
1600 #WORD *31663022755*
1601 <GFCN \1aBACK-CURSOR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1602                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1603 OPT4
1604                     <PUSH 1>
1605 OPT5
1606                     <TEMP SU11 TEMP15>
1607                     <INTGO>
1608                     <NTHUV TTY6 6 = SU11>
1609                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1610                     <NTHUV SU11 2 = TEMP15 (TYPE FIX)>
1611                     <SUB TEMP15 N8 = TEMP15 (TYPE FIX)>
1612                     <PUTUV SU11 2 TEMP15 (TYPE FIX)>
1613                     <DEAD SU11 TEMP15>
1614 PHRASE14
1615                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1616                     <NTHUV SU11 7 = SU11>
1617                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1618                     <DEAD SU11>
1619                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1620                     <NTHUV SU11 8 = SU11 (TYPE FIX)>
1621                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1622                     <DEAD SU11>
1623                     <FRAME '\1aDUMP-WRITE-BUFFER>
1624                     <NTHUV TTY6 5 = STACK>
1625                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1626 PHRASE20
1627                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1628                     <DEAD TTY6>
1629                     <NTHUV SU11 6 = SU11 (TYPE FIX)>
1630                     <SYSOP 'VTSOP SU11 17179869186 N8 = TEMP15>
1631                     <DEAD SU11 N8>
1632                     <RETURN TEMP15>
1633                     <DEAD TEMP15>
1634                     <END \1aBACK-CURSOR>
1635 #WORD *12050574065*
1636 <GFCN \1aDOWN-CURSOR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1637                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1638 OPT4
1639                     <PUSH 1>
1640 OPT5
1641                     <TEMP SU11 TEMP15>
1642                     <INTGO>
1643                     <NTHUV TTY6 6 = SU11>
1644                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1645                     <NTHUV SU11 4 = TEMP15 (TYPE FIX)>
1646                     <ADD TEMP15 N8 = TEMP15 (TYPE FIX)>
1647                     <PUTUV SU11 4 TEMP15 (TYPE FIX)>
1648                     <DEAD SU11 TEMP15>
1649 PHRASE14
1650                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1651                     <NTHUV SU11 7 = SU11>
1652                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1653                     <DEAD SU11>
1654                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1655                     <NTHUV SU11 8 = SU11 (TYPE FIX)>
1656                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1657                     <DEAD SU11>
1658                     <FRAME '\1aDUMP-WRITE-BUFFER>
1659                     <NTHUV TTY6 5 = STACK>
1660                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1661 PHRASE20
1662                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1663                     <DEAD TTY6>
1664                     <NTHUV SU11 6 = SU11 (TYPE FIX)>
1665                     <SYSOP 'VTSOP SU11 17179869188 N8 = TEMP15>
1666                     <DEAD SU11 N8>
1667                     <RETURN TEMP15>
1668                     <DEAD TEMP15>
1669                     <END \1aDOWN-CURSOR>
1670 #WORD *7016423674*
1671 <GFCN \1aUP-CURSOR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1672                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1673 OPT4
1674                     <PUSH 1>
1675 OPT5
1676                     <TEMP SU11 TEMP15>
1677                     <INTGO>
1678                     <NTHUV TTY6 6 = SU11>
1679                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1680                     <NTHUV SU11 4 = TEMP15 (TYPE FIX)>
1681                     <SUB TEMP15 N8 = TEMP15 (TYPE FIX)>
1682                     <PUTUV SU11 4 TEMP15 (TYPE FIX)>
1683                     <DEAD SU11 TEMP15>
1684 PHRASE14
1685                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1686                     <NTHUV SU11 7 = SU11>
1687                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1688                     <DEAD SU11>
1689                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1690                     <NTHUV SU11 8 = SU11 (TYPE FIX)>
1691                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1692                     <DEAD SU11>
1693                     <FRAME '\1aDUMP-WRITE-BUFFER>
1694                     <NTHUV TTY6 5 = STACK>
1695                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1696 PHRASE20
1697                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1698                     <DEAD TTY6>
1699                     <NTHUV SU11 6 = SU11 (TYPE FIX)>
1700                     <SYSOP 'VTSOP SU11 17179869187 N8 = TEMP15>
1701                     <DEAD SU11 N8>
1702                     <RETURN TEMP15>
1703                     <DEAD TEMP15>
1704                     <END \1aUP-CURSOR>
1705 #WORD *10415105544*
1706 <GFCN \1aFORWARD-CURSOR ("VALUE" ANY CHANNEL ANY "OPTIONAL" FIX) TTY6 OPER7 N8>
1707                     <OPT-DISPATCH 2 %<> OPT4 OPT5>
1708 OPT4
1709                     <PUSH 1>
1710 OPT5
1711                     <TEMP SU11 TEMP15>
1712                     <INTGO>
1713                     <NTHUV TTY6 6 = SU11>
1714                     <TYPE? SU11 <TYPE-CODE MUD-CHAN> - PHRASE14>
1715                     <NTHUV SU11 2 = TEMP15 (TYPE FIX)>
1716                     <ADD TEMP15 N8 = TEMP15 (TYPE FIX)>
1717                     <PUTUV SU11 2 TEMP15 (TYPE FIX)>
1718                     <DEAD SU11 TEMP15>
1719 PHRASE14
1720                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1721                     <NTHUV SU11 7 = SU11>
1722                     <TYPE? SU11 <TYPE-CODE FALSE> + PHRASE20>
1723                     <DEAD SU11>
1724                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1725                     <NTHUV SU11 8 = SU11 (TYPE FIX)>
1726                     <VEQUAL? SU11 0 + PHRASE20 (TYPE FIX)>
1727                     <DEAD SU11>
1728                     <FRAME '\1aDUMP-WRITE-BUFFER>
1729                     <NTHUV TTY6 5 = STACK>
1730                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1731 PHRASE20
1732                     <NTHUV TTY6 5 = SU11 (TYPE TTY-CHANNEL)>
1733                     <DEAD TTY6>
1734                     <NTHUV SU11 6 = SU11 (TYPE FIX)>
1735                     <SYSOP 'VTSOP SU11 17179869185 N8 = TEMP15>
1736                     <DEAD SU11 N8>
1737                     <RETURN TEMP15>
1738                     <DEAD TEMP15>
1739                     <END \1aFORWARD-CURSOR>
1740 \\f
1741
1742 #WORD *21054111326*
1743 <GFCN \1aSAVE-CURSOR ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1744                     <TEMP TEMP13>
1745                     <INTGO>
1746                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1747                     <NTHUV TEMP13 7 = TEMP13>
1748                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE11>
1749                     <DEAD TEMP13>
1750                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1751                     <NTHUV TEMP13 8 = TEMP13 (TYPE FIX)>
1752                     <VEQUAL? TEMP13 0 + PHRASE11 (TYPE FIX)>
1753                     <DEAD TEMP13>
1754                     <FRAME '\1aDUMP-WRITE-BUFFER>
1755                     <NTHUV TTY4 5 = STACK>
1756                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1757 PHRASE11
1758                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1759                     <DEAD TTY4>
1760                     <NTHUV TEMP13 6 = TEMP13 (TYPE FIX)>
1761                     <SYSOP 'VTSOP TEMP13 11 = TEMP13>
1762                     <RETURN TEMP13>
1763                     <DEAD TEMP13>
1764                     <END \1aSAVE-CURSOR>
1765 #WORD *21014111306*
1766 <GFCN \1aRESTORE-CURSOR ("VALUE" ANY CHANNEL ANY) TTY4 OPER5>
1767                     <TEMP TEMP13>
1768                     <INTGO>
1769                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1770                     <NTHUV TEMP13 7 = TEMP13>
1771                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE11>
1772                     <DEAD TEMP13>
1773                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1774                     <NTHUV TEMP13 8 = TEMP13 (TYPE FIX)>
1775                     <VEQUAL? TEMP13 0 + PHRASE11 (TYPE FIX)>
1776                     <DEAD TEMP13>
1777                     <FRAME '\1aDUMP-WRITE-BUFFER>
1778                     <NTHUV TTY4 5 = STACK>
1779                     <CALL '\1aDUMP-WRITE-BUFFER 1>
1780 PHRASE11
1781                     <NTHUV TTY4 5 = TEMP13 (TYPE TTY-CHANNEL)>
1782                     <DEAD TTY4>
1783                     <NTHUV TEMP13 6 = TEMP13 (TYPE FIX)>
1784                     <SYSOP 'VTSOP TEMP13 12 = TEMP13>
1785                     <RETURN TEMP13>
1786                     <DEAD TEMP13>
1787                     <END \1aRESTORE-CURSOR>
1788 #WORD *6333473470*
1789 <GFCN \1aTTY-PAD ("VALUE" ATOM CHANNEL ANY FIX) TTY4 OPER5 AMT6>
1790                     <TEMP DATA7 TB19>
1791                     <INTGO>
1792                     <NTHUV TTY4 5 = DATA7 (TYPE TTY-CHANNEL)>
1793                     <NTHUV DATA7 6 = DATA7 (TYPE FIX)>
1794                     <SYSOP 'MTOPR DATA7 23 (RETURN 3) = DATA7>
1795                     <TYPE? DATA7 <TYPE-CODE FALSE> + BOOL11>
1796                     <VEQUAL? DATA7 -1 - PHRASE10 (TYPE FIX)>
1797 BOOL11
1798                     <SET DATA7 9600 (TYPE FIX)>
1799 PHRASE10
1800                     <AND DATA7 #WORD *777777* = DATA7>
1801                     <MUL DATA7 AMT6 = DATA7 (TYPE FIX)>
1802                     <DEAD AMT6>
1803                     <FLOAT DATA7 = DATA7 (TYPE FLOAT)>
1804                     <DIVF DATA7 7000.0 = DATA7 (TYPE FLOAT)>
1805                     <FIX DATA7 = AMT6 (TYPE FIX)>
1806                     <DEAD DATA7>
1807                     <FRAME '\1aTTY-SET-IMAGE>
1808                     <PUSH TTY4>
1809                     <PUSH 'PAD>
1810                     <PUSH 'T>
1811                     <CALL '\1aTTY-SET-IMAGE 3>
1812                     <GVAL 'BUFSTR = DATA7>
1813                     <SET TB19 DATA7>
1814                     <LOOP>
1815 AGAIN20
1816                     <INTGO>
1817                     <VEQUAL? AMT6 0 - PHRASE22 (TYPE FIX)>
1818                     <VEQUAL? TB19 DATA7 + PHRASE26>
1819                     <FRAME '\1aTWAY-WRITE-BUFFER>
1820                     <PUSH TTY4>
1821                     <DEAD TTY4>
1822                     <PUSH OPER5>
1823                     <DEAD OPER5>
1824                     <PUSH TB19>
1825                     <LENUS TB19 = TB19 (TYPE FIX)>
1826                     <LENUS DATA7 = DATA7 (TYPE FIX)>
1827                     <SUB TB19 DATA7 = STACK (TYPE FIX)>
1828                     <DEAD TB19 DATA7>
1829                     <CALL '\1aTWAY-WRITE-BUFFER 4>
1830 PHRASE26
1831                     <RETURN 'T>
1832 PHRASE22
1833                     <EMPUS? DATA7 - PHRASE31 (TYPE STRING)>
1834                     <FRAME '\1aTWAY-WRITE-BUFFER>
1835                     <PUSH TTY4>
1836                     <PUSH OPER5>
1837                     <PUSH TB19>
1838                     <CALL '\1aTWAY-WRITE-BUFFER 3>
1839                     <SET DATA7 TB19>
1840 PHRASE31
1841                     <PUTUS DATA7 1 !\\0>
1842                     <RESTUS DATA7 1 = DATA7 (TYPE STRING)>
1843                     <SUB AMT6 1 = AMT6 (TYPE FIX)>
1844                     <JUMP + AGAIN20>
1845                     <END \1aTTY-PAD>
1846 #WORD *14072610502*
1847 <GFCN \1aTTY-TYPE-CHAR ("VALUE" CHARACTER CHANNEL ANY CHARACTER) CHANNEL4 OPER5 CHAR6>
1848                     <TEMP DATA7:TTY-CHANNEL Q8 QC9:FIX TEMP15>
1849                     <INTGO>
1850                     <NTHUV CHANNEL4 5 = DATA7 (TYPE TTY-CHANNEL)>
1851                     <DEAD CHANNEL4>
1852                     <NTHUV DATA7 11 = Q8>
1853                     <NTHUV DATA7 12 = QC9 (TYPE FIX)>
1854                     <TYPE? Q8 <TYPE-CODE FALSE> - PHRASE11>
1855                     <PUTUV DATA7 11 CHAR6>
1856                     <PUTUV DATA7 12 1 (TYPE FIX)>
1857                     <DEAD DATA7>
1858                     <RETURN CHAR6>
1859                     <DEAD CHAR6>
1860 PHRASE11
1861                     <TYPE? Q8 <TYPE-CODE CHARACTER> - PHRASE12>
1862                     <PUSH Q8>
1863                     <DEAD Q8>
1864                     <PUSH CHAR6>
1865                     <PUSH "        ">
1866                     <UBLOCK <TYPE-CODE STRING> 3 = Q8 (TYPE STRING)>
1867                     <PUTUV DATA7 11 Q8>
1868                     <DEAD Q8>
1869                     <PUTUV DATA7 12 2 (TYPE FIX)>
1870                     <DEAD DATA7>
1871                     <RETURN CHAR6>
1872                     <DEAD CHAR6>
1873 PHRASE12
1874                     <LENUS Q8 = TEMP15 (TYPE FIX)>
1875                     <VEQUAL? QC9 TEMP15 - PHRASE14 (TYPE FIX)>
1876                     <DEAD TEMP15>
1877                     <PUSH Q8>
1878                     <DEAD Q8>
1879                     <PUSH CHAR6>
1880                     <PUSH "         ">
1881                     <UBLOCK <TYPE-CODE STRING> 3 = TEMP15 (TYPE STRING)>
1882                     <PUTUV DATA7 11 TEMP15>
1883                     <DEAD TEMP15>
1884                     <ADD QC9 1 = TEMP15 (TYPE FIX)>
1885                     <DEAD QC9>
1886                     <PUTUV DATA7 12 TEMP15 (TYPE FIX)>
1887                     <DEAD DATA7 TEMP15>
1888                     <RETURN CHAR6>
1889                     <DEAD CHAR6>
1890 PHRASE14
1891                     <ADD QC9 1 = QC9 (TYPE FIX)>
1892                     <PUTUS Q8 QC9 CHAR6>
1893                     <DEAD Q8>
1894                     <PUTUV DATA7 12 QC9 (TYPE FIX)>
1895                     <DEAD DATA7 QC9>
1896                     <RETURN CHAR6>
1897                     <DEAD CHAR6>
1898                     <END \1aTTY-TYPE-CHAR>
1899 #WORD *5030413504*
1900 <GFCN \1aGET-QUEUE-CHAR ("VALUE" ANY TTY-CHANNEL) DATA4>
1901                     <TEMP CT6 TEMP9>
1902                     <INTGO>
1903                     <NTHUV DATA4 12 = CT6 (TYPE FIX)>
1904                     <GRTR? CT6 0 + TAG10 (TYPE FIX)>
1905                     <RETURN %<>>
1906 TAG10
1907                     <SUB CT6 1 = CT6 (TYPE FIX)>
1908                     <PUTUV DATA4 12 CT6 (TYPE FIX)>
1909                     <NTHUV DATA4 11 = TEMP9>
1910                     <TYPE? TEMP9 <TYPE-CODE CHARACTER> - PHRASE14>
1911                     <PUTUV DATA4 11 %<>>
1912                     <DEAD DATA4>
1913                     <JUMP + COND16>
1914 PHRASE14
1915                     <NTH1 TEMP9 = TEMP9>
1916                     <VEQUAL? CT6 0 - PHRASE17 (TYPE FIX)>
1917                     <DEAD CT6>
1918                     <NTHUV DATA4 11 = CT6>
1919                     <TOPU CT6 = CT6>
1920                     <PUTUV DATA4 11 CT6>
1921                     <DEAD DATA4 CT6>
1922                     <JUMP + COND16>
1923 PHRASE17
1924                     <NTHUV DATA4 11 = CT6>
1925                     <REST1 CT6 = CT6>
1926                     <PUTUV DATA4 11 CT6>
1927                     <DEAD DATA4 CT6>
1928 COND16
1929                     <RETURN TEMP9>
1930                     <DEAD TEMP9>
1931                     <END \1aGET-QUEUE-CHAR>
1932 \\f
1933
1934 #WORD *2072607277*
1935 <GFCN \1aTTY-PRINT-DATA ("VALUE" CHARACTER CHANNEL ANY ANY) TTY4 OPER5 OUTCHAN6>
1936                     <TEMP DATA7:TTY-CHANNEL TEMP13>
1937                     <INTGO>
1938                     <NTHUV TTY4 5 = DATA7 (TYPE TTY-CHANNEL)>
1939                     <DEAD TTY4>
1940                     <FRAME '\1aPRINC>
1941                     <PUSH "#TTY-CHANNEL [">
1942                     <PUSH OUTCHAN6>
1943                     <CALL '\1aPRINC 2>
1944                     <FRAME '\1aPRINC>
1945                     <PUSH "JFN:">
1946                     <PUSH OUTCHAN6>
1947                     <CALL '\1aPRINC 2>
1948                     <NTHUV DATA7 1 = TEMP13 (TYPE FIX)>
1949                     <VEQUAL? TEMP13 64 - PHRASE12 (TYPE FIX)>
1950                     <DEAD TEMP13>
1951                     <FRAME '\1aPRINC>
1952                     <PUSH "PRIMARY">
1953                     <PUSH OUTCHAN6>
1954                     <CALL '\1aPRINC 2>
1955                     <JUMP + PHRASE15>
1956 PHRASE12
1957                     <FRAME '\1aPRIN1>
1958                     <NTHUV DATA7 1 = STACK (TYPE FIX)>
1959                     <PUSH OUTCHAN6>
1960                     <CALL '\1aPRIN1 2>
1961 PHRASE15
1962                     <NTHUV DATA7 4 = TEMP13>
1963                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE18>
1964                     <FRAME '\1aPRINC>
1965                     <PUSH " RBUF:">
1966                     <PUSH OUTCHAN6>
1967                     <CALL '\1aPRINC 2>
1968                     <FRAME '\1aPRIN1>
1969                     <FRAME '\1aLENGTH>
1970                     <TOPU TEMP13 = STACK>
1971                     <CALL '\1aLENGTH 1 = STACK>
1972                     <PUSH OUTCHAN6>
1973                     <CALL '\1aPRIN1 2>
1974                     <FRAME '\1aPRINC>
1975                     <PUSH !\/>
1976                     <PUSH OUTCHAN6>
1977                     <CALL '\1aPRINC 2>
1978                     <FRAME '\1aPRIN1>
1979                     <LENUS TEMP13 = STACK (TYPE FIX)>
1980                     <DEAD TEMP13>
1981                     <PUSH OUTCHAN6>
1982                     <CALL '\1aPRIN1 2>
1983                     <FRAME '\1aPRINC>
1984                     <PUSH !\/>
1985                     <PUSH OUTCHAN6>
1986                     <CALL '\1aPRINC 2>
1987                     <FRAME '\1aPRIN1>
1988                     <NTHUV DATA7 5 = STACK (TYPE FIX)>
1989                     <PUSH OUTCHAN6>
1990                     <CALL '\1aPRIN1 2>
1991 PHRASE18
1992                     <NTHUV DATA7 7 = TEMP13>
1993                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE27>
1994                     <FRAME '\1aPRINC>
1995                     <PUSH " WBUF:">
1996                     <PUSH OUTCHAN6>
1997                     <CALL '\1aPRINC 2>
1998                     <FRAME '\1aPRIN1>
1999                     <FRAME '\1aLENGTH>
2000                     <TOPU TEMP13 = STACK>
2001                     <CALL '\1aLENGTH 1 = STACK>
2002                     <PUSH OUTCHAN6>
2003                     <CALL '\1aPRIN1 2>
2004                     <FRAME '\1aPRINC>
2005                     <PUSH !\/>
2006                     <PUSH OUTCHAN6>
2007                     <CALL '\1aPRINC 2>
2008                     <FRAME '\1aPRIN1>
2009                     <LENUS TEMP13 = STACK (TYPE FIX)>
2010                     <DEAD TEMP13>
2011                     <PUSH OUTCHAN6>
2012                     <CALL '\1aPRIN1 2>
2013                     <FRAME '\1aPRINC>
2014                     <PUSH !\/>
2015                     <PUSH OUTCHAN6>
2016                     <CALL '\1aPRINC 2>
2017                     <FRAME '\1aPRIN1>
2018                     <NTHUV DATA7 8 = STACK (TYPE FIX)>
2019                     <PUSH OUTCHAN6>
2020                     <CALL '\1aPRIN1 2>
2021 PHRASE27
2022                     <FRAME '\1aPRINC>
2023                     <PUSH " RFCUR:">
2024                     <PUSH OUTCHAN6>
2025                     <CALL '\1aPRINC 2>
2026                     <FRAME '\1aPRIN1>
2027                     <NTHUV DATA7 10 = STACK (TYPE FIX)>
2028                     <DEAD DATA7>
2029                     <PUSH OUTCHAN6>
2030                     <CALL '\1aPRIN1 2>
2031                     <FRAME '\1aPRINC>
2032                     <PUSH !\]>
2033                     <PUSH OUTCHAN6>
2034                     <DEAD OUTCHAN6>
2035                     <CALL '\1aPRINC 2 = TEMP13>
2036                     <RETURN TEMP13>
2037                     <DEAD TEMP13>
2038                     <END \1aTTY-PRINT-DATA>
2039 <ENDPACKAGE>