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