Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / lnqgen.mima
1
2 <PACKAGE "LNQGEN">
3
4 <ENTRY LENGTH?-GEN>
5
6 <USE "COMPDEC" "CODGEN" "CHKDCL" "ADVMESS" "STRGEN" "MIMGEN">
7
8 #WORD *437312131*
9                     <GFCN \1aLENGTH?-GEN ("VALUE" ANY NODE ANY "OPTIONAL" <OR FALSE ATOM> <OR FALSE ATOM> <OR FALSE ATOM> ANY) N9 W10 NOTF11 BRANCH12 DIR13 SETF14>
10                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
11 OPT4
12                     <PUSH %<>>
13 OPT5
14                     <PUSH %<>>
15 OPT6
16                     <PUSH %<>>
17 OPT7
18                     <PUSH %<>>
19 OPT8
20                     <TEMP (TEMP36 %<>) STR16 NUM18:NODE TYP19 TPS20:ATOM FLS22 SDIR23 B324:ATOM ANUM27 B229 RW34 NK25 NN26:FIX>
21                     <INTGO>
22                     <NTHUV N9 5 = TEMP36 (TYPE LIST)>
23                     <NTHL TEMP36 1 = STR16 (TYPE NODE)>
24                     <DEAD TEMP36>
25                     <NTHUV N9 5 = TEMP36 (TYPE LIST)>
26                     <RESTL TEMP36 1 = TEMP36 (TYPE LIST)>
27                     <NTHL TEMP36 1 = NUM18 (TYPE NODE)>
28                     <DEAD TEMP36>
29                     <NTHUV STR16 3 = TYP19>
30                     <FRAME '\1aSTRUCTYP>
31                     <PUSH TYP19>
32                     <CALL '\1aSTRUCTYP 1 = TPS20>
33                     <FRAME '\1aISTYPE?>
34                     <PUSH TYP19>
35                     <CALL '\1aISTYPE? 1>
36                     <EQUAL? W10 'FLUSHED - TAG41>
37                     <SET FLS22 'T (TYPE ATOM)>
38                     <JUMP + TAG42>
39 TAG41
40                     <SET FLS22 %<> (TYPE FALSE)>
41 TAG42
42                     <SET SDIR23 DIR13>
43                     <FRAME '\1aMAKE-TAG>
44                     <CALL '\1aMAKE-TAG 0 = B324>
45                     <VEQUAL? FLS22 0 + PHRASE45>
46                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE45>
47                     <SET TEMP36 BRANCH12>
48                     <JUMP + PHRASE47>
49 PHRASE45
50                     <FRAME '\1aMAKE-TAG>
51                     <CALL '\1aMAKE-TAG 0 = TEMP36>
52 PHRASE47
53                     <SET B229 TEMP36>
54                     <DEAD TEMP36>
55                     <SET RW34 W10>
56                     <NTHUV NUM18 1 = TEMP36 (TYPE FIX)>
57                     <VEQUAL? TEMP36 2 - PHRASE50 (TYPE FIX)>
58                     <DEAD TEMP36>
59                     <SET NK25 'T (TYPE ATOM)>
60                     <NTHUV NUM18 4 = NN26 (TYPE FIX)>
61                     <LESS? NN26 0 + BOOL53 (TYPE FIX)>
62                     <GRTR? NN26 262144 - PHRASE57 (TYPE FIX)>
63 BOOL53
64                     <FRAME '\1aCOMPILE-ERROR>
65                     <PUSH "Argument out of range to LENGTH? ">
66                     <PUSH NN26>
67                     <PUSH N9>
68                     <DEAD N9>
69                     <CALL '\1aCOMPILE-ERROR 3>
70                     <JUMP + PHRASE57>
71 PHRASE50
72                     <SET NK25 %<> (TYPE FALSE)>
73 PHRASE57
74                     <TYPE? NOTF11 <TYPE-CODE FALSE> + TAG61>
75                     <TYPE? DIR13 <TYPE-CODE FALSE> - TAG60>
76                     <DEAD DIR13>
77                     <SET DIR13 'T (TYPE ATOM)>
78                     <JUMP + TAG61>
79 TAG60
80                     <SET DIR13 %<> (TYPE FALSE)>
81 TAG61
82                     <TYPE? SETF14 <TYPE-CODE FALSE> + PHRASE63>
83                     <DEAD SETF14>
84                     <FRAME '\1aDEALLOCATE-TEMP>
85                     <FRAME '\1aMOVE-ARG>
86                     <FRAME '\1aREFERENCE>
87                     <TYPE? SDIR23 <TYPE-CODE FALSE> - TAG67>
88                     <SET TEMP36 'T (TYPE ATOM)>
89                     <JUMP + TAG68>
90 TAG67
91                     <SET TEMP36 %<> (TYPE FALSE)>
92 TAG68
93                     <PUSH TEMP36>
94                     <DEAD TEMP36>
95                     <CALL '\1aREFERENCE 1 = STACK>
96                     <PUSH W10>
97                     <CALL '\1aMOVE-ARG 2 = STACK>
98                     <CALL '\1aDEALLOCATE-TEMP 1>
99 PHRASE63
100                     <VEQUAL? TPS20 'LIST - PHRASE70>
101                     <FRAME '\1aGEN>
102                     <PUSH STR16>
103                     <DEAD STR16>
104                     <PUSH 'DONT-CARE>
105                     <CALL '\1aGEN 2 = STR16>
106                     <TYPE? STR16 <TYPE-CODE TEMP> - BOOL74>
107                     <NTHUV STR16 2 = TEMP36 (TYPE FIX)>
108                     <GRTR? TEMP36 1 - PHRASE73 (TYPE FIX)>
109                     <DEAD TEMP36>
110 BOOL74
111                     <FRAME '\1aMOVE-ARG>
112                     <PUSH STR16>
113                     <DEAD STR16>
114                     <FRAME '\1aGEN-TEMP>
115                     <PUSH %<>>
116                     <CALL '\1aGEN-TEMP 1 = STACK>
117                     <CALL '\1aMOVE-ARG 2 = STR16>
118 PHRASE73
119                     <FRAME '\1aGEN>
120                     <PUSH NUM18>
121                     <DEAD NUM18>
122                     <PUSH 'DONT-CARE>
123                     <CALL '\1aGEN 2 = TYP19>
124                     <TYPE? TYP19 <TYPE-CODE TEMP> - BOOL82>
125                     <NTHUV TYP19 2 = TEMP36 (TYPE FIX)>
126                     <GRTR? TEMP36 1 - PHRASE81 (TYPE FIX)>
127                     <DEAD TEMP36>
128 BOOL82
129                     <FRAME '\1aMOVE-ARG>
130                     <PUSH TYP19>
131                     <DEAD TYP19>
132                     <FRAME '\1aGEN-TEMP>
133                     <PUSH %<>>
134                     <CALL '\1aGEN-TEMP 1 = STACK>
135                     <CALL '\1aMOVE-ARG 2 = TYP19>
136 PHRASE81
137                     <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL89>
138                     <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG90>
139                     <SET TEMP36 'T (TYPE ATOM)>
140                     <JUMP + TAG91>
141 TAG90
142                     <SET TEMP36 %<> (TYPE FALSE)>
143 TAG91
144                     <TYPE? DIR13 <TYPE-CODE FALSE> - TAG92>
145                     <SET NK25 'T (TYPE ATOM)>
146                     <JUMP + TAG93>
147 TAG92
148                     <SET NK25 %<> (TYPE FALSE)>
149 TAG93
150                     <VEQUAL? TEMP36 NK25 - BOOL89>
151                     <DEAD TEMP36 NK25>
152                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE88>
153                     <VEQUAL? FLS22 0 + PHRASE88>
154 BOOL89
155                     <FRAME '\1aIEMIT>
156                     <PUSH '`LOOP>
157                     <CONS 'VALUE () = NK25>
158                     <NTHUV STR16 1 = TEMP36 (TYPE ATOM)>
159                     <CONS TEMP36 NK25 = STACK>
160                     <DEAD TEMP36 NK25>
161                     <CONS 'VALUE () = NK25>
162                     <NTHUV TYP19 1 = TEMP36 (TYPE ATOM)>
163                     <CONS TEMP36 NK25 = STACK>
164                     <DEAD TEMP36 NK25>
165                     <CALL '\1aIEMIT 3>
166                     <JUMP + PHRASE97>
167 PHRASE88
168                     <FRAME '\1aSET-TEMP>
169                     <TYPE? W10 <TYPE-CODE TEMP> - PHRASE100>
170                     <NTHUV W10 2 = NK25 (TYPE FIX)>
171                     <VEQUAL? NK25 0 - PHRASE100 (TYPE FIX)>
172                     <DEAD NK25>
173                     <FRAME '\1aUSE-TEMP>
174                     <PUSH W10>
175                     <CALL '\1aUSE-TEMP 1>
176                     <SET ANUM27 W10>
177                     <JUMP + PHRASE105>
178 PHRASE100
179                     <FRAME '\1aGEN-TEMP>
180                     <CALL '\1aGEN-TEMP 0 = W10>
181                     <SET ANUM27 W10>
182 PHRASE105
183                     <PUSH ANUM27>
184                     <PUSH 0>
185                     <PUSH (`TYPE FIX)>
186                     <CALL '\1aSET-TEMP 3>
187                     <FRAME '\1aIEMIT>
188                     <PUSH '`LOOP>
189                     <CONS 'VALUE () = NK25>
190                     <NTHUV STR16 1 = TEMP36 (TYPE ATOM)>
191                     <CONS TEMP36 NK25 = STACK>
192                     <DEAD TEMP36 NK25>
193                     <CONS 'VALUE () = NK25>
194                     <NTHUV TYP19 1 = TEMP36 (TYPE ATOM)>
195                     <CONS TEMP36 NK25 = STACK>
196                     <DEAD TEMP36 NK25>
197                     <CONS 'VALUE () = NK25>
198                     <NTHUV ANUM27 1 = TEMP36 (TYPE ATOM)>
199                     <CONS TEMP36 NK25 = STACK>
200                     <DEAD TEMP36 NK25>
201                     <CALL '\1aIEMIT 4>
202 PHRASE97
203                     <FRAME '\1aLABEL-TAG>
204                     <FRAME '\1aMAKE-TAG>
205                     <CALL '\1aMAKE-TAG 0 = TEMP36>
206                     <PUSH TEMP36>
207                     <CALL '\1aLABEL-TAG 1>
208                     <FRAME '\1aEMPTY-CHECK>
209                     <PUSH 'LIST>
210                     <PUSH STR16>
211                     <PUSH 'LIST>
212                     <PUSH 'T>
213                     <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE112>
214                     <SET NK25 B229>
215                     <JUMP + PHRASE113>
216 PHRASE112
217                     <SET NK25 B324>
218 PHRASE113
219                     <PUSH NK25>
220                     <DEAD NK25>
221                     <CALL '\1aEMPTY-CHECK 5>
222                     <FRAME '\1aIEMIT>
223                     <PUSH '`SUB>
224                     <PUSH TYP19>
225                     <PUSH 1>
226                     <PUSH '=>
227                     <PUSH TYP19>
228                     <PUSH (`TYPE FIX)>
229                     <CALL '\1aIEMIT 6>
230                     <TYPE? ANUM27 <TYPE-CODE UNBOUND> + PHRASE116>
231                     <FRAME '\1aIEMIT>
232                     <PUSH '`ADD>
233                     <PUSH ANUM27>
234                     <PUSH 1>
235                     <PUSH '=>
236                     <PUSH ANUM27>
237                     <PUSH (`TYPE FIX)>
238                     <CALL '\1aIEMIT 6>
239 PHRASE116
240                     <FRAME '\1aIEMIT>
241                     <PUSH '`LESS?>
242                     <PUSH TYP19>
243                     <PUSH 0>
244                     <PUSH '+>
245                     <FRAME '\1aMAKE-TAG>
246                     <CALL '\1aMAKE-TAG 0 = NK25>
247                     <PUSH NK25>
248                     <CALL '\1aIEMIT 5>
249                     <FRAME '\1aREST-DO>
250                     <PUSH 'LIST>
251                     <PUSH STR16>
252                     <PUSH STR16>
253                     <PUSH 1>
254                     <CALL '\1aREST-DO 4>
255                     <FRAME '\1aBRANCH-TAG>
256                     <PUSH TEMP36>
257                     <DEAD TEMP36>
258                     <CALL '\1aBRANCH-TAG 1>
259                     <FRAME '\1aLABEL-TAG>
260                     <PUSH NK25>
261                     <DEAD NK25>
262                     <CALL '\1aLABEL-TAG 1>
263                     <FRAME '\1aFREE-TEMP>
264                     <PUSH STR16>
265                     <DEAD STR16>
266                     <CALL '\1aFREE-TEMP 1>
267                     <FRAME '\1aFREE-TEMP>
268                     <PUSH TYP19>
269                     <DEAD TYP19>
270                     <CALL '\1aFREE-TEMP 1>
271                     <EQUAL? W10 'DONT-CARE - PHRASE126>
272                     <FRAME '\1aGEN-TEMP>
273                     <PUSH %<>>
274                     <CALL '\1aGEN-TEMP 1 = W10>
275 PHRASE126
276                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE129>
277                     <VEQUAL? FLS22 0 + PHRASE129>
278                     <DEAD FLS22>
279                     <TYPE? DIR13 <TYPE-CODE FALSE> - PHRASE229>
280                     <DEAD DIR13>
281                     <FRAME '\1aBRANCH-TAG>
282                     <PUSH B229>
283                     <DEAD B229>
284                     <CALL '\1aBRANCH-TAG 1>
285                     <FRAME '\1aLABEL-TAG>
286                     <PUSH B324>
287                     <DEAD B324>
288                     <CALL '\1aLABEL-TAG 1>
289                     <JUMP + PHRASE229>
290 PHRASE129
291                     <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL136>
292                     <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG137>
293                     <SET NK25 'T (TYPE ATOM)>
294                     <JUMP + TAG138>
295 TAG137
296                     <SET NK25 %<> (TYPE FALSE)>
297 TAG138
298                     <TYPE? DIR13 <TYPE-CODE FALSE> - TAG139>
299                     <SET TEMP36 'T (TYPE ATOM)>
300                     <JUMP + TAG140>
301 TAG139
302                     <SET TEMP36 %<> (TYPE FALSE)>
303 TAG140
304                     <VEQUAL? NK25 TEMP36 + PHRASE135>
305                     <DEAD NK25 TEMP36>
306 BOOL136
307                     <TYPE? NOTF11 <TYPE-CODE FALSE> + PHRASE142>
308                     <DEAD NOTF11>
309                     <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE142>
310                     <DEAD DIR13>
311                     <FRAME '\1aBRANCH-TAG>
312                     <PUSH B324>
313                     <CALL '\1aBRANCH-TAG 1>
314                     <FRAME '\1aLABEL-TAG>
315                     <PUSH B229>
316                     <DEAD B229>
317                     <CALL '\1aLABEL-TAG 1>
318 PHRASE142
319                     <FRAME '\1aMOVE-ARG>
320                     <FRAME '\1aREFERENCE>
321                     <PUSH SDIR23>
322                     <DEAD SDIR23>
323                     <CALL '\1aREFERENCE 1 = STACK>
324                     <PUSH W10>
325                     <CALL '\1aMOVE-ARG 2>
326                     <FRAME '\1aBRANCH-TAG>
327                     <PUSH BRANCH12>
328                     <DEAD BRANCH12>
329                     <CALL '\1aBRANCH-TAG 1>
330                     <FRAME '\1aLABEL-TAG>
331                     <PUSH B324>
332                     <DEAD B324>
333                     <CALL '\1aLABEL-TAG 1>
334                     <JUMP + PHRASE229>
335 PHRASE135
336                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE152>
337                     <FRAME '\1aBRANCH-TAG>
338                     <PUSH B324>
339                     <CALL '\1aBRANCH-TAG 1>
340                     <FRAME '\1aLABEL-TAG>
341                     <PUSH B229>
342                     <DEAD B229>
343                     <CALL '\1aLABEL-TAG 1>
344                     <FRAME '\1aMOVE-ARG>
345                     <PUSH ANUM27>
346                     <DEAD ANUM27>
347                     <PUSH W10>
348                     <DEAD W10>
349                     <CALL '\1aMOVE-ARG 2 = W10>
350                     <FRAME '\1aBRANCH-TAG>
351                     <PUSH BRANCH12>
352                     <DEAD BRANCH12>
353                     <CALL '\1aBRANCH-TAG 1>
354                     <FRAME '\1aLABEL-TAG>
355                     <PUSH B324>
356                     <DEAD B324>
357                     <CALL '\1aLABEL-TAG 1>
358                     <JUMP + PHRASE229>
359 PHRASE152
360                     <FRAME '\1aRET-TMP-AC>
361                     <FRAME '\1aMOVE-ARG>
362                     <FRAME '\1aREFERENCE>
363                     <PUSH %<>>
364                     <CALL '\1aREFERENCE 1 = STACK>
365                     <PUSH W10>
366                     <CALL '\1aMOVE-ARG 2 = STACK>
367                     <CALL '\1aRET-TMP-AC 1>
368                     <FRAME '\1aBRANCH-TAG>
369                     <PUSH B229>
370                     <CALL '\1aBRANCH-TAG 1>
371                     <FRAME '\1aLABEL-TAG>
372                     <PUSH B324>
373                     <DEAD B324>
374                     <CALL '\1aLABEL-TAG 1>
375                     <FRAME '\1aMOVE-ARG>
376                     <PUSH ANUM27>
377                     <DEAD ANUM27>
378                     <PUSH W10>
379                     <DEAD W10>
380                     <CALL '\1aMOVE-ARG 2 = W10>
381                     <FRAME '\1aLABEL-TAG>
382                     <PUSH B229>
383                     <DEAD B229>
384                     <CALL '\1aLABEL-TAG 1>
385                     <JUMP + PHRASE229>
386 PHRASE70
387                     <FRAME '\1aFREE-TEMP>
388                     <FRAME '\1aGEN>
389                     <PUSH STR16>
390                     <DEAD STR16>
391                     <PUSH 'DONT-CARE>
392                     <CALL '\1aGEN 2 = STR16>
393                     <PUSH STR16>
394                     <PUSH %<>>
395                     <CALL '\1aFREE-TEMP 2>
396                     <FRAME '\1aGEN-TEMP>
397                     <CALL '\1aGEN-TEMP 0 = ANUM27>
398                     <VEQUAL? TPS20 'VECTOR + BOOL172>
399                     <VEQUAL? TPS20 'TUPLE - PHRASE171>
400 BOOL172
401                     <FRAME '\1aLENGTH-VECTOR>
402                     <PUSH STR16>
403                     <DEAD STR16>
404                     <PUSH ANUM27>
405                     <CALL '\1aLENGTH-VECTOR 2>
406                     <JUMP + PHRASE180>
407 PHRASE171
408                     <VEQUAL? TPS20 'LIST - PHRASE174>
409                     <FRAME '\1aLENGTH-LIST>
410                     <PUSH STR16>
411                     <DEAD STR16>
412                     <PUSH ANUM27>
413                     <CALL '\1aLENGTH-LIST 2>
414                     <JUMP + PHRASE180>
415 PHRASE174
416                     <VEQUAL? TPS20 'UVECTOR - PHRASE176>
417                     <FRAME '\1aLENGTH-UVECTOR>
418                     <PUSH STR16>
419                     <DEAD STR16>
420                     <PUSH ANUM27>
421                     <CALL '\1aLENGTH-UVECTOR 2>
422                     <JUMP + PHRASE180>
423 PHRASE176
424                     <VEQUAL? TPS20 'STRING - PHRASE178>
425                     <DEAD TPS20>
426                     <FRAME '\1aLENGTH-STRING>
427                     <PUSH STR16>
428                     <DEAD STR16>
429                     <PUSH ANUM27>
430                     <CALL '\1aLENGTH-STRING 2>
431                     <JUMP + PHRASE180>
432 PHRASE178
433                     <FRAME '\1aLENGTH-RECORD>
434                     <PUSH STR16>
435                     <DEAD STR16>
436                     <PUSH ANUM27>
437                     <FRAME '\1aRECTYPE?>
438                     <PUSH TYP19>
439                     <DEAD TYP19>
440                     <CALL '\1aRECTYPE? 1 = STACK>
441                     <CALL '\1aLENGTH-RECORD 3>
442 PHRASE180
443                     <VEQUAL? NK25 0 + PHRASE184>
444                     <DEAD NK25>
445                     <FRAME '\1aIEMIT>
446                     <PUSH '`GRTR?>
447                     <PUSH ANUM27>
448                     <PUSH NN26>
449                     <DEAD NN26>
450                     <VEQUAL? FLS22 0 - BOOL188>
451                     <TYPE? BRANCH12 <TYPE-CODE FALSE> - PHRASE187>
452 BOOL188
453                     <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE190>
454                     <SET TEMP36 '- (TYPE ATOM)>
455                     <JUMP + PHRASE195>
456 PHRASE190
457                     <SET TEMP36 '+ (TYPE ATOM)>
458                     <JUMP + PHRASE195>
459 PHRASE187
460                     <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE194>
461                     <SET TEMP36 '+ (TYPE ATOM)>
462                     <JUMP + PHRASE195>
463 PHRASE194
464                     <SET TEMP36 '- (TYPE ATOM)>
465 PHRASE195
466                     <PUSH TEMP36>
467                     <DEAD TEMP36>
468                     <PUSH B229>
469                     <CALL '\1aIEMIT 5>
470                     <JUMP + PHRASE196>
471 PHRASE184
472                     <FRAME '\1aGEN>
473                     <PUSH NUM18>
474                     <DEAD NUM18>
475                     <PUSH 'DONT-CARE>
476                     <CALL '\1aGEN 2 = TYP19>
477                     <FRAME '\1aIEMIT>
478                     <PUSH '`GRTR?>
479                     <PUSH ANUM27>
480                     <PUSH TYP19>
481                     <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE200>
482                     <SET TEMP36 '- (TYPE ATOM)>
483                     <JUMP + PHRASE201>
484 PHRASE200
485                     <SET TEMP36 '+ (TYPE ATOM)>
486 PHRASE201
487                     <PUSH TEMP36>
488                     <DEAD TEMP36>
489                     <PUSH B229>
490                     <CALL '\1aIEMIT 5>
491                     <FRAME '\1aFREE-TEMP>
492                     <PUSH TYP19>
493                     <DEAD TYP19>
494                     <CALL '\1aFREE-TEMP 1>
495 PHRASE196
496                     <EQUAL? W10 'DONT-CARE - PHRASE204>
497                     <FRAME '\1aGEN-TEMP>
498                     <PUSH %<>>
499                     <CALL '\1aGEN-TEMP 1 = W10>
500 PHRASE204
501                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE207>
502                     <VEQUAL? FLS22 0 + PHRASE207>
503                     <DEAD FLS22>
504                     <FRAME '\1aFREE-TEMP>
505                     <PUSH ANUM27>
506                     <DEAD ANUM27>
507                     <CALL '\1aFREE-TEMP 1>
508                     <JUMP + PHRASE229>
509 PHRASE207
510                     <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL211>
511                     <DEAD NOTF11>
512                     <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG212>
513                     <SET TEMP36 'T (TYPE ATOM)>
514                     <JUMP + TAG213>
515 TAG212
516                     <SET TEMP36 %<> (TYPE FALSE)>
517 TAG213
518                     <TYPE? DIR13 <TYPE-CODE FALSE> - TAG214>
519                     <DEAD DIR13>
520                     <SET NK25 'T (TYPE ATOM)>
521                     <JUMP + TAG215>
522 TAG214
523                     <SET NK25 %<> (TYPE FALSE)>
524 TAG215
525                     <VEQUAL? TEMP36 NK25 + PHRASE210>
526                     <DEAD TEMP36 NK25>
527 BOOL211
528                     <FRAME '\1aFREE-TEMP>
529                     <PUSH ANUM27>
530                     <DEAD ANUM27>
531                     <CALL '\1aFREE-TEMP 1>
532                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE229>
533                     <FRAME '\1aMOVE-ARG>
534                     <FRAME '\1aREFERENCE>
535                     <PUSH SDIR23>
536                     <DEAD SDIR23>
537                     <CALL '\1aREFERENCE 1 = STACK>
538                     <PUSH W10>
539                     <CALL '\1aMOVE-ARG 2>
540                     <FRAME '\1aBRANCH-TAG>
541                     <PUSH BRANCH12>
542                     <DEAD BRANCH12>
543                     <CALL '\1aBRANCH-TAG 1>
544                     <FRAME '\1aLABEL-TAG>
545                     <PUSH B229>
546                     <DEAD B229>
547                     <CALL '\1aLABEL-TAG 1>
548                     <JUMP + PHRASE229>
549 PHRASE210
550                     <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE225>
551                     <FRAME '\1aMOVE-ARG>
552                     <PUSH ANUM27>
553                     <DEAD ANUM27>
554                     <PUSH W10>
555                     <CALL '\1aMOVE-ARG 2>
556                     <FRAME '\1aBRANCH-TAG>
557                     <PUSH BRANCH12>
558                     <DEAD BRANCH12>
559                     <CALL '\1aBRANCH-TAG 1>
560                     <FRAME '\1aLABEL-TAG>
561                     <PUSH B229>
562                     <DEAD B229>
563                     <CALL '\1aLABEL-TAG 1>
564                     <JUMP + PHRASE229>
565 PHRASE225
566                     <FRAME '\1aMOVE-ARG>
567                     <PUSH ANUM27>
568                     <DEAD ANUM27>
569                     <PUSH W10>
570                     <CALL '\1aMOVE-ARG 2>
571                     <FRAME '\1aBRANCH-TAG>
572                     <PUSH B324>
573                     <CALL '\1aBRANCH-TAG 1>
574                     <FRAME '\1aLABEL-TAG>
575                     <PUSH B229>
576                     <DEAD B229>
577                     <CALL '\1aLABEL-TAG 1>
578                     <FRAME '\1aMOVE-ARG>
579                     <FRAME '\1aREFERENCE>
580                     <PUSH %<>>
581                     <CALL '\1aREFERENCE 1 = STACK>
582                     <PUSH W10>
583                     <CALL '\1aMOVE-ARG 2>
584                     <FRAME '\1aLABEL-TAG>
585                     <PUSH B324>
586                     <DEAD B324>
587                     <CALL '\1aLABEL-TAG 1>
588 PHRASE229
589                     <FRAME '\1aMOVE-ARG>
590                     <PUSH W10>
591                     <DEAD W10>
592                     <PUSH RW34>
593                     <DEAD RW34>
594                     <CALL '\1aMOVE-ARG 2 = NK25>
595                     <RETURN NK25>
596                     <DEAD NK25>
597                     <END \1aLENGTH?-GEN>
598
599 <ENDPACKAGE>