Virgil Dupras
d7f002df98
pcat: use boot drive no passed to bootloader through DL
instead of hardcoded drive 0.
4 years ago
Virgil Dupras
dc7f36263a
pcat: BLK-enabled!
That INT 13H logic was a bit tricky to implement...
read-only for now.
4 years ago
Virgil Dupras
8d645405b3
pcat: add RSP checks in next
4 years ago
Virgil Dupras
f9eb7c661b
8086asm: fix CMPrr, and CMPxx, argument order
4 years ago
Virgil Dupras
cd514e6cd6
pcat: add PSP checks in all native words
Also, fix (roll) which wasn't properly implemented.
4 years ago
Virgil Dupras
c2c32bbed8
pcat: properly handle IMMED flag in _find
4 years ago
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.
4 years ago
Virgil Dupras
dbd283758c
Refer to BOOT and (uflw) by addr in stable ABI
Was previously referred to by name+find, which was wasteful.
4 years ago
Virgil Dupras
dcaa515929
pcat: implement does
4 years ago
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.
4 years ago
Virgil Dupras
99c05fff3c
pcat: it works!
Forth intepreter now works! There's still DOES> and overflow checks
to implement, but otherwise, we have it!
4 years ago
Virgil Dupras
ae719508d9
pcat: make /MOD division 16-bit
Was required for the many "256 /MOD" in the code.
4 years ago
Virgil Dupras
60ecab314e
pcat: we have PROMPT!
Not working, but we do get that sweet "CollapseOS".
4 years ago
Virgil Dupras
397ee3e3e6
Simplify word '
4 years ago
Virgil Dupras
1536434666
pcat: implement cell execution and shaping things up
4 years ago
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?
4 years ago
Virgil Dupras
019fd8a67d
pcat: fix ?DUP
4 years ago
Virgil Dupras
9d2afd200c
pcat: implement (s)
4 years ago
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.
4 years ago
Virgil Dupras
8cc8df0446
pcat: add native _find
4 years ago
Virgil Dupras
5ebdf84e78
pcat: more native words
almost there!
4 years ago
Virgil Dupras
89bc7df120
pcat: more native words
4 years ago
Virgil Dupras
3b21ba635d
pcat: add PICK and (roll)
4 years ago
Virgil Dupras
6b07296d30
pcat: more native words
4 years ago
Virgil Dupras
bd508daad9
pcat: begin organizing native words properly
This port is taking shape!
4 years ago
Virgil Dupras
6bc1738bfd
pcat: implement (loop)
8086 asm is a lot terser than z80... Those indirect memory operations
are very handy.
4 years ago
Virgil Dupras
aca9bc9058
z80: small optimization in cell execution
4 years ago
Virgil Dupras
035532acf7
z80: remove remaining indirections in execute calls
We now have a stable ABI that is pretty cleared up...
4 years ago
Virgil Dupras
42818d25be
z80: remove layers of indirection of find calls
4 years ago
Virgil Dupras
76e698157c
z80: remove layer of indirection in most "next" calls
The only calls still using the stable ABI indirection are those
made before the next routine is created.
4 years ago
Virgil Dupras
eba83fa9a9
z80: use named labels for boot routines
The usage of numerotated labels for this was becoming severly
confusing.
4 years ago
Virgil Dupras
eed817b517
pcat: adapt to word type change
4 years ago
Virgil Dupras
3d2dc041fb
Make word routines into word types
Instead of having wordref point to core word routines, I made them
into word 4 word types. It liberates space into the stable ABI and
should make porting to other arches easier.
I'm also thinking of combining word type with the namelen field
for precious bytes saving, but not now...
4 years ago
Virgil Dupras
3383a00040
Fix recipes with binary offset (ti84, trs80)
I broke them when I removed call indirection layers without also
removing usage of BCALL.
4 years ago
Virgil Dupras
1d468d2168
Fix mis-documentation about literal words
4 years ago
Virgil Dupras
2be2f74a43
Make literal word routines into regular native words
4 years ago
Virgil Dupras
ea9833d4ff
Remove LITA
It was useful when we still had the relinker, but now it has no use.
I was waiting a bit to see if the distinction would be useful again,
but it seems like it won't.
4 years ago
Virgil Dupras
abb4dc8bd7
Reduce the scope of the stable ABI
Only 2>R in actually needed in the RSP family (for LOOP). Reducing
the scope of the stable ABI makes porting to other arches easier.
4 years ago
Virgil Dupras
bc8144b4be
pcat: implement (br) and (br?)
4 years ago
Virgil Dupras
49979404a5
pcat: implement number literals
4 years ago
Virgil Dupras
a92864a595
pcat: implement RSP mechanism in execution model
4 years ago
link2xt
472331b450
Check spelling ( #121 )
4 years ago
link2xt
6a09910dfc
BROWSE: ignore invalid digits ( #123 )
Documentation in block 100 says a number followed by a space or return
lists the contents of the block. However, typing any other character
does this too, because _pdacc returns -1 in this case.
This is annoying because typing "n" instead of "N" immediately after
jumping to some block was bringing you to block 0. Now "n" is ignored
instead.
This commit changes the condition for printing to explicitly check for
the value of 1, which means whitespace according to _pdacc documentation
in block 355.
4 years ago
link2xt
f1a225ef3d
Fix unreadable sentence in block 031. ( #122 )
This clearly has some words missing.
4 years ago
Virgil Dupras
16d6a0b377
pcat: begin implementing compiledWord/next
4 years ago
Virgil Dupras
feeedcc55c
z80: small optimization in execute
I had more ambitious goals, but I backed out of it: not worth it.
This small optimization is an easy picking though.
4 years ago
Virgil Dupras
dabbd6c253
8086asm: add support for modrm 8-bit displacement
4 years ago
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...
4 years ago
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!
4 years ago
Virgil Dupras
3be30e24bb
pcat: implement execute and nativeWord
4 years ago