Virgil Dupras
705d68deec
Move most of the high layer of comp core into the low one
...
With KEY and EMIT being switch words, most of the high layer can
be defined before drivers.
In addition to this change, I've compacted core blocks which were
becoming quite sparse.
2020-10-28 18:18:00 -04:00
Virgil Dupras
5a77b80d3d
emul/8086/pcat: fix broken int13h logic
...
I had forgotten that heads index increment before track index.
2020-10-25 12:21:44 -04:00
Virgil Dupras
ba21b6a9f5
emul/8086: add PC/AT emulator
2020-10-25 10:27:52 -04:00
Virgil Dupras
8bf6258673
Add word TICKS
...
Adding a delay such as the 20ms one we have in AVR programmer's
initialization routine is tricky without a word like TICKS.
This implementation is highly inaccurate, but more accurate and
reliable than a "ballpark" DO..LOOP...
2020-09-25 17:31:06 -04:00
Virgil Dupras
25a35cf28e
Move 8086 boot code from B800 to B440
...
That slims down blkfs a lot.
2020-09-21 20:09:42 -04:00
Virgil Dupras
b21be43535
Move 8086 assembler from B730 to B30
...
Also, move doc to doc/asm.txt.
Also, fix the pcat recipe which was broken since the overlay change.
I hadn't noticed it because I didn't have to rebuild the MBR.
2020-09-21 19:24:54 -04:00
Virgil Dupras
fea9beac1e
recipes/pcat: move recipe blocks into local overlay
2020-09-20 20:48:52 -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
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
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
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
dcaa515929
pcat: implement does
2020-06-21 10:40:09 -04: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
60ecab314e
pcat: we have PROMPT!
...
Not working, but we do get that sweet "CollapseOS".
2020-06-20 16:58:48 -04:00
Virgil Dupras
1536434666
pcat: implement cell execution and shaping things up
2020-06-20 13:50:01 -04:00
Virgil Dupras
9d2afd200c
pcat: implement (s)
2020-06-19 20:09: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
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
bc8144b4be
pcat: implement (br) and (br?)
2020-06-16 22:10:32 -04:00
Virgil Dupras
a92864a595
pcat: implement RSP mechanism in execution model
2020-06-16 20:41:53 -04:00
Virgil Dupras
d8d2e05eb2
pcat: make find compare strings
...
find is the biggest chunk of logic of the boot code. The 8086 version
is significantly terser than the z80 one. REP/CMPS helps...
2020-06-15 06:23:19 -04:00
Virgil Dupras
8c452f5add
pcat: begin implementing find
...
Not comparing strings yet. Without asm tooling support, it's a big
chunk to swallow at once. It's progressing well!
2020-06-14 21:52:58 -04:00
Virgil Dupras
a72322df31
pcat: begin structuring around words
2020-06-14 14:15:44 -04:00
Virgil Dupras
2b7abf802f
pcat: begin porting forth
...
I'm not sure yet where I'm going, but I'm not going to build the
8086 port from the ground up like I did with the z80, that is,
making is sustain itself and eventually merge its forth code with
core words. That would be too much work which would then be thrown
out (all those words I'll initially have to implement in asm which
are already implemented in Forth).
What I *think* I can do is build a mirror version of z80 boot code
and cross-compile it from the z80. This means it has to follow z80
stable ABI.
Nope, I'm not sure where I'm going...
2020-06-13 21:37:54 -04:00
Virgil Dupras
07e50313c7
pcat: separate MBR code and OS code
...
MBR code now strictly loads OS code into memory and jumps into it.
Now, I've got to consolidate my assembler code, modrm logic is
messed up.
2020-06-13 15:35:16 -04:00
Virgil Dupras
177750c928
recipes/pcat: first steps into 8086!
2020-06-12 14:03:31 -04:00