Export stack functions for debugging, add one to get as list

This commit is contained in:
Dane Johnson 2025-08-14 09:44:56 -05:00
parent 9a8cd12c5d
commit 5e46e323a6

View File

@ -5,8 +5,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
#:export ((make-vm* . make-vm) run-vm
vm-memory-ref vm-memory-byte-ref vm-memory-set! vm-memory vm-load-program!
#:use-module (srfi srfi-43)
#:export (make-stack (push . stack-push) (pop . stack-pop) (peek . stack-peek) stack-ref stack->list
(make-vm* . make-vm) run-vm
vm-memory-ref vm-memory-byte-ref vm-memory-set! vm-memory vm-load-program!
vm-data-stack vm-ret-stack
vm-debugger vm-debugger-set!
vm-pc vm-pc-set!
@ -52,6 +54,9 @@
[(ref)
(lambda (k)
(vector-ref the-stack k))]
[(->list)
(lambda ()
(reverse-vector->list the-stack 0 top))]
[else (error "stack dispatch unknown value")])))
(define (push stack v)
@ -72,6 +77,9 @@
(define* (make-ram #:optional (memory-size *memory-size*))
(make-bytevector memory-size #x00))
(define (stack->list stack)
((stack '->list)))
;;; IO
(define (read-word)