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
Virgil Dupras
60ecab314e
pcat: we have PROMPT!
...
Not working, but we do get that sweet "CollapseOS".
2020-06-20 16:58:48 -04:00
Virgil Dupras
397ee3e3e6
Simplify word '
2020-06-20 14:13:41 -04:00
Virgil Dupras
1536434666
pcat: implement cell execution and shaping things up
2020-06-20 13:50:01 -04:00
Virgil Dupras
c571567660
emul: make verbose staging the default
...
I always keep it on myself. I can imagine it's especially useful to
newcomers.
2020-06-20 13:41:39 -04:00
Virgil Dupras
acf8e03f53
8086asm: add overflow check to RPCs,
...
I've spent way too much time debugging bugs caused by this...
*sigh*, why can't I learn?
2020-06-20 13:36:21 -04:00
Virgil Dupras
019fd8a67d
pcat: fix ?DUP
2020-06-20 07:34:46 -04:00
Virgil Dupras
9d2afd200c
pcat: implement (s)
2020-06-19 20:09:51 -04:00
Virgil Dupras
723d3c4249
pcat: all native words implemented!
...
(well, not PC@ and PC!, but I'm not even sure what would be the role
of these in a PC/AT. they're only used in drivers on the z80 front,
so they will not be immediately needed. todo... )
Now comes the fitting part.
2020-06-19 08:10:51 -04:00
Virgil Dupras
8cc8df0446
pcat: add native _find
2020-06-19 07:56:54 -04:00
Virgil Dupras
5ebdf84e78
pcat: more native words
...
almost there!
2020-06-19 07:26:33 -04:00
Virgil Dupras
89bc7df120
pcat: more native words
2020-06-18 23:10:14 -04:00
Virgil Dupras
3b21ba635d
pcat: add PICK and (roll)
2020-06-18 21:21:46 -04:00
Virgil Dupras
6b07296d30
pcat: more native words
2020-06-18 19:06:53 -04:00
Virgil Dupras
bd508daad9
pcat: begin organizing native words properly
...
This port is taking shape!
2020-06-18 15:28:30 -04:00