2 <MSETG BITS-PER-FIELD 8>
4 <MSETG FIELDS-PER-WORD 4>
6 <MSETG FIELDS-PER-OP <* ,FIELDS-PER-WORD 3>>
10 <MSETG INIT-SHIFT <- <* ,BITS-PER-FIELD ,FIELDS-PER-WORD> ,BITS-PER-FIELD>>
12 <MSETG FIELD-MASK 255>
15 <GFCN
\1aDEFOP ("VALUE" <UVECTOR [REST FIX]> STRING FIX "TUPLE" <TUPLE [REST FIX]>) STR4 CODE5>
16 <MAKTUP MODES6 (WD18 0) (SHFT9:FIX 24) TEMP12 TEMP16 = MODES6>
22 <UBLOCK <TYPE-CODE STRING> 2 = WD18 (TYPE STRING)>
24 <GVAL 'OP-OBLIST = STACK>
25 <CALL '
\1aLOOKUP 2 = TEMP12>
26 <TYPE? TEMP12 <TYPE-CODE FALSE> - BOOL11>
30 <GVAL 'OP-OBLIST = STACK>
31 <CALL '
\1aINSERT 2 = TEMP12>
37 <GVAL 'OP-VECTOR = TEMP12>
38 <LSH CODE5 2 = TEMP16 (TYPE FIX)>
40 <ADD TEMP16 1 = CODE5 (TYPE FIX)>
45 <CALL '
\1aSQUOZE 1 = TEMP16>
46 <PUTUU TEMP12 CODE5 TEMP16>
48 <LENUV MODES6 = TEMP16 (TYPE FIX)>
49 <LSH TEMP16 SHFT9 = WD18 (TYPE FIX)>
51 <CHTYPE MODES6 <TYPE-CODE VECTOR> = TEMP16>
56 <EMPUV? TEMP16 + MAPAP22>
57 <NTHUV TEMP16 1 = MODES6>
58 <SUB SHFT9 8 = SHFT9 (TYPE FIX)>
59 <LSH MODES6 SHFT9 = MODES6 (TYPE FIX)>
60 <OR WD18 MODES6 = WD18>
62 <VEQUAL? SHFT9 0 - PHRASE30 (TYPE FIX)>
63 <SET SHFT9 32 (TYPE FIX)>
64 <ADD CODE5 1 = MODES6 (TYPE FIX)>
65 <GVAL 'OP-VECTOR = TEMP12>
66 <PUTUU TEMP12 MODES6 WD18>
67 <DEAD TEMP12 MODES6 WD18>
68 <SET WD18 0 (TYPE FIX)>
69 <ADD CODE5 1 = CODE5 (TYPE FIX)>
71 <RESTUV TEMP16 1 = TEMP16 (TYPE VECTOR)>
74 <ADD CODE5 1 = SHFT9 (TYPE FIX)>
76 <GVAL 'OP-VECTOR = TEMP12>
77 <PUTUU TEMP12 SHFT9 WD18>
84 <GFCN
\1aGET-INST-INFO ("VALUE" UVECTOR FIX) INST4>
85 <TEMP TEMP5:UVECTOR TEMP6:FIX>
87 <GVAL 'OP-VECTOR = TEMP5>
88 <LSH INST4 2 = TEMP6 (TYPE FIX)>
90 <RESTUU TEMP5 TEMP6 = TEMP5 (TYPE UVECTOR)>
94 <END
\1aGET-INST-INFO>
97 <GFCN
\1aGET-OP-INFO ("VALUE" FIX FIX <UVECTOR [4 FIX]>) FNUM4 OP-INF5>
98 <TEMP WD6:FIX TEMP11:FIX>
100 <LESS? FNUM4 8 + PHRASE8 (TYPE FIX)>
101 <SUB FNUM4 9 = FNUM4 (TYPE FIX)>
102 <NTHUU OP-INF5 4 = WD6 (TYPE FIX)>
106 <LESS? FNUM4 4 + PHRASE9 (TYPE FIX)>
107 <SUB FNUM4 5 = FNUM4 (TYPE FIX)>
108 <NTHUU OP-INF5 3 = WD6 (TYPE FIX)>
112 <NTHUU OP-INF5 2 = WD6 (TYPE FIX)>
114 <ADD FNUM4 1 = FNUM4 (TYPE FIX)>
116 <SUB FNUM4 4 = TEMP11 (TYPE FIX)>
118 <LSH TEMP11 3 = TEMP11 (TYPE FIX)>
119 <LSH WD6 TEMP11 = TEMP11 (TYPE FIX)>
121 <AND TEMP11 #WORD *377* = TEMP11>
127 <GFCN
\1aADDRESS-MODES ("VALUE" <OR ATOM FALSE SPLICE> STRING STRING) MODES4 SIZES5>
128 <TEMP (MODEN6:FIX 0) (SIZEN7:FIX 0) TEMP14:STRING MODE19:CHARACTER TEMP26 SIZE31 TEMP35>
130 <SET TEMP14 MODES4 (TYPE STRING)>
135 <EMPUS? TEMP14 + MAPAP12>
136 <NTHUS TEMP14 1 = MODE19>
137 <SET SIZEN7 0 (TYPE FIX)>
138 <SET TEMP26 SIZES5 (TYPE STRING)>
142 <EMPUS? TEMP26 + MAPAP24>
143 <NTHUS TEMP26 1 = SIZE31>
150 <UBLOCK <TYPE-CODE STRING> 3 = SIZE31 (TYPE STRING)>
152 <GVAL 'OP-OBLIST = STACK>
153 <CALL '
\1aLOOKUP 2 = TEMP35>
154 <TYPE? TEMP35 <TYPE-CODE FALSE> - BOOL34>
158 <GVAL 'OP-OBLIST = STACK>
159 <CALL '
\1aINSERT 2 = TEMP35>
163 <LSH MODEN6 3 = TEMP35 (TYPE FIX)>
164 <ADD TEMP35 SIZEN7 = STACK (TYPE FIX)>
167 <ADD SIZEN7 1 = SIZEN7 (TYPE FIX)>
168 <RESTUS TEMP26 1 = TEMP26 (TYPE STRING)>
171 <ADD MODEN6 1 = MODEN6 (TYPE FIX)>
172 <RESTUS TEMP14 1 = TEMP14 (TYPE STRING)>
175 <SET SIZEN7 -1 (TYPE FIX)>
176 <SET TEMP26 %<> (TYPE FALSE)>
177 <SET TEMP14 SIZES5 (TYPE STRING)>
182 <EMPUS? TEMP14 + MAPAP43>
183 <NTHUS TEMP14 1 = MODE19>
189 <UBLOCK <TYPE-CODE STRING> 2 = SIZE31 (TYPE STRING)>
191 <GVAL 'OP-OBLIST = STACK>
192 <CALL '
\1aLOOKUP 2 = TEMP26>
193 <TYPE? TEMP26 <TYPE-CODE FALSE> - BOOL49>
197 <GVAL 'OP-OBLIST = STACK>
198 <CALL '
\1aINSERT 2 = TEMP26>
202 <ADD SIZEN7 1 = SIZEN7 (TYPE FIX)>
204 <CALL '
\1aMSETG 2 = TEMP26>
205 <RESTUS TEMP14 1 = TEMP14 (TYPE STRING)>
210 <END
\1aADDRESS-MODES>
212 <SETG OP-OBLIST <OBLIST? DEFOP>>
215 <GFCN
\1aINIT-OP-DEFS ("VALUE" <UVECTOR [REST FIX]>)>
218 <UUBLOCK <TYPE-CODE UVECTOR> 1024 = TEMP4>
220 <LOOP (TEMP5 VALUE LENGTH)>
222 <EMPUU? TEMP5 + ISTRE7>
224 <RESTUU TEMP5 1 = TEMP5>
227 <SETG 'OP-VECTOR TEMP4>
230 <END
\1aINIT-OP-DEFS>
232 <GDECL (OP-VECTOR) <UVECTOR [REST FIX]>>
234 <MSETG SQUOZE-MULF <* 40 40 40 40 40>>
237 <GFCN
\1aSQUOZE ("VALUE" FIX STRING) STR4>
238 <TEMP (VAL5:FIX 0) (COUNT6:FIX 6) (TC8:FIX 0) (MULF9:FIX 102400000) C7:CHARACTER>
243 <EMPUS? STR4 + BOOL16 (TYPE STRING)>
244 <LESS? COUNT6 1 - PHRASE15 (TYPE FIX)>
249 <NTHUS STR4 1 = C7 (TYPE CHARACTER)>
250 <CHTYPE C7 <TYPE-CODE FIX> = TC8>
251 <RESTUS STR4 1 = STR4 (TYPE STRING)>
252 <LESS? TC8 48 + PHRASE20 (TYPE FIX)>
253 <GRTR? TC8 57 + PHRASE20 (TYPE FIX)>
254 <SUB TC8 47 = TC8 (TYPE FIX)>
257 <LESS? TC8 65 + PHRASE22 (TYPE FIX)>
258 <GRTR? TC8 90 + PHRASE22 (TYPE FIX)>
259 <SUB TC8 54 = TC8 (TYPE FIX)>
262 <LESS? TC8 97 + PHRASE24 (TYPE FIX)>
263 <GRTR? TC8 122 + PHRASE24 (TYPE FIX)>
264 <SUB TC8 86 = TC8 (TYPE FIX)>
267 <VEQUAL? C7 !\. - PHRASE26>
268 <SET TC8 37 (TYPE FIX)>
271 <VEQUAL? C7 !\$ - PHRASE27>
272 <SET TC8 38 (TYPE FIX)>
275 <VEQUAL? C7 !\% - AGAIN13>
277 <SET TC8 39 (TYPE FIX)>
279 <SUB COUNT6 1 = COUNT6 (TYPE FIX)>
280 <MUL TC8 MULF9 = TC8 (TYPE FIX)>
281 <ADD TC8 VAL5 = VAL5 (TYPE FIX)>
283 <DIV MULF9 40 = MULF9 (TYPE FIX)>
287 <MSETG SQUOZE-DIVF <* 40 40 40 40 40>>
290 <GFCN
\1aPRINT-SQUOZE ("VALUE" ATOM FIX "OPTIONAL" CHANNEL) NUM6 OUTCHAN7>
291 <OPT-DISPATCH 1 %<> OPT4 OPT5>
295 <TEMP TEMP3:LBIND TEMP11 (DIVF8:FIX 102400000) VAL17>
297 <GETS 'BIND = TEMP3 (TYPE LBIND)>
298 <TYPE? OUTCHAN7 <TYPE-CODE UNBOUND> - TAG9>
299 <GEN-LVAL 'OUTCHAN = OUTCHAN7>
301 <BBIND 'OUTCHAN 'CHANNEL 'FIX OUTCHAN7>
307 <DIV NUM6 DIVF8 = TEMP11 (TYPE FIX)>
308 <MOD TEMP11 40 = VAL17 (TYPE FIX)>
310 <LESS? NUM6 0 - PHRASE21 (TYPE FIX)>
311 <GRTR? VAL17 0 - PHRASE21 (TYPE FIX)>
316 <CALL '
\1a+ 2 = VAL17>
317 <MUL VAL17 DIVF8 = TEMP11 (TYPE FIX)>
318 <SUB NUM6 TEMP11 = NUM6 (TYPE FIX)>
321 <VEQUAL? VAL17 0 - PHRASE29 (TYPE FIX)>
322 <SET TEMP11 'T (TYPE ATOM)>
325 <GRTR? VAL17 10 - PHRASE32 (TYPE FIX)>
326 <LESS? VAL17 37 - PHRASE32 (TYPE FIX)>
328 <ADD VAL17 54 = TEMP11 (TYPE FIX)>
330 <CHTYPE TEMP11 <TYPE-CODE CHARACTER> = STACK>
332 <NTHR 'OUTCHAN 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
333 <NTHR TEMP11 1 = STACK (RECORD-TYPE LBIND)>
338 <GRTR? VAL17 10 + PHRASE37 (TYPE FIX)>
340 <ADD VAL17 47 = TEMP11 (TYPE FIX)>
342 <CHTYPE TEMP11 <TYPE-CODE CHARACTER> = STACK>
344 <NTHR 'OUTCHAN 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
345 <NTHR TEMP11 1 = STACK (RECORD-TYPE LBIND)>
350 <VEQUAL? VAL17 37 - PHRASE41 (TYPE FIX)>
353 <NTHR 'OUTCHAN 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
354 <NTHR TEMP11 1 = STACK (RECORD-TYPE LBIND)>
359 <VEQUAL? VAL17 38 - PHRASE45 (TYPE FIX)>
362 <NTHR 'OUTCHAN 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
363 <NTHR TEMP11 1 = STACK (RECORD-TYPE LBIND)>
368 <VEQUAL? VAL17 39 - PHRASE49 (TYPE FIX)>
372 <NTHR 'OUTCHAN 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
373 <NTHR TEMP11 1 = STACK (RECORD-TYPE LBIND)>
377 <VEQUAL? DIVF8 1 - PHRASE54 (TYPE FIX)>
378 <SET TEMP11 'T (TYPE ATOM)>
381 <DIV DIVF8 40 = DIVF8 (TYPE FIX)>
389 <END
\1aPRINT-SQUOZE>