Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / lnqgen.mima
diff --git a/mim/development/mim/mimc/lnqgen.mima b/mim/development/mim/mimc/lnqgen.mima
new file mode 100644 (file)
index 0000000..297f51b
--- /dev/null
@@ -0,0 +1,599 @@
+
+<PACKAGE "LNQGEN">
+
+<ENTRY LENGTH?-GEN>
+
+<USE "COMPDEC" "CODGEN" "CHKDCL" "ADVMESS" "STRGEN" "MIMGEN">
+
+#WORD *437312131*
+                   <GFCN \1aLENGTH?-GEN ("VALUE" ANY NODE ANY "OPTIONAL" <OR FALSE ATOM> <OR FALSE ATOM> <OR FALSE ATOM> ANY) N9 W10 NOTF11 BRANCH12 DIR13 SETF14>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <PUSH %<>>
+OPT6
+                   <PUSH %<>>
+OPT7
+                   <PUSH %<>>
+OPT8
+                   <TEMP (TEMP36 %<>) STR16 NUM18:NODE TYP19 TPS20:ATOM FLS22 SDIR23 B324:ATOM ANUM27 B229 RW34 NK25 NN26:FIX>
+                   <INTGO>
+                   <NTHUV N9 5 = TEMP36 (TYPE LIST)>
+                   <NTHL TEMP36 1 = STR16 (TYPE NODE)>
+                   <DEAD TEMP36>
+                   <NTHUV N9 5 = TEMP36 (TYPE LIST)>
+                   <RESTL TEMP36 1 = TEMP36 (TYPE LIST)>
+                   <NTHL TEMP36 1 = NUM18 (TYPE NODE)>
+                   <DEAD TEMP36>
+                   <NTHUV STR16 3 = TYP19>
+                   <FRAME '\1aSTRUCTYP>
+                   <PUSH TYP19>
+                   <CALL '\1aSTRUCTYP 1 = TPS20>
+                   <FRAME '\1aISTYPE?>
+                   <PUSH TYP19>
+                   <CALL '\1aISTYPE? 1>
+                   <EQUAL? W10 'FLUSHED - TAG41>
+                   <SET FLS22 'T (TYPE ATOM)>
+                   <JUMP + TAG42>
+TAG41
+                   <SET FLS22 %<> (TYPE FALSE)>
+TAG42
+                   <SET SDIR23 DIR13>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = B324>
+                   <VEQUAL? FLS22 0 + PHRASE45>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE45>
+                   <SET TEMP36 BRANCH12>
+                   <JUMP + PHRASE47>
+PHRASE45
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TEMP36>
+PHRASE47
+                   <SET B229 TEMP36>
+                   <DEAD TEMP36>
+                   <SET RW34 W10>
+                   <NTHUV NUM18 1 = TEMP36 (TYPE FIX)>
+                   <VEQUAL? TEMP36 2 - PHRASE50 (TYPE FIX)>
+                   <DEAD TEMP36>
+                   <SET NK25 'T (TYPE ATOM)>
+                   <NTHUV NUM18 4 = NN26 (TYPE FIX)>
+                   <LESS? NN26 0 + BOOL53 (TYPE FIX)>
+                   <GRTR? NN26 262144 - PHRASE57 (TYPE FIX)>
+BOOL53
+                   <FRAME '\1aCOMPILE-ERROR>
+                   <PUSH "Argument out of range to LENGTH? ">
+                   <PUSH NN26>
+                   <PUSH N9>
+                   <DEAD N9>
+                   <CALL '\1aCOMPILE-ERROR 3>
+                   <JUMP + PHRASE57>
+PHRASE50
+                   <SET NK25 %<> (TYPE FALSE)>
+PHRASE57
+                   <TYPE? NOTF11 <TYPE-CODE FALSE> + TAG61>
+                   <TYPE? DIR13 <TYPE-CODE FALSE> - TAG60>
+                   <DEAD DIR13>
+                   <SET DIR13 'T (TYPE ATOM)>
+                   <JUMP + TAG61>
+TAG60
+                   <SET DIR13 %<> (TYPE FALSE)>
+TAG61
+                   <TYPE? SETF14 <TYPE-CODE FALSE> + PHRASE63>
+                   <DEAD SETF14>
+                   <FRAME '\1aDEALLOCATE-TEMP>
+                   <FRAME '\1aMOVE-ARG>
+                   <FRAME '\1aREFERENCE>
+                   <TYPE? SDIR23 <TYPE-CODE FALSE> - TAG67>
+                   <SET TEMP36 'T (TYPE ATOM)>
+                   <JUMP + TAG68>
+TAG67
+                   <SET TEMP36 %<> (TYPE FALSE)>
+TAG68
+                   <PUSH TEMP36>
+                   <DEAD TEMP36>
+                   <CALL '\1aREFERENCE 1 = STACK>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2 = STACK>
+                   <CALL '\1aDEALLOCATE-TEMP 1>
+PHRASE63
+                   <VEQUAL? TPS20 'LIST - PHRASE70>
+                   <FRAME '\1aGEN>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH 'DONT-CARE>
+                   <CALL '\1aGEN 2 = STR16>
+                   <TYPE? STR16 <TYPE-CODE TEMP> - BOOL74>
+                   <NTHUV STR16 2 = TEMP36 (TYPE FIX)>
+                   <GRTR? TEMP36 1 - PHRASE73 (TYPE FIX)>
+                   <DEAD TEMP36>
+BOOL74
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = STACK>
+                   <CALL '\1aMOVE-ARG 2 = STR16>
+PHRASE73
+                   <FRAME '\1aGEN>
+                   <PUSH NUM18>
+                   <DEAD NUM18>
+                   <PUSH 'DONT-CARE>
+                   <CALL '\1aGEN 2 = TYP19>
+                   <TYPE? TYP19 <TYPE-CODE TEMP> - BOOL82>
+                   <NTHUV TYP19 2 = TEMP36 (TYPE FIX)>
+                   <GRTR? TEMP36 1 - PHRASE81 (TYPE FIX)>
+                   <DEAD TEMP36>
+BOOL82
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH TYP19>
+                   <DEAD TYP19>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = STACK>
+                   <CALL '\1aMOVE-ARG 2 = TYP19>
+PHRASE81
+                   <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL89>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG90>
+                   <SET TEMP36 'T (TYPE ATOM)>
+                   <JUMP + TAG91>
+TAG90
+                   <SET TEMP36 %<> (TYPE FALSE)>
+TAG91
+                   <TYPE? DIR13 <TYPE-CODE FALSE> - TAG92>
+                   <SET NK25 'T (TYPE ATOM)>
+                   <JUMP + TAG93>
+TAG92
+                   <SET NK25 %<> (TYPE FALSE)>
+TAG93
+                   <VEQUAL? TEMP36 NK25 - BOOL89>
+                   <DEAD TEMP36 NK25>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE88>
+                   <VEQUAL? FLS22 0 + PHRASE88>
+BOOL89
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LOOP>
+                   <CONS 'VALUE () = NK25>
+                   <NTHUV STR16 1 = TEMP36 (TYPE ATOM)>
+                   <CONS TEMP36 NK25 = STACK>
+                   <DEAD TEMP36 NK25>
+                   <CONS 'VALUE () = NK25>
+                   <NTHUV TYP19 1 = TEMP36 (TYPE ATOM)>
+                   <CONS TEMP36 NK25 = STACK>
+                   <DEAD TEMP36 NK25>
+                   <CALL '\1aIEMIT 3>
+                   <JUMP + PHRASE97>
+PHRASE88
+                   <FRAME '\1aSET-TEMP>
+                   <TYPE? W10 <TYPE-CODE TEMP> - PHRASE100>
+                   <NTHUV W10 2 = NK25 (TYPE FIX)>
+                   <VEQUAL? NK25 0 - PHRASE100 (TYPE FIX)>
+                   <DEAD NK25>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH W10>
+                   <CALL '\1aUSE-TEMP 1>
+                   <SET ANUM27 W10>
+                   <JUMP + PHRASE105>
+PHRASE100
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = W10>
+                   <SET ANUM27 W10>
+PHRASE105
+                   <PUSH ANUM27>
+                   <PUSH 0>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aSET-TEMP 3>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LOOP>
+                   <CONS 'VALUE () = NK25>
+                   <NTHUV STR16 1 = TEMP36 (TYPE ATOM)>
+                   <CONS TEMP36 NK25 = STACK>
+                   <DEAD TEMP36 NK25>
+                   <CONS 'VALUE () = NK25>
+                   <NTHUV TYP19 1 = TEMP36 (TYPE ATOM)>
+                   <CONS TEMP36 NK25 = STACK>
+                   <DEAD TEMP36 NK25>
+                   <CONS 'VALUE () = NK25>
+                   <NTHUV ANUM27 1 = TEMP36 (TYPE ATOM)>
+                   <CONS TEMP36 NK25 = STACK>
+                   <DEAD TEMP36 NK25>
+                   <CALL '\1aIEMIT 4>
+PHRASE97
+                   <FRAME '\1aLABEL-TAG>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TEMP36>
+                   <PUSH TEMP36>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aEMPTY-CHECK>
+                   <PUSH 'LIST>
+                   <PUSH STR16>
+                   <PUSH 'LIST>
+                   <PUSH 'T>
+                   <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE112>
+                   <SET NK25 B229>
+                   <JUMP + PHRASE113>
+PHRASE112
+                   <SET NK25 B324>
+PHRASE113
+                   <PUSH NK25>
+                   <DEAD NK25>
+                   <CALL '\1aEMPTY-CHECK 5>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SUB>
+                   <PUSH TYP19>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH TYP19>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 6>
+                   <TYPE? ANUM27 <TYPE-CODE UNBOUND> + PHRASE116>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`ADD>
+                   <PUSH ANUM27>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH ANUM27>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 6>
+PHRASE116
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LESS?>
+                   <PUSH TYP19>
+                   <PUSH 0>
+                   <PUSH '+>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = NK25>
+                   <PUSH NK25>
+                   <CALL '\1aIEMIT 5>
+                   <FRAME '\1aREST-DO>
+                   <PUSH 'LIST>
+                   <PUSH STR16>
+                   <PUSH STR16>
+                   <PUSH 1>
+                   <CALL '\1aREST-DO 4>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH TEMP36>
+                   <DEAD TEMP36>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH NK25>
+                   <DEAD NK25>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <CALL '\1aFREE-TEMP 1>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TYP19>
+                   <DEAD TYP19>
+                   <CALL '\1aFREE-TEMP 1>
+                   <EQUAL? W10 'DONT-CARE - PHRASE126>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = W10>
+PHRASE126
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE129>
+                   <VEQUAL? FLS22 0 + PHRASE129>
+                   <DEAD FLS22>
+                   <TYPE? DIR13 <TYPE-CODE FALSE> - PHRASE229>
+                   <DEAD DIR13>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B324>
+                   <DEAD B324>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE129
+                   <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL136>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG137>
+                   <SET NK25 'T (TYPE ATOM)>
+                   <JUMP + TAG138>
+TAG137
+                   <SET NK25 %<> (TYPE FALSE)>
+TAG138
+                   <TYPE? DIR13 <TYPE-CODE FALSE> - TAG139>
+                   <SET TEMP36 'T (TYPE ATOM)>
+                   <JUMP + TAG140>
+TAG139
+                   <SET TEMP36 %<> (TYPE FALSE)>
+TAG140
+                   <VEQUAL? NK25 TEMP36 + PHRASE135>
+                   <DEAD NK25 TEMP36>
+BOOL136
+                   <TYPE? NOTF11 <TYPE-CODE FALSE> + PHRASE142>
+                   <DEAD NOTF11>
+                   <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE142>
+                   <DEAD DIR13>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH B324>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+PHRASE142
+                   <FRAME '\1aMOVE-ARG>
+                   <FRAME '\1aREFERENCE>
+                   <PUSH SDIR23>
+                   <DEAD SDIR23>
+                   <CALL '\1aREFERENCE 1 = STACK>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH BRANCH12>
+                   <DEAD BRANCH12>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B324>
+                   <DEAD B324>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE135
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE152>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH B324>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <PUSH W10>
+                   <DEAD W10>
+                   <CALL '\1aMOVE-ARG 2 = W10>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH BRANCH12>
+                   <DEAD BRANCH12>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B324>
+                   <DEAD B324>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE152
+                   <FRAME '\1aRET-TMP-AC>
+                   <FRAME '\1aMOVE-ARG>
+                   <FRAME '\1aREFERENCE>
+                   <PUSH %<>>
+                   <CALL '\1aREFERENCE 1 = STACK>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2 = STACK>
+                   <CALL '\1aRET-TMP-AC 1>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH B229>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B324>
+                   <DEAD B324>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <PUSH W10>
+                   <DEAD W10>
+                   <CALL '\1aMOVE-ARG 2 = W10>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE70
+                   <FRAME '\1aFREE-TEMP>
+                   <FRAME '\1aGEN>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH 'DONT-CARE>
+                   <CALL '\1aGEN 2 = STR16>
+                   <PUSH STR16>
+                   <PUSH %<>>
+                   <CALL '\1aFREE-TEMP 2>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = ANUM27>
+                   <VEQUAL? TPS20 'VECTOR + BOOL172>
+                   <VEQUAL? TPS20 'TUPLE - PHRASE171>
+BOOL172
+                   <FRAME '\1aLENGTH-VECTOR>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH ANUM27>
+                   <CALL '\1aLENGTH-VECTOR 2>
+                   <JUMP + PHRASE180>
+PHRASE171
+                   <VEQUAL? TPS20 'LIST - PHRASE174>
+                   <FRAME '\1aLENGTH-LIST>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH ANUM27>
+                   <CALL '\1aLENGTH-LIST 2>
+                   <JUMP + PHRASE180>
+PHRASE174
+                   <VEQUAL? TPS20 'UVECTOR - PHRASE176>
+                   <FRAME '\1aLENGTH-UVECTOR>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH ANUM27>
+                   <CALL '\1aLENGTH-UVECTOR 2>
+                   <JUMP + PHRASE180>
+PHRASE176
+                   <VEQUAL? TPS20 'STRING - PHRASE178>
+                   <DEAD TPS20>
+                   <FRAME '\1aLENGTH-STRING>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH ANUM27>
+                   <CALL '\1aLENGTH-STRING 2>
+                   <JUMP + PHRASE180>
+PHRASE178
+                   <FRAME '\1aLENGTH-RECORD>
+                   <PUSH STR16>
+                   <DEAD STR16>
+                   <PUSH ANUM27>
+                   <FRAME '\1aRECTYPE?>
+                   <PUSH TYP19>
+                   <DEAD TYP19>
+                   <CALL '\1aRECTYPE? 1 = STACK>
+                   <CALL '\1aLENGTH-RECORD 3>
+PHRASE180
+                   <VEQUAL? NK25 0 + PHRASE184>
+                   <DEAD NK25>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GRTR?>
+                   <PUSH ANUM27>
+                   <PUSH NN26>
+                   <DEAD NN26>
+                   <VEQUAL? FLS22 0 - BOOL188>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> - PHRASE187>
+BOOL188
+                   <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE190>
+                   <SET TEMP36 '- (TYPE ATOM)>
+                   <JUMP + PHRASE195>
+PHRASE190
+                   <SET TEMP36 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE195>
+PHRASE187
+                   <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE194>
+                   <SET TEMP36 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE195>
+PHRASE194
+                   <SET TEMP36 '- (TYPE ATOM)>
+PHRASE195
+                   <PUSH TEMP36>
+                   <DEAD TEMP36>
+                   <PUSH B229>
+                   <CALL '\1aIEMIT 5>
+                   <JUMP + PHRASE196>
+PHRASE184
+                   <FRAME '\1aGEN>
+                   <PUSH NUM18>
+                   <DEAD NUM18>
+                   <PUSH 'DONT-CARE>
+                   <CALL '\1aGEN 2 = TYP19>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GRTR?>
+                   <PUSH ANUM27>
+                   <PUSH TYP19>
+                   <TYPE? DIR13 <TYPE-CODE FALSE> + PHRASE200>
+                   <SET TEMP36 '- (TYPE ATOM)>
+                   <JUMP + PHRASE201>
+PHRASE200
+                   <SET TEMP36 '+ (TYPE ATOM)>
+PHRASE201
+                   <PUSH TEMP36>
+                   <DEAD TEMP36>
+                   <PUSH B229>
+                   <CALL '\1aIEMIT 5>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TYP19>
+                   <DEAD TYP19>
+                   <CALL '\1aFREE-TEMP 1>
+PHRASE196
+                   <EQUAL? W10 'DONT-CARE - PHRASE204>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = W10>
+PHRASE204
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE207>
+                   <VEQUAL? FLS22 0 + PHRASE207>
+                   <DEAD FLS22>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <CALL '\1aFREE-TEMP 1>
+                   <JUMP + PHRASE229>
+PHRASE207
+                   <TYPE? NOTF11 <TYPE-CODE FALSE> - BOOL211>
+                   <DEAD NOTF11>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> - TAG212>
+                   <SET TEMP36 'T (TYPE ATOM)>
+                   <JUMP + TAG213>
+TAG212
+                   <SET TEMP36 %<> (TYPE FALSE)>
+TAG213
+                   <TYPE? DIR13 <TYPE-CODE FALSE> - TAG214>
+                   <DEAD DIR13>
+                   <SET NK25 'T (TYPE ATOM)>
+                   <JUMP + TAG215>
+TAG214
+                   <SET NK25 %<> (TYPE FALSE)>
+TAG215
+                   <VEQUAL? TEMP36 NK25 + PHRASE210>
+                   <DEAD TEMP36 NK25>
+BOOL211
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <CALL '\1aFREE-TEMP 1>
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE229>
+                   <FRAME '\1aMOVE-ARG>
+                   <FRAME '\1aREFERENCE>
+                   <PUSH SDIR23>
+                   <DEAD SDIR23>
+                   <CALL '\1aREFERENCE 1 = STACK>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH BRANCH12>
+                   <DEAD BRANCH12>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE210
+                   <TYPE? BRANCH12 <TYPE-CODE FALSE> + PHRASE225>
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH BRANCH12>
+                   <DEAD BRANCH12>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+                   <JUMP + PHRASE229>
+PHRASE225
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH ANUM27>
+                   <DEAD ANUM27>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2>
+                   <FRAME '\1aBRANCH-TAG>
+                   <PUSH B324>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B229>
+                   <DEAD B229>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aMOVE-ARG>
+                   <FRAME '\1aREFERENCE>
+                   <PUSH %<>>
+                   <CALL '\1aREFERENCE 1 = STACK>
+                   <PUSH W10>
+                   <CALL '\1aMOVE-ARG 2>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH B324>
+                   <DEAD B324>
+                   <CALL '\1aLABEL-TAG 1>
+PHRASE229
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH W10>
+                   <DEAD W10>
+                   <PUSH RW34>
+                   <DEAD RW34>
+                   <CALL '\1aMOVE-ARG 2 = NK25>
+                   <RETURN NK25>
+                   <DEAD NK25>
+                   <END \1aLENGTH?-GEN>
+
+<ENDPACKAGE>