4 <ENTRY TS-RJFN TS-MODE TS-BSZ TS-RBUF TS-RBC TS-WJFN TS-WBUF TS-WBC TS-EXTRA TWAY-READ-BYTE TWAY-READ-BUFFER TWAY-WRITE-BUFFER TWAY-WRITE-BYTE TTY-CHANNEL DUMP-WRITE-BUFFER TWAY-BUFOUT>
6 <NEW-CHANNEL-TYPE TWAY DEFAULT OPEN TWAY-OPEN CLOSE TWAY-CLOSE READ-BYTE TWAY-READ-BYTE FILL-READ-BUFFER TWAY-FILL-READ WRITE-BYTE TWAY-WRITE-BYTE READ-BUFFER TWAY-READ-BUFFER WRITE-BUFFER TWAY-WRITE-BUFFER BUFOUT TWAY-BUFOUT PRINT-DATA TWAY-PRINT-DATA>
8 <SETG TS-RJFN %<OFFSET 1 '<OR TTY-CHANNEL TWAY-BASE>>>
12 <SETG TS-MODE %<OFFSET 2 '<OR TTY-CHANNEL TWAY-BASE>>>
16 <SETG TS-BSZ %<OFFSET 3 '<OR TTY-CHANNEL TWAY-BASE>>>
20 <SETG TS-RBUF %<OFFSET 4 '<OR TTY-CHANNEL TWAY-BASE>>>
24 <SETG TS-RBC %<OFFSET 5 '<OR TTY-CHANNEL TWAY-BASE>>>
28 <SETG TS-WJFN %<OFFSET 6 '<OR TTY-CHANNEL TWAY-BASE>>>
32 <SETG TS-WBUF %<OFFSET 7 '<OR TTY-CHANNEL TWAY-BASE>>>
36 <SETG TS-WBC %<OFFSET 8 '<OR TTY-CHANNEL TWAY-BASE>>>
40 <SETG TS-EXTRA %<OFFSET 9 '<OR TTY-CHANNEL TWAY-BASE>>>
44 <SETG TB-RJFN %<OFFSET 1 TWAY-BASE FIX>>
48 <SETG TB-MODE %<OFFSET 2 TWAY-BASE FIX>>
52 <SETG TB-BSZ %<OFFSET 3 TWAY-BASE FIX>>
56 <SETG TB-RBUF %<OFFSET 4 TWAY-BASE '<OR FALSE STRING UVECTOR>>>
60 <SETG TB-RBC %<OFFSET 5 TWAY-BASE FIX>>
64 <SETG TB-WJFN %<OFFSET 6 TWAY-BASE '<OR FIX FALSE>>>
68 <SETG TB-WBUF %<OFFSET 7 TWAY-BASE '<OR FALSE STRING UVECTOR>>>
72 <SETG TB-WBC %<OFFSET 8 TWAY-BASE FIX>>
76 <NEWTYPE TWAY-BASE VECTOR '<<PRIMTYPE VECTOR> FIX FIX FIX <OR FALSE STRING UVECTOR> FIX <OR FIX FALSE> <OR FALSE STRING UVECTOR> FIX>>
78 <SETG BUFFERED <UVECTOR 0 2 7 13 14>>
80 <GDECL (BUFFERED) <UVECTOR [REST FIX]>>
83 <GFCN
\1aTWAY-OPEN ("VALUE" <OR FALSE TWAY-BASE> ANY ANY STRING STRING "OPTIONAL" STRING <OR FIX ATOM FALSE> <OR FIX ATOM FALSE>) STYPE8 OPER9 NAME10 MODS11 BYTES12 OBUF?13 IBUF?14>
84 <OPT-DISPATCH 4 %<> OPT4 OPT5 OPT6 OPT7>
92 <TEMP (NEW?15 %<>) (WRITE?20 %<>) (BUF?21 %<>) TEMP24 TEMP25 TEMP26 TEMP27 TEMP28 MODE16:FIX BSZ19:FIX>
94 <IFCAN "STRING-EQUAL?">
95 <STRING-EQUAL? MODS11 "READ" - PHRASE23>
96 <ENDIF "STRING-EQUAL?">
97 <IFCANNOT "STRING-EQUAL?">
99 <SET TEMP25 "READ" (TYPE STRING)>
100 <LENUS TEMP24 = TEMP26 (TYPE FIX)>
101 <VEQUAL? TEMP26 4 - PHRASE23>
102 <LOOP (TEMP24 VALUE LENGTH) (TEMP25 VALUE LENGTH) (TEMP26 VALUE)>
104 <NTHUS TEMP24 1 = TEMP27>
105 <NTHUS TEMP25 1 = TEMP28>
106 <VEQUAL? TEMP27 TEMP28 - PHRASE23>
108 <RESTUS TEMP24 1 = TEMP24 (TYPE STRING)>
109 <RESTUS TEMP25 1 = TEMP25 (TYPE STRING)>
110 <SUB TEMP26 1 = TEMP26 (TYPE FIX)>
111 <GRTR? TEMP26 0 + TAG29 (TYPE FIX)>
112 <ENDIF "STRING-EQUAL?">
113 <SET MODE16 81952 (TYPE FIX)>
116 <IFCAN "STRING-EQUAL?">
117 <STRING-EQUAL? MODS11 "CREATE" - PHRASE30>
118 <ENDIF "STRING-EQUAL?">
119 <IFCANNOT "STRING-EQUAL?">
121 <SET TEMP24 "CREATE" (TYPE STRING)>
122 <LENUS TEMP25 = TEMP28 (TYPE FIX)>
123 <VEQUAL? TEMP28 6 - PHRASE30>
124 <LOOP (TEMP25 VALUE LENGTH) (TEMP24 VALUE LENGTH) (TEMP28 VALUE)>
126 <NTHUS TEMP25 1 = TEMP27>
127 <NTHUS TEMP24 1 = TEMP26>
128 <VEQUAL? TEMP27 TEMP26 - PHRASE30>
130 <RESTUS TEMP25 1 = TEMP25 (TYPE STRING)>
131 <RESTUS TEMP24 1 = TEMP24 (TYPE STRING)>
132 <SUB TEMP28 1 = TEMP28 (TYPE FIX)>
133 <GRTR? TEMP28 0 + TAG32 (TYPE FIX)>
134 <ENDIF "STRING-EQUAL?">
135 <SET NEW?15 'T (TYPE ATOM)>
136 <SET WRITE?20 'T (TYPE ATOM)>
137 <SET MODE16 114720 (TYPE FIX)>
140 <IFCAN "STRING-EQUAL?">
141 <STRING-EQUAL? MODS11 "MODIFY" - PHRASE33>
142 <ENDIF "STRING-EQUAL?">
143 <IFCANNOT "STRING-EQUAL?">
145 <SET TEMP25 "MODIFY" (TYPE STRING)>
146 <LENUS TEMP24 = TEMP26 (TYPE FIX)>
147 <VEQUAL? TEMP26 6 - PHRASE33>
148 <LOOP (TEMP24 VALUE LENGTH) (TEMP25 VALUE LENGTH) (TEMP26 VALUE)>
150 <NTHUS TEMP24 1 = TEMP27>
151 <NTHUS TEMP25 1 = TEMP28>
152 <VEQUAL? TEMP27 TEMP28 - PHRASE33>
154 <RESTUS TEMP24 1 = TEMP24 (TYPE STRING)>
155 <RESTUS TEMP25 1 = TEMP25 (TYPE STRING)>
156 <SUB TEMP26 1 = TEMP26 (TYPE FIX)>
157 <GRTR? TEMP26 0 + TAG35 (TYPE FIX)>
158 <ENDIF "STRING-EQUAL?">
159 <SET WRITE?20 'T (TYPE ATOM)>
160 <SET MODE16 114720 (TYPE FIX)>
170 <IFCAN "STRING-EQUAL?">
171 <STRING-EQUAL? BYTES12 "ASCII" - PHRASE39>
172 <ENDIF "STRING-EQUAL?">
173 <IFCANNOT "STRING-EQUAL?">
175 <SET TEMP24 "ASCII" (TYPE STRING)>
176 <LENUS TEMP25 = TEMP28 (TYPE FIX)>
177 <VEQUAL? TEMP28 5 - PHRASE39>
178 <LOOP (TEMP25 VALUE LENGTH) (TEMP24 VALUE LENGTH) (TEMP28 VALUE)>
180 <NTHUS TEMP25 1 = TEMP27>
181 <NTHUS TEMP24 1 = TEMP26>
182 <VEQUAL? TEMP27 TEMP26 - PHRASE39>
184 <RESTUS TEMP25 1 = TEMP25 (TYPE STRING)>
185 <RESTUS TEMP24 1 = TEMP24 (TYPE STRING)>
186 <SUB TEMP28 1 = TEMP28 (TYPE FIX)>
187 <GRTR? TEMP28 0 + TAG41 (TYPE FIX)>
188 <ENDIF "STRING-EQUAL?">
189 <SET BSZ19 7 (TYPE FIX)>
192 <IFCAN "STRING-EQUAL?">
193 <STRING-EQUAL? BYTES12 "BINARY" - PHRASE42>
194 <ENDIF "STRING-EQUAL?">
195 <IFCANNOT "STRING-EQUAL?">
197 <SET TEMP25 "BINARY" (TYPE STRING)>
198 <LENUS TEMP24 = TEMP26 (TYPE FIX)>
199 <VEQUAL? TEMP26 6 - PHRASE42>
200 <LOOP (TEMP24 VALUE LENGTH) (TEMP25 VALUE LENGTH) (TEMP26 VALUE)>
202 <NTHUS TEMP24 1 = TEMP27>
203 <NTHUS TEMP25 1 = TEMP28>
204 <VEQUAL? TEMP27 TEMP28 - PHRASE42>
206 <RESTUS TEMP24 1 = TEMP24 (TYPE STRING)>
207 <RESTUS TEMP25 1 = TEMP25 (TYPE STRING)>
208 <SUB TEMP26 1 = TEMP26 (TYPE FIX)>
209 <GRTR? TEMP26 0 + TAG44 (TYPE FIX)>
210 <ENDIF "STRING-EQUAL?">
211 <SET BSZ19 36 (TYPE FIX)>
215 <PUSH 'ILLEGAL-BYTE-SIZE>
228 <CALL '
\1aGET-JFN 4 = NEW?15>
230 <TYPE? TEMP25 <TYPE-CODE FALSE> + PHRASE48>
231 <TYPE? IBUF?14 <TYPE-CODE FIX> + BOOL52>
232 <TYPE? OBUF?13 <TYPE-CODE FIX> - PHRASE62>
234 <FRAME '
\1aGET-DEVICE-TYPE>
236 <CALL '
\1aGET-DEVICE-TYPE 1 = TEMP24>
237 <GVAL 'BUFFERED = TEMP28>
238 <TYPE? TEMP24 <TYPE-CODE FIX> - PHRASE54>
239 <EMPUU? TEMP28 + PHRASE54>
240 <LOOP (TEMP24 VALUE) (TEMP28 LENGTH VALUE)>
242 <NTHUU TEMP28 1 = TEMP27>
243 <VEQUAL? TEMP27 TEMP24 + TAG55>
245 <RESTUU TEMP28 1 = TEMP28 (TYPE UVECTOR)>
246 <EMPUU? TEMP28 - TAG56>
249 <SET BUF?21 'T (TYPE ATOM)>
251 <TYPE? IBUF?14 <TYPE-CODE FIX> - PHRASE60>
254 <TYPE? OBUF?13 <TYPE-CODE FIX> - PHRASE62>
264 <TYPE? TEMP28 <TYPE-CODE FALSE> + PHRASE65>
265 <FRAME '
\1aMAKE-BUFFER>
267 <CALL '
\1aMAKE-BUFFER 1 = TEMP28>
272 <SET TEMP28 WRITE?20>
273 <VEQUAL? TEMP28 0 + PHRASE68>
279 <SET TEMP28 WRITE?20>
281 <VEQUAL? TEMP28 0 + PHRASE70>
284 <TYPE? TEMP28 <TYPE-CODE FALSE> + PHRASE70>
285 <FRAME '
\1aMAKE-BUFFER>
288 <CALL '
\1aMAKE-BUFFER 1 = TEMP28>
293 <UBLOCK <TYPE-CODE VECTOR> 8 = TEMP28>
294 <CHTYPE TEMP28 <TYPE-CODE TWAY-BASE> = TEMP25>
302 <GFCN
\1aMAKE-BUFFER ("VALUE" <OR STRING <UVECTOR [64 FIX] [REST FIX]>> FIX) BSZ4>
305 <VEQUAL? BSZ4 7 - PHRASE6 (TYPE FIX)>
307 <UUBLOCK <TYPE-CODE STRING> 320 = TEMP7 (TYPE STRING)>
311 <UUBLOCK <TYPE-CODE UVECTOR> 64 = TEMP7 (TYPE UVECTOR)>
319 <GFCN
\1aTWAY-READ-BYTE ("VALUE" ANY CHANNEL ANY) CHANNEL4 OPER5>
320 <TEMP DATA6 IBUF7 TEMP14 TEMP22>
322 <NTHUV CHANNEL4 5 = DATA6>
323 <NTHUV DATA6 4 = IBUF7>
324 <TYPE? IBUF7 <TYPE-CODE FALSE> + PHRASE11>
325 <NTHUV DATA6 5 = TEMP14 (TYPE FIX)>
326 <VEQUAL? TEMP14 0 - PHRASE13 (TYPE FIX)>
328 <FRAME '
\1aFCHANNEL-OP>
331 <PUSH 'FILL-READ-BUFFER>
332 <CALL '
\1aFCHANNEL-OP 2 = TEMP14>
333 <TYPE? TEMP14 <TYPE-CODE FALSE> - PHRASE18>
337 <NTHUV DATA6 4 = IBUF7>
339 <NTHUV DATA6 5 = TEMP22 (TYPE FIX)>
340 <VEQUAL? TEMP22 0 - PHRASE21 (TYPE FIX)>
342 <SET TEMP22 %<> (TYPE FALSE)>
345 <NTH1 IBUF7 = TEMP14>
346 <NTHUV DATA6 5 = TEMP22 (TYPE FIX)>
347 <SUB TEMP22 1 = TEMP22 (TYPE FIX)>
348 <PUTUV DATA6 5 TEMP22 (TYPE FIX)>
350 <REST1 IBUF7 = TEMP22>
352 <PUTUV DATA6 4 TEMP22>
358 <NTHUV DATA6 1 = TEMP22 (TYPE FIX)>
359 <SYSOP 'BIN TEMP22 (RETURN 2) = TEMP14>
362 <TYPE? TEMP22 <TYPE-CODE FALSE> + COND30>
363 <NTHUV DATA6 3 = TEMP22 (TYPE FIX)>
365 <VEQUAL? TEMP22 7 - PHRASE31 (TYPE FIX)>
367 <CHTYPE TEMP14 <TYPE-CODE CHARACTER> = TEMP22>
376 <END
\1aTWAY-READ-BYTE>
379 <GFCN
\1aTWAY-FILL-READ ("VALUE" <OR FALSE FIX> CHANNEL ANY) CHANNEL4 OPER5>
380 <TEMP DATA6 JFN7 TEMP11 BUF8 CT10:FIX>
382 <NTHUV CHANNEL4 5 = DATA6>
384 <NTHUV DATA6 1 = JFN7 (TYPE FIX)>
385 <NTHUV DATA6 4 = TEMP11>
390 <CALL '
\1aLENGTH 1 = CT10>
391 <SUB 0 CT10 = TEMP11 (TYPE FIX)>
392 <SYSOP 'SIN-JSYS JFN7 BUF8 TEMP11 = JFN7>
395 <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE13>
399 <CALL '
\1aLENGTH 1 = TEMP11>
400 <SUB CT10 TEMP11 = CT10 (TYPE FIX)>
404 <PUTUV DATA6 5 CT10 (TYPE FIX)>
411 <END
\1aTWAY-FILL-READ>
414 <GFCN
\1aTWAY-READ-BUFFER ("VALUE" <OR FALSE FIX> CHANNEL ANY <OR STRING UVECTOR> "OPTIONAL" FIX FIX) CHANNEL7 OPER8 BUF9 LEN10 CONT11>
415 <OPT-DISPATCH 3 %<> OPT4 OPT5 OPT6>
421 <TEMP DATA12 IBUF13 TEMP18:FIX TEMP19 BC14:FIX TEMP28 CT47:FIX TEMP57 IB64 B65>
423 <TYPE? LEN10 <TYPE-CODE UNBOUND> - TAG15>
426 <CALL '
\1aLENGTH 1 = LEN10>
428 <NTHUV CHANNEL7 5 = DATA12>
429 <NTHUV DATA12 4 = IBUF13>
433 <GRTR? TEMP18 TEMP19 - TAG20>
434 <SET TEMP18 TEMP19 (TYPE FIX)>
439 <TYPE? IBUF13 <TYPE-CODE FALSE> - PHRASE22>
440 <NTHUV DATA12 1 = TEMP18 (TYPE FIX)>
446 <CALL '
\1aREST 2 = TEMP19>
447 <SUB LEN10 CONT11 = BC14 (TYPE FIX)>
449 <SUB 0 BC14 = TEMP28 (TYPE FIX)>
450 <SYSOP 'SIN-JSYS TEMP18 TEMP19 TEMP28 = IBUF13>
451 <DEAD TEMP18 TEMP19 TEMP28>
453 <TYPE? TEMP19 <TYPE-CODE FALSE> + EXIT37>
457 <CALL '
\1aLENGTH 1 = TEMP28>
458 <SUB BC14 TEMP28 = BC14 (TYPE FIX)>
460 <ADD CONT11 BC14 = TEMP19 (TYPE FIX)>
467 <CALL '
\1aPRIMTYPE 1 = TEMP28>
470 <CALL '
\1aPRIMTYPE 1 = TEMP19>
471 <VEQUAL? TEMP28 TEMP19 + PHRASE32>
474 <PUSH 'WRONG-TYPE-BUFFER>
476 <PUSH 'TWAY-READ-BUFFER>
483 <CALL '
\1aREST 2 = BUF9>
484 <SUB LEN10 CONT11 = LEN10 (TYPE FIX)>
487 <SET TEMP28 -1 (TYPE FIX)>
491 <NTHUV DATA12 5 = BC14 (TYPE FIX)>
492 <VEQUAL? BC14 0 + PHRASE42 (TYPE FIX)>
494 <GRTR? TEMP28 LEN10 - TAG45>
495 <SET TEMP28 LEN10 (TYPE FIX)>
497 <SET CT47 0 (TYPE FIX)>
498 <TYPE? IBUF13 <TYPE-CODE STRING> - PHRASE50>
499 <SET TEMP57 IBUF13 (TYPE STRING)>
500 <CHTYPE BUF9 <TYPE-CODE STRING> = TEMP19>
504 <EMPUS? TEMP57 + MAPAP74>
505 <EMPUS? TEMP19 + MAPAP74>
508 <NTHUS IB64 1 = IB64 (TYPE CHARACTER)>
511 <ADD CT47 1 = CT47 (TYPE FIX)>
512 <LESS? CT47 TEMP28 - MAPAP74 (TYPE FIX)>
513 <RESTUS TEMP57 1 = TEMP57 (TYPE STRING)>
514 <RESTUS TEMP19 1 = TEMP19 (TYPE STRING)>
517 <TYPE? IBUF13 <TYPE-CODE UVECTOR> - MAPAP74>
518 <SET TEMP19 IBUF13 (TYPE UVECTOR)>
519 <CHTYPE BUF9 <TYPE-CODE UVECTOR> = TEMP57>
523 <EMPUU? TEMP19 + MAPAP74>
524 <EMPUU? TEMP57 + MAPAP74>
527 <NTHUU IB64 1 = IB64 (TYPE FIX)>
530 <ADD CT47 1 = CT47 (TYPE FIX)>
531 <LESS? CT47 TEMP28 - MAPAP74 (TYPE FIX)>
532 <RESTUU TEMP19 1 = TEMP19 (TYPE UVECTOR)>
533 <RESTUU TEMP57 1 = TEMP57 (TYPE UVECTOR)>
540 <CALL '
\1aREST 2 = BUF9>
541 <ADD TEMP28 TEMP18 = TEMP18 (TYPE FIX)>
546 <CALL '
\1aREST 2 = IBUF13>
547 <PUTUV DATA12 4 IBUF13>
549 <SUB BC14 TEMP28 = IBUF13 (TYPE FIX)>
551 <PUTUV DATA12 5 IBUF13 (TYPE FIX)>
553 <SUB LEN10 TEMP28 = LEN10 (TYPE FIX)>
555 <VEQUAL? LEN10 0 + BOOL87 (TYPE FIX)>
556 <VEQUAL? TEMP28 0 - PHRASE86 (TYPE FIX)>
561 <FRAME '
\1aFCHANNEL-OP>
563 <PUSH 'FILL-READ-BUFFER>
564 <CALL '
\1aFCHANNEL-OP 2 = IBUF13>
565 <TYPE? IBUF13 <TYPE-CODE FALSE> + BOOL95>
567 <NTHUV DATA12 5 = IB64 (TYPE FIX)>
568 <VEQUAL? IB64 0 - PHRASE94 (TYPE FIX)>
574 <NTHUV DATA12 4 = IBUF13>
579 <END
\1aTWAY-READ-BUFFER>
584 <GFCN
\1aTWAY-WRITE-BYTE ("VALUE" <OR CHARACTER FIX> CHANNEL ANY <OR CHARACTER FIX>) CHANNEL4 OPER5 BYTE6>
585 <TEMP DATA7 JFN8 BUF9 TEMP15>
587 <NTHUV CHANNEL4 5 = DATA7>
588 <NTHUV DATA7 6 = JFN8>
589 <NTHUV DATA7 7 = BUF9>
590 <TYPE? JFN8 <TYPE-CODE FALSE> - PHRASE11>
592 <PUSH 'CHANNEL-NOT-OPEN-FOR-WRITING>
595 <PUSH 'TWAY-WRITE-BYTE>
598 <TYPE? BUF9 <TYPE-CODE FALSE> - PHRASE14>
599 <CHTYPE BYTE6 <TYPE-CODE FIX> = TEMP15>
600 <SYSOP 'BOUT JFN8 TEMP15 (RETURN 2)>
605 <EMPTY? BUF9 - PHRASE18>
606 <FRAME '
\1aDUMP-WRITE-BUFFER>
608 <CALL '
\1aDUMP-WRITE-BUFFER 1>
609 <NTHUV DATA7 7 = BUF9>
614 <TYPE? BUF9 <TYPE-CODE UVECTOR> - PHRASE22>
615 <CHTYPE BYTE6 <TYPE-CODE FIX> = TEMP15>
618 <CHTYPE BYTE6 <TYPE-CODE CHARACTER> = TEMP15>
623 <REST1 BUF9 = TEMP15>
625 <PUTUV DATA7 7 TEMP15>
627 <NTHUV DATA7 8 = TEMP15 (TYPE FIX)>
628 <ADD TEMP15 1 = TEMP15 (TYPE FIX)>
629 <PUTUV DATA7 8 TEMP15 (TYPE FIX)>
633 <END
\1aTWAY-WRITE-BYTE>
636 <GFCN
\1aDUMP-WRITE-BUFFER ("VALUE" <OR TWAY-BASE TTY-CHANNEL> <OR TWAY-BASE TTY-CHANNEL>) DATA4>
637 <TEMP TEMP9 TEMP14 BUF6>
639 <NTHUV DATA4 8 = TEMP9 (TYPE FIX)>
640 <VEQUAL? TEMP9 0 + PHRASE13 (TYPE FIX)>
642 <NTHUV DATA4 6 = TEMP9>
643 <NTHUV DATA4 7 = TEMP14>
646 <NTHUV DATA4 8 = TEMP14 (TYPE FIX)>
647 <SUB 0 TEMP14 = TEMP14 (TYPE FIX)>
648 <SYSOP 'SOUT TEMP9 BUF6 TEMP14 = TEMP9>
650 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE13>
652 <PUTUV DATA4 8 0 (TYPE FIX)>
654 <NTHUV DATA4 7 = TEMP14>
655 <TOPU TEMP14 = TEMP14>
656 <PUTUV DATA4 7 TEMP14>
660 <END
\1aDUMP-WRITE-BUFFER>
663 <GFCN
\1aTWAY-BUFOUT ("VALUE" <OR ATOM FALSE> CHANNEL ANY "OPTIONAL" <OR ATOM FALSE>) CHANNEL6 OPER7 FORCE?8>
664 <OPT-DISPATCH 2 %<> OPT4 OPT5>
668 <TEMP DATA9 JFN10 BC11:FIX BUF12 TEMP15>
670 <NTHUV CHANNEL6 5 = DATA9>
672 <NTHUV DATA9 6 = JFN10>
673 <NTHUV DATA9 8 = BC11 (TYPE FIX)>
674 <NTHUV DATA9 7 = BUF12>
676 <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE14>
677 <TYPE? BUF12 <TYPE-CODE FALSE> + PHRASE17>
679 <VEQUAL? BC11 0 + PHRASE17 (TYPE FIX)>
681 <FRAME '
\1aDUMP-WRITE-BUFFER>
684 <CALL '
\1aDUMP-WRITE-BUFFER 1>
686 <TYPE? FORCE?8 <TYPE-CODE FALSE> + PHRASE23>
691 <SET TEMP15 'T (TYPE ATOM)>
698 <GFCN
\1aTWAY-WRITE-BUFFER ("VALUE" <OR FALSE FIX> CHANNEL ANY <OR STRING BYTES UVECTOR> "OPTIONAL" FIX) CHANNEL6 OPER7 BUF8 LEN9>
699 <OPT-DISPATCH 3 %<> OPT4 OPT5>
703 <TEMP DATA10 JFN11 OBUF12 TEMP18:FIX TEMP19 TEMP56 TEMP62 B63 OB64>
705 <TYPE? LEN9 <TYPE-CODE UNBOUND> - TAG13>
708 <NTHUV CHANNEL6 5 = DATA10>
709 <NTHUV DATA10 6 = JFN11>
710 <NTHUV DATA10 7 = OBUF12>
711 <TYPE? JFN11 <TYPE-CODE FALSE> - PHRASE16>
713 <PUSH 'CHANNEL-NOT-OPEN-FOR-WRITING>
716 <PUSH 'TWAY-WRITE-BUFFER>
722 <GRTR? TEMP18 TEMP19 - TAG20>
723 <SET TEMP18 TEMP19 (TYPE FIX)>
728 <TYPE? OBUF12 <TYPE-CODE FALSE> + BOOL23>
729 <TYPE OBUF12 = TEMP19>
730 <AND TEMP19 #WORD *7* = TEMP19>
732 <AND TEMP18 #WORD *7* = TEMP18>
733 <VEQUAL? TEMP19 TEMP18 + PHRASE22 (TYPE FIX)>
736 <TYPE? OBUF12 <TYPE-CODE FALSE> + PHRASE26>
738 <FRAME '
\1aDUMP-WRITE-BUFFER>
741 <CALL '
\1aDUMP-WRITE-BUFFER 1>
743 <GRTR? LEN9 0 - PHRASE29 (TYPE FIX)>
744 <SUB 0 LEN9 = TEMP18 (TYPE FIX)>
746 <SYSOP 'SOUT JFN11 BUF8 TEMP18 = OBUF12>
749 <TYPE? TEMP19 <TYPE-CODE FALSE> + COND28>
752 <LENU OBUF12 = JFN11>
754 <SUB TEMP18 JFN11 = TEMP19 (TYPE FIX)>
759 <SET TEMP19 0 (TYPE FIX)>
764 <SET JFN11 0 (TYPE FIX)>
768 <VEQUAL? LEN9 0 - PHRASE42 (TYPE FIX)>
772 <EMPTY? OBUF12 - PHRASE45>
773 <FRAME '
\1aDUMP-WRITE-BUFFER>
775 <CALL '
\1aDUMP-WRITE-BUFFER 1>
776 <NTHUV DATA10 7 = OBUF12>
778 <SET TEMP19 0 (TYPE FIX)>
779 <LENU OBUF12 = TEMP18>
780 <GRTR? TEMP18 LEN9 - TAG47>
781 <SET TEMP18 LEN9 (TYPE FIX)>
783 <TYPE? BUF8 <TYPE-CODE STRING> - PHRASE49>
784 <SET TEMP56 BUF8 (TYPE STRING)>
785 <CHTYPE OBUF12 <TYPE-CODE STRING> = TEMP62>
789 <EMPUS? TEMP56 + MAPAP72>
790 <EMPUS? TEMP62 + MAPAP72>
793 <NTHUS B63 1 = B63 (TYPE CHARACTER)>
796 <ADD TEMP19 1 = TEMP19 (TYPE FIX)>
797 <LESS? TEMP19 TEMP18 - MAPAP72 (TYPE FIX)>
798 <RESTUS TEMP56 1 = TEMP56 (TYPE STRING)>
799 <RESTUS TEMP62 1 = TEMP62 (TYPE STRING)>
802 <CHTYPE BUF8 <TYPE-CODE UVECTOR> = TEMP56>
803 <CHTYPE OBUF12 <TYPE-CODE UVECTOR> = TEMP62>
807 <EMPUU? TEMP56 + MAPAP72>
808 <EMPUU? TEMP62 + MAPAP72>
811 <NTHUU B63 1 = B63 (TYPE FIX)>
814 <ADD TEMP19 1 = TEMP19 (TYPE FIX)>
815 <LESS? TEMP19 TEMP18 - MAPAP72 (TYPE FIX)>
816 <RESTUU TEMP56 1 = TEMP56 (TYPE UVECTOR)>
817 <RESTUU TEMP62 1 = TEMP62 (TYPE UVECTOR)>
824 <CALL '
\1aREST 2 = BUF8>
829 <CALL '
\1aREST 2 = OBUF12>
830 <PUTUV DATA10 7 OBUF12>
831 <NTHUV DATA10 8 = TEMP19 (TYPE FIX)>
832 <ADD TEMP19 TEMP18 = TEMP19 (TYPE FIX)>
833 <PUTUV DATA10 8 TEMP19 (TYPE FIX)>
835 <ADD JFN11 TEMP18 = JFN11 (TYPE FIX)>
836 <SUB LEN9 TEMP18 = LEN9 (TYPE FIX)>
839 <END
\1aTWAY-WRITE-BUFFER>
844 <GFCN
\1aTWAY-CLOSE ("VALUE" <OR TWAY-BASE TTY-CHANNEL> CHANNEL ANY) CHANNEL4 OPER5>
845 <TEMP DATA6 TEMP9 TEMP15>
847 <NTHUV CHANNEL4 5 = DATA6>
849 <NTHUV DATA6 6 = TEMP9>
850 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE8>
852 <NTHUV DATA6 7 = TEMP9>
853 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE11>
855 <FRAME '
\1aDUMP-WRITE-BUFFER>
857 <CALL '
\1aDUMP-WRITE-BUFFER 1>
859 <NTHUV DATA6 6 = TEMP9>
863 <NTHUV DATA6 1 = TEMP9 (TYPE FIX)>
864 <NTHUV DATA6 6 = TEMP15>
865 <EQUAL? TEMP9 TEMP15 + PHRASE14>
867 <NTHUV DATA6 1 = TEMP15 (TYPE FIX)>
868 <SYSOP 'CLOSF TEMP15>
872 <PUTUV DATA6 1 -1 (TYPE FIX)>
878 <GFCN
\1aTWAY-PRINT-DATA ("VALUE" ATOM CHANNEL ANY ANY) CHANNEL4 OPER5 OUTCHAN6>
881 <NTHUV CHANNEL4 5 = DATA7>
884 <PUSH "#TWAY-CHANNEL [">
892 <NTHUV DATA7 1 = STACK (TYPE FIX)>
900 <NTHUV DATA7 2 = STACK (TYPE FIX)>
908 <NTHUV DATA7 3 = STACK (TYPE FIX)>
911 <NTHUV DATA7 4 = TEMP17>
912 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE16>
919 <NTHUV DATA7 5 = STACK (TYPE FIX)>
928 <NTHUV DATA7 4 = TEMP17>
929 <TOPU TEMP17 = STACK>
931 <CALL '
\1aLENGTH 1 = STACK>
935 <NTHUV DATA7 6 = TEMP17>
936 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE28>
943 <NTHUV DATA7 6 = STACK>
946 <NTHUV DATA7 7 = TEMP17>
947 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE28>
954 <NTHUV DATA7 8 = STACK (TYPE FIX)>
963 <NTHUV DATA7 7 = TEMP17>
965 <TOPU TEMP17 = STACK>
967 <CALL '
\1aLENGTH 1 = STACK>
977 <END
\1aTWAY-PRINT-DATA>