Beginnings of a debugger
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (make-vm run-vm vm-memory-ref vm-memory-set!
|
||||
#:export (make-vm run-vm vm-memory-ref vm-memory-set! vm-memory
|
||||
*instruction-set* instruction-type instruction-code))
|
||||
|
||||
;;; Data Structures
|
||||
@@ -65,7 +65,7 @@
|
||||
((stack 'ref) k))
|
||||
|
||||
(define* (make-ram #:optional (memory-size *memory-size*))
|
||||
(make-vector memory-size))
|
||||
(make-vector memory-size #x00))
|
||||
|
||||
(define (ram-ref ram k)
|
||||
(vector-ref ram k))
|
||||
@@ -189,6 +189,7 @@
|
||||
(lambda (x)
|
||||
(case x
|
||||
[(run) fetch-and-execute]
|
||||
[(vm-memory) (lambda () ram)]
|
||||
[(vm-memory-ref) (cute ram-ref ram <>)]
|
||||
[(vm-memory-set!) (lambda (k v) (ram-set! ram k v))])))
|
||||
|
||||
@@ -200,6 +201,10 @@
|
||||
"Externally set VM memory at k to v"
|
||||
((vm 'vm-memory-set!) k v))
|
||||
|
||||
(define (vm-memory vm)
|
||||
"Just get the memory vector"
|
||||
((vm 'vm-memory)))
|
||||
|
||||
(define (run-vm vm port)
|
||||
"Read and execute instructions read from port on VM"
|
||||
(with-input-from-port port (vm 'run)))
|
||||
|
||||
Reference in New Issue
Block a user