mirror of
https://github.com/hsoft/collapseos.git
synced 2025-04-02 04:18:39 +11:00
z80: protect or avoid BC wherever it's used
For the IY->BC move, of course.
This commit is contained in:
parent
a6e987b5f7
commit
bf4ab0f1b4
6
blk/310
6
blk/310
@ -1,4 +1,4 @@
|
|||||||
CODE PICK
|
CODE PICK EXX, ( protect BC )
|
||||||
HL POP,
|
HL POP,
|
||||||
( x2 )
|
( x2 )
|
||||||
L SLA, H RL,
|
L SLA, H RL,
|
||||||
@ -10,6 +10,6 @@ CODE PICK
|
|||||||
EXDEHL,
|
EXDEHL,
|
||||||
HL PS_ADDR LDdn,
|
HL PS_ADDR LDdn,
|
||||||
DE SUBHLd,
|
DE SUBHLd,
|
||||||
CC lblofl @ JPc, ( abortUnderflow-B298 )
|
IFC, EXX, lblofl @ JP, THEN,
|
||||||
BC PUSH,
|
BC PUSH,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
16
blk/319
16
blk/319
@ -1,16 +1,16 @@
|
|||||||
CODE * ( DE * BC -> DE (high) and HL (low) )
|
CODE * EXX, ( protect BC )
|
||||||
|
( DE * BC -> DE (high) and HL (low) )
|
||||||
DE POP, BC POP, chkPS,
|
DE POP, BC POP, chkPS,
|
||||||
HL 0 LDdn,
|
HL 0 LDdn,
|
||||||
A 0x10 LDri,
|
A 0x10 LDri,
|
||||||
( loop )
|
BEGIN,
|
||||||
HL ADDHLd,
|
HL ADDHLd,
|
||||||
E RL, D RL,
|
E RL, D RL,
|
||||||
JRNC, 4 A, ( noinc )
|
IFC,
|
||||||
BC ADDHLd,
|
BC ADDHLd,
|
||||||
JRNC, 1 A, ( noinc )
|
IFC, DE INCd, THEN,
|
||||||
DE INCd,
|
THEN,
|
||||||
( noinc )
|
|
||||||
A DECr,
|
A DECr,
|
||||||
JRNZ, -14 A, ( loop )
|
JRNZ, AGAIN,
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
23
blk/320
23
blk/320
@ -1,16 +1,15 @@
|
|||||||
( Borrowed from http://wikiti.brandonw.net/ )
|
( Borrowed from http://wikiti.brandonw.net/ )
|
||||||
( Divides AC by DE and places the quotient in AC and the
|
( Divides AC by DE and places the quotient in AC and the
|
||||||
remainder in HL )
|
remainder in HL )
|
||||||
CODE /MOD
|
CODE /MOD EXX, ( protect BC )
|
||||||
DE POP,
|
DE POP, BC POP, chkPS,
|
||||||
BC POP,
|
A B LDrr, B 16 LDri,
|
||||||
chkPS,
|
|
||||||
A B LDrr,
|
|
||||||
B 16 LDri,
|
|
||||||
HL 0 LDdn,
|
HL 0 LDdn,
|
||||||
|
BEGIN,
|
||||||
|
SCF, C RL, RLA,
|
||||||
|
HL ADCHLd, DE SBCHLd,
|
||||||
|
IFC, DE ADDHLd, C DECr, THEN,
|
||||||
|
DJNZ, AGAIN,
|
||||||
( cont. )
|
B A LDrr,
|
||||||
|
HL PUSH, BC PUSH,
|
||||||
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
15
blk/321
15
blk/321
@ -1,15 +0,0 @@
|
|||||||
BEGIN, ( loop )
|
|
||||||
SCF,
|
|
||||||
C RL,
|
|
||||||
RLA,
|
|
||||||
HL ADCHLd,
|
|
||||||
DE SBCHLd,
|
|
||||||
IFC,
|
|
||||||
DE ADDHLd,
|
|
||||||
C DECr,
|
|
||||||
THEN,
|
|
||||||
DJNZ, AGAIN, ( loop )
|
|
||||||
B A LDrr,
|
|
||||||
HL PUSH,
|
|
||||||
BC PUSH,
|
|
||||||
;CODE
|
|
8
blk/324
8
blk/324
@ -1,13 +1,13 @@
|
|||||||
CODE PC!
|
CODE PC! EXX, ( protect BC )
|
||||||
BC POP,
|
BC POP,
|
||||||
HL POP,
|
HL POP,
|
||||||
L OUT(C)r,
|
L OUT(C)r,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
|
||||||
CODE PC@
|
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,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
10
blk/329
10
blk/329
@ -3,13 +3,13 @@ CODE CMP
|
|||||||
DE POP,
|
DE POP,
|
||||||
chkPS,
|
chkPS,
|
||||||
DE SUBHLd,
|
DE SUBHLd,
|
||||||
BC 0 LDdn,
|
DE 0 LDdn,
|
||||||
IFNZ, ( < or > )
|
IFNZ, ( < or > )
|
||||||
BC INCd,
|
DE INCd,
|
||||||
IFNC, ( < )
|
IFNC, ( < )
|
||||||
BC DECd,
|
DE DECd,
|
||||||
BC DECd,
|
DE DECd,
|
||||||
THEN,
|
THEN,
|
||||||
THEN,
|
THEN,
|
||||||
BC PUSH,
|
DE PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
|
9
blk/334
9
blk/334
@ -1,12 +1,13 @@
|
|||||||
CODE RSHIFT ( n u -- n )
|
CODE RSHIFT ( n u -- n )
|
||||||
BC POP, ( u )
|
DE POP, ( u )
|
||||||
HL POP, ( n )
|
HL POP, ( n )
|
||||||
chkPS,
|
chkPS,
|
||||||
B C LDrr,
|
A E LDrr,
|
||||||
B INCr, B DECr, IFNZ,
|
A ORr, IFNZ,
|
||||||
BEGIN,
|
BEGIN,
|
||||||
H SRL, L RR,
|
H SRL, L RR,
|
||||||
DJNZ, AGAIN,
|
A DECr,
|
||||||
|
JRNZ, AGAIN,
|
||||||
THEN,
|
THEN,
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
|
9
blk/335
9
blk/335
@ -1,12 +1,13 @@
|
|||||||
CODE LSHIFT ( n u -- n )
|
CODE LSHIFT ( n u -- n )
|
||||||
BC POP, ( u )
|
DE POP, ( u )
|
||||||
HL POP, ( n )
|
HL POP, ( n )
|
||||||
chkPS,
|
chkPS,
|
||||||
B C LDrr,
|
A E LDrr,
|
||||||
B INCr, B DECr, IFNZ,
|
A ORr, IFNZ,
|
||||||
BEGIN,
|
BEGIN,
|
||||||
L SLA, H RL,
|
L SLA, H RL,
|
||||||
DJNZ, AGAIN,
|
A DECr,
|
||||||
|
JRNZ, AGAIN,
|
||||||
THEN,
|
THEN,
|
||||||
HL PUSH,
|
HL PUSH,
|
||||||
;CODE
|
;CODE
|
||||||
|
8
blk/493
8
blk/493
@ -3,14 +3,14 @@ CODE (key)
|
|||||||
0x28 RST,
|
0x28 RST,
|
||||||
PUSHA,
|
PUSHA,
|
||||||
;CODE
|
;CODE
|
||||||
CODE (emit)
|
CODE (emit) EXX, ( protect BC )
|
||||||
BC POP, ( c == @DSP arg ) chkPS,
|
BC POP, ( c == @DSP arg ) chkPS,
|
||||||
A 0x02 LDri, ( @DSP )
|
A 0x02 LDri, ( @DSP )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
CODE AT-XY
|
CODE AT-XY EXX, ( protect BC )
|
||||||
DE POP, H E LDrr, ( Y )
|
DE POP, H E LDrr, ( Y )
|
||||||
DE POP, L E LDrr, ( X ) chkPS,
|
DE POP, L E LDrr, ( X ) chkPS,
|
||||||
A 0x0f LDri, ( @VDCTL ) B 3 LDri, ( setcur )
|
A 0x0f LDri, ( @VDCTL ) B 3 LDri, ( setcur )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
4
blk/494
4
blk/494
@ -3,10 +3,10 @@ CODE BYE
|
|||||||
HL 0 LDdn,
|
HL 0 LDdn,
|
||||||
A 0x16 LDri, ( @EXIT )
|
A 0x16 LDri, ( @EXIT )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
CODE @DCSTAT ( drv -- f )
|
CODE @DCSTAT ( drv -- f ) EXX, ( protect BC )
|
||||||
BC POP,
|
BC POP,
|
||||||
chkPS,
|
chkPS,
|
||||||
A 0x28 LDri, ( @DCSTAT )
|
A 0x28 LDri, ( @DCSTAT )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
PUSHZ,
|
PUSHZ,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
4
blk/495
4
blk/495
@ -1,4 +1,4 @@
|
|||||||
CODE @RDSEC ( drv cylsec addr -- f )
|
CODE @RDSEC ( drv cylsec addr -- f ) EXX, ( protect BC )
|
||||||
HL POP,
|
HL POP,
|
||||||
DE POP,
|
DE POP,
|
||||||
BC POP,
|
BC POP,
|
||||||
@ -6,4 +6,4 @@ CODE @RDSEC ( drv cylsec addr -- f )
|
|||||||
A 0x31 LDri, ( @RDSEC )
|
A 0x31 LDri, ( @RDSEC )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
PUSHZ,
|
PUSHZ,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
|
4
blk/496
4
blk/496
@ -1,4 +1,4 @@
|
|||||||
CODE @WRSEC ( drv cylsec addr -- f )
|
CODE @WRSEC ( drv cylsec addr -- f ) EXX, ( protect BC )
|
||||||
HL POP,
|
HL POP,
|
||||||
DE POP,
|
DE POP,
|
||||||
BC POP,
|
BC POP,
|
||||||
@ -6,7 +6,7 @@ CODE @WRSEC ( drv cylsec addr -- f )
|
|||||||
A 0x35 LDri, ( @WRSEC )
|
A 0x35 LDri, ( @WRSEC )
|
||||||
0x28 RST,
|
0x28 RST,
|
||||||
PUSHZ,
|
PUSHZ,
|
||||||
;CODE
|
EXX, ( unprotect BC ) ;CODE
|
||||||
CODE @GET ( a -- c f )
|
CODE @GET ( a -- c f )
|
||||||
DE POP,
|
DE POP,
|
||||||
chkPS,
|
chkPS,
|
||||||
|
Loading…
Reference in New Issue
Block a user