Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / hash.mima
diff --git a/mim/development/mim/mimc/hash.mima b/mim/development/mim/mimc/hash.mima
new file mode 100644 (file)
index 0000000..f2dcd0f
--- /dev/null
@@ -0,0 +1,503 @@
+
+<PACKAGE "HASH">
+
+<ENTRY HASH EXPAND-FLAG>
+
+<SETG EXPAND-FLAG <>>
+
+<SETG PFIX 0>
+
+<SETG PLIST 1>
+
+<SETG PRECORD 2>
+
+<SETG PBYTES 4>
+
+<SETG PSTRING 5>
+
+<SETG PUVECTOR 6>
+
+<SETG PVECTOR 7>
+
+<SETG ONE-IN-LH <LSH 1 16>>
+
+<MANIFEST PFIX PLIST PRECORD PBYTES PSTRING PUVECTOR PVECTOR ONE-IN-LH>
+
+#WORD *1024671055*
+                   <GFCN \1aHASH ("VALUE" FIX ANY "OPTIONAL" FIX) OBJ6 POS7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH 0>
+OPT5
+                   <TEMP TEMP13 FTYP9:FIX PREHASH10 EXP-MACROS12 ATM11 HASH8:FIX>
+                   <INTGO>
+                   <TYPE OBJ6 = TEMP13>
+                   <AND TEMP13 #WORD *7* = FTYP9>
+                   <DEAD TEMP13>
+                   <GVAL 'EXPAND-FLAG = EXP-MACROS12>
+                   <TYPE? OBJ6 <TYPE-CODE FORM> - PHRASE24>
+                   <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE24>
+                   <EMPL? OBJ6 + PHRASE24 (TYPE FORM)>
+                   <NTHL OBJ6 1 = ATM11>
+                   <TYPE? ATM11 <TYPE-CODE ATOM> - PHRASE24 (DEAD-JUMP ATM11)>
+                   <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE24) (DEAD-JUMP ATM11 TEMP13)>
+                   <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE24 (DEAD-JUMP ATM11 TEMP13)>
+                   <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
+                   <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE24 (DEAD-JUMP ATM11)>
+                   <DEAD TEMP13>
+                   <VEQUAL? ATM11 'GVAL + BOOL20>
+                   <VEQUAL? ATM11 'LVAL - PHRASE18>
+BOOL20
+                   <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
+                   <CHTYPE TEMP13 <TYPE-CODE LIST> = TEMP13>
+                   <EMPL? TEMP13 + PHRASE18 (TYPE LIST)>
+                   <DEAD TEMP13>
+                   <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
+                   <NTHL TEMP13 1 = TEMP13>
+                   <TYPE? TEMP13 <TYPE-CODE ATOM> - PHRASE18 (DEAD-FALL FTYP9)>
+                   <DEAD TEMP13>
+                   <FRAME '\1aCHTYPE>
+                   <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
+                   <DEAD OBJ6>
+                   <NTHL TEMP13 1 = STACK (TYPE ATOM)>
+                   <DEAD TEMP13>
+                   <PUSH ATM11>
+                   <DEAD ATM11>
+                   <CALL '\1aCHTYPE 2 = OBJ6>
+                   <SET FTYP9 2 (TYPE FIX)>
+                   <JUMP + PHRASE24>
+PHRASE18
+                   <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
+                   <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
+                   <VEQUAL? TEMP13 'MANIFEST - PHRASE22 (DEAD-FALL PREHASH10)>
+                   <DEAD TEMP13>
+                   <FRAME '\1aHASH>
+                   <GVAL ATM11 = STACK>
+                   <DEAD ATM11>
+                   <JUMP + PEEP79>
+PHRASE22
+                   <GVAL ATM11 = TEMP13>
+                   <DEAD ATM11>
+                   <TYPE? TEMP13 <TYPE-CODE MACRO> - PHRASE24 (DEAD-FALL PREHASH10)>
+                   <DEAD TEMP13>
+                   <FRAME '\1aHASH>
+                   <FRAME '\1aEXPAND>
+                   <PUSH OBJ6>
+                   <CALL '\1aEXPAND 1 = STACK>
+PEEP79
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH 2 = PREHASH10>
+PHRASE24
+                   <DISPATCH FTYP9 0 CASE29 CASE31 CASE32 CASEDF27 CASE33 CASE30 CASE35 CASE34 (DEAD-FALL EXP-MACROS12)>
+                   <DEAD FTYP9>
+CASEDF27
+                   <FRAME '\1aERROR>
+                   <PUSH 'UNKNOWN-PRIMTYPE!-ERRORS>
+                   <FRAME '\1aPRIMTYPE>
+                   <PUSH OBJ6>
+                   <CALL '\1aPRIMTYPE 1 = STACK>
+                   <PUSH 'HASH>
+                   <CALL '\1aERROR 3>
+                   <JUMP + CASEND28>
+CASE29
+                   <CHTYPE OBJ6 <TYPE-CODE FIX> = HASH8>
+                   <JUMP + CASEND28>
+CASE30
+                   <FRAME '\1aHASH-STRING>
+                   <CHTYPE OBJ6 <TYPE-CODE STRING> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-STRING 2 = HASH8>
+                   <JUMP + CASEND28>
+CASE31
+                   <FRAME '\1aHASH-LIST>
+                   <CHTYPE OBJ6 <TYPE-CODE LIST> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-LIST 2 = HASH8>
+                   <JUMP + CASEND28>
+CASE32
+                   <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE41>
+                   <DEAD EXP-MACROS12>
+                   <TYPE? OBJ6 <TYPE-CODE GVAL> - PHRASE41>
+                   <CHTYPE OBJ6 <TYPE-CODE ATOM> = ATM11>
+                   <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE41) (DEAD-JUMP ATM11 TEMP13)>
+                   <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE41 (DEAD-JUMP ATM11 TEMP13)>
+                   <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
+                   <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE41 (DEAD-JUMP ATM11)>
+                   <DEAD TEMP13>
+                   <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
+                   <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
+                   <VEQUAL? TEMP13 'MANIFEST - PHRASE41 (DEAD-JUMP ATM11) (DEAD-FALL HASH8)>
+                   <DEAD TEMP13>
+                   <FRAME '\1aHASH>
+                   <GVAL ATM11 = STACK>
+                   <DEAD ATM11>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH 2 = HASH8>
+                   <JUMP + CASEND28>
+PHRASE41
+                   <TYPE? OBJ6 <TYPE-CODE ATOM> + BOOL45 (DEAD-JUMP HASH8)>
+                   <TYPE? OBJ6 <TYPE-CODE LVAL> + BOOL45 (DEAD-JUMP HASH8)>
+                   <TYPE? OBJ6 <TYPE-CODE GVAL> + BOOL45 (DEAD-JUMP HASH8)>
+                   <FRAME '\1aPRIMTYPE>
+                   <PUSH OBJ6>
+                   <CALL '\1aPRIMTYPE 1 = TEMP13>
+                   <VEQUAL? TEMP13 'ATOM - CASEND28 (DEAD-FALL HASH8)>
+                   <DEAD TEMP13>
+BOOL45
+                   <FRAME '\1aHASH-ATOM>
+                   <CHTYPE OBJ6 <TYPE-CODE ATOM> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-ATOM 2 = HASH8>
+                   <JUMP + CASEND28>
+CASE33
+                   <FRAME '\1aHASH-BYTES>
+                   <CHTYPE OBJ6 <TYPE-CODE BYTES> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-BYTES 2 = HASH8>
+                   <JUMP + CASEND28>
+CASE34
+                   <FRAME '\1aHASH-VECTOR>
+                   <CHTYPE OBJ6 <TYPE-CODE VECTOR> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-VECTOR 2 = HASH8>
+                   <JUMP + CASEND28>
+CASE35
+                   <FRAME '\1aHASH-UVECTOR>
+                   <CHTYPE OBJ6 <TYPE-CODE UVECTOR> = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-UVECTOR 2 = HASH8>
+CASEND28
+                   <FRAME '\1aNEWTYPE?>
+                   <PUSH OBJ6>
+                   <CALL '\1aNEWTYPE? 1 = TEMP13>
+                   <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE52>
+                   <DEAD TEMP13>
+                   <IFSYS "TOPS20">
+                   <FRAME '\1aPRIMTYPE>
+                   <PUSH OBJ6>
+                   <CALL '\1aPRIMTYPE 1 = TEMP13>
+                   <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
+                   <CHTYPE TEMP13 <TYPE-CODE FIX> = FTYP9>
+                   <DEAD TEMP13>
+                   <LSH FTYP9 13 = TEMP13 (TYPE FIX)>
+                   <AND FTYP9 #WORD *37777777777* = FTYP9>
+                   <LSH FTYP9 -19 = FTYP9 (TYPE FIX)>
+                   <OR TEMP13 FTYP9 = TEMP13>
+                   <DEAD FTYP9>
+                   <AND TEMP13 #WORD *37777777777* = TEMP13>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <FRAME '\1aPRIMTYPE>
+                   <PUSH OBJ6>
+                   <CALL '\1aPRIMTYPE 1 = TEMP13>
+                   <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
+                   <ROT TEMP13 13 = TEMP13 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <FRAME '\1aHASH-ATOM>
+                   <FRAME '\1aTYPE>
+                   <PUSH OBJ6>
+                   <DEAD OBJ6>
+                   <CALL '\1aTYPE 1 = STACK>
+                   <ADD POS7 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-ATOM 2 = FTYP9>
+                   <XOR TEMP13 FTYP9 = TEMP13>
+                   <DEAD FTYP9>
+                   <IFSYS "TOPS20">
+                   <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
+                   <AND HASH8 #WORD *37777777777* = FTYP9>
+                   <DEAD HASH8>
+                   <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
+                   <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
+                   <DEAD FTYP9>
+                   <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
+                   <DEAD EXP-MACROS12>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH8 17 = FTYP9 (TYPE FIX)>
+                   <DEAD HASH8>
+                   <ENDIF "UNIX">
+                   <XOR TEMP13 FTYP9 = HASH8>
+                   <DEAD TEMP13 FTYP9>
+                   <JUMP + PHRASE71>
+PHRASE52
+                   <IFSYS "TOPS20">
+                   <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
+                   <AND HASH8 #WORD *37777777777* = FTYP9>
+                   <DEAD HASH8>
+                   <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
+                   <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
+                   <DEAD FTYP9>
+                   <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
+                   <DEAD EXP-MACROS12>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH8 17 = FTYP9 (TYPE FIX)>
+                   <DEAD HASH8>
+                   <ENDIF "UNIX">
+                   <TYPE OBJ6 = EXP-MACROS12>
+                   <DEAD OBJ6>
+                   <XOR FTYP9 EXP-MACROS12 = HASH8>
+                   <DEAD FTYP9 EXP-MACROS12>
+PHRASE71
+                   <TYPE? PREHASH10 <TYPE-CODE UNBOUND> + PHRASE75 (DEAD-JUMP PREHASH10)>
+                   <IFSYS "TOPS20">
+                   <LSH HASH8 17 = FTYP9 (TYPE FIX)>
+                   <AND HASH8 #WORD *37777777777* = HASH8>
+                   <LSH HASH8 -15 = HASH8 (TYPE FIX)>
+                   <OR FTYP9 HASH8 = FTYP9>
+                   <DEAD HASH8>
+                   <AND FTYP9 #WORD *37777777777* = EXP-MACROS12>
+                   <DEAD FTYP9>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH8 17 = EXP-MACROS12 (TYPE FIX)>
+                   <DEAD HASH8>
+                   <ENDIF "UNIX">
+                   <XOR EXP-MACROS12 PREHASH10 = HASH8>
+                   <DEAD EXP-MACROS12 PREHASH10>
+PHRASE75
+                   <XOR HASH8 POS7 = EXP-MACROS12>
+                   <DEAD HASH8 POS7>
+                   <RETURN EXP-MACROS12>
+                   <DEAD EXP-MACROS12>
+                   <END \1aHASH>
+
+#WORD *531617232*
+                   <GFCN \1aHASH-ATOM ("VALUE" FIX ATOM FIX) ATM4 POS5>
+                   <TEMP TEMP8:FIX TEMP19>
+                   <INTGO>
+                   <VEQUAL? ATM4 'ROOT - PHRASE7 (DEAD-FALL ATM4)>
+                   <XOR POS5 #WORD *122* = TEMP8>
+                   <DEAD POS5>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+PHRASE7
+                   <IFSYS "TOPS20">
+                   <FRAME '\1aHASH-STRING>
+                   <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
+                   <ADD POS5 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-STRING 2 = TEMP8>
+                   <LSH TEMP8 17 = TEMP19 (TYPE FIX)>
+                   <AND TEMP8 #WORD *37777777777* = TEMP8>
+                   <LSH TEMP8 -15 = TEMP8 (TYPE FIX)>
+                   <OR TEMP19 TEMP8 = TEMP19>
+                   <DEAD TEMP8>
+                   <AND TEMP19 #WORD *37777777777* = TEMP8>
+                   <DEAD TEMP19>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <FRAME '\1aHASH-STRING>
+                   <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
+                   <ADD POS5 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH-STRING 2 = TEMP19>
+                   <ROT TEMP19 17 = TEMP8 (TYPE FIX)>
+                   <DEAD TEMP19>
+                   <ENDIF "UNIX">
+                   <FRAME '\1aHASH>
+                   <NTHR ATM4 4 = STACK (RECORD-TYPE ATOM)>
+                   <DEAD ATM4>
+                   <ADD POS5 65536 = STACK (TYPE FIX)>
+                   <DEAD POS5>
+                   <CALL '\1aHASH 2 = TEMP19>
+                   <XOR TEMP8 TEMP19 = TEMP8>
+                   <DEAD TEMP19>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aHASH-ATOM>
+
+#WORD *17070741545*
+                   <GFCN \1aHASH-STRING ("VALUE" FIX STRING FIX) STR4 POS5>
+                   <TEMP (HASH6:FIX 0) TEMP13:STRING CH18:CHARACTER TEMP23:FIX>
+                   <INTGO>
+                   <SET TEMP13 STR4 (TYPE STRING)>
+                   <DEAD STR4>
+                   <LOOP>
+MAP8
+                   <INTGO>
+                   <EMPUS? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
+                   <NTHUS TEMP13 1 = CH18>
+                   <IFSYS "TOPS20">
+                   <LSH HASH6 17 = TEMP23 (TYPE FIX)>
+                   <AND HASH6 #WORD *37777777777* = HASH6>
+                   <LSH HASH6 -15 = HASH6 (TYPE FIX)>
+                   <OR TEMP23 HASH6 = TEMP23>
+                   <DEAD HASH6>
+                   <AND TEMP23 #WORD *37777777777* = HASH6>
+                   <DEAD TEMP23>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH6 17 = HASH6 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <XOR HASH6 POS5 = HASH6>
+                   <XOR HASH6 CH18 = HASH6>
+                   <DEAD CH18>
+                   <ADD POS5 1 = POS5 (TYPE FIX)>
+                   <RESTUS TEMP13 1 = TEMP13 (TYPE STRING)>
+                   <JUMP + MAP8>
+MAPAP11
+                   <RETURN HASH6>
+                   <DEAD HASH6>
+                   <END \1aHASH-STRING>
+
+#WORD *2612511232*
+                   <GFCN \1aHASH-LIST ("VALUE" FIX LIST FIX) LIST4 POS5>
+                   <TEMP (HASH6:FIX 0) TEMP13:LIST ELEM18 TEMP23>
+                   <INTGO>
+                   <SET TEMP13 LIST4 (TYPE LIST)>
+                   <DEAD LIST4>
+                   <LOOP>
+MAP8
+                   <INTGO>
+                   <EMPL? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
+                   <NTHL TEMP13 1 = ELEM18>
+                   <IFSYS "TOPS20">
+                   <LSH HASH6 17 = TEMP23 (TYPE FIX)>
+                   <AND HASH6 #WORD *37777777777* = HASH6>
+                   <LSH HASH6 -15 = HASH6 (TYPE FIX)>
+                   <OR TEMP23 HASH6 = TEMP23>
+                   <DEAD HASH6>
+                   <AND TEMP23 #WORD *37777777777* = HASH6>
+                   <DEAD TEMP23>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH6 17 = HASH6 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <FRAME '\1aHASH>
+                   <PUSH ELEM18>
+                   <DEAD ELEM18>
+                   <ADD POS5 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH 2 = TEMP23>
+                   <XOR HASH6 TEMP23 = HASH6>
+                   <DEAD TEMP23>
+                   <XOR HASH6 POS5 = HASH6>
+                   <ADD POS5 1 = POS5 (TYPE FIX)>
+                   <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
+                   <JUMP + MAP8>
+MAPAP11
+                   <RETURN HASH6>
+                   <DEAD HASH6>
+                   <END \1aHASH-LIST>
+
+#WORD *27735626233*
+                   <GFCN \1aHASH-VECTOR ("VALUE" FIX VECTOR FIX) VEC4 POS5>
+                   <TEMP (HASH6:FIX 0) TEMP13:VECTOR ELEM18 TEMP23>
+                   <INTGO>
+                   <SET TEMP13 VEC4 (TYPE VECTOR)>
+                   <DEAD VEC4>
+                   <LOOP>
+MAP8
+                   <INTGO>
+                   <EMPUV? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
+                   <NTHUV TEMP13 1 = ELEM18>
+                   <IFSYS "TOPS20">
+                   <LSH HASH6 17 = TEMP23 (TYPE FIX)>
+                   <AND HASH6 #WORD *37777777777* = HASH6>
+                   <LSH HASH6 -15 = HASH6 (TYPE FIX)>
+                   <OR TEMP23 HASH6 = TEMP23>
+                   <DEAD HASH6>
+                   <AND TEMP23 #WORD *37777777777* = HASH6>
+                   <DEAD TEMP23>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH6 17 = HASH6 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <FRAME '\1aHASH>
+                   <PUSH ELEM18>
+                   <DEAD ELEM18>
+                   <ADD POS5 65536 = STACK (TYPE FIX)>
+                   <CALL '\1aHASH 2 = TEMP23>
+                   <XOR HASH6 TEMP23 = HASH6>
+                   <DEAD TEMP23>
+                   <XOR HASH6 POS5 = HASH6>
+                   <ADD POS5 1 = POS5 (TYPE FIX)>
+                   <RESTUV TEMP13 1 = TEMP13 (TYPE VECTOR)>
+                   <JUMP + MAP8>
+MAPAP11
+                   <RETURN HASH6>
+                   <DEAD HASH6>
+                   <END \1aHASH-VECTOR>
+
+#WORD *2514627643*
+                   <GFCN \1aHASH-UVECTOR ("VALUE" FIX UVECTOR FIX) UVEC4 POS5>
+                   <TEMP (HASH6:FIX 0) TEMP13:UVECTOR ELEM18:FIX TEMP23:FIX>
+                   <INTGO>
+                   <SET TEMP13 UVEC4 (TYPE UVECTOR)>
+                   <DEAD UVEC4>
+                   <LOOP>
+MAP8
+                   <INTGO>
+                   <EMPUU? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
+                   <NTHUU TEMP13 1 = ELEM18>
+                   <IFSYS "TOPS20">
+                   <LSH HASH6 17 = TEMP23 (TYPE FIX)>
+                   <AND HASH6 #WORD *37777777777* = HASH6>
+                   <LSH HASH6 -15 = HASH6 (TYPE FIX)>
+                   <OR TEMP23 HASH6 = TEMP23>
+                   <DEAD HASH6>
+                   <AND TEMP23 #WORD *37777777777* = HASH6>
+                   <DEAD TEMP23>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH6 17 = HASH6 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <XOR HASH6 ELEM18 = HASH6>
+                   <DEAD ELEM18>
+                   <XOR HASH6 POS5 = HASH6>
+                   <ADD POS5 1 = POS5 (TYPE FIX)>
+                   <RESTUU TEMP13 1 = TEMP13 (TYPE UVECTOR)>
+                   <JUMP + MAP8>
+MAPAP11
+                   <RETURN HASH6>
+                   <DEAD HASH6>
+                   <END \1aHASH-UVECTOR>
+
+#WORD *31374124150*
+                   <GFCN \1aHASH-BYTES ("VALUE" FIX BYTES FIX) BYT4 POS5>
+                   <TEMP (HASH6:FIX 0) TEMP13:BYTES ELEM18:FIX TEMP23:FIX>
+                   <INTGO>
+                   <SET TEMP13 BYT4 (TYPE BYTES)>
+                   <DEAD BYT4>
+                   <LOOP>
+MAP8
+                   <INTGO>
+                   <EMPUB? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
+                   <NTHUB TEMP13 1 = ELEM18>
+                   <IFSYS "TOPS20">
+                   <LSH HASH6 17 = TEMP23 (TYPE FIX)>
+                   <AND HASH6 #WORD *37777777777* = HASH6>
+                   <LSH HASH6 -15 = HASH6 (TYPE FIX)>
+                   <OR TEMP23 HASH6 = TEMP23>
+                   <DEAD HASH6>
+                   <AND TEMP23 #WORD *37777777777* = HASH6>
+                   <DEAD TEMP23>
+                   <ENDIF "TOPS20">
+                   <IFSYS "UNIX">
+                   <ROT HASH6 17 = HASH6 (TYPE FIX)>
+                   <ENDIF "UNIX">
+                   <XOR HASH6 ELEM18 = HASH6>
+                   <DEAD ELEM18>
+                   <XOR HASH6 POS5 = HASH6>
+                   <ADD POS5 1 = POS5 (TYPE FIX)>
+                   <RESTUB TEMP13 1 = TEMP13 (TYPE BYTES)>
+                   <JUMP + MAP8>
+MAPAP11
+                   <RETURN HASH6>
+                   <DEAD HASH6>
+                   <END \1aHASH-BYTES>
+
+#WORD *34704033030*
+                   <GFCN \1aNEWTYPE? ("VALUE" <OR ATOM FALSE> ANY) OBJ4>
+                   <TEMP TEMP6>
+                   <INTGO>
+                   <FRAME '\1aG?>
+                   <TYPE OBJ4 = TEMP6>
+                   <DEAD OBJ4>
+                   <LSH TEMP6 -6 = STACK (TYPE FIX)>
+                   <DEAD TEMP6>
+                   <GVAL 'OLD-TYPES = STACK>
+                   <CALL '\1aG? 2 = TEMP6>
+                   <RETURN TEMP6>
+                   <DEAD TEMP6>
+                   <END \1aNEWTYPE?>
+
+<ENDPACKAGE>