The Lambda Lab
/
projects
/
jars.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This is too adictive.
[jars.git]
/
mars.scm
diff --git
a/mars.scm
b/mars.scm
index
40e4ca1
..
23a0337
100644
(file)
--- a/
mars.scm
+++ b/
mars.scm
@@
-8,6
+8,7
@@
prog-name
prog-instrs
prog-offset
prog-name
prog-instrs
prog-offset
+ prog->string
install-progs
make-queue
queue-owner
install-progs
make-queue
queue-owner
@@
-55,7
+56,7
@@
(conc opcode
"." modifier
" " (mode->string A-mode) A-num
(conc opcode
"." modifier
" " (mode->string A-mode) A-num
- " " (mode->string B-mode) B-num))
+ "
,
" (mode->string B-mode) B-num))
(else
(error "Invalid instr arguments" args)))))
(else
(error "Invalid instr arguments" args)))))
@@
-177,7
+178,12
@@
(define (queue-set-ptrs! queue ptrs)
(set-cdr! queue ptrs))
(define (queue-set-ptrs! queue ptrs)
(set-cdr! queue ptrs))
-
+ (define (prog->string prog)
+ (conc ";redcode\n\n"
+ ";name " (prog-name prog) "\n\n"
+ "ORG\t" (prog-offset prog) "\t; Execution offset\n\n"
+ (apply conc (map (lambda (instr) (conc (instr '->string) "\n")) (prog-instrs prog)))))
+
;;; Executive function
;;
;;; Executive function
;;