perm filename CYCOMG.LAP[3,LMM] blob sn#037496 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCOMGFNS (CYCOMGFNS LLUNCLASS PERMRADS LABEEDGES LABELFV STRUCTURESWITHATOMS ATTACHFVS ATTACHBIVALENTS→
 LLABELNODES MAKEUNCLASSED) VALUE) 

(LAP LLUNCLASS SUBR) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. TAG1 0.)) 
       (MOVEI D (QUOTE LUNCLASS) S) 
       (PUSH P D) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E MAPCAR) S) 
 TAG1  (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP PERMRADS SUBR) 
       (PUSH P 1.) 
       (MOVE 1. 2.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (CALL 1. (E CLCREATE) S) 
       (MOVEM 1. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG6) 
       (MOVE 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 2. (E CONS) S) 
       (CALL 1. (E NCONS) S) 
       (JRST 0. TAG5) 
 TAG6  (HLRZ@ 1. -2. P) 
       (CAIE 1. (QUOTE FORM) S) 
       (JRST 0. TAG7) 
       (MOVE 1. -2. P) 
       (CALL 1. (E NCONS) S) 
       (MOVEI 2. (QUOTE NIL)) 
       (CALL 2. (E XCONS) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E CONS) S) 
       (CALL 1. (E NCONS) S) 
       (JRST 0. TAG5) 
 TAG7  (MOVE 1. -1. P) 
       (CALL 1. (E CDRLIST) S) 
       (PUSH P -2. P) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (MOVE 1. -5. P) 
       (JUMPE 1. TAG14) 
       (MOVE 2. -3. P) 
       (MOVEI 1. (QUOTE 1.)) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. 1.) 
       (JRST 0. TAG13) 
 TAG14 (MOVE 2. -3. P) 
 TAG13 (MOVE 1. -4. P) 
       (CALL 2. (E LABELFV) S) 
       (MOVEM 1. -1. P) 
 TAG1  (MOVE 1. -1. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (MOVE 1. -5. P) 
       (JUMPE 1. TAG20) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E CAAR) S) 
       (JRST 0. TAG19) 
 TAG20 (MOVEI 1. (QUOTE NIL)) 
 TAG19 (PUSH P -2. P) 
       (MOVEM 1. -4. P) 
       (HRRZ@ 1. 0. P) 
       (HRRZ@ 1. 1.) 
       (PUSH P 1.) 
       (MOVE 1. -7. P) 
       (JUMPE 1. TAG24) 
       (HLRZ@ 2. -4. P) 
       (HRRZ@ 2. 2.) 
       (JRST 0. TAG23) 
 TAG24 (HLRZ@ 2. -4. P) 
 TAG23 (POP P 1.) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. -4. P) 
       (CALL 2. (E XCONS) S) 
       (MOVE 2. -7. P) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E CONS) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
 TAG5  (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP LABEEDGES SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HRRZ@ 1. 1.) 
       (HLRZ@ 1. 1.) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -4. P) 
       (JUMPE 1. TAG7) 
       (HLRZ@ 1. -4. P) 
       (HRRZ@ 2. 1.) 
       (HRRZ@ 2. 2.) 
       (HRRZ@ 2. 2.) 
       (MOVEM 2. -1. P) 
       (MOVEM 1. -3. P) 
 TAG2  (MOVE 1. -1. P) 
       (JUMPE 1. TAG5) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (HRRZ@ 1. -3. P) 
       (MOVE 2. -2. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E LEQ) S) 
       (JUMPE 1. TAG4) 
       (MOVE 2. -2. P) 
       (HRRZ@ 1. -3. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG3 
 TAG4  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG2) 
 TAG5 
 TAG6  (HRRZ@ 1. -4. P) 
       (MOVEM 1. -4. P) 
       (JRST 0. TAG1) 
 TAG7  (MOVE 2. 0. P) 
       (MOVEI 1. (QUOTE ?) S) 
       (CALL 2. (E CONS) S) 
       (MOVE 3. -9. P) 
       (MOVE 2. -8. P) 
       (CALL 3. (E LABELM) S) 
       (SUB P (C 5. 0. 5. 0.)) 
       (MOVEM 1. -1. P) 
 TAG8  (MOVE 1. -1. P) 
       (JUMPE 1. TAG11) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E LUNCLASS) S) 
       (HRRZ@ 2. -2. P) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG9 
 TAG10 (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG8) 
 TAG11 (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP LABELFV SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 1. (E COLLECTFV) S) 
       (MOVEI 2. (QUOTE ?) S) 
       (CALL 2. (E XCONS) S) 
       (MOVE 3. -1. P) 
       (MOVE 2. 0. P) 
       (CALL 3. (E LABELM) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -2. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E LUNCLASS) S) 
       (HRRZ@ 2. -1. P) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP STRUCTURESWITHATOMS SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 1. (E LCDRLIST) S) 
       (MOVE 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 2. (E LLABELNODES) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -2. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E COPYSTRUC) S) 
       (HLRZ@ 3. -1. P) 
       (MOVE 2. -4. P) 
       (CALL 3. (E INSERTMARKERS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP ATTACHFVS SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (EXCH 2. 1.) 
       (CALL 2. (E LLABELNODES) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -2. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E COPYSTRUC) S) 
       (HLRZ@ 2. -1. P) 
       (CALL 2. (E PUTFVS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP ATTACHBIVALENTS SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 1. (E CDRLIST) S) 
       (MOVE 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 2. (E LABELEDGES) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -2. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E COPYSTRUC) S) 
       (PUSH P 1.) 
       (MOVE 1. -5. P) 
       (CALL 1. (E CARLIST) S) 
       (HLRZ@ 3. -2. P) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTBIVS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP LLABELNODES SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. TAG8 0.)) 
       (MOVEI D (QUOTE MAKEUNCLASSED) S) 
       (PUSH P D) 
       (CALL 1. (E LISTBYVALENCE) S) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E MAPCAR) S) 
 TAG8  (MOVE 3. -4. P) 
       (MOVE 2. -3. P) 
       (CALL 3. (E LLABEL) S) 
       (MOVEM 1. -1. P) 
 TAG1  (MOVE 1. -1. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E LLUNCLASS) S) 
       (HRRZ@ 2. -2. P) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

(LAP MAKEUNCLASSED SUBR) 
       (PUSH P 1.) 
       (JUMPE 1. TAG1) 
       (MOVE 2. 0. P) 
       (MOVEI 1. (QUOTE ?) S) 
       (CALL 2. (E CONS) S) 
 TAG1  (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL