(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)