From f0f13843a8f1243b7a557ba34485bf1d54d57d37 Mon Sep 17 00:00:00 2001 From: Jeremiah Orians Date: Sat, 29 Oct 2016 14:55:04 -0400 Subject: [PATCH] Added parameter stack operations --- stage2/forth.s | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/stage2/forth.s b/stage2/forth.s index e3013ea..31ca5e2 100644 --- a/stage2/forth.s +++ b/stage2/forth.s @@ -591,11 +591,33 @@ :RSPStore_Text "RSP!" :RSPStore_Entry - &RSPFetch_Entry ; Pointer to RSP@ - &ore_Text ; Pointer to Name - NOP ; Flags - POPR R15 R14 ; Replace Return stack pointer from parameter stack - JSR_COROUTINE R11 ; NEXT + &RSPFetch_Entry ; Pointer to RSP@ + &ore_Text ; Pointer to Name + NOP ; Flags + POPR R15 R14 ; Replace Return stack pointer from parameter stack + JSR_COROUTINE R11 ; NEXT + + ;; Parameter stack operations + +;; DSP@ +:DSPFetch_Text +"DSP@" +:DSPFetch_Entry + &RSPStore_Entry ; Pointer to RSP! + &DSPFetch_Text ; Pointer to Name + NOP ; Flags + PUSHR R14 R14 ; Push current parameter pointer onto parameter stack + JSR_COROUTINE R11 ; NEXT + +;; DSP! +:DSPStore_Text +"DSP!" +:DSPStore_Entry + &DSPFetch_Entry ; Pointer to DSP@ + &DSPStore_Text ; Pointer to Name + NOP ; Flags + POPR R14 R14 ; Replace parameter stack pointer from parameter stack + JSR_COROUTINE R11 ; NEXT :cold_start ;;