@@ -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 |
@@ -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 ) | |||||
HL ADDHLd, | |||||
E RL, D RL, | |||||
JRNC, 4 A, ( noinc ) | |||||
BC ADDHLd, | |||||
JRNC, 1 A, ( noinc ) | |||||
DE INCd, | |||||
( noinc ) | |||||
A DECr, | |||||
JRNZ, -14 A, ( loop ) | |||||
BEGIN, | |||||
HL ADDHLd, | |||||
E RL, D RL, | |||||
IFC, | |||||
BC ADDHLd, | |||||
IFC, DE INCd, THEN, | |||||
THEN, | |||||
A DECr, | |||||
JRNZ, AGAIN, | |||||
HL PUSH, | HL PUSH, | ||||
;CODE | |||||
EXX, ( unprotect BC ) ;CODE |
@@ -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 | |||||
DE POP, | |||||
BC POP, | |||||
chkPS, | |||||
A B LDrr, | |||||
B 16 LDri, | |||||
CODE /MOD EXX, ( protect BC ) | |||||
DE POP, BC POP, chkPS, | |||||
A B LDrr, B 16 LDri, | |||||
HL 0 LDdn, | HL 0 LDdn, | ||||
( cont. ) | |||||
BEGIN, | |||||
SCF, C RL, RLA, | |||||
HL ADCHLd, DE SBCHLd, | |||||
IFC, DE ADDHLd, C DECr, THEN, | |||||
DJNZ, AGAIN, | |||||
B A LDrr, | |||||
HL PUSH, BC PUSH, | |||||
EXX, ( unprotect BC ) ;CODE |
@@ -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 |
@@ -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 |
@@ -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, | |||||
BC DECd, | |||||
DE DECd, | |||||
DE DECd, | |||||
THEN, | THEN, | ||||
THEN, | THEN, | ||||
BC PUSH, | |||||
DE PUSH, | |||||
;CODE | ;CODE |
@@ -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, | |||||
B INCr, B DECr, IFNZ, | |||||
A E LDrr, | |||||
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 |
@@ -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, | |||||
B INCr, B DECr, IFNZ, | |||||
A E LDrr, | |||||
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 |
@@ -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 | |||||
CODE AT-XY | |||||
EXX, ( unprotect BC ) ;CODE | |||||
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 |
@@ -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 |
@@ -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 |
@@ -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, | ||||
@@ -1,8 +1,8 @@ | |||||
CODE @PUT ( c a -- f ) | |||||
CODE @PUT ( c a -- f ) EXX, ( protect BC ) | |||||
DE POP, | DE POP, | ||||
BC POP, | BC POP, | ||||
chkPS, | chkPS, | ||||
A 0x04 LDri, ( @PUT ) | A 0x04 LDri, ( @PUT ) | ||||
0x28 RST, | 0x28 RST, | ||||
PUSHZ, | PUSHZ, | ||||
;CODE | |||||
EXX, ( unprotect BC ) ;CODE |