perm filename CYCDRB.LAP[DEN,LMM] blob sn#034868 filedate 1973-04-13 generic text, type T, neo UTF8
(LAP PATMATCH SUBR) 
       (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