mirror of
https://github.com/hsoft/collapseos.git
synced 2025-04-02 04:38:40 +11:00
z80: add missing chkPS, calls
chkPS, used to be only for words that pushed back to PS, but I've recently removed underflow checks from next and I forgot to add missing chkPS, calls that go with this change.
This commit is contained in:
parent
46676547d9
commit
7359717000
14
blk/290
14
blk/290
@ -1,10 +1,7 @@
|
|||||||
lbluflw BSET ( abortUnderflow )
|
|
||||||
DE BIN( @ 0x06 ( uflw ) + LDd(i),
|
|
||||||
JR, lblexec BWR
|
|
||||||
lblchkPS BSET ( chkPS )
|
lblchkPS BSET ( chkPS )
|
||||||
( Note that you only need to call this in words that push
|
( thread carefully in there: sometimes, we're in the
|
||||||
back to PSP. If they don't, calling chkPS is redundant with
|
middle of a EXX to protect BC. BC must never be touched
|
||||||
check in next )
|
here. )
|
||||||
EXX,
|
EXX,
|
||||||
( We have the return address for this very call on the stack
|
( We have the return address for this very call on the stack
|
||||||
and protected registers. 2- is to compensate that. )
|
and protected registers. 2- is to compensate that. )
|
||||||
@ -12,4 +9,7 @@ lblchkPS BSET ( chkPS )
|
|||||||
SP SUBHLd,
|
SP SUBHLd,
|
||||||
EXX,
|
EXX,
|
||||||
CNC RETc, ( PS_ADDR >= SP? good )
|
CNC RETc, ( PS_ADDR >= SP? good )
|
||||||
JR, lbluflw BWR
|
( continue to uflw )
|
||||||
|
lbluflw BSET ( abortUnderflow )
|
||||||
|
DE BIN( @ 0x06 ( uflw ) + LDd(i),
|
||||||
|
JR, lblexec BWR
|
||||||
|
2
blk/308
2
blk/308
@ -12,5 +12,5 @@ CODE ?DUP
|
|||||||
HLZ, IFNZ, HL PUSH, THEN,
|
HLZ, IFNZ, HL PUSH, THEN,
|
||||||
;CODE
|
;CODE
|
||||||
CODE DROP ( a -- )
|
CODE DROP ( a -- )
|
||||||
HL POP,
|
HL POP, chkPS,
|
||||||
;CODE
|
;CODE
|
||||||
|
2
blk/312
2
blk/312
@ -1,5 +1,5 @@
|
|||||||
CODE 2DROP ( a b -- )
|
CODE 2DROP ( a b -- )
|
||||||
HL POP, HL POP,
|
HL POP, HL POP, chkPS,
|
||||||
;CODE
|
;CODE
|
||||||
|
|
||||||
CODE 2DUP ( a b -- a b a b )
|
CODE 2DUP ( a b -- a b a b )
|
||||||
|
6
blk/322
6
blk/322
@ -1,13 +1,11 @@
|
|||||||
CODE !
|
CODE !
|
||||||
HL POP,
|
HL POP, DE POP, chkPS,
|
||||||
DE POP,
|
|
||||||
(HL) E LDrr,
|
(HL) E LDrr,
|
||||||
HL INCd,
|
HL INCd,
|
||||||
(HL) D LDrr,
|
(HL) D LDrr,
|
||||||
;CODE
|
;CODE
|
||||||
CODE @
|
CODE @
|
||||||
HL POP,
|
HL POP, chkPS,
|
||||||
chkPS,
|
|
||||||
E (HL) LDrr,
|
E (HL) LDrr,
|
||||||
HL INCd,
|
HL INCd,
|
||||||
D (HL) LDrr,
|
D (HL) LDrr,
|
||||||
|
6
blk/323
6
blk/323
@ -1,12 +1,10 @@
|
|||||||
CODE C!
|
CODE C!
|
||||||
HL POP,
|
HL POP, DE POP, chkPS,
|
||||||
DE POP,
|
|
||||||
(HL) E LDrr,
|
(HL) E LDrr,
|
||||||
;CODE
|
;CODE
|
||||||
|
|
||||||
CODE C@
|
CODE C@
|
||||||
HL POP,
|
HL POP, chkPS,
|
||||||
chkPS,
|
|
||||||
L (HL) LDrr,
|
L (HL) LDrr,
|
||||||
H 0 LDri,
|
H 0 LDri,
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
|
6
blk/324
6
blk/324
@ -1,12 +1,10 @@
|
|||||||
CODE PC! EXX, ( protect BC )
|
CODE PC! EXX, ( protect BC )
|
||||||
BC POP,
|
BC POP, HL POP, chkPS,
|
||||||
HL POP,
|
|
||||||
L OUT(C)r,
|
L OUT(C)r,
|
||||||
EXX, ( unprotect BC ) ;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
|
||||||
CODE PC@ EXX, ( protect BC )
|
CODE PC@ EXX, ( protect BC )
|
||||||
BC POP,
|
BC POP, chkPS,
|
||||||
chkPS,
|
|
||||||
H 0 LDri,
|
H 0 LDri,
|
||||||
L INr(C),
|
L INr(C),
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
|
13
blk/325
13
blk/325
@ -1,15 +1,16 @@
|
|||||||
CODE I
|
CODE I
|
||||||
L 0 IX+ LDrIXY,
|
L 0 IX+ LDrIXY, H 1 IX+ LDrIXY,
|
||||||
H 1 IX+ LDrIXY,
|
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
CODE I'
|
CODE I'
|
||||||
L 2 IX- LDrIXY,
|
L 2 IX- LDrIXY, H 1 IX- LDrIXY,
|
||||||
H 1 IX- LDrIXY,
|
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
CODE J
|
CODE J
|
||||||
L 4 IX- LDrIXY,
|
L 4 IX- LDrIXY, H 3 IX- LDrIXY,
|
||||||
H 3 IX- LDrIXY,
|
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
|
CODE >R
|
||||||
|
HL POP, chkPS,
|
||||||
|
IX INCd, IX INCd, 0 IX+ L LDIXYr, 1 IX+ H LDIXYr,
|
||||||
|
;CODE
|
||||||
|
5
blk/326
5
blk/326
@ -1,11 +1,8 @@
|
|||||||
CODE >R
|
|
||||||
HL POP, IX INCd, IX INCd, 0 IX+ L LDIXYr, 1 IX+ H LDIXYr,
|
|
||||||
;CODE
|
|
||||||
CODE R>
|
CODE R>
|
||||||
L 0 IX+ LDrIXY, H 1 IX+ LDrIXY, IX DECd, IX DECd, HL PUSH,
|
L 0 IX+ LDrIXY, H 1 IX+ LDrIXY, IX DECd, IX DECd, HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
CODE 2>R PC ORG @ 0x35 + ! ( stable ABI JP )
|
CODE 2>R PC ORG @ 0x35 + ! ( stable ABI JP )
|
||||||
DE POP, HL POP,
|
DE POP, HL POP, chkPS,
|
||||||
IX INCd, IX INCd, 0 IX+ L LDIXYr, 1 IX+ H LDIXYr,
|
IX INCd, IX INCd, 0 IX+ L LDIXYr, 1 IX+ H LDIXYr,
|
||||||
IX INCd, IX INCd, 0 IX+ E LDIXYr, 1 IX+ D LDIXYr,
|
IX INCd, IX INCd, 0 IX+ E LDIXYr, 1 IX+ D LDIXYr,
|
||||||
;CODE
|
;CODE
|
||||||
|
Loading…
Reference in New Issue
Block a user