RD block source code
ZXNet echo conference «code.zx»
From Oleg Grigoriev → To all 18 July 1998
Hello, everyone!
Here you go. And do all sorts of checks/restorations/buffers there
ra...as much as it fits.
=====cut=====
;21-01-98
;ed_gmx0.blk
;(c)Ruiner
;Last edit: 04/23/98
;
ORG #8000
;----------------------------;
DEFW #0000 ;driver installation instructions
DEFW LOAD ; block reading
DEFW SAVE ; block record entry
DEFW INIC; driver initialization
DEFB %11111000 ;
DEFB %00000110
;----------------------------;
LOAD XOR A
JR$+#04
;----------------------------;
SAVE LD A,#EB
LD(LLLL),A
LD(MMMM),A
;----------------------------;
LD A,H
ADD A,B
JR Z,E_EXIT
CP#C0
JR C,$+#06
E_EXIT LD A,#07
SCF
RET
;----------------;
SLA E
RL D
SLA E
RL D
LD (LLL2+#01),HL ;D-BANK,HL=DEST
LD A,E
RRCA
RRCA
ADD A,#C0
LD H,A
MOVE XOR A
LD L,A ;HL=from
SUB H ;how many blocks from this jar
LD C,A ;can be re-rolled
LD A,B; all you need to do is re-roll
SUB C
JR Z,LL1
JR C,LL2
LL3 LD B,AJR LLL
;--------------------------------------------;
LL2 LD C,B
LL1 XOR A
JR LL3
;--------------------------------------------;
LLL DI ;B=left,C=left
LD A,D
ADD A,#09
EXX
LD D,A
LD E,A
LD BC,#7FFD
AND #07
OR #1
OUT (C),A
LD B,#1F
LD A,D
AND #08
RLCA
OUT (C),A
LD A,E
LD B,#DF
RLCA
RLCA
RLCA
RLCA
AND #07
OUT (C),A
EXX ;B=cockroach,C=cockroach
LD A,D
EX AF,AF'
LD A,B
LLL2 LD DE,#0000 ;DE=L
LD B,C
LD C,#00
LLLL DEFB #00
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
JP PE,$-#2
AND A
JR Z,MOVE1
LD B,A
EX AF,AF'
LD C,A
LD A,#0
MMMM EQU $-#01
AND A
JR NZ,$+#04
LD H,D
LD L,E
LD ( LLL2 + # 01 ), HL ; HL = SOURCE
LD D,C
INC D
LD H,#C0JR MOVE
;----------------------------;
MOVE1 EX AF,AF'
INIC LD BC,#7FFD
LD A,#10
OUT(C),A
XOR A
LD B,#1F
OUT(C),A
LD B,#DF
OUT(C),A
EI
RET
=====cut=====
Best wishes, Oleg aka Ruiner.