Virgil Dupras
c939c7e84a
cvm: use Grid in /cvm/forth
Also, fixed broken AT-XY in Grid...
3 years ago
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 years ago
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 years ago
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 years ago
Virgil Dupras
8e624034bf
recipes/sms: move recipe blocks into local overlay
3 years ago
Virgil Dupras
fff893452d
cvm: remove makefile duplicate recipe
3 years ago
Virgil Dupras
ceabc9920f
move avra.sh from emul to cvm
The stage binary is now there.
3 years ago
Virgil Dupras
8a7fa77163
cvm: bootstraps itself!
3 years ago
Virgil Dupras
fc3919863f
cvm: implement stack underflow errors
3 years ago
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 years ago
Liorst4
374932fa4d
Clean libz80/libz80.o in make clean ( #118 )
4 years ago
Virgil Dupras
394f962510
recipe: fix makefiles for fresh clone contexts
All recipe makesfiles would previously assume a built emul/.
Fixes #113
4 years ago
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 years ago
Virgil Dupras
1d4b75add2
emul: deduplicate some code
4 years ago
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 years ago
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 years ago
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 years ago
Virgil Dupras
5446afd87d
emul: rename stage2 to stage
4 years ago
Virgil Dupras
9d4d9de511
emul: remove stage1
4 years ago
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 years ago
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