From 5301200d6fa6b3c68aab2da104e489821a642718 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 23 Dec 2019 19:01:03 -0500 Subject: [PATCH] basic: parseExpr --> parseExprDE --- apps/basic/parse.asm | 11 ++++++----- apps/basic/tok.asm | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/basic/parse.asm b/apps/basic/parse.asm index 38b2583..a0f8511 100644 --- a/apps/basic/parse.asm +++ b/apps/basic/parse.asm @@ -131,11 +131,12 @@ parseTruth: ; place their corresponding values in HL and DE. .parseLeftRight: ; let's start with HL - call parseExpr - ret nz - push ix ; --> lvl 1. save (HL) value in stack. - ex de, hl + push de ; --> lvl 1 call parseExprDE + pop hl ; <-- lvl 1, orig DE ret nz - pop hl ; <-- lvl 1. restore. + push de ; --> lvl 1. save HL value in stack. + ; Now, for DE. (DE) is now in HL + call parseExprDE ; DE in place + pop hl ; <-- lvl 1. restore saved HL ret diff --git a/apps/basic/tok.asm b/apps/basic/tok.asm index afe4967..d0c9f3e 100644 --- a/apps/basic/tok.asm +++ b/apps/basic/tok.asm @@ -85,11 +85,13 @@ rdWord: ; Read word from HL in SCRATCHPAD and then intepret that word as an expression. ; Put the result in IX. ; Z for success. +; TODO: put result in DE rdExpr: ld de, SCRATCHPAD call rdWord push hl ex de, hl - call parseExpr + call parseExprDE + push de \ pop ix pop hl ret