Virgil Dupras
c939c7e84a
cvm: use Grid in /cvm/forth
Also, fixed broken AT-XY in Grid...
3 lat temu
Virgil Dupras
95ab1ad588
Transform "blk/" folders into "blk.fs" text files
Working in "blk/" folder from a modern system is harder than it
should be. Moving blocks around is a bit awkward, grepping is a
bit less convenient than it could be, git blame has troubles
following, etc.
In this commit, we modify blkpack and blkunpack to work with single
text files with blocks being separated by a special markup.
I think this will make the code significantly more convenient to
work into.
3 lat temu
Virgil Dupras
532bcc7e78
cvm: split stage and forth xcomp units
I wanted to make CVM's forth use the Grid subsystem, but doing so
would break the stage binary. Hence, this split.
3 lat temu
Virgil Dupras
6cb310c38c
emul+cvm: link to curses instead of ncurses
NetBSD doesn't have ncurses. Linking to curses doesn't seem to change
anything. Tried on OpenBSD and Ubuntu.
3 lat temu
Virgil Dupras
8e624034bf
recipes/sms: move recipe blocks into local overlay
3 lat temu
Virgil Dupras
fff893452d
cvm: remove makefile duplicate recipe
3 lat temu
Virgil Dupras
ceabc9920f
move avra.sh from emul to cvm
The stage binary is now there.
3 lat temu
Virgil Dupras
8a7fa77163
cvm: bootstraps itself!
3 lat temu
Virgil Dupras
fc3919863f
cvm: implement stack underflow errors
3 lat temu
Virgil Dupras
36cb1389e6
Add a C implementation of native words
This will soon replace the libz80 based "forth" and
"stage" executables. This is much, much faster.
3 lat temu
Liorst4
374932fa4d
Clean libz80/libz80.o in make clean ( #118 )
3 lat temu
Virgil Dupras
394f962510
recipe: fix makefiles for fresh clone contexts
All recipe makesfiles would previously assume a built emul/.
Fixes #113
3 lat temu
Virgil Dupras
05ca95e759
emul: make updatebootstrap two-stepped
Writing directly to forth.bin seems to cause problems in some
environments such as Travis CI.
4 lat temu
Virgil Dupras
1d4b75add2
emul: deduplicate some code
4 lat temu
Virgil Dupras
93c6d150e2
emul: don't embed forth.bin in emul binaries
Read the contents of forth.bin at runtime. This allows us to get
rid of the bin2c tooling.
4 lat temu
Virgil Dupras
8d3da4c0de
emul: stop embedding blkfs in binaries
Instead, embed absolute path to blkfs. Having to rebuild the stage
binary at every change in blkfs is getting tedious.
4 lat temu
Virgil Dupras
f884918d73
emul: use ncurses in /emul/forth
It doesn't change anything featurewise, but this change is in
preparation for the addition of an eventual AT-XY.
4 lat temu
Virgil Dupras
5446afd87d
emul: rename stage2 to stage
4 lat temu
Virgil Dupras
9d4d9de511
emul: remove stage1
4 lat temu
Virgil Dupras
581f04a4bc
Keep stage1 bootstrap bin instead of stage 0
XPACKed source needing to be kept in bootstrap bin didn't make
much sense. With the removal of stripfc, it makes more sense to keep
the compiled form of stage 1 in repository as a bootstrap binary.
Also, rename it to forth.bin.
4 lat temu
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 lat temu
Virgil Dupras
898684a795
emul: merge pre.fs and emul.fs into stage1.fs
4 lat temu
Virgil Dupras
bc3aabc84e
Update z80c.bin's LATEST during xcomp instead of using slatest
4 lat temu
Virgil Dupras
b5c370a936
emul: embed blkfs in forth binary
This will allow us to read from blkfs in tests.
4 lat temu
Virgil Dupras
1bd191e86a
Move /emul/forth/* to /emul
Less noisy this way
4 lat temu
Virgil Dupras
44403c3d4c
Move icore to blkfs
The way is clear for complete stage1 bootstrapping on the RC2014
target!
4 lat temu
Virgil Dupras
dd6ce1b8fe
Avoid using (xentry) outside xcomp config
4 lat temu
Virgil Dupras
fcd77f80ab
Use blk's boot.z80
4 lat temu
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 lat temu
Virgil Dupras
372524fd19
Move xcomp to blocks
4 lat temu
Virgil Dupras
4967c2add2
Merge z80c.fs and boot.fs into boot.z80
4 lat temu
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 lat temu
Virgil Dupras
9edab10a3a
blk: add dirty flag and auto write blocks on fetch
Also, fix some PSP leaks related to LOAD.
4 lat temu
Virgil Dupras
79acf92b28
emul: fix Makefile
4 lat temu
Virgil Dupras
b8dd86bd18
Move notes.txt in blk
4 lat temu
Virgil Dupras
f59cac0588
blk: first steps
4 lat temu
Virgil Dupras
d919a10265
Remove runbin
It's not used
4 lat temu
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 lat temu
Virgil Dupras
c515720e23
Revert "Remove link.fs"
Let's revisit the relinking approach, with LITA this time.
This reverts commit 6652125d47
.
4 lat temu
Virgil Dupras
a6efb65010
emul: extract capture mark from icore into xstop.fs
4 lat temu
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 lat temu
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 lat temu
Virgil Dupras
6652125d47
Remove link.fs
This was a dead end.
4 lat temu
Byron A. Grobe
217df20d77
Moved tools/bin2c to single-level with other tools.
4 lat temu
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 lat temu
Virgil Dupras
974018831e
Add chained comparison support
4 lat temu
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 lat temu
Virgil Dupras
ba384bfa0f
Add stripfc tool
4 lat temu
Virgil Dupras
41cefb7460
Extract EMIT-dependent routines from core
4 lat temu
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 lat temu