Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / hash.mima
1
2 <PACKAGE "HASH">
3
4 <ENTRY HASH EXPAND-FLAG>
5
6 <SETG EXPAND-FLAG <>>
7
8 <SETG PFIX 0>
9
10 <SETG PLIST 1>
11
12 <SETG PRECORD 2>
13
14 <SETG PBYTES 4>
15
16 <SETG PSTRING 5>
17
18 <SETG PUVECTOR 6>
19
20 <SETG PVECTOR 7>
21
22 <SETG ONE-IN-LH <LSH 1 16>>
23
24 <MANIFEST PFIX PLIST PRECORD PBYTES PSTRING PUVECTOR PVECTOR ONE-IN-LH>
25
26 #WORD *1024671055*
27                     <GFCN \1aHASH ("VALUE" FIX ANY "OPTIONAL" FIX) OBJ6 POS7>
28                     <OPT-DISPATCH 1 %<> OPT4 OPT5>
29 OPT4
30                     <PUSH 0>
31 OPT5
32                     <TEMP TEMP13 FTYP9:FIX PREHASH10 EXP-MACROS12 ATM11 HASH8:FIX>
33                     <INTGO>
34                     <TYPE OBJ6 = TEMP13>
35                     <AND TEMP13 #WORD *7* = FTYP9>
36                     <DEAD TEMP13>
37                     <GVAL 'EXPAND-FLAG = EXP-MACROS12>
38                     <TYPE? OBJ6 <TYPE-CODE FORM> - PHRASE24>
39                     <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE24>
40                     <EMPL? OBJ6 + PHRASE24 (TYPE FORM)>
41                     <NTHL OBJ6 1 = ATM11>
42                     <TYPE? ATM11 <TYPE-CODE ATOM> - PHRASE24 (DEAD-JUMP ATM11)>
43                     <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE24) (DEAD-JUMP ATM11 TEMP13)>
44                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE24 (DEAD-JUMP ATM11 TEMP13)>
45                     <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
46                     <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE24 (DEAD-JUMP ATM11)>
47                     <DEAD TEMP13>
48                     <VEQUAL? ATM11 'GVAL + BOOL20>
49                     <VEQUAL? ATM11 'LVAL - PHRASE18>
50 BOOL20
51                     <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
52                     <CHTYPE TEMP13 <TYPE-CODE LIST> = TEMP13>
53                     <EMPL? TEMP13 + PHRASE18 (TYPE LIST)>
54                     <DEAD TEMP13>
55                     <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
56                     <NTHL TEMP13 1 = TEMP13>
57                     <TYPE? TEMP13 <TYPE-CODE ATOM> - PHRASE18 (DEAD-FALL FTYP9)>
58                     <DEAD TEMP13>
59                     <FRAME '\1aCHTYPE>
60                     <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
61                     <DEAD OBJ6>
62                     <NTHL TEMP13 1 = STACK (TYPE ATOM)>
63                     <DEAD TEMP13>
64                     <PUSH ATM11>
65                     <DEAD ATM11>
66                     <CALL '\1aCHTYPE 2 = OBJ6>
67                     <SET FTYP9 2 (TYPE FIX)>
68                     <JUMP + PHRASE24>
69 PHRASE18
70                     <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
71                     <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
72                     <VEQUAL? TEMP13 'MANIFEST - PHRASE22 (DEAD-FALL PREHASH10)>
73                     <DEAD TEMP13>
74                     <FRAME '\1aHASH>
75                     <GVAL ATM11 = STACK>
76                     <DEAD ATM11>
77                     <JUMP + PEEP79>
78 PHRASE22
79                     <GVAL ATM11 = TEMP13>
80                     <DEAD ATM11>
81                     <TYPE? TEMP13 <TYPE-CODE MACRO> - PHRASE24 (DEAD-FALL PREHASH10)>
82                     <DEAD TEMP13>
83                     <FRAME '\1aHASH>
84                     <FRAME '\1aEXPAND>
85                     <PUSH OBJ6>
86                     <CALL '\1aEXPAND 1 = STACK>
87 PEEP79
88                     <ADD POS7 65536 = STACK (TYPE FIX)>
89                     <CALL '\1aHASH 2 = PREHASH10>
90 PHRASE24
91                     <DISPATCH FTYP9 0 CASE29 CASE31 CASE32 CASEDF27 CASE33 CASE30 CASE35 CASE34 (DEAD-FALL EXP-MACROS12)>
92                     <DEAD FTYP9>
93 CASEDF27
94                     <FRAME '\1aERROR>
95                     <PUSH 'UNKNOWN-PRIMTYPE!-ERRORS>
96                     <FRAME '\1aPRIMTYPE>
97                     <PUSH OBJ6>
98                     <CALL '\1aPRIMTYPE 1 = STACK>
99                     <PUSH 'HASH>
100                     <CALL '\1aERROR 3>
101                     <JUMP + CASEND28>
102 CASE29
103                     <CHTYPE OBJ6 <TYPE-CODE FIX> = HASH8>
104                     <JUMP + CASEND28>
105 CASE30
106                     <FRAME '\1aHASH-STRING>
107                     <CHTYPE OBJ6 <TYPE-CODE STRING> = STACK>
108                     <ADD POS7 65536 = STACK (TYPE FIX)>
109                     <CALL '\1aHASH-STRING 2 = HASH8>
110                     <JUMP + CASEND28>
111 CASE31
112                     <FRAME '\1aHASH-LIST>
113                     <CHTYPE OBJ6 <TYPE-CODE LIST> = STACK>
114                     <ADD POS7 65536 = STACK (TYPE FIX)>
115                     <CALL '\1aHASH-LIST 2 = HASH8>
116                     <JUMP + CASEND28>
117 CASE32
118                     <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE41>
119                     <DEAD EXP-MACROS12>
120                     <TYPE? OBJ6 <TYPE-CODE GVAL> - PHRASE41>
121                     <CHTYPE OBJ6 <TYPE-CODE ATOM> = ATM11>
122                     <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE41) (DEAD-JUMP ATM11 TEMP13)>
123                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE41 (DEAD-JUMP ATM11 TEMP13)>
124                     <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
125                     <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE41 (DEAD-JUMP ATM11)>
126                     <DEAD TEMP13>
127                     <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
128                     <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
129                     <VEQUAL? TEMP13 'MANIFEST - PHRASE41 (DEAD-JUMP ATM11) (DEAD-FALL HASH8)>
130                     <DEAD TEMP13>
131                     <FRAME '\1aHASH>
132                     <GVAL ATM11 = STACK>
133                     <DEAD ATM11>
134                     <ADD POS7 65536 = STACK (TYPE FIX)>
135                     <CALL '\1aHASH 2 = HASH8>
136                     <JUMP + CASEND28>
137 PHRASE41
138                     <TYPE? OBJ6 <TYPE-CODE ATOM> + BOOL45 (DEAD-JUMP HASH8)>
139                     <TYPE? OBJ6 <TYPE-CODE LVAL> + BOOL45 (DEAD-JUMP HASH8)>
140                     <TYPE? OBJ6 <TYPE-CODE GVAL> + BOOL45 (DEAD-JUMP HASH8)>
141                     <FRAME '\1aPRIMTYPE>
142                     <PUSH OBJ6>
143                     <CALL '\1aPRIMTYPE 1 = TEMP13>
144                     <VEQUAL? TEMP13 'ATOM - CASEND28 (DEAD-FALL HASH8)>
145                     <DEAD TEMP13>
146 BOOL45
147                     <FRAME '\1aHASH-ATOM>
148                     <CHTYPE OBJ6 <TYPE-CODE ATOM> = STACK>
149                     <ADD POS7 65536 = STACK (TYPE FIX)>
150                     <CALL '\1aHASH-ATOM 2 = HASH8>
151                     <JUMP + CASEND28>
152 CASE33
153                     <FRAME '\1aHASH-BYTES>
154                     <CHTYPE OBJ6 <TYPE-CODE BYTES> = STACK>
155                     <ADD POS7 65536 = STACK (TYPE FIX)>
156                     <CALL '\1aHASH-BYTES 2 = HASH8>
157                     <JUMP + CASEND28>
158 CASE34
159                     <FRAME '\1aHASH-VECTOR>
160                     <CHTYPE OBJ6 <TYPE-CODE VECTOR> = STACK>
161                     <ADD POS7 65536 = STACK (TYPE FIX)>
162                     <CALL '\1aHASH-VECTOR 2 = HASH8>
163                     <JUMP + CASEND28>
164 CASE35
165                     <FRAME '\1aHASH-UVECTOR>
166                     <CHTYPE OBJ6 <TYPE-CODE UVECTOR> = STACK>
167                     <ADD POS7 65536 = STACK (TYPE FIX)>
168                     <CALL '\1aHASH-UVECTOR 2 = HASH8>
169 CASEND28
170                     <FRAME '\1aNEWTYPE?>
171                     <PUSH OBJ6>
172                     <CALL '\1aNEWTYPE? 1 = TEMP13>
173                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE52>
174                     <DEAD TEMP13>
175                     <IFSYS "TOPS20">
176                     <FRAME '\1aPRIMTYPE>
177                     <PUSH OBJ6>
178                     <CALL '\1aPRIMTYPE 1 = TEMP13>
179                     <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
180                     <CHTYPE TEMP13 <TYPE-CODE FIX> = FTYP9>
181                     <DEAD TEMP13>
182                     <LSH FTYP9 13 = TEMP13 (TYPE FIX)>
183                     <AND FTYP9 #WORD *37777777777* = FTYP9>
184                     <LSH FTYP9 -19 = FTYP9 (TYPE FIX)>
185                     <OR TEMP13 FTYP9 = TEMP13>
186                     <DEAD FTYP9>
187                     <AND TEMP13 #WORD *37777777777* = TEMP13>
188                     <ENDIF "TOPS20">
189                     <IFSYS "UNIX">
190                     <FRAME '\1aPRIMTYPE>
191                     <PUSH OBJ6>
192                     <CALL '\1aPRIMTYPE 1 = TEMP13>
193                     <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
194                     <ROT TEMP13 13 = TEMP13 (TYPE FIX)>
195                     <ENDIF "UNIX">
196                     <FRAME '\1aHASH-ATOM>
197                     <FRAME '\1aTYPE>
198                     <PUSH OBJ6>
199                     <DEAD OBJ6>
200                     <CALL '\1aTYPE 1 = STACK>
201                     <ADD POS7 65536 = STACK (TYPE FIX)>
202                     <CALL '\1aHASH-ATOM 2 = FTYP9>
203                     <XOR TEMP13 FTYP9 = TEMP13>
204                     <DEAD FTYP9>
205                     <IFSYS "TOPS20">
206                     <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
207                     <AND HASH8 #WORD *37777777777* = FTYP9>
208                     <DEAD HASH8>
209                     <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
210                     <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
211                     <DEAD FTYP9>
212                     <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
213                     <DEAD EXP-MACROS12>
214                     <ENDIF "TOPS20">
215                     <IFSYS "UNIX">
216                     <ROT HASH8 17 = FTYP9 (TYPE FIX)>
217                     <DEAD HASH8>
218                     <ENDIF "UNIX">
219                     <XOR TEMP13 FTYP9 = HASH8>
220                     <DEAD TEMP13 FTYP9>
221                     <JUMP + PHRASE71>
222 PHRASE52
223                     <IFSYS "TOPS20">
224                     <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
225                     <AND HASH8 #WORD *37777777777* = FTYP9>
226                     <DEAD HASH8>
227                     <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
228                     <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
229                     <DEAD FTYP9>
230                     <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
231                     <DEAD EXP-MACROS12>
232                     <ENDIF "TOPS20">
233                     <IFSYS "UNIX">
234                     <ROT HASH8 17 = FTYP9 (TYPE FIX)>
235                     <DEAD HASH8>
236                     <ENDIF "UNIX">
237                     <TYPE OBJ6 = EXP-MACROS12>
238                     <DEAD OBJ6>
239                     <XOR FTYP9 EXP-MACROS12 = HASH8>
240                     <DEAD FTYP9 EXP-MACROS12>
241 PHRASE71
242                     <TYPE? PREHASH10 <TYPE-CODE UNBOUND> + PHRASE75 (DEAD-JUMP PREHASH10)>
243                     <IFSYS "TOPS20">
244                     <LSH HASH8 17 = FTYP9 (TYPE FIX)>
245                     <AND HASH8 #WORD *37777777777* = HASH8>
246                     <LSH HASH8 -15 = HASH8 (TYPE FIX)>
247                     <OR FTYP9 HASH8 = FTYP9>
248                     <DEAD HASH8>
249                     <AND FTYP9 #WORD *37777777777* = EXP-MACROS12>
250                     <DEAD FTYP9>
251                     <ENDIF "TOPS20">
252                     <IFSYS "UNIX">
253                     <ROT HASH8 17 = EXP-MACROS12 (TYPE FIX)>
254                     <DEAD HASH8>
255                     <ENDIF "UNIX">
256                     <XOR EXP-MACROS12 PREHASH10 = HASH8>
257                     <DEAD EXP-MACROS12 PREHASH10>
258 PHRASE75
259                     <XOR HASH8 POS7 = EXP-MACROS12>
260                     <DEAD HASH8 POS7>
261                     <RETURN EXP-MACROS12>
262                     <DEAD EXP-MACROS12>
263                     <END \1aHASH>
264
265 #WORD *531617232*
266                     <GFCN \1aHASH-ATOM ("VALUE" FIX ATOM FIX) ATM4 POS5>
267                     <TEMP TEMP8:FIX TEMP19>
268                     <INTGO>
269                     <VEQUAL? ATM4 'ROOT - PHRASE7 (DEAD-FALL ATM4)>
270                     <XOR POS5 #WORD *122* = TEMP8>
271                     <DEAD POS5>
272                     <RETURN TEMP8>
273                     <DEAD TEMP8>
274 PHRASE7
275                     <IFSYS "TOPS20">
276                     <FRAME '\1aHASH-STRING>
277                     <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
278                     <ADD POS5 65536 = STACK (TYPE FIX)>
279                     <CALL '\1aHASH-STRING 2 = TEMP8>
280                     <LSH TEMP8 17 = TEMP19 (TYPE FIX)>
281                     <AND TEMP8 #WORD *37777777777* = TEMP8>
282                     <LSH TEMP8 -15 = TEMP8 (TYPE FIX)>
283                     <OR TEMP19 TEMP8 = TEMP19>
284                     <DEAD TEMP8>
285                     <AND TEMP19 #WORD *37777777777* = TEMP8>
286                     <DEAD TEMP19>
287                     <ENDIF "TOPS20">
288                     <IFSYS "UNIX">
289                     <FRAME '\1aHASH-STRING>
290                     <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
291                     <ADD POS5 65536 = STACK (TYPE FIX)>
292                     <CALL '\1aHASH-STRING 2 = TEMP19>
293                     <ROT TEMP19 17 = TEMP8 (TYPE FIX)>
294                     <DEAD TEMP19>
295                     <ENDIF "UNIX">
296                     <FRAME '\1aHASH>
297                     <NTHR ATM4 4 = STACK (RECORD-TYPE ATOM)>
298                     <DEAD ATM4>
299                     <ADD POS5 65536 = STACK (TYPE FIX)>
300                     <DEAD POS5>
301                     <CALL '\1aHASH 2 = TEMP19>
302                     <XOR TEMP8 TEMP19 = TEMP8>
303                     <DEAD TEMP19>
304                     <RETURN TEMP8>
305                     <DEAD TEMP8>
306                     <END \1aHASH-ATOM>
307
308 #WORD *17070741545*
309                     <GFCN \1aHASH-STRING ("VALUE" FIX STRING FIX) STR4 POS5>
310                     <TEMP (HASH6:FIX 0) TEMP13:STRING CH18:CHARACTER TEMP23:FIX>
311                     <INTGO>
312                     <SET TEMP13 STR4 (TYPE STRING)>
313                     <DEAD STR4>
314                     <LOOP>
315 MAP8
316                     <INTGO>
317                     <EMPUS? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
318                     <NTHUS TEMP13 1 = CH18>
319                     <IFSYS "TOPS20">
320                     <LSH HASH6 17 = TEMP23 (TYPE FIX)>
321                     <AND HASH6 #WORD *37777777777* = HASH6>
322                     <LSH HASH6 -15 = HASH6 (TYPE FIX)>
323                     <OR TEMP23 HASH6 = TEMP23>
324                     <DEAD HASH6>
325                     <AND TEMP23 #WORD *37777777777* = HASH6>
326                     <DEAD TEMP23>
327                     <ENDIF "TOPS20">
328                     <IFSYS "UNIX">
329                     <ROT HASH6 17 = HASH6 (TYPE FIX)>
330                     <ENDIF "UNIX">
331                     <XOR HASH6 POS5 = HASH6>
332                     <XOR HASH6 CH18 = HASH6>
333                     <DEAD CH18>
334                     <ADD POS5 1 = POS5 (TYPE FIX)>
335                     <RESTUS TEMP13 1 = TEMP13 (TYPE STRING)>
336                     <JUMP + MAP8>
337 MAPAP11
338                     <RETURN HASH6>
339                     <DEAD HASH6>
340                     <END \1aHASH-STRING>
341
342 #WORD *2612511232*
343                     <GFCN \1aHASH-LIST ("VALUE" FIX LIST FIX) LIST4 POS5>
344                     <TEMP (HASH6:FIX 0) TEMP13:LIST ELEM18 TEMP23>
345                     <INTGO>
346                     <SET TEMP13 LIST4 (TYPE LIST)>
347                     <DEAD LIST4>
348                     <LOOP>
349 MAP8
350                     <INTGO>
351                     <EMPL? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
352                     <NTHL TEMP13 1 = ELEM18>
353                     <IFSYS "TOPS20">
354                     <LSH HASH6 17 = TEMP23 (TYPE FIX)>
355                     <AND HASH6 #WORD *37777777777* = HASH6>
356                     <LSH HASH6 -15 = HASH6 (TYPE FIX)>
357                     <OR TEMP23 HASH6 = TEMP23>
358                     <DEAD HASH6>
359                     <AND TEMP23 #WORD *37777777777* = HASH6>
360                     <DEAD TEMP23>
361                     <ENDIF "TOPS20">
362                     <IFSYS "UNIX">
363                     <ROT HASH6 17 = HASH6 (TYPE FIX)>
364                     <ENDIF "UNIX">
365                     <FRAME '\1aHASH>
366                     <PUSH ELEM18>
367                     <DEAD ELEM18>
368                     <ADD POS5 65536 = STACK (TYPE FIX)>
369                     <CALL '\1aHASH 2 = TEMP23>
370                     <XOR HASH6 TEMP23 = HASH6>
371                     <DEAD TEMP23>
372                     <XOR HASH6 POS5 = HASH6>
373                     <ADD POS5 1 = POS5 (TYPE FIX)>
374                     <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
375                     <JUMP + MAP8>
376 MAPAP11
377                     <RETURN HASH6>
378                     <DEAD HASH6>
379                     <END \1aHASH-LIST>
380
381 #WORD *27735626233*
382                     <GFCN \1aHASH-VECTOR ("VALUE" FIX VECTOR FIX) VEC4 POS5>
383                     <TEMP (HASH6:FIX 0) TEMP13:VECTOR ELEM18 TEMP23>
384                     <INTGO>
385                     <SET TEMP13 VEC4 (TYPE VECTOR)>
386                     <DEAD VEC4>
387                     <LOOP>
388 MAP8
389                     <INTGO>
390                     <EMPUV? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
391                     <NTHUV TEMP13 1 = ELEM18>
392                     <IFSYS "TOPS20">
393                     <LSH HASH6 17 = TEMP23 (TYPE FIX)>
394                     <AND HASH6 #WORD *37777777777* = HASH6>
395                     <LSH HASH6 -15 = HASH6 (TYPE FIX)>
396                     <OR TEMP23 HASH6 = TEMP23>
397                     <DEAD HASH6>
398                     <AND TEMP23 #WORD *37777777777* = HASH6>
399                     <DEAD TEMP23>
400                     <ENDIF "TOPS20">
401                     <IFSYS "UNIX">
402                     <ROT HASH6 17 = HASH6 (TYPE FIX)>
403                     <ENDIF "UNIX">
404                     <FRAME '\1aHASH>
405                     <PUSH ELEM18>
406                     <DEAD ELEM18>
407                     <ADD POS5 65536 = STACK (TYPE FIX)>
408                     <CALL '\1aHASH 2 = TEMP23>
409                     <XOR HASH6 TEMP23 = HASH6>
410                     <DEAD TEMP23>
411                     <XOR HASH6 POS5 = HASH6>
412                     <ADD POS5 1 = POS5 (TYPE FIX)>
413                     <RESTUV TEMP13 1 = TEMP13 (TYPE VECTOR)>
414                     <JUMP + MAP8>
415 MAPAP11
416                     <RETURN HASH6>
417                     <DEAD HASH6>
418                     <END \1aHASH-VECTOR>
419
420 #WORD *2514627643*
421                     <GFCN \1aHASH-UVECTOR ("VALUE" FIX UVECTOR FIX) UVEC4 POS5>
422                     <TEMP (HASH6:FIX 0) TEMP13:UVECTOR ELEM18:FIX TEMP23:FIX>
423                     <INTGO>
424                     <SET TEMP13 UVEC4 (TYPE UVECTOR)>
425                     <DEAD UVEC4>
426                     <LOOP>
427 MAP8
428                     <INTGO>
429                     <EMPUU? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
430                     <NTHUU TEMP13 1 = ELEM18>
431                     <IFSYS "TOPS20">
432                     <LSH HASH6 17 = TEMP23 (TYPE FIX)>
433                     <AND HASH6 #WORD *37777777777* = HASH6>
434                     <LSH HASH6 -15 = HASH6 (TYPE FIX)>
435                     <OR TEMP23 HASH6 = TEMP23>
436                     <DEAD HASH6>
437                     <AND TEMP23 #WORD *37777777777* = HASH6>
438                     <DEAD TEMP23>
439                     <ENDIF "TOPS20">
440                     <IFSYS "UNIX">
441                     <ROT HASH6 17 = HASH6 (TYPE FIX)>
442                     <ENDIF "UNIX">
443                     <XOR HASH6 ELEM18 = HASH6>
444                     <DEAD ELEM18>
445                     <XOR HASH6 POS5 = HASH6>
446                     <ADD POS5 1 = POS5 (TYPE FIX)>
447                     <RESTUU TEMP13 1 = TEMP13 (TYPE UVECTOR)>
448                     <JUMP + MAP8>
449 MAPAP11
450                     <RETURN HASH6>
451                     <DEAD HASH6>
452                     <END \1aHASH-UVECTOR>
453
454 #WORD *31374124150*
455                     <GFCN \1aHASH-BYTES ("VALUE" FIX BYTES FIX) BYT4 POS5>
456                     <TEMP (HASH6:FIX 0) TEMP13:BYTES ELEM18:FIX TEMP23:FIX>
457                     <INTGO>
458                     <SET TEMP13 BYT4 (TYPE BYTES)>
459                     <DEAD BYT4>
460                     <LOOP>
461 MAP8
462                     <INTGO>
463                     <EMPUB? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
464                     <NTHUB TEMP13 1 = ELEM18>
465                     <IFSYS "TOPS20">
466                     <LSH HASH6 17 = TEMP23 (TYPE FIX)>
467                     <AND HASH6 #WORD *37777777777* = HASH6>
468                     <LSH HASH6 -15 = HASH6 (TYPE FIX)>
469                     <OR TEMP23 HASH6 = TEMP23>
470                     <DEAD HASH6>
471                     <AND TEMP23 #WORD *37777777777* = HASH6>
472                     <DEAD TEMP23>
473                     <ENDIF "TOPS20">
474                     <IFSYS "UNIX">
475                     <ROT HASH6 17 = HASH6 (TYPE FIX)>
476                     <ENDIF "UNIX">
477                     <XOR HASH6 ELEM18 = HASH6>
478                     <DEAD ELEM18>
479                     <XOR HASH6 POS5 = HASH6>
480                     <ADD POS5 1 = POS5 (TYPE FIX)>
481                     <RESTUB TEMP13 1 = TEMP13 (TYPE BYTES)>
482                     <JUMP + MAP8>
483 MAPAP11
484                     <RETURN HASH6>
485                     <DEAD HASH6>
486                     <END \1aHASH-BYTES>
487
488 #WORD *34704033030*
489                     <GFCN \1aNEWTYPE? ("VALUE" <OR ATOM FALSE> ANY) OBJ4>
490                     <TEMP TEMP6>
491                     <INTGO>
492                     <FRAME '\1aG?>
493                     <TYPE OBJ4 = TEMP6>
494                     <DEAD OBJ4>
495                     <LSH TEMP6 -6 = STACK (TYPE FIX)>
496                     <DEAD TEMP6>
497                     <GVAL 'OLD-TYPES = STACK>
498                     <CALL '\1aG? 2 = TEMP6>
499                     <RETURN TEMP6>
500                     <DEAD TEMP6>
501                     <END \1aNEWTYPE?>
502
503 <ENDPACKAGE>