Virgil Dupras
a2f164ecc3
emul: bootstrap to stage2 from within Collapse OS!
Big bootstrapping change which greatly reduces the role of the modern
operating system in the bootstrapping process.
4 years ago
Virgil Dupras
898684a795
emul: merge pre.fs and emul.fs into stage1.fs
4 years ago
Virgil Dupras
bc3aabc84e
Update z80c.bin's LATEST during xcomp instead of using slatest
4 years ago
Virgil Dupras
b5c370a936
emul: embed blkfs in forth binary
This will allow us to read from blkfs in tests.
4 years ago
Virgil Dupras
1bd191e86a
Move /emul/forth/* to /emul
Less noisy this way
4 years ago
Virgil Dupras
44403c3d4c
Move icore to blkfs
The way is clear for complete stage1 bootstrapping on the RC2014
target!
4 years ago
Virgil Dupras
dd6ce1b8fe
Avoid using (xentry) outside xcomp config
4 years ago
Virgil Dupras
fcd77f80ab
Use blk's boot.z80
4 years ago
Virgil Dupras
7a0e63746f
parse: don't validate 0x and 0b lengths
It doesn't serve much purpose and takes up many precious bytes. And,
after all, parsed didn't do it either...
4 years ago
Virgil Dupras
372524fd19
Move xcomp to blocks
4 years ago
Virgil Dupras
4967c2add2
Merge z80c.fs and boot.fs into boot.z80
4 years ago
Virgil Dupras
d466c6d95d
emul: make stage2 load z80a from blkfs
This allows us to remove forth/z80a.fs. Another big step towards
self-hosting!
4 years ago
Virgil Dupras
9edab10a3a
blk: add dirty flag and auto write blocks on fetch
Also, fix some PSP leaks related to LOAD.
4 years ago
Virgil Dupras
79acf92b28
emul: fix Makefile
4 years ago
Virgil Dupras
b8dd86bd18
Move notes.txt in blk
4 years ago
Virgil Dupras
f59cac0588
blk: first steps
4 years ago
Virgil Dupras
d919a10265
Remove runbin
It's not used
4 years ago
Virgil Dupras
d08a9711c5
boot: make HERE point to RAMEND instead of CURRENT
The former was only used in the peculiar context of "/emul". The
regular case is actually HERE pointing to RAMEND on boot.
4 years ago
Virgil Dupras
c515720e23
Revert "Remove link.fs"
Let's revisit the relinking approach, with LITA this time.
This reverts commit 6652125d47
.
4 years ago
Virgil Dupras
a6efb65010
emul: extract capture mark from icore into xstop.fs
4 years ago
Virgil Dupras
7aa1be070b
emul: build boot binary in one pass
... instead of building boot.fs, and then z80c.fs/icore.fs in separate
passes. This strengten xcomp by making it support 2 completely separate
dicts (that is, the X dict is *not* connected to the system dict. The chain
now stops at EXIT def in boot.fs).
4 years ago
Virgil Dupras
68f359d6c2
Add xcomp unit for cross compilation
Memory mapping is a dead end too, solution has to be at a higher
level. xcomp is my new approach.
4 years ago
Virgil Dupras
6652125d47
Remove link.fs
This was a dead end.
4 years ago
Byron A. Grobe
217df20d77
Moved tools/bin2c to single-level with other tools.
4 years ago
Virgil Dupras
1c6e979028
link: new unit to relink dictionaries
Not quite functional yet, but works in toy situations. The goal is to
concatenate RC2014's bootstrapped dict to the boot binary.
4 years ago
Virgil Dupras
974018831e
Add chained comparison support
4 years ago
Byron A. Grobe
f65c189e9b
Replace bin2c.sh with a more portable implementation.
`xxd' is not available on all systems, and on others does not support
the `-i' flag. Since bin2c.sh relied on a tool that I can't seem to find
a compatible version of, I have included a simple, portable replacement in C.
Usage remains the same:
bin2c ARRAYNAME < inputfile > outputfile.
This change is also reflected in emul/Makefile.
4 years ago
Virgil Dupras
ba384bfa0f
Add stripfc tool
4 years ago
Virgil Dupras
41cefb7460
Extract EMIT-dependent routines from core
4 years ago
Virgil Dupras
80891d7ec1
Add in-memory bootstrapping system
This should help with the bootstrapping of non-emulated environment.
For example, I have a problem with the RC2014: I can't send it
bootstrap info until the ACIA is up. I need to find a way...
4 years ago
Virgil Dupras
9235fa9223
Add /tools/slatest
To update LATEST offset more easily. Will be useful for recipes.
4 years ago
Virgil Dupras
941791d609
forth: remove RAMSTART and RS_ADDR from stable ABI
4 years ago
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 years ago
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 years ago
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 years ago
Virgil Dupras
dad0081123
forth: Forth-ify "INTERPRET"!!!
Now we're seriously getting into real boostrapping territory...
4 years ago
Virgil Dupras
636407969d
forth: Forth-ify "(emit)"
4 years ago
Virgil Dupras
c2d8fc845d
forth: bring ." and ABORT" down to core.fs level
4 years ago
Virgil Dupras
f0ab57c8cc
forth: Forth-ify "AND"
4 years ago
Virgil Dupras
6c5f39806b
forth: improve bootstrap process
4 years ago
Virgil Dupras
67c55b0b2f
forth: Forth-ify ROT, a native word!
This requires us to significantly adjust our build process, which
now has 3 stages.
4 years ago
Virgil Dupras
5387e08437
forth: make bin staging process a bit less hackish
The goal being to add a new native code dict staging phase.
4 years ago
Virgil Dupras
ffe61a12f8
forth: make prev word field relative
This should help with upcoming challenges in bootstrapping z80 code
compiled through Forth.
4 years ago
Virgil Dupras
33e47d4938
forth: begin z80 assembler
4 years ago
Virgil Dupras
f4b969986d
forth: Forth-ify ".""
4 years ago
Virgil Dupras
c1ece95089
forth: implement readline in Forth
The commit ended up being much bigger than anticipated. This was a long thread
of underlying complexities. This lead to the creation of interesting concepts
such as (sysv).
4 years ago
Virgil Dupras
b335e538b4
Move "forth" folder to project's root folder
It's not really an App.
4 years ago
Virgil Dupras
548facac0b
forth: Implement "(parseh)"
4 years ago
Virgil Dupras
1df9c4fc1b
forth: split forth source into multiple files
4 years ago
Virgil Dupras
f404c2f4d0
forth: TIL forth source file extension is "fs"
4 years ago