Visualizer kinda works.
[jars.git] / test.scm
diff --git a/test.scm b/test.scm
new file mode 100644 (file)
index 0000000..090c941
--- /dev/null
+++ b/test.scm
@@ -0,0 +1,34 @@
+(import mars visualizer)
+
+(define addressing-test
+  (make-prog 'at (list
+                  (make-instr 'DAT 'F 'immediate 42 'immediate 53)
+                  (make-instr 'DAT 'F 'immediate 123 'immediate 256)
+                  (make-instr 'MOV 'A 'indirect-B 4 'direct 7)
+                  (make-instr 'NOP 'I 'immediate 0 'immediate 0)
+                  (make-instr 'NOP 'I 'immediate 0 'immediate 0)
+                  (make-instr 'NOP 'I 'immediate 0 'immediate 0)
+                  (make-instr 'DAT 'F 'immediate -5 'immediate -6)) 2))
+
+(define imp
+  (make-prog 'imp (list (make-instr 'MOV 'I 'direct 0 'direct 1)) 0))
+
+(define dwarf
+  (make-prog 'dwarf (list
+                     (make-instr 'DAT 'F 'immediate 0 'immediate -1)
+                     (make-instr 'ADD 'AB 'immediate 5 'direct -1)
+                     (make-instr 'MOV 'I 'direct -2 'indirect-B -2)
+                     (make-instr 'JMP 'I 'immediate -2 'immediate 0)) 1))
+
+(define palette '((imp . "red")
+                  (dwarf . "blue")))
+
+(define vis (make-vis 640 480 8000 palette))
+
+(define core (make-core 8000 (make-instr 'DAT 'F 'immediate 0 'immediate 0)
+                        (lambda (i n)
+                          (vis 'update-owner i n))))
+
+(define queues (install-progs core (list dwarf imp)))
+
+;; (run-mars core queues 10000)