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
Virgil Dupras
6bc1738bfd
pcat: implement (loop)
...
8086 asm is a lot terser than z80... Those indirect memory operations
are very handy.
2020-06-18 15:01:04 -04:00
Virgil Dupras
aca9bc9058
z80: small optimization in cell execution
2020-06-18 08:02:45 -04:00
Virgil Dupras
035532acf7
z80: remove remaining indirections in execute calls
...
We now have a stable ABI that is pretty cleared up...
2020-06-18 07:50:20 -04:00
Virgil Dupras
42818d25be
z80: remove layers of indirection of find calls
2020-06-18 07:40:20 -04:00