(DEFPROP DSKIN (LAMBDA (%L %C) (SETQ %C (INC (APPLY INPUT (CONS T %L)))) (ERRSET (PROG NIL T (EVAL (READ)) (GO T))) (INC %C T)) FEXPR) (SETQ DSKIN @DSKIN) (DEFPROP %DEFINE (LAMBDA (X P R) (SETQ R (COND ((GETL (SETQ R (CAR X)) @(EXPR FEXPR SUBR FSUBR MACRO)) (LIST R @REDEFINED)) (R))) (PUTPROP (CAR X) (CONS LAMBDA (CDR X)) P) (RETURN R)) EXPR) (SETQ %DEFINE @%DEFINE) (DEFPROP DE (LAMBDA (L) (%DEFINE L EXPR)) FEXPR) (SETQ DE @DE) (DEFPROP DF (LAMBDA (L) (%DEFINE L FEXPR)) FEXPR) (SETQ DF @DF) (DEFPROP DM (LAMBDA (L) (%DEFINE L MACRO)) FEXPR) (SETQ DM @DM) (SETQ RETFROM @RETFROM) (PUTPROP RETFROM 222 SUBR) (PROG NIL (CLRBFI) (PRINC "LOAD EXTENDED LIBRARY") ((EQ (PROG2 (PROMPT 77) (TYI) (PROMPT 52)) 116) (ERR $EOF$))) (DEFPROP DSKOUT (LAMBDA (%%L %%C) (SETQ %%C (OUTC (APPLY OUTPUT (LIST T (CAR %%L))))) A (COND ((SETQ %%L (CDR %%L)) (EVAL (LIST GRINL (CAR %%L))) (GO A))) (OUTC %%C T)) FEXPR) (SETQ DSKOUT @DSKOUT) (DEFPROP GRINL (LAMBDA (%L %X %Y %Z) A ((NULL %L) (RETURN)) (SETQ %X (EVAL (CAR %L))) ((CONSP (CAR %L)) (GO C)) (EVAL (CONS GRINDEF (CONS (CAR %L) %X))) B ((NULL %X) (GO C)) (SETQ %Y (CAR %X)) (COND ((SETQ %Z (GET %Y READMACRO)) (TERPRI) (SPRINT (LIST (COND ((ONEP (REMAINDER (CHRVAL %Y) 10)) DSM) (DRM)) %Y %Z) 1) (TERPRI))) (SETQ %X (CDR %X)) (GO B) C (SETQ %L (CDR %L)) (GO A)) FEXPR) (SETQ GRINL @GRINL) (DEFPROP GRINDEF (LAMBDA (%%L %%F %%G) A (COND ((NULL %%L) (TERPRI) (RETURN))) (COND ((CONSP (SETQ %%F (CAR %%L))) (TERPRI) (TERPRI) (SPRINT %%F 1) (GO D))) (SETQ %%F GRINPROPS) B (COND ((SETQ %%G (GET (CAR %%L) (CAR %%F))) (TERPRI) (TERPRI) (PRINC "(DEFPROP ") (PRIN1 (CAR %%L)) (TERPRI) (SPRINT %%G 2) (TERPRI) (PRIN1 (CAR %%F)) (PRINC ")"))) (COND ((SETQ %%F (CDR %%F)) (GO B))) C (COND ((SETQ %%G (ERRSET (EVAL (CAR %%L)) NIL)) (TERPRI) (TERPRI) (PRINC "(SETQ ") (PRIN1 (CAR %%L)) (SPRINT (CONS QUOTE %%G) (ADD 2 (SUB (LINELENGTH) (CHRCT))) 1) (PRINC ")"))) D (SETQ %%L (CDR %%L)) (GO A)) FEXPR) (SETQ GRINDEF @GRINDEF) (SETQ GRINPROPS @(NIL EXPR FEXPR MACRO SUBR FSUBR)) (DEFPROP QUOTIENT (LAMBDA (L) (*EXPAND L DIV)) MACRO) (SETQ QUOTIENT @QUOTIENT) (DEFPROP LDIFF (LAMBDA (X Y Z) ((NULL Y) (RETURN X)) (SETQ Z (NCONS)) X ((EQ X Y) (RETURN (VCONC Z))) ((ATOM X) (GO Z)) (TCONC Z (CAR X)) (SETQ X (CDR X)) (GO X) Z (ERROR "NOT A TAIL - LDIFF")) EXPR) (SETQ LDIFF @LDIFF) (DEFPROP EXPLODE (LAMBDA (X) (MAPCAR IASCII (#EXPLODE X))) EXPR) (SETQ EXPLODE @EXPLODE) (DEFPROP TIMES (LAMBDA (L) (*EXPAND L MUL)) MACRO) (SETQ TIMES @TIMES) (DEFPROP EXPLODEC (LAMBDA (X) (MAPCAR IASCII (#EXPLODEC X))) EXPR) (SETQ EXPLODEC @EXPLODEC) (DEFPROP *EXPAND (LAMBDA (L FN) (COND ((CDDR L) (CONS (CAR L) (CONS (LIST FN (CADR L) (CADDR L)) (CDDDR L)))) ((CADR L)))) EXPR) (SETQ *EXPAND @*EXPAND) (DEFPROP PLUS (LAMBDA (L) (*EXPAND L ADD)) MACRO) (SETQ PLUS @PLUS) (DEFPROP DSM (LAMBDA (L) (PUTPROP (CAR L) (CADR L) READMACRO) (SETCHR (CHRVAL (CAR L)) 1) (RETURN (CAR L))) FEXPR) (SETQ DSM @DSM) (DEFPROP REMOB (LAMBDA (X) (MAPC @(LAMBDA (X) (MAP @(LAMBDA (Y) (RPLACA Y (DREMOVE X (CAR Y)))) OBLIST)) X)) FEXPR) (SETQ REMOB @REMOB) (DEFPROP DRM (LAMBDA (L) (PUTPROP (CAR L) (CADR L) READMACRO) (SETCHR (CHRVAL (CAR L)) 5) (RETURN (CAR L))) FEXPR) (SETQ DRM @DRM) (SETQ BREAKFNS NIL) (DF BREAK (L) (PROGN (MAPC @%BREAK L) @OK)) (DE %BREAK (FN) (%UNBREAK FN) (PUTPROP FN T ERRORX) (SETQ BREAKFNS (CONS FN BREAKFNS))) (DF UNBREAK (L) (PROGN (MAPC @%UNBREAK (OR L (COPY BREAKFNS))) @OK)) (DE %UNBREAK (FN) (REMPROP FN ERRORX) (SETQ BREAKFNS (DREMOVE FN BREAKFNS))) .