From 3e934a2a3bbf9c96f2c185b50274a0dfc88af792 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Wed, 25 Mar 2020 20:13:33 -0400 Subject: [PATCH] forth: fix name conflict with "H" in core and z80a --- forth/core.fs | 24 ++++++++++++------------ forth/dictionary.txt | 2 +- forth/dummy.fs | 4 ++-- forth/readln.fs | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/forth/core.fs b/forth/core.fs index b1badbc..8da35c4 100644 --- a/forth/core.fs +++ b/forth/core.fs @@ -1,4 +1,4 @@ -: H HERE @ ; +: H@ HERE @ ; : -^ SWAP - ; : [LITN] LITN ; IMMEDIATE : LIT ROUTINE S [LITN] , ; @@ -9,9 +9,9 @@ : ['] WORD (find) SKIP? _err LITN ; IMMEDIATE : COMPILE ' LITN ['] , , ; IMMEDIATE : [COMPILE] ' , ; IMMEDIATE -: BEGIN H ; IMMEDIATE -: AGAIN COMPILE (bbr) H -^ C, ; IMMEDIATE -: UNTIL COMPILE SKIP? COMPILE (bbr) H -^ C, ; IMMEDIATE +: BEGIN H@ ; IMMEDIATE +: AGAIN COMPILE (bbr) H@ -^ C, ; IMMEDIATE +: UNTIL COMPILE SKIP? COMPILE (bbr) H@ -^ C, ; IMMEDIATE : ( BEGIN LIT< ) WORD SCMP NOT UNTIL ; IMMEDIATE ( Hello, hello, krkrkrkr... do you hear me? Ah, voice at last! Some lines above need comments @@ -30,21 +30,21 @@ : IF ( -- a | a: br cell addr ) COMPILE SKIP? ( if true, don't branch ) COMPILE (fbr) - H ( push a ) + H@ ( push a ) 1 ALLOT ( br cell allot ) ; IMMEDIATE : THEN ( a -- | a: br cell addr ) - DUP H -^ SWAP ( a-H a ) + DUP H@ -^ SWAP ( a-H a ) C! ; IMMEDIATE : ELSE ( a1 -- a2 | a1: IF cell a2: ELSE cell ) COMPILE (fbr) 1 ALLOT - DUP H -^ SWAP ( a-H a ) + DUP H@ -^ SWAP ( a-H a ) C! - H 1 - ( push a. -1 for allot offset ) + H@ 1 - ( push a. -1 for allot offset ) ; IMMEDIATE : CREATE @@ -53,18 +53,18 @@ , ( write it ) ; : VARIABLE CREATE 2 ALLOT ; -: CONSTANT CREATE H ! DOES> @ ; +: CONSTANT CREATE H@ ! DOES> @ ; : = CMP NOT ; : < CMP 0 1 - = ; : > CMP 1 = ; : / /MOD SWAP DROP ; : MOD /MOD DROP ; -( In addition to pushing H this compiles 2 >R so that loop +( In addition to pushing H@ this compiles 2 >R so that loop variables are sent to PS at runtime ) : DO COMPILE SWAP COMPILE >R COMPILE >R - H + H@ ; IMMEDIATE ( One could think that we should have a sub word to avoid all @@ -73,7 +73,7 @@ : LOOP COMPILE R> 1 LITN COMPILE + COMPILE DUP COMPILE >R COMPILE I' COMPILE = COMPILE SKIP? COMPILE (bbr) - H -^ C, + H@ -^ C, COMPILE R> COMPILE DROP COMPILE R> COMPILE DROP ; IMMEDIATE diff --git a/forth/dictionary.txt b/forth/dictionary.txt index d27f351..74db846 100644 --- a/forth/dictionary.txt +++ b/forth/dictionary.txt @@ -124,7 +124,7 @@ C@ a -- c Set c to byte at address a C! c a -- Store byte c in address a CURRENT -- a Set a to wordref of last added entry. HERE -- a Push HERE's address -H -- a HERE @ +H@ -- a HERE @ *** Arithmetic / Bits *** diff --git a/forth/dummy.fs b/forth/dummy.fs index 0169336..fc672c4 100644 --- a/forth/dummy.fs +++ b/forth/dummy.fs @@ -7,5 +7,5 @@ current HERE value. The staging executable needs it to know what to dump. ) -HERE @ 256 / 2 PC! -HERE @ 2 PC! +H@ 256 / 2 PC! +H@ 2 PC! diff --git a/forth/readln.fs b/forth/readln.fs index 42f4af9..c9de600 100644 --- a/forth/readln.fs +++ b/forth/readln.fs @@ -21,9 +21,9 @@ ( Initializes the readln subsystem ) : (c<$) - HERE @ IN( ! + H@ IN( ! INBUFSZ ALLOT - HERE @ IN) ! + H@ IN) ! (infl) ;