Fix mis-documentation in 8086 boot code comments

This commit is contained in:
Virgil Dupras 2020-11-14 20:28:44 -05:00
parent c939c7e84a
commit 7722db0762
2 changed files with 11 additions and 12 deletions

19
blk.fs
View File

@ -2533,19 +2533,14 @@ sure it goes back to its previous level before next is called.
(cont.)
( ----- 441 )
STABLE ABI: As a compatible binary, this binary follows the
same stable ABI as its z80 counterpart.
PS CHECKS: chkPS, is a bit different than in z80: it is para-
metrizable. The idea is that we always call chkPS, before pop-
ping, telling the expected size of stack. This allows for some
interesting optimization. For example, in SWAP, no need to pop,
chkPS, then push, we can chkPS and then proceed to optimized
swapping in PS.
PS CHECKS: Unlike z80 boot code, we don't check PS at each next
call (we do check RS though). It is the responsibility of every
native PSP-modifying word to call chkPS, . Also, chkPS, is a
bit different than in z80: it is parametrizable. The idea is
that we always call chkPS, before popping, telling the expected
size of stack. This allows for some interesting optimization.
For example, in SWAP, no need to pop, chkPS, then push, we can
chkPS and then proceed to optimized swapping in PS.
To assemble, load blocks 445 through 461
Load range: B445-B461
( ----- 445 )
VARIABLE lblexec VARIABLE lblnext
H@ ORG !

View File

@ -51,6 +51,10 @@ Stack underflow and overflow: In each native word involving
PS popping, we check whether the stack is big enough. If it's
not we go in "uflw" (underflow) error condition, then abort.
This means that if you implement a native word that involves
popping from PS, you are expected to call chkPS, for under-
flow situations.
We don't check RS for underflow because the cost of the check
is significant and its usefulness is dubious: if RS isn't
tightly in control, we're screwed anyways, and that, well