X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=jars.git;a=blobdiff_plain;f=test.scm;h=178260d5ebd19e7d1b211ad251afc269f8ede895;hp=7f6f921139ce3ea81dcb00de3754a84fd0418b8e;hb=7526b1f66f4c7a0d460d0e267b1eb4553c0d981b;hpb=6fa8a83fb4cf917fabe4c2bb930b8b092c9c7519 diff --git a/test.scm b/test.scm index 7f6f921..178260d 100644 --- a/test.scm +++ b/test.scm @@ -1,4 +1,5 @@ -(import mars visualizer parser) +(import (chicken io) + mars visualizer parser) ;; (define addressing-test ;; (make-prog 'at (list @@ -20,18 +21,47 @@ ;; (make-instr 'MOV 'I 'direct -2 'indirect-B -2) ;; (make-instr 'JMP 'I 'immediate -2 'immediate 0)) 1)) -(define imp (string->prog (with-input-from-file "imp.red" read-string))) -(define dwarf (string->prog (with-input-from-file "dwarf.red" read-string))) +(condition-case + (vis 'destroy) + ((exn) #f)) -(define palette '((Imp . "red") - (Dwarf . "blue"))) +;; (define files '("dwarf.red")) +(define files '("imp.red" "dwarf.red")) -(define vis (make-vis 640 480 8000 palette)) +(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 (list dwarf imp))) +(define queues (install-progs core progs)) + +(for-each dump-prog progs) + +(set! queues (run-mars core queues 10000)) -(run-mars core queues 10000) +(for-each (lambda (q) + (print "Queue for " (queue-owner q) ":") + (dump-queue q core) + (print)) + queues)