diff --git a/images/apple/DRAWL.po b/images/apple/DRAWL.po index 8db6865..9fd6252 100644 Binary files a/images/apple/DRAWL.po and b/images/apple/DRAWL.po differ diff --git a/src/lisp/drawl.pla b/src/lisp/drawl.pla index e9e9d1c..cf49541 100644 --- a/src/lisp/drawl.pla +++ b/src/lisp/drawl.pla @@ -47,6 +47,7 @@ import sexpr predef new_int(intlo, inthi)#1 predef new_sym(symstr)#1 predef new_assoc(symptr, valptr)#0 + predef set_assoc(symptr, valptr)#1 predef print_expr(expr)#0 predef parse_expr(evalptr, level, refill)#2 predef eval_expr(expr)#1 @@ -140,6 +141,18 @@ def natv_go(symptr, expr) return NULL end +def natv_set(symptr, expr) + symptr = eval_expr(expr=>car) + set_assoc(symptr, eval_expr(expr=>cdr=>car)) + return symptr +end + +def natv_setq(symptr, expr) + symptr = expr=>car + set_assoc(symptr, eval_expr(expr=>cdr=>car)) + return symptr +end + // // REPL native helper functions // @@ -266,6 +279,8 @@ sym_if = new_sym("IF") // This should actually match IF new_sym("PROG")=>natv = @natv_prog new_sym("GO")=>natv = @natv_go new_sym("RETURN")=>natv = @natv_return +new_sym("SET")=>natv = @natv_set +new_sym("SETQ")=>natv = @natv_setq new_sym("GC")=>natv = @natv_gc new_sym("QUIT")=>natv = @natv_bye diff --git a/src/lisp/s-expr.pla b/src/lisp/s-expr.pla index 911aef5..dc489f0 100644 --- a/src/lisp/s-expr.pla +++ b/src/lisp/s-expr.pla @@ -1207,18 +1207,6 @@ def natv_csetq(symptr, expr) return symptr end -def natv_set(symptr, expr) - symptr = eval_expr(expr=>car) - set_assoc(symptr, eval_expr(expr=>cdr=>car)) - return symptr -end - -def natv_setq(symptr, expr) - symptr = expr=>car - set_assoc(symptr, eval_expr(expr=>cdr=>car)) - return symptr -end - def natv_pri(symptr, expr) var result @@ -1393,8 +1381,6 @@ new_sym("DEFINE")=>natv = @natv_define new_sym("ARRAY")=>natv = @natv_array new_sym("CSET")=>natv = @natv_cset new_sym("CSETQ")=>natv = @natv_csetq -new_sym("SET")=>natv = @natv_set -new_sym("SETQ")=>natv = @natv_setq new_sym("PRI")=>natv = @natv_pri new_sym("PRHEX")=>natv = @natv_prhex new_sym("PRINT")=>natv = @natv_print diff --git a/src/mklisp b/src/mklisp index 95974f8..872cde2 100755 --- a/src/mklisp +++ b/src/mklisp @@ -13,13 +13,18 @@ cat rel/apple/CONIO#FE1000 | ./ac.jar -p DRAWL.po sys/CONIO REL cat rel/ARGS#FE1000 | ./ac.jar -p DRAWL.po sys/ARGS REL cat rel/LONGJMP#FE1000 | ./ac.jar -p DRAWL.po sys/LONGJMP REL cat rel/INT32#FE1000 | ./ac.jar -p DRAWL.po sys/INT32 REL -cat rel/ED#FE1000 | ./ac.jar -p DRAWL.po sys/ED REL +cat rel/FPSTR#FE1000 | ./ac.jar -p DRAWL.po sys/FPSTR REL +cat rel/FPU#FE1000 | ./ac.jar -p DRAWL.po sys/FPU REL +cat rel/SANE#FE1000 | ./ac.jar -p DRAWL.po sys/SANE REL +cat ../sysfiles/FP6502.CODE#060000 | ./ac.jar -p DRAWL.po sys/FP6502.CODE BIN +cat ../sysfiles/ELEMS.CODE#060000 | ./ac.jar -p DRAWL.po sys/ELEMS.CODE BIN +cat rel/ED#FE1000 | ./ac.jar -p DRAWL.po sys/ED REL cat rel/SEXPR#FE1000 | ./ac.jar -p DRAWL.po lisp/SEXPR REL -cat lisp/s-expr.pla | ./ac.jar -ptx DRAWL.po lisp/SEXPR.PLA TXT +#cat lisp/s-expr.pla | ./ac.jar -ptx DRAWL.po lisp/SEXPR.PLA TXT cat rel/SMATH#FE1000 | ./ac.jar -p DRAWL.po lisp/SMATH REL -cat lisp/s-math.pla | ./ac.jar -ptx DRAWL.po lisp/SMATH.PLA TXT +#cat lisp/s-math.pla | ./ac.jar -ptx DRAWL.po lisp/SMATH.PLA TXT cat rel/DRAWL#FE1000 | ./ac.jar -p DRAWL.po lisp/DRAWL REL -cat lisp/drawl.pla | ./ac.jar -ptx DRAWL.po lisp/DRAWL.PLA TXT +#cat lisp/drawl.pla | ./ac.jar -ptx DRAWL.po lisp/DRAWL.PLA TXT cat lisp/set.lisp | ./ac.jar -ptx DRAWL.po lisp/SET.LISP TXT cat lisp/list.lisp | ./ac.jar -ptx DRAWL.po lisp/LIST.LISP TXT cat lisp/maplist.lisp | ./ac.jar -ptx DRAWL.po lisp/MAPLIST.LISP TXT