Commit Graph

1540 Commits

Author SHA1 Message Date
Virgil Dupras
5e01e6405a VE: add @ command 2020-06-28 20:19:42 -04:00
Virgil Dupras
5a2612a9c5 Add HERESTART xcomp config 2020-06-28 19:45:28 -04:00
Virgil Dupras
3068b58be5 Rename RAMSTART to SYSVARS
It's more descriptive this way. Also, I'll soon add a new HERESTART
config.
2020-06-28 18:49:30 -04:00
Virgil Dupras
9424770caa rc2014: add a declaration part to ACIA drivers
Driver configuration don't need their own words at runtime, we only
need to compile them as literals when compiling words.

Now that we have this "declaration blocks" pattern emerging, it
seems like a good idea to take advantage of this in drivers, both
for simplifying the xcomp unit and to make final binary slimmer.
2020-06-28 17:30:01 -04:00
Virgil Dupras
b8800be76f rc2014: improve SD card driver docs 2020-06-28 16:34:41 -04:00
Virgil Dupras
27025bf141 Slight adjustments to bootstrap docs 2020-06-28 07:42:20 -04:00
Virgil Dupras
5052efb60f VE: supress ed's output on E and X
Most of the time, this output would be hidden by the next screen
update, except when editing the last line.
2020-06-28 07:04:08 -04:00
Virgil Dupras
101193a78c avra: begin writing docs 2020-06-28 06:57:59 -04:00
Virgil Dupras
440ea43a88 z80a: make mnemonic names more uniform across assemblers
Initially, I used the same letters as those used in the z80 ref
docs, but it makes the different assemblers harder to use than they
should. Having consistent "argtype" rules across assemblers should
help.
2020-06-27 22:01:56 -04:00
Virgil Dupras
490c57834f emul: update README 2020-06-27 07:53:58 -04:00
Virgil Dupras
0eb9bd090a Move zasm.sh from emul to cvm 2020-06-27 07:44:43 -04:00
Virgil Dupras
785b375028 tests: separate tests that need to run on z80 vs those that don't 2020-06-27 07:41:42 -04:00
Virgil Dupras
ceabc9920f move avra.sh from emul to cvm
The stage binary is now there.
2020-06-27 07:32:19 -04:00
Virgil Dupras
a65f674c74 emul: build from "cvm" instead of from itself
The C VM now runs the show.
2020-06-26 22:08:45 -04:00
Virgil Dupras
1312817117 z80: make boot binary a 2-part process
Previously, recipes that began spitting binary contents before
loading block 282 would end up with VARIABLE code in their binary,
thus breaking them. We fix this by making this loading process
2-part.
2020-06-26 21:41:17 -04:00
Virgil Dupras
891e4f861a z80: fix chkPS's "stable ABI" form in binaries with offset
Before lblnext is set, we need to use BJP, instead of JPnn, for the
jump to work in binaries with offsets.
2020-06-26 21:24:12 -04:00
Virgil Dupras
b3e865d0fb recipes: use cvm's staging binary instead of emul's
Much faster!
2020-06-26 21:23:13 -04:00
Virgil Dupras
8a7fa77163 cvm: bootstraps itself! 2020-06-26 18:58:02 -04:00
Virgil Dupras
fc3919863f cvm: implement stack underflow errors 2020-06-26 17:55:10 -04:00
Virgil Dupras
9021e5f6e0 cvm: fix does 2020-06-26 17:35:21 -04:00
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.
2020-06-26 15:50:13 -04:00
Virgil Dupras
e8f1464ae5 Re-add Michael Schierl's emulator link to README
I has removed it when I switched to Forth because it was emulating
the assembler version, but Michael updated it, so I relink it.

The JS VM part is so cool!
2020-06-24 06:51:43 -04:00
Virgil Dupras
20813f71b8 Remove discussion section from README
Having this information on the website is enough.
2020-06-24 06:27:33 -04:00
Virgil Dupras
8607c94922 Update CONTRIBUTING with instructions for sending patches 2020-06-23 22:11:06 -04:00
Virgil Dupras
fb695b67df Replace Travis CI with Sourcehut CI 2020-06-23 20:53:38 -04:00
Virgil Dupras
7eeec67ff5 Add extra words WIPED? and FREEBLKS? 2020-06-23 07:21:33 -04:00
Virgil Dupras
9ab5cda397 ed: rename I to i
Shadowing core "I" is too messy. As soon as ed is loaded in memory,
nothing else that isn't "i-aware" can be loaded anymore.

I guess that's why "contexts" exist in Starting Forth, but adding
this concept just for allowing the shadowing of core words seems
overkill to me. Renaming I to i in ed seems better.
2020-06-23 07:08:21 -04:00
Virgil Dupras
af339d8c6a VE: properly make buffer dirty on E and X 2020-06-23 06:53:30 -04:00
Virgil Dupras
2d9a07d215 blkunpack: don't include trailing empty lines
This was becoming heavy to manage.
2020-06-23 06:52:34 -04:00
Virgil Dupras
49d7a7f435 z80mbc2: add BLK support 2020-06-22 21:21:24 -04:00
Virgil Dupras
a7660fba0e z80mbc2: new recipe
ref #82
2020-06-22 19:09:41 -04:00
Virgil Dupras
94ed01086a pcat: move drivers and xcomp to blkfs 2020-06-22 14:21:25 -04:00
Virgil Dupras
1bea45acb8 8086a: add PUSHs, and POPs, 2020-06-22 13:54:33 -04:00
Virgil Dupras
06d997f26a pcat: write recipe README 2020-06-22 13:34:20 -04:00
Virgil Dupras
496826cdc4 pcat: implement AT-XY
VE works! well, at this point, we can say that Collapse OS runs on
PC/AT. A little cleanup and docs writing and we're done!
2020-06-22 06:53:30 -04:00
Virgil Dupras
f76d30b6fe pcat: add blk write support 2020-06-22 06:44:52 -04:00
Virgil Dupras
4939189233 emul: make blk operations much faster
It helps a bit with staging times.
2020-06-22 06:29:00 -04:00
Virgil Dupras
515890717f pcat: use heads count from 13H08H
On real hardware, there aren't always 2 heads...
2020-06-22 05:59:26 -04:00
Virgil Dupras
d7f002df98 pcat: use boot drive no passed to bootloader through DL
instead of hardcoded drive 0.
2020-06-21 22:53:11 -04:00
Virgil Dupras
dc7f36263a pcat: BLK-enabled!
That INT 13H logic was a bit tricky to implement...

read-only for now.
2020-06-21 22:07:12 -04:00
Virgil Dupras
8d645405b3 pcat: add RSP checks in next 2020-06-21 15:14:38 -04:00
Virgil Dupras
f9eb7c661b 8086asm: fix CMPrr, and CMPxx, argument order 2020-06-21 14:55:14 -04:00
Virgil Dupras
cd514e6cd6 pcat: add PSP checks in all native words
Also, fix (roll) which wasn't properly implemented.
2020-06-21 14:07:02 -04:00
Virgil Dupras
c2c32bbed8 pcat: properly handle IMMED flag in _find 2020-06-21 13:09:51 -04:00
Virgil Dupras
1b5333d0b4 pcat: move all find code in _find word
It isn't used by low level boot code anymore, so it can go there.
2020-06-21 11:57:12 -04:00
Virgil Dupras
dbd283758c Refer to BOOT and (uflw) by addr in stable ABI
Was previously referred to by name+find, which was wasteful.
2020-06-21 11:41:10 -04:00
Virgil Dupras
dcaa515929 pcat: implement does 2020-06-21 10:40:09 -04:00
link2xt
d83d12899b
MOVE: do not crash when u is 0 (#126)
This commit adds ?DUP IF guards to MOVE and MOVE- that make them exit
when u is 0. Without these guards a DO loop was executed 65535 times
instead of 0.

In particular, this fixes a crash when "105 LOAD I " is executed
immediately after boot. Block editor word "I" passes IBUF length (0)
to MOVE- and MOVE in this case, causing a crash.
2020-06-21 05:49:45 -05:00
Virgil Dupras
99c05fff3c pcat: it works!
Forth intepreter now works! There's still DOES> and overflow checks
to implement, but otherwise, we have it!
2020-06-20 20:06:42 -04:00
Virgil Dupras
ae719508d9 pcat: make /MOD division 16-bit
Was required for the many "256 /MOD" in the code.
2020-06-20 19:14:51 -04:00