Beginnings of a debugger

This commit is contained in:
2025-01-12 21:01:02 -06:00
parent 422c675981
commit 0c029118f0
2 changed files with 62 additions and 24 deletions

View File

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