perm filename CYCDRB.LAP[3,LMM] blob sn#037498 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCDRBFNS (CYCDRBFNS PATMATCH REEDITFACE FACES FACEF1 OTFACE DUPFACE SETEQ EDITFACE FACESIZE FACEMATCH)→
 VALUE) 

(LAP PATMATCH SUBR) 
       (CLEARB 1. (SPECIAL FACE) S) 
       (MOVEM 1. (SPECIAL PATSELECT) S) 
       (CALL 0. (E FACES) S) 
       (CALL 1. (E REEDITFACE) S) 
       (PUSH P (SPECIAL PATS) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (HLRZ@ 1. -2. P) 
       (MOVEM 1. (SPECIAL CURPAT) S) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E PATFACE) S) 
       (MOVE 2. 1.) 
       (MOVE 1. -1. P) 
       (CALL 2. (E FACEMATCH) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG2) 
       (HLRZ@ 1. -2. P) 
       (CALL 1. (E PATNODFC) S) 
       (MOVE 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 2. (E NODEPICK1) S) 
       (MOVEM 1. 0. P) 
       (CALL 1. (E NODEPICK2) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG9) 
       (MOVE 1. (SPECIAL CURPAT) S) 
       (CALL 1. (E PATPOINTS) S) 
       (MOVE 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 2. (E PATPTS) S) 
       (MOVEM 1. (SPECIAL PATSELECT) S) 
       (JRST 0. TAG3) 
       (JUMPN 1. TAG8) 
 TAG9 
 TAG8 
 TAG2  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JUMPN 1. TAG1) 
       (MOVEI 1. (QUOTE NIL)) 
 TAG3  (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP REEDITFACE SUBR) 
       (PUSH P 1.) 
       (CALL 1. (E CADR) S) 
       (PUSH P 1.) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HRRZ@ 1. -4. P) 
       (CALL 1. (E CADR) 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) 
       (PUSH P (C 0. 0. TAG16 0.)) 
       (PUSH P -1. P) 
       (CALL 1. (E NCONS) S) 
       (CALL 1. (E NCONS) S) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E NCONC) S) 
 TAG16 (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 2. 0. P) 
       (MOVEM 2. -3. P) 
       (SUB P (C 3. 0. 3. 0.)) 
       (MOVEM 2. -1. P) 
       (MOVE 1. -2. P) 
       (JUMPE 1. TAG7) 
 TAG5  (HRRZ@ 1. -2. P) 
       (JUMPE 1. TAG7) 
       (HRRZ@ 1. -2. P) 
       (HLRZ@ 1. 1.) 
       (HLRZ@ 2. -2. P) 
       (CAMN 2. 1.) 
       (JRST 0. TAG6) 
       (HRRZ@ 1. -2. P) 
       (HRRZ@ 2. 0. P) 
       (MOVEM 1. -2. P) 
       (MOVEM 2. 0. P) 
       (JRST 0. TAG5) 
 TAG6  (HRRZ@ 1. -2. P) 
       (HRRZ@ 1. 1.) 
       (HRRM@ 1. -2. P) 
       (HRRZ@ 1. 0. P) 
       (HLRZ@ 1. 1.) 
       (HLRZ@ 2. 0. P) 
       (HRRM@ 2. 1.) 
       (HRRZ@ 1. 0. P) 
       (HLRZ@ 1. 1.) 
       (HRLM@ 1. 0. P) 
       (HRRZ@ 1. 0. P) 
       (HRRZ@ 1. 1.) 
       (HRRM@ 1. 0. P) 
       (JRST 0. TAG5) 
 TAG7  (MOVE 1. -1. P) 
       (CALL 1. (E NCONS) S) 
       (MOVE 2. -3. P) 
       (CALL 2. (E XCONS) S) 
       (HLRZ@ 2. -4. P) 
       (SUB P (C 5. 0. 5. 0.)) 
       (JCALL 2. (E XCONS) S) 
       NIL 

(LAP FACES SUBR) 
       (CLEARM 0. (SPECIAL FACE) S) 
       (MOVEI 1. (QUOTE 0.)) 
       (MOVEM 1. (SPECIAL FACENUM) S) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (MOVEI 2. (QUOTE -2.)) 
       (MOVE 1. (SPECIAL NMX) S) 
       (CALL 2. (E *PLUS) S) 
       (MOVEI 2. (QUOTE 1.)) 
       (MOVEM 2. 0. P) 
       (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) 
       (MOVE 2. -2. P) 
       (MOVE 1. (SPECIAL NMX) S) 
       (CALL 2. (E *DIF) S) 
       (CALL 1. (E ADD1) S) 
       (MOVEI 5. (QUOTE 1.)) 
       (MOVE 4. 1.) 
       (MOVEI 3. (QUOTE NIL)) 
       (MOVE 2. -2. P) 
       (MOVE 1. 2.) 
       (CALL 5. (E FACEF1) S) 
 TAG2 
 TAG3  (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (SUB P (C 2. 0. 2. 0.)) 
       (CALL 0. (E EDITFACE) S) 
       (MOVE 1. (SPECIAL FACE) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP FACEF1 SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (PUSH P 5.) 
       (MOVE 1. 2.) 
       (CALL 1. (E CONN) S) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 1. -1. P) 
       (JUMPE 1. TAG3) 
       (HLRZ@ 1. -1. P) 
       (MOVEM 1. 0. P) 
       (CAME 1. -6. P) 
       (JRST 0. TAG8) 
       (MOVE 2. -4. P) 
       (MOVE 1. -6. P) 
       (CALL 2. (E OTFACE) S) 
       (JRST 0. TAG7) 
 TAG8  (MOVE 2. -4. P) 
       (CALL 2. (E MEMQ) S) 
       (JUMPE 1. TAG9) 
       (JRST 0. TAG7) 
 TAG9  (MOVE 1. -2. P) 
       (CAME 1. -3. P) 
       (JRST 0. TAG10) 
       (JRST 0. TAG7) 
 TAG10 (MOVE 2. -4. P) 
       (MOVE 1. 0. P) 
       (CALL 2. (E CONS) S) 
       (PUSH P 1.) 
       (MOVE 1. -3. P) 
       (CALL 1. (E ADD1) S) 
       (MOVE 5. 1.) 
       (MOVE 4. -4. P) 
       (POP P 3.) 
       (MOVE 2. 0. P) 
       (MOVE 1. -6. P) 
       (CALL 5. (E FACEF1) S) 
 TAG7  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG3  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 7. 0. 7. 0.)) 
       (POPJ P) 
       NIL 

(LAP OTFACE SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (MOVE 1. 2.) 
       (CALL 1. (E LENGTH) S) 
       (CAIN 1. (QUOTE 1.)) 
       (JRST 0. TAG2) 
       (MOVE 2. 0. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E DUPFACE) S) 
       (JUMPN 1. TAG2) 
       (MOVE 1. (SPECIAL FACENUM) S) 
       (CALL 1. (E ADD1) S) 
       (MOVEM 1. (SPECIAL FACENUM) S) 
       (MOVE 1. -1. P) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVE 1. -2. P) 
       (CALL 1. (E NCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (MOVE 2. (SPECIAL FACENUM) S) 
       (CALL 2. (E XCONS) S) 
       (MOVE 2. (SPECIAL FACE) S) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. (SPECIAL FACE) S) 
 TAG2  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP DUPFACE SUBR) 
       (PUSH P 1.) 
       (PUSH P (SPECIAL FACE) S) 
       (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@ 2. 1.) 
       (HRRZ@ 2. 2.) 
       (HLRZ@ 2. 2.) 
       (MOVE 1. -3. P) 
       (CALL 2. (E SETEQ) S) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG11) 
       (JRST 0. TAG5) 
 TAG11 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
 TAG5  (SUB P (C 4. 0. 4. 0.)) 
       (POPJ P) 
       NIL 

(LAP SETEQ SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVE 1. -1. P) 
       (CALL 1. (E LENGTH) S) 
       (POP P 2.) 
       (CAME 1. 2.) 
       (JRST 0. TAG2) 
       (MOVE 1. -1. P) 
       (CALL 1. (E LENGTH) S) 
       (MOVE 2. 0. P) 
       (PUSH P 1.) 
       (MOVE 1. -2. P) 
       (CALL 2. (E UNION) S) 
       (CALL 1. (E LENGTH) S) 
       (POP P 2.) 
       (CAMN 1. 2.) 
       (JRST 0. TAG1) 
 TAG2  (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1EDITFACE SUBR) 
       (PUSH P 2.) 
       (CALL 1. (E FACESIZE) S) 
       (EXCH 1. 0. P) 
       (CALL 1. (E FACESIZE) S) 
       (POP P 2.) 
       (JCALL 2. (E *LESS) S) 
       NIL 

(LAP EDITFACE SUBR) 
       (MOVEI 2. (QUOTE SUBFUN1EDITFACE) S) 
       (MOVE 1. (SPECIAL FACE) S) 
       (CALL 2. (E SORT) S) 
       (MOVEM 1. (SPECIAL FACE) S) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. TAG4 0.)) 
       (MOVEI D (QUOTE FACESIZE) S) 
       (PUSH P D) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E MAPCAR) S) 
 TAG4  (MOVEM 1. 0. P) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (MOVE 1. (SPECIAL FACE) S) 
       (CALL 1. (E NCONS) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E XCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (MOVEM 1. (SPECIAL FACE) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP FACESIZE SUBR) 
       (CALL 1. (E CADDR) S) 
       (JCALL 1. (E LENGTH) S) 
       NIL 

(LAP FACEMATCH 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. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (HLRZ@ 2. 2.) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E *LESS) S) 
       (JUMPN 1. TAG4) 
       (HRRZ@ 1. -6. P) 
       (HLRZ@ 1. 1.) 
       (HRRZ@ 2. -5. P) 
       (HLRZ@ 2. 2.) 
       (HRRZ@ 3. -6. P) 
       (HRRZ@ 3. 3.) 
       (HLRZ@ 3. 3.) 
       (HRRZ@ 4. -5. P) 
       (HRRZ@ 4. 4.) 
       (HLRZ@ 4. 4.) 
       (MOVEM 4. -3. P) 
       (MOVEM 3. -2. P) 
       (MOVEM 2. -1. P) 
       (MOVEM 1. 0. P) 
 TAG1  (HLRZ@ 2. -1. P) 
       (HLRZ@ 1. 0. P) 
       (CALL 2. (E *LESS) S) 
       (JUMPN 1. TAG4) 
       (HLRZ@ 1. -1. P) 
       (HLRZ@ 2. 0. P) 
       (CAMN 2. 1.) 
       (JRST 0. TAG2) 
       (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (HRRZ@ 1. 0. P) 
       (MOVEM 1. 0. P) 
       (JUMPE 1. TAG4) 
       (JRST 0. TAG1) 
 TAG2  (HLRZ@ 2. -2. P) 
       (HLRZ@ 1. -3. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E CONS) S) 
       (MOVE 2. -4. P) 
       (CALL 2. (E CONS) S) 
       (HRRZ@ 2. -3. P) 
       (MOVEM 1. -4. P) 
       (MOVEM 2. -3. P) 
       (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (JUMPN 1. TAG1) 
       (MOVE 1. -4. P) 
       (JRST 0. TAG3) 
 TAG4  (MOVEI 1. (QUOTE NIL)) 
 TAG3  (SUB P (C 7. 0. 7. 0.)) 
       (POPJ P) 
       NIL