Commit Graph

20 Commits

Author SHA1 Message Date
Virgil Dupras daeb3b3c69 Extract (n) code from stable ABI 2020-07-05 14:16:24 -04:00
Virgil Dupras 5705cd5c31 Extract EXIT code from stable ABI zone 2020-07-05 13:41:12 -04:00
Virgil Dupras 4a91ee5c9c Extract (s) code from stable ABI zone
Only its jump addr remains.
2020-07-05 08:54:22 -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 94ed01086a pcat: move drivers and xcomp to blkfs 2020-06-22 14:21:25 -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 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 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 8cc8df0446 pcat: add native _find 2020-06-19 07:56:54 -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 eed817b517 pcat: adapt to word type change 2020-06-18 06:50:32 -04:00
Virgil Dupras 16d6a0b377 pcat: begin implementing compiledWord/next 2020-06-16 19:05:36 -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 3be30e24bb pcat: implement execute and nativeWord 2020-06-14 15:27:26 -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 1a467efae1 pcat: use a far jump to boot into the OS
Unless I misunderstood, this is supposed to set CS. This would make
all SREG have the same value. This allows us to remove BIN( offset
from os.bin.

I've tried booting to offset 0, but it didn't seem to work. Let's
settle for 0x8000. 512kb of system RAM is way more than we need
anyways.
2020-06-13 20:06:51 -04:00
Virgil Dupras 507c2c12e7 8086asm: clarify operands and fix stupidities 2020-06-13 17:58:42 -04:00
Virgil Dupras 5033f17be2 8086asm: tidy up a bit 2020-06-13 16:21:56 -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