perm filename CYCDRE.LAP[3,LMM] blob sn#037501 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCDREFNS (CYCDREFNS ASSOC2 UNION SORT INSERT SQRT AE) VALUE) 

(LAP ASSOC2 SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 2.) 
       (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@ 2. 1.) 
       (MOVE 1. -4. P) 
       (CALL 2. (E EQUAL) S) 
       (JUMPE 1. TAG3) 
       (MOVE 1. -1. P) 
       (JRST 0. TAG5) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
 TAG5  (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL 

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

(LAP SORT SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (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) 
       (MOVE 3. -4. P) 
       (MOVE 2. -3. P) 
       (MOVEM 1. -1. P) 
       (CALL 3. (E INSERT) S) 
       (MOVEM 1. -3. P) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (SUB P (C 3. 0. 3. 0.)) 
       (MOVE 1. 0. P) 
       (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP INSERT SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (JUMPN 2. TAG2) 
       (CALL 1. (E NCONS) S) 
       (JRST 0. TAG1) 
 TAG2  (HLRZ@ 2. 2.) 
       (CALLF@ 2. 0. P) 
       (JUMPE 1. TAG4) 
       (MOVE 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 2. (E CONS) S) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 3. 0. P) 
       (HRRZ@ 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 3. (E INSERT) S) 
       (HRRM@ 1. -1. P) 
       (MOVE 1. -1. P) 
 TAG1  (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP SQRT SUBR) 
       (PUSH P 1.) 
       (MOVEI D (QUOTE 2.0) S) 
       (PUSH P D) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 2. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *QUO) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEI 2. (QUOTE 0.5) S) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. 1.) 
       (MOVEM 1. 0. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E AE) S) 
       (JUMPE 1. TAG6) 
       (MOVE 1. 0. P) 
       (JRST 0. TAG2) 
 TAG6  (MOVE 1. 0. P) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG2  (SUB P (C 3. 0. 3. 0.)) 
       (POPJ P) 
       NIL 

(LAP AE SUBR) 
       (CALL 2. (E *DIF) S) 
       (CALL 1. (E ABS) S) 
       (MOVEI 2. (QUOTE 1.0E-2) S) 
       (JCALL 2. (E *LESS) S) 
       NIL