perm filename CYCOMF.LAP[3,LMM] blob sn#037495 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCOMFFNS (CYCOMFFNS ORDPAIR EDGEMARK LABEL1C MAKEMULT MAKENODES MAKEEDGES LABELMULT LABEL0A LABELN LAB→
ELE UNCLASS LUNCLASS) VALUE) 

(LAP ORDPAIR SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 2. (E LEQ) S) 
       (JUMPE 1. TAG2) 
       (MOVE 2. 0. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E CONS) S) 
       (JRST 0. TAG1) 
 TAG2  (MOVE 2. -1. P) 
       (MOVE 1. 0. P) 
       (CALL 2. (E CONS) S) 
 TAG1  (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP EDGEMARK SUBR) 
       (PUSH P 1.) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E NODEMARK) S) 
       (PUSH P 1.) 
       (HRRZ@ 1. -1. P) 
       (CALL 1. (E NODEMARK) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JCALL 2. (E ORDPAIR) S) 
       NIL 

(LAP LABEL1C SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (CAIE 2. (QUOTE 0.)) 
       (JRST 0. TAG2) 
       (MOVE 2. 3.) 
       (CALL 2. (E CONS) S) 
       (MOVEI 2. (QUOTE NIL)) 
       (CALL 2. (E XCONS) S) 
       (CALL 1. (E NCONS) S) 
       (JRST 0. TAG1) 
 TAG2  (CALL 1. (E SIZE) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E EQUAL) S) 
       (JUMPE 1. TAG3) 
       (MOVE 2. 0. P) 
       (MOVEI 1. (QUOTE NIL)) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. -2. P) 
       (CALL 2. (E XCONS) S) 
       (CALL 1. (E NCONS) S) 
       (JRST 0. TAG1) 
 TAG3  (HLRZ@ 1. -2. P) 
       (CAIE 1. (QUOTE NODES) S) 
       (JRST 0. TAG4) 
       (MOVE 3. 0. P) 
       (MOVE 2. -1. P) 
       (HRRZ@ 1. -2. P) 
       (CALL 3. (E LABELN) S) 
       (JRST 0. TAG1) 
 TAG4  (HLRZ@ 1. -2. P) 
       (CAIE 1. (QUOTE EDGES) S) 
       (JRST 0. TAG5) 
       (MOVE 3. 0. P) 
       (MOVE 2. -1. P) 
       (HRRZ@ 1. -2. P) 
       (CALL 3. (E LABELE) S) 
       (JRST 0. TAG1) 
 TAG5  (HLRZ@ 1. -2. P) 
       (CAIE 1. (QUOTE MULT) S) 
       (JRST 0. TAG6) 
       (HRRZ@ 1. -2. P) 
       (MOVE 4. 0. P) 
       (MOVE 3. -1. P) 
       (HRRZ@ 2. 1.) 
       (HLRZ@ 1. 1.) 
       (CALL 4. (E LABELMULT) S) 
       (JRST 0. TAG1) 
 TAG6  (MOVE 3. 0. P) 
       (MOVE 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 3. (E LABELUNDEFINEDSTRUC) S) 
 TAG1  (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP MAKEMULT SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CAIE 1. (QUOTE 0.)) 
       (JRST 0. TAG2) 
       (MOVEI 1. (QUOTE NIL)) 
       (JRST 0. TAG1) 
 TAG2  (MOVEI 2. (QUOTE 1.)) 
       (CALL 2. (E EQUAL) S) 
       (JUMPE 1. TAG3) 
       (MOVE 1. 0. P) 
       (JRST 0. TAG1) 
 TAG3  (MOVE 2. 0. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E CONS) S) 
       (MOVEI 2. (QUOTE MULT) S) 
       (CALL 2. (E XCONS) S) 
 TAG1  (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

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

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

(LAP LABELMULT SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (MOVE 1. 2.) 
       (CALL 1. (E SIZE) S) 
       (MOVE 4. -3. P) 
       (MOVEI 3. (QUOTE 0.)) 
       (MOVE 2. 1.) 
       (MOVE 1. -1. P) 
       (CALL 4. (E NUMPARTITIONS) S) 
       (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.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -5. P) 
       (JUMPE 1. TAG18) 
       (HLRZ@ 1. -5. P) 
       (MOVEM 1. -4. P) 
       (CALL 1. (E CLCREATE) S) 
       (MOVEM 1. -3. P) 
       (CALL 1. (E CDRLIST) S) 
       (MOVE 3. -6. P) 
       (MOVE 2. 1.) 
       (MOVE 1. -8. P) 
       (CALL 3. (E LABELM) S) 
       (MOVEM 1. -1. P) 
 TAG2  (MOVE 1. -1. P) 
       (JUMPE 1. TAG15) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HLRZ@ 1. 1.) 
       (PUSH P -4. P) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG3  (MOVE 1. -2. P) 
       (JUMPE 1. TAG7) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (MOVE 1. -3. P) 
       (JUMPE 1. TAG7) 
       (HLRZ@ 1. -3. P) 
       (MOVE 2. -1. P) 
       (MOVEM 1. 0. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E MAKEMULT) S) 
       (MOVE 2. -4. P) 
       (CALL 2. (E COMBINE) S) 
       (MOVEM 1. -4. P) 
 TAG4 
 TAG5  (HRRZ@ 1. -3. P) 
       (MOVEM 1. -3. P) 
 TAG6  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG3) 
 TAG7  (MOVE 1. -4. P) 
       (MOVEM 1. -4. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HLRZ@ 1. -8. P) 
       (PUSH P -9. P) 
       (MOVEM 1. -5. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG8  (MOVE 1. -7. P) 
       (JUMPN 1. TAG37) 
       (JRST 0. TAG12) 
 TAG37 (HLRZ@ 1. -7. P) 
       (MOVEM 1. -1. P) 
       (MOVE 1. -2. P) 
       (JUMPN 1. TAG40) 
       (JRST 0. TAG12) 
 TAG40 (HLRZ@ 1. -2. P) 
       (HLRZ@ 2. 1.) 
       (MOVEM 1. 0. P) 
       (MOVE 1. -18. P) 
       (CALL 2. (E *DIF) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E MAKEMULT) S) 
       (MOVE 2. -3. P) 
       (CALL 2. (E COMBINE) S) 
       (MOVEM 1. -3. P) 
 TAG9 
 TAG10 (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
 TAG11 (HRRZ@ 1. -7. P) 
       (MOVEM 1. -7. P) 
       (JRST 0. TAG8) 
 TAG12 (MOVE 1. -3. P) 
       (HRRZ@ 2. -11. P) 
       (HRRZ@ 2. 2.) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. -8. P) 
       (CALL 2. (E XCONS) S) 
       (MOVE 2. -9. P) 
       (CALL 2. (E CONS) S) 
       (SUB P (C 9. 0. 9. 0.)) 
       (MOVEM 1. 0. P) 
 TAG13 
 TAG14 (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG2) 
 TAG15 
 TAG16 
 TAG17 (HRRZ@ 1. -5. P) 
       (MOVEM 1. -5. P) 
       (JRST 0. TAG1) 
 TAG18 (MOVE 1. 0. P) 
       (SUB P (C 10. 0. 10. 0.)) 
       (POPJ P) 
       NIL 

(LAP LABEL0A SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (PUSH P 5.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HLRZ@ 1. 3.) 
       (JUMPN 1. TAG9) 
       (EXCH 5. 4.) 
       (HRRZ@ 4. 3.) 
       (MOVEI 3. (QUOTE NIL)) 
       (MOVEI 2. (QUOTE NIL)) 
       (MOVE 1. -7. P) 
       (CALL 5. (E COMB1) S) 
       (JRST 0. TAG8) 
 TAG9  (HLRZ@ 1. -5. P) 
       (HLRZ@ 1. 1.) 
       (MOVE 2. -7. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E DIFF) S) 
       (MOVE 5. -4. P) 
       (MOVE 4. -5. P) 
       (MOVE 3. 1.) 
       (MOVEI 2. (QUOTE NIL)) 
       (MOVE 1. -7. P) 
       (CALL 5. (E COMB) S) 
 TAG8  (MOVEM 1. -1. P) 
 TAG1  (MOVE 1. -1. P) 
       (JUMPE 1. TAG4) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. -2. P) 
       (HLRZ@ 1. 1.) 
       (CALLF@ 1. -3. P) 
       (HLRZ@ 2. -2. P) 
       (PUSH P 1.) 
       (MOVE 1. -8. P) 
       (CALL 2. (E DIFF) S) 
       (CALLF@ 1. -4. P) 
       (HRRZ@ 2. -3. P) 
       (HRRZ@ 2. 2.) 
       (PUSH P 1.) 
       (HRRZ@ 1. -8. P) 
       (HRRZ@ 1. 1.) 
       (HRRZ@ 1. 1.) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E CONS) S) 
       (HRRZ@ 2. -8. P) 
       (HRRZ@ 2. 2.) 
       (HLRZ@ 2. 2.) 
       (CALL 2. (E XCONS) S) 
       (HRRZ@ 2. -8. P) 
       (HLRZ@ 2. 2.) 
       (CALL 2. (E XCONS) S) 
       (HLRZ@ 2. -8. P) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) 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 8. 0. 8. 0.)) 
       (POPJ P) 
       NIL 

(LAP LABELN SUBR) 
       (PUSH P 2.) 
       (MOVE 2. 3.) 
       (PUSH P 1.) 
       (PUSH P 3.) 
       (CALL 2. (E FINDGROUPNODES) S) 
       (MOVEI 5. (QUOTE MAKENODES) S) 
       (MOVE 4. -2. P) 
       (MOVE 3. 1.) 
       (POP P 2.) 
       (POP P 1.) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JCALL 5. (E LABEL0A) S) 
       NIL 

(LAP LABELE SUBR) 
       (PUSH P 2.) 
       (MOVE 2. 3.) 
       (PUSH P 1.) 
       (PUSH P 3.) 
       (CALL 2. (E FINDGROUPEDGES) S) 
       (MOVEI 5. (QUOTE MAKEEDGES) S) 
       (MOVE 4. -2. P) 
       (MOVE 3. 1.) 
       (POP P 2.) 
       (POP P 1.) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JCALL 5. (E LABEL0A) S) 
       NIL 

(LAP UNCLASS SUBR) 
       (PUSH P 1.) 
       (JUMPE 1. TAG5) 
       (HLRZ@ 1. 1.) 
       (CAIE 1. (QUOTE ?) S) 
       (JRST 0. TAG6) 
       (HRRZ@ 1. 0. P) 
       (JRST 0. TAG5) 
 TAG6  (HLRZ@ 1. 0. P) 
       (CAIE 1. (QUOTE NODES) S) 
       (JRST 0. TAG7) 
       (HRRZ@ 1. 0. P) 
       (JRST 0. TAG5) 
 TAG7  (HLRZ@ 1. 0. P) 
       (CAIE 1. (QUOTE EDGES) S) 
       (JRST 0. TAG8) 
       (HRRZ@ 1. 0. P) 
       (JRST 0. TAG5) 
 TAG8  (HLRZ@ 1. 0. P) 
       (CAIE 1. (QUOTE MULT) S) 
       (JRST 0. TAG9) 
       (HRRZ@ 1. 0. P) 
       (HLRZ@ 1. 1.) 
       (PUSH P (C 0. 0. (QUOTE 1.) 0.)) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *GREAT) S) 
       (JUMPN 1. TAG4) 
       (PUSH P (C 0. 0. TAG14 0.)) 
       (PUSH P -1. P) 
       (HRRZ@ 1. -5. P) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E UNCLASS) S) 
       (MOVEI 2. (QUOTE NIL)) 
       (CALL 2. (E *APPEND) S) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E NCONC) S) 
 TAG14 (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 3. 0. 3. 0.)) 
       (JRST 0. TAG5) 
 TAG9  (HLRZ@ 1. 0. P) 
       (CAIE 1. (QUOTE BOTH) S) 
       (JRST 0. TAG15) 
       (HRRZ@ 1. 0. P) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E UNCLASS) S) 
       (PUSH P 1.) 
       (HRRZ@ 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E UNCLASS) S) 
       (MOVE 2. 1.) 
       (EXCH 1. 0. P) 
       (CALL 2. (E *APPEND) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JRST 0. TAG5) 
 TAG15 (MOVEI 2. (QUOTE (ERROR ARG TO UNCLASS)) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E CONS) S) 
       (MOVEI 2. (QUOTE NIL)) 
       (CALL 2. (E PRINT) S) 
 TAG5  (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP LUNCLASS SUBR) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. TAG1 0.)) 
       (MOVEI D (QUOTE UNCLASS) 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