Virgil Dupras
b162ef84f5
forth: fix broken RAM+
преди 4 години
Virgil Dupras
e284081c79
forth: fix readln overflow handling
It was badly handled.
преди 4 години
Virgil Dupras
941791d609
forth: remove RAMSTART and RS_ADDR from stable ABI
преди 4 години
Virgil Dupras
2481ed4b66
forth: remove dummy.fs
All "stop pings" are now explicitly made at appropriate places. This
fixes a problem I've introduced in the last commit where RAM+ was
unexpectedly part of a stable ABI because of "HERE" usage in dummy.fs.
This system will, anyways, soon change because boot.bin and z80c.bin
will be built during the same process (but there's a bit of retooling
to do before I get there).
преди 4 години
Virgil Dupras
68a7be3707
forth: Remove RAM offsets from stable ABI
Doing this was a bit stupid. These offsets are constants. Moreover,
having them in stable ABI had us construct the boot binary from the
stable ABI of the host, making it very difficult to change RAMSTART
for a new system.
преди 4 години
Virgil Dupras
d0c5d3a741
Forth self-bootstraps!!!
This commit cuts Forth's dependency on zasm. It now self-assembles
its own boot-binary! Things are a bit messy now, I'll clean up
later.
преди 4 години
Virgil Dupras
e846d07238
forth: simplify build process
Make LATEST configurable through a value in the binary instead of through
a ZASM constant. This enables the simple concatenation of compiled dicts and
simplifies the build process.
преди 4 години
Virgil Dupras
b7244f8985
forth: shrink forth.asm's binary size
преди 4 години
Virgil Dupras
1e85d60d89
forth: Forth-ify ","
преди 4 години
Virgil Dupras
7d5b1f5cea
forth: Forth-ify parseDecimal
преди 4 години
Virgil Dupras
25814c0b8b
forth: add label system to z80 assembler
преди 4 години
Virgil Dupras
ce6e31dda1
forth: inline "strcmp"
преди 4 години
Virgil Dupras
031bfc6d72
forth: setup SYSVNXT in Forth code
преди 4 години
Virgil Dupras
e5ab0dd1c9
forth: a little bit of ASM routine inlining
преди 4 години
Virgil Dupras
5c03b33982
forth: remove sysvarWord type
Not needed anymore. CONSTANT does the trick.
преди 4 години
Virgil Dupras
05045b2aa4
forth: move stable ABI stuff at the top of forth.asm
Now we're having a real nice and tidy forth.asm...
преди 4 години
Virgil Dupras
f366732424
forth: Forth-ify "DOES>"
преди 4 години
Virgil Dupras
36e200adbb
forth: Forth-ify "SCPY"
преди 4 години
Virgil Dupras
5b01f797fc
forth: Forth-ify "(find)"
преди 4 години
Virgil Dupras
de3da19333
forth: Forth-ify "NOT"
преди 4 години
Virgil Dupras
4756fb7763
forth: Forth-ify "(parsed)"
преди 4 години
Virgil Dupras
80985460d4
forth: remove JTBL
We refer to stable offset as direct numbers instead of offset to JTBL.
Simpler that way.
преди 4 години
Virgil Dupras
61195a987d
forth: Forth-ify "HERE", "CURRENT" and "JTBL"
преди 4 години
Virgil Dupras
a9cf861cfd
forth: Forth-ify "(parse*)"
преди 4 години
Virgil Dupras
f9d45f7f53
forth: Forth-ify "FLAGS"
преди 4 години
Virgil Dupras
e984efe6c3
forth: Forth-ify SYSVNXT
преди 4 години
Virgil Dupras
162ff2c5cb
forth: Forth-ify "!"
преди 4 години
Virgil Dupras
8ef9e7d0da
forth: Forth-ify "@"
преди 4 години
Virgil Dupras
f9c3a0444c
forth: Forth-ify "DROP"
преди 4 години
Virgil Dupras
49994f09ce
forth: add word "2DROP"
преди 4 години
Virgil Dupras
8186511727
forth: fix bootstrapping issues with "LITN" and "+"
преди 4 години
Virgil Dupras
395eb04fac
forth: Forth-ify "C<"
преди 4 години
Virgil Dupras
f6cba4b1cf
forth: Forth-ify "QUIT"
преди 4 години
Virgil Dupras
da9f9f9899
forth: melt boot binary
преди 4 години
Virgil Dupras
d09ec0d757
forth: Forth-ify "SWAP"
преди 4 години
Virgil Dupras
cc4700e389
forth: Forth-ify "DUP"
преди 4 години
Virgil Dupras
09cd25df29
forth: Forth-ify "OVER"
преди 4 години
Virgil Dupras
9cfddea940
forth: Forth-ify "+"
преди 4 години
Virgil Dupras
a2c258afba
forth: Forth-ify "CMP"
forth.asm under 1K lines!
преди 4 години
Virgil Dupras
7c9d799d93
forth: Forth-ify "SCMP"
преди 4 години
Virgil Dupras
400ef99b54
forth: fix dumb bug in (?br)
inc (hl) is 8 bit, inc (hl) is 8 bit, inc (hl) is 8 bit. Now I hope
I'll remember...
преди 4 години
Virgil Dupras
d2dcd96ce1
emul: add useful emul_trace() debugging tool
преди 4 години
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.
преди 4 години
Virgil Dupras
9fcfebd84c
forth: Forth-ify "WS?"
преди 4 години
Virgil Dupras
a17da42021
forth: remove unused (fbr) and (bbr)
преди 4 години
Virgil Dupras
c1693c6256
forth: Forth-ify "TOWORD"
преди 4 години
Virgil Dupras
8b7947bc6a
forth: Forth-ify "WORD"
преди 4 години
Virgil Dupras
6e3b47f4a4
forth: Replace "(fbr)" and "(bbr)" words by "(br)"
I can't get rid of "(fbr)" and "(bbr)" just yet, but soon...
преди 4 години
Virgil Dupras
758ec025dc
forth: Forth-ify "LITN"
преди 4 години
Virgil Dupras
1227ee7155
forth: Forth-ify "EMIT"
преди 4 години