Commit Graph

98 Commits

Author SHA1 Message Date
Virgil Dupras da9f9f9899 forth: melt boot binary 2020-03-30 08:11:16 -04:00
Virgil Dupras d09ec0d757 forth: Forth-ify "SWAP" 2020-03-30 08:06:11 -04:00
Virgil Dupras cc4700e389 forth: Forth-ify "DUP" 2020-03-30 08:02:20 -04:00
Virgil Dupras 09cd25df29 forth: Forth-ify "OVER" 2020-03-30 07:58:16 -04:00
Virgil Dupras 9cfddea940 forth: Forth-ify "+" 2020-03-30 07:54:45 -04:00
Virgil Dupras a2c258afba forth: Forth-ify "CMP"
forth.asm under 1K lines!
2020-03-30 07:52:24 -04:00
Virgil Dupras 7c9d799d93 forth: Forth-ify "SCMP" 2020-03-30 07:48:07 -04:00
Virgil Dupras 48078d9c9c forth: Replace "SKIP?" with "(?br)"
There is an alternate git history where I continued the Forth-ification of
words, including "SKIP?", but that was a bad idea: because that word was
written by flow control immediates, I stepped into quicksands where stability
became necessary in z80c.fs and I couldn't gracefully get out of it.

I'm stepping back and take this opportunity to replace the shoddy SKIP? algo
with a more straightforward (?br) implementation.

(br) and (?br) will always stay in boot code where it's easier manage a stable
ABI.
2020-03-29 09:10:23 -04:00
Virgil Dupras 9fcfebd84c forth: Forth-ify "WS?" 2020-03-28 13:18:43 -04:00
Virgil Dupras a17da42021 forth: remove unused (fbr) and (bbr) 2020-03-28 13:12:07 -04:00
Virgil Dupras c1693c6256 forth: Forth-ify "TOWORD" 2020-03-28 13:02:04 -04:00
Virgil Dupras 8b7947bc6a forth: Forth-ify "WORD" 2020-03-28 12:55:22 -04:00
Virgil Dupras 6e3b47f4a4 forth: Replace "(fbr)" and "(bbr)" words by "(br)"
I can't get rid of "(fbr)" and "(bbr)" just yet, but soon...
2020-03-28 11:31:16 -04:00
Virgil Dupras 758ec025dc forth: Forth-ify "LITN" 2020-03-28 10:38:05 -04:00
Virgil Dupras 1227ee7155 forth: Forth-ify "EMIT" 2020-03-28 10:25:02 -04:00
Virgil Dupras 2db6ebc247 forth: Forth-ify "BYE" 2020-03-28 10:14:27 -04:00
Virgil Dupras e0eaa8ba63 forth: Forth-ify "ABORT" 2020-03-28 10:11:52 -04:00
Virgil Dupras 8d8e1d93da forth: slightly improve assembler 2020-03-28 09:39:24 -04:00
Virgil Dupras ab98e9bcd1 forth: Forth-ify "(uflw)" 2020-03-28 09:19:40 -04:00
Virgil Dupras 5471ef02a7 forth: Forth-ify "BOOT" 2020-03-28 09:08:46 -04:00
Virgil Dupras 408d93bd23 forth: Forth-ify "IMMED?" 2020-03-27 21:58:24 -04:00
Virgil Dupras 8f990ff954 forth: Forth-ify "IMMEDIATE" 2020-03-27 21:36:05 -04:00
Virgil Dupras 26871be6f2 forth: Forth-ify "C," 2020-03-27 19:12:46 -04:00
Virgil Dupras 49101915fb forth: Forth-ify "(entry)" 2020-03-27 16:52:42 -04:00
Virgil Dupras 799ea72974 forth: Forth-ify ":"!!!
Lifting ourselves by the bootstraps!
2020-03-27 16:21:34 -04:00
Virgil Dupras f40c14715e forth: take advantage of the new [] mode 2020-03-27 15:35:58 -04:00
Virgil Dupras 839021e0f8 forth: Forth-ify "(print)" 2020-03-27 12:39:59 -04:00
Virgil Dupras edcd80e3a6 forth: Forth-ify "(parse)" 2020-03-27 11:49:50 -04:00
Virgil Dupras 941224be94 forth: Forth-ify "-" 2020-03-27 11:36:58 -04:00
Virgil Dupras 005dd98fc2 forth: Forth-ify "R>" and ">R" 2020-03-27 11:27:40 -04:00
Virgil Dupras 1e7e696e4a forth: Forth-ify ";"!!!
Ain't that not self-bootstrapping enough to your taste? Whoa, I'm
getting dizzy...
2020-03-27 09:32:03 -04:00
Virgil Dupras dad0081123 forth: Forth-ify "INTERPRET"!!!
Now we're seriously getting into real boostrapping territory...
2020-03-27 08:23:45 -04:00
Virgil Dupras 40eda1d933 forth: Forth-ify "*" 2020-03-26 14:36:14 -04:00
Virgil Dupras e82f13acf1 forth: Forth-ify "I", "I'", "J" 2020-03-26 14:11:22 -04:00
Virgil Dupras 966f6df0c5 forth: Forth-ify "KEY" 2020-03-26 12:12:11 -04:00
Virgil Dupras 636407969d forth: Forth-ify "(emit)" 2020-03-26 12:05:48 -04:00
Virgil Dupras 6eaabb9bbe forth: make word name of variable length
This allows us to save a whole 500 bytes on the final binary size!

This change comes after I took a look at the hex dump and saw that one letter
constants in z80a.fs took a lot of space.
2020-03-26 10:53:33 -04:00
Virgil Dupras 52e6eaafc7 forth: Forth-ify "/MOD" 2020-03-25 22:51:23 -04:00
Virgil Dupras 61bb22e8c9 forth: straighten out "/MOD"
The removal of the "divide" routine highlighted the fact that
nativeWord wasn't properly stabilized.
2020-03-25 21:49:09 -04:00
Virgil Dupras 6d8edeec63 forth: Forth-ify "C!" and "C@" 2020-03-25 17:52:51 -04:00
Virgil Dupras 66412a1c30 forth: Forth-ify "XOR" 2020-03-25 17:24:46 -04:00
Virgil Dupras 1871f7cdb4 forth: Forth-ify "OR" 2020-03-25 17:19:47 -04:00
Virgil Dupras eb6a07a162 forth: Forth-ify "PC@" 2020-03-25 17:13:10 -04:00
Virgil Dupras 7beac94b5a forth: Forth-ify "PC!" 2020-03-25 17:07:15 -04:00
Virgil Dupras 3a08fa7e74 forth: add a stable ABI 2020-03-24 23:02:06 -04:00
Virgil Dupras f0ab57c8cc forth: Forth-ify "AND" 2020-03-24 22:09:52 -04:00
Virgil Dupras d6516e2122 forth: Forth-ify "2*" stack management words 2020-03-24 14:44:10 -04:00
Virgil Dupras 67c55b0b2f forth: Forth-ify ROT, a native word!
This requires us to significantly adjust our build process, which
now has 3 stages.
2020-03-24 13:46:05 -04:00