-(import (chicken io)
- mars visualizer parser)
-
-;; (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))
-
-(condition-case
- (vis 'destroy)
- ((exn) #f))
-
-;; (define files '("dwarf.red"))
-(define files '("imp.red" "dwarf.red"))
-
-(define progs
- (map
- (lambda (fname)
- (string->prog (with-input-from-file fname read-string)))
- files))
-
-(define colors '("red" "blue" "green" "magenta" "cyan"))
-
-(define color-map
- (let loop ((entries '())
- (progs-left progs)
- (colors-left colors))
- (if (null? progs-left)
- entries
- (let ((this-prog (car progs-left))
- (this-col (car colors-left)))
- (loop (cons (cons (prog-name this-prog) this-col) entries)
- (cdr progs-left)
- (cdr colors-left))))))
-
-(define vis (make-vis 640 480 8000 color-map))
-
-(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 progs))
-
-(for-each dump-prog progs)
-
-(set! queues (run-mars core queues 10000))
-
-(for-each (lambda (q)
- (print "Queue for " (queue-owner q) ":")
- (dump-queue q core)
- (print))
- queues)