diff --git a/emul/forth/z80c.bin b/emul/forth/z80c.bin index 4d5549f..8056642 100644 Binary files a/emul/forth/z80c.bin and b/emul/forth/z80c.bin differ diff --git a/forth/core.fs b/forth/core.fs index 104591b..574b8ed 100644 --- a/forth/core.fs +++ b/forth/core.fs @@ -108,15 +108,12 @@ in dictionary.txt ) : (sysv) - (entry) - ( 8 == sysvarWord ) - 8 , - ( 50 == SYSVNXT ) - [ 50 @ LITN ] DUP ( a a ) ( Get new sysv addr ) - @ , ( a ) + ( 50 == SYSVNXT ) + 50 @ @ + CONSTANT ( increase current sysv counter ) - 2 SWAP +! + 2 50 @ +! ; : ." diff --git a/forth/forth.asm b/forth/forth.asm index 9982687..68ee473 100644 --- a/forth/forth.asm +++ b/forth/forth.asm @@ -53,9 +53,9 @@ jp forthMain ; 3 jp find - .dw 0 ; unused -; 8 - jp sysvarWord + nop \ nop ; unused + nop \ nop \ nop ; unused +; 11 jp cellWord jp compiledWord jp pushRS @@ -512,13 +512,6 @@ cellWord: push iy jp next -; Pushes the address in the first word of the PF -sysvarWord: - ld l, (iy) - ld h, (iy+1) - push hl - jp next - ; The word was spawned from a definition word that has a DOES>. PFA+2 (right ; after the actual cell) is a link to the slot right after that DOES>. ; Therefore, what we need to do push the cell addr like a regular cell, then @@ -561,10 +554,9 @@ litWord: ; entry, we always have a predictable prev offset for the grafter's first ; entry. ; 2. Tell icore's "_c" routine where the boot binary ends. See comment there. - .db "_bend" .dw $-EXECUTE .db 5 -; Offset: 0253 +; Offset: 0249 .out $