From 5e46e323a60af14e11423ec256eee96c8e15b23d Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Thu, 14 Aug 2025 09:44:56 -0500 Subject: [PATCH] Export stack functions for debugging, add one to get as list --- scmvm/vm.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scmvm/vm.scm b/scmvm/vm.scm index 5b19d25..8b97898 100644 --- a/scmvm/vm.scm +++ b/scmvm/vm.scm @@ -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)