perm filename INIT.LAP[3,LMM] blob sn#038917 filedate 1973-04-27 generic text, type T, neo UTF8
(DEFPROP INITFNS (INITFNS (SPECIAL READFILERESULTS FILELST) WHEREIS READFILE NOBIND COMMENT LODE FILEFNS SAVVALU→
E SAVDEF RESTOREVALUE RESTOREDEF DECIMAL PACK MAKEFILE PRINT1 EVALQUOTE EXPRTYP FEXPRTYP (SETQ FILELST NIL) (INI→
TFN (FUNCTION EVALQUOTE)) (NCONC BREAKMACROS (QUOTE ((PP LIN ((PROGN (SETQ LASTWORD (CAR (LAST (QUOTE LIN)))) (G→
RINDEF . LIN)))) (STOP NIL (↑)))))) VALUE) 

(LAP WHEREIS SUBR) 
       (PUSH P 1.) 
       (PUSH P (SPECIAL FILELST) 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) 
       (PUSH P -3. P) 
       (CALL 1. (E FILEFNS) S) 
       (MOVEI 2. (QUOTE VALUE) S) 
       (CALL 2. (E GET) S) 
       (EXCH 2. 1.) 
       (JUMPN 2. TAG12) 
       (MOVEI 2. (QUOTE (NIL)) S) 
 TAG12 (HRRZ@ 2. 2.) 
       (POP P 1.) 
       (CALL 2. (E MEMQ) S) 
       (JUMPE 1. TAG3) 
       (MOVE 1. -1. P) 
       (CALL 1. (E PRIN1) S) 
       (MOVEI 1. (QUOTE ",") S) 
       (CALL 1. (E PRINC) S) 
 TAG2 
 TAG3  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 4. 0. 4. 0.)) 
       (POPJ P) 
       NIL 

(LAP SUBFUN1READFILE SUBR) 
       (CALL 0. (E READ) S) 
       (MOVE 2. (SPECIAL READFILERESULTS) S) 
       (CALL 2. (E CONS) S) 
       (MOVEM 1. (SPECIAL READFILERESULTS) S) 
       (POPJ P) 
       NIL 

(LAP READFILE FSUBR) 
       (JSP 6. SPECBIND) 
       (0. 0. (SPECIAL READFILERESULTS) S) 
       (PUSH P 1.) 
       (CALL 15. (E INPUT) S) 
       (CALL 1. (E INC) S) 
 TAG1  (MOVEI 1. (QUOTE ((SUBFUN1READFILE) ERRORX)) S) 
       (CALL 15. (E ERRSET) S) 
       (JUMPN 1. TAG1) 
       (MOVE 1. (SPECIAL READFILERESULTS) S) 
       (CALL 1. (E REVERSE) S) 
       (JRST 0. TAG2) 
 TAG2  (SUB P (C 1. 0. 1. 0.)) 
       (JRST 0. SPECSTR) 
       NIL 

(LAP NOBIND SUBR) 
       (PUSH P 1.) 
       (JUMPE 1. TAG1) 
       (HRRZ@ 1. 1.) 
       (PUSH P 1.) 
       (CALL 0. (E UNBOUND) S) 
       (POP P 2.) 
       (CAMN 1. 2.) 
       (JRST 0. TAG1) 
       (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP COMMENT FSUBR) 
       (POPJ P) 
       NIL 

(LAP LODE FSUBR) 
       (PUSH P 1.) 
       (CALL 1. (E ATOM) S) 
       (JUMPE 1. TAG5) 
       (MOVE 1. 0. P) 
       (CALL 1. (E NCONS) S) 
       (MOVEM 1. 0. P) 
 TAG5  (MOVE 2. 0. P) 
       (MOVE 1. (SPECIAL FILELST) S) 
       (CALL 2. (E UNION) S) 
       (MOVEM 1. (SPECIAL FILELST) S) 
       (MOVE 1. 0. P) 
       (CALL 15. (E DSKIN) S) 
       (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP FILEFNS SUBR) 
       (PUSH P 1.) 
       (CALL 1. (E LITATOM) S) 
       (JUMPE 1. TAG2) 
       (MOVE 2. 0. P) 
       (JRST 0. TAG1) 
 TAG2  (HLRZ@ 1. 0. P) 
       (CALL 1. (E LITATOM) S) 
       (JUMPE 1. TAG3) 
       (HLRZ@ 2. 0. P) 
       (JRST 0. TAG1) 
 TAG3  (MOVEI 2. (QUOTE (INVALID FILE NAME)) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E CONS) S) 
       (CALL 1. (E ERROR) S) 
       (MOVE 2. 1.) 
 TAG1  (MOVEM 2. 0. P) 
       (MOVEI 2. (QUOTE FILE) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG6) 
       (PUSH P (C 0. 0. TAG7 0.)) 
       (PUSH P -1. P) 
       (MOVEI D (QUOTE FNS) S) 
       (PUSH P D) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E PACK) S) 
 TAG7  (MOVEI 3. (QUOTE FILE) S) 
       (MOVE 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
 TAG6  (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP SAVVALUE SUBR) 
       (PUSH P 1.) 
 TAG1  (MOVE 1. 0. P) 
       (JUMPE 1. TAG6) 
       (HLRZ@ 1. 0. P) 
       (MOVEI 2. (QUOTE VALUE) S) 
       (PUSH P 1.) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE OLDVALUE) S) 
       (EXCH 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTPROP) S) 
       (HRRZ@ 1. 0. P) 
       (MOVEM 1. 0. P) 
       (JRST 0. TAG1) 
 TAG6  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP SAVDEF SUBR) 
       (PUSH P 1.) 
 TAG1  (MOVE 1. 0. P) 
       (JUMPE 1. TAG6) 
       (HLRZ@ 1. 0. P) 
       (PUSH P 1.) 
       (MOVEI 2. (QUOTE SUBR) S) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG10) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE OLDSUBR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG10 (MOVEI 2. (QUOTE EXPR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG11) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE OLDEXPR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG11 (MOVEI 2. (QUOTE FSUBR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG12) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE OLDFSUBR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG12 (MOVEI 2. (QUOTE FEXPR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG13) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE OLDFEXPR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG13 
 TAG9  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JRST 0. TAG1) 
 TAG6  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP RESTOREVALUE SUBR) 
       (PUSH P 1.) 
 TAG1  (MOVE 1. 0. P) 
       (JUMPE 1. TAG6) 
       (HLRZ@ 1. 0. P) 
       (MOVEI 2. (QUOTE OLDVALUE) S) 
       (PUSH P 1.) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE VALUE) S) 
       (EXCH 2. 1.) 
       (POP P 1.) 
       (CALL 3. (E PUTPROP) S) 
       (HRRZ@ 1. 0. P) 
       (MOVEM 1. 0. P) 
       (JRST 0. TAG1) 
 TAG6  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP RESTOREDEF SUBR) 
       (PUSH P 1.) 
 TAG1  (MOVE 1. 0. P) 
       (JUMPE 1. TAG6) 
       (HLRZ@ 1. 0. P) 
       (PUSH P 1.) 
       (MOVEI 2. (QUOTE OLDSUBR) S) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG10) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE SUBR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG10 (MOVEI 2. (QUOTE OLDEXPR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG11) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE EXPR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG11 (MOVEI 2. (QUOTE OLDFSUBR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG12) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE FSUBR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG12 (MOVEI 2. (QUOTE OLDFEXPR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG13) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (MOVEI 3. (QUOTE FEXPR) S) 
       (EXCH 2. 1.) 
       (MOVE 1. 0. P) 
       (CALL 3. (E PUTPROP) S) 
       (JRST 0. TAG9) 
 TAG13 
 TAG9  (HRRZ@ 1. -1. P) 
       (MOVEM 1. -1. P) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JRST 0. TAG1) 
 TAG6  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP DECIMAL SUBR) 
       (CLEARM 0. (SPECIAL *NOPOINT) S) 
       (MOVEI 2. (QUOTE 5.)) 
       (MOVEI 1. (QUOTE 5.)) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. (SPECIAL IBASE) S) 
       (MOVEM 1. (SPECIAL BASE) S) 
       (POPJ P) 
       NIL 

(LAP PACK LSUBR) 
       (JSP 3. *LCALL) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE 1.) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 2. -2. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *GREAT) S) 
       (JUMPN 1. TAG4) 
       (PUSH P (C 0. 0. TAG9 0.)) 
       (PUSH P -1. P) 
       (MOVE 1. -3. P) 
       (ADD 1. -6. P) 
       (HRRZ 1. -196607. 1.) 
       (CALL 1. (E EXPLODEC) S) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E NCONC) S) 
 TAG9  (MOVEM 1. 0. P) 
 TAG2 
 TAG3  (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVE 1. 0. P) 
       (SUB P (C 3. 0. 3. 0.)) 
       (JCALL 1. (E READLIST) S) 
       NIL 

(LAP MAKEFILE SUBR) 
       (PUSH P 1.) 
       (CALL 1. (E FILEFNS) S) 
       (CALL 1. (E NCONS) S) 
       (POP P 2.) 
       (CALL 2. (E XCONS) S) 
       (JCALL 15. (E DSKOUT) S) 
       NIL 

(LAP PRINT1 SUBR) 
       (CALL 1. (E PRINT) S) 
       (PUSH P 1.) 
       (CALL 0. (E TERPRI) S) 
       (POP P 1.) 
       (POPJ P) 
       NIL 

(LAP EVALQUOTE SUBR) 
       (CALL 0. (E DECIMAL) S) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVEI 1. (QUOTE 95.)) 
       (CALL 1. (E PROMPT) S) 
       (CALL 0. (E LINEREAD) S) 
       (MOVEM 1. 0. P) 
       (MOVEI 1. (QUOTE 33.)) 
       (CALL 1. (E PROMPT) S) 
 TAG2  (MOVE 1. 0. P) 
       (JUMPE 1. TAG1) 
       (MOVE 2. (SPECIAL BREAKMACROS) S) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E ASSOC) S) 
       (MOVEM 1. -1. P) 
       (JUMPE 1. TAG8) 
       (HRRZ@ 3. 1.) 
       (HRRZ@ 3. 3.) 
       (HLRZ@ 3. 3.) 
       (HRRZ@ 2. 1.) 
       (HLRZ@ 2. 2.) 
       (HRRZ@ 1. 0. P) 
       (CALL 3. (E SUBST) S) 
       (MOVEM 1. 0. P) 
       (JRST 0. TAG2) 
 TAG8  (HLRZ@ 1. 0. P) 
       (CALL 1. (E LITATOM) S) 
       (JUMPE 1. TAG9) 
       (MOVEI 2. (QUOTE VALUE) S) 
       (HLRZ@ 1. 0. P) 
       (CALL 2. (E GET) S) 
       (CALL 1. (E NOBIND) S) 
       (JUMPE 1. TAG11) 
       (HLRZ@ 1. 0. P) 
       (CALL 1. (E FEXPRTYP) S) 
       (JUMPE 1. TAG13) 
       (MOVE 1. 0. P) 
       (CALL 1. (E *EVAL) S) 
       (CALL 1. (E PRINT1) S) 
       (JRST 0. TAG12) 
 TAG13 (MOVEI 2. (QUOTE SUBR) S) 
       (HLRZ@ 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG16) 
       (MOVEI 2. (QUOTE EXPR) S) 
       (HLRZ@ 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPE 1. TAG14) 
       (HLRZ@ 1. 0. P) 
       (CALL 2. (E GET) S) 
       (CALL 1. (E CADR) S) 
       (CALL 1. (E LENGTH) S) 
       (PUSH P 1.) 
       (HRRZ@ 1. -1. P) 
       (CALL 1. (E LENGTH) S) 
       (POP P 2.) 
       (CALL 2. (E EQUAL) S) 
       (JUMPE 1. TAG14) 
 TAG16 (PUSH P (C 0. 0. TAG19 0.)) 
       (HLRZ@ 1. -1. P) 
       (PUSH P 1.) 
       (HRRZ@ 1. -2. P) 
       (PUSH P 1.) 
       (MOVNI 6. 2.) 
       (JCALL 14. (E APPLY) S) 
 TAG19 (CALL 1. (E PRINT1) S) 
       (JRST 0. TAG12) 
 TAG14 (MOVEI 1. (QUOTE ???) S) 
       (CALL 1. (E PRINT1) S) 
 TAG12 (JRST 0. TAG10) 
 TAG11 (HLRZ@ 1. 0. P) 
       (MOVEM 1. (SPECIAL LASTWORD) S) 
       (HLRZ@ 1. 0. P) 
       (CALL 1. (E *EVAL) S) 
       (CALL 1. (E PRINT1) S) 
       (HRRZ@ 1. 0. P) 
       (MOVEM 1. 0. P) 
       (JRST 0. TAG2) 
 TAG10 (JRST 0. TAG6) 
 TAG9  (HLRZ@ 1. 0. P) 
       (CALL 1. (E *EVAL) S) 
       (CALL 1. (E PRINT1) S) 
       (HRRZ@ 1. 0. P) 
       (MOVEM 1. 0. P) 
       (JRST 0. TAG1) 
 TAG6  (JRST 0. TAG1) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP EXPRTYP SUBR) 
       (PUSH P 1.) 
       (CALL 1. (E LITATOM) S) 
       (JUMPE 1. TAG2) 
       (MOVEI 2. (QUOTE SUBR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG3) 
       (MOVEI 2. (QUOTE EXPR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG3) 
       (TDZA 1. 1.) 
 TAG3  (MOVEI 1. (QUOTE T) S) 
       (JRST 0. TAG1) 
 TAG2  (MOVE 1. 0. P) 
       (CALL 1. (E ATOM) S) 
       (JUMPN 1. TAG5) 
       (HLRZ@ 1. 0. P) 
       (CAIE 1. (QUOTE LAMBDA) S) 
       (TDZA 1. 1.) 
       (MOVEI 1. (QUOTE T) S) 
       (JRST 0. TAG1) 
 TAG5  (MOVEI 1. (QUOTE NIL)) 
 TAG1  (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP FEXPRTYP SUBR) 
       (PUSH P 1.) 
       (CALL 1. (E LITATOM) S) 
       (JUMPE 1. TAG2) 
       (MOVEI 2. (QUOTE FEXRP) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG1) 
       (MOVEI 2. (QUOTE FSUBR) S) 
       (MOVE 1. 0. P) 
       (CALL 2. (E GET) S) 
       (JUMPN 1. TAG1) 
 TAG2  (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(SETQ FILELST NIL) 

(INITFN (FUNCTION EVALQUOTE)) 

(NCONC BREAKMACROS (QUOTE ((PP LIN ((PROGN (SETQ LASTWORD (CAR (LAST (QUOTE LIN)))) (GRINDEF . LIN)))) (STOP NIL→
 (↑)))))