7f6f921139ce3ea81dcb00de3754a84fd0418b8e
[jars.git] / test.scm
1 (import mars visualizer parser)
2
3 ;; (define addressing-test
4 ;;   (make-prog 'at (list
5 ;;                   (make-instr 'DAT 'F 'immediate 42 'immediate 53)
6 ;;                   (make-instr 'DAT 'F 'immediate 123 'immediate 256)
7 ;;                   (make-instr 'MOV 'A 'indirect-B 4 'direct 7)
8 ;;                   (make-instr 'NOP 'I 'immediate 0 'immediate 0)
9 ;;                   (make-instr 'NOP 'I 'immediate 0 'immediate 0)
10 ;;                   (make-instr 'NOP 'I 'immediate 0 'immediate 0)
11 ;;                   (make-instr 'DAT 'F 'immediate -5 'immediate -6)) 2))
12
13 ;; (define imp
14 ;;   (make-prog 'imp (list (make-instr 'MOV 'I 'direct 0 'direct 1)) 0))
15
16 ;; (define dwarf
17 ;;   (make-prog 'dwarf (list
18 ;;                      (make-instr 'DAT 'F 'immediate 0 'immediate -1)
19 ;;                      (make-instr 'ADD 'AB 'immediate 5 'direct -1)
20 ;;                      (make-instr 'MOV 'I 'direct -2 'indirect-B -2)
21 ;;                      (make-instr 'JMP 'I 'immediate -2 'immediate 0)) 1))
22
23 (define imp (string->prog (with-input-from-file "imp.red" read-string)))
24 (define dwarf (string->prog (with-input-from-file "dwarf.red" read-string)))
25
26 (define palette '((Imp . "red")
27                   (Dwarf . "blue")))
28
29 (define vis (make-vis 640 480 8000 palette))
30
31 (define core (make-core 8000 (make-instr 'DAT 'F 'immediate 0 'immediate 0)
32                         (lambda (i n)
33                           (vis 'update-owner i n))))
34
35 (define queues (install-progs core (list dwarf imp)))
36
37 (run-mars core queues 10000)