2 mars visualizer parser)
4 ;; (define addressing-test
5 ;; (make-prog 'at (list
6 ;; (make-instr 'DAT 'F 'immediate 42 'immediate 53)
7 ;; (make-instr 'DAT 'F 'immediate 123 'immediate 256)
8 ;; (make-instr 'MOV 'A 'indirect-B 4 'direct 7)
9 ;; (make-instr 'NOP 'I 'immediate 0 'immediate 0)
10 ;; (make-instr 'NOP 'I 'immediate 0 'immediate 0)
11 ;; (make-instr 'NOP 'I 'immediate 0 'immediate 0)
12 ;; (make-instr 'DAT 'F 'immediate -5 'immediate -6)) 2))
15 ;; (make-prog 'imp (list (make-instr 'MOV 'I 'direct 0 'direct 1)) 0))
18 ;; (make-prog 'dwarf (list
19 ;; (make-instr 'DAT 'F 'immediate 0 'immediate -1)
20 ;; (make-instr 'ADD 'AB 'immediate 5 'direct -1)
21 ;; (make-instr 'MOV 'I 'direct -2 'indirect-B -2)
22 ;; (make-instr 'JMP 'I 'immediate -2 'immediate 0)) 1))
28 ;; (define files '("dwarf.red"))
29 (define files '("imp.red" "dwarf.red"))
34 (string->prog (with-input-from-file fname read-string)))
37 (define colors '("red" "blue" "green" "magenta" "cyan"))
40 (let loop ((entries '())
43 (if (null? progs-left)
45 (let ((this-prog (car progs-left))
46 (this-col (car colors-left)))
47 (loop (cons (cons (prog-name this-prog) this-col) entries)
49 (cdr colors-left))))))
51 (define vis (make-vis 640 480 8000 color-map))
53 (define core (make-core 8000 (make-instr 'DAT 'F 'immediate 0 'immediate 0)
55 (vis 'update-owner i n))))
57 (define queues (install-progs core progs))
59 (for-each dump-prog progs)
61 (set! queues (run-mars core queues 10000))
64 (print "Queue for " (queue-owner q) ":")