
;  25.02.1985

;  EXPLOSION ROUTINE
;  -----------------
;  DANNY HARTLEY


	DB	"ZX82",3,0
	DB	THE-START/256,THE-START&255
	DB	START/256,START&255
	DW	-1

ORG 50000
;LOAD 0A000H
START:
LD HL,23295
LD DE,23294
LD BC,767
LD (HL),71
LDDR 
EXPLO_1:
CALL EXPLO_2
LD A,127
IN A,(254)
RRCA 
JR C,EXPLO_1
RET

EXPLO_2:
LD HL,977
LD (SNDRG),HL
LD A,15
LD (SNDCN),A
LD A,7
LD (COLOUR),A
LD DE,(COORD)
LD A,D
AND 0FH
LD D,A
LD A,(DE)
AND 07FH
ADD 64
LD E,A
LD A,(DE)
AND 07FH
ADD 25
LD D,A
LD (COORD),DE
LD A,(NOBITZ)
LD B,A
LD HL,(23672)
LD A,R
XOR H
AND 31
LD H,A
PUSH HL
POP IX
LD HL,WORKQQ
EXP1:LD (HL),E
INC HL
LD (HL),D
INC HL
LD A,(IX+0)
AND 083H
LD (HL),A
INC HL
INC IX
LD A,(IX+0)
AND 083H
LD (HL),A
INC HL
INC IX
DJNZ EXP1

LD B,64
EXP3:PUSH BC
LD A,(NOBITZ)
LD B,A
LD HL,WORKQQ
EXP2:PUSH BC
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
PUSH DE
LD A,D
CP BOTTOM
JR NC,EXPOFF
LD B,(HL)
DEC HL
DEC HL
DEC HL
LD A,B
BIT 7,A
RES 7,A
JR Z,EXP7
CPL
EXP7:ADD D
CP TOP
JR NC,EXP12
LD A,BOTTOM
EXP12:LD D,A
LD A,C
BIT 7,A
RES 7,A
JR Z,EXP8
CPL
EXP8:LD B,A
ADD E
BIT 7,C
JR Z,EXP9
CP LEFT
JR NC,EXP10
JR EXP11
EXP9:CP RIGHT
JR C,EXP10
EXP11:LD D,BOTTOM
EXP10:LD E,A
LD (HL),E
INC HL
LD (HL),D
INC HL
INC HL
EXPOFF:INC HL
CALL PLOT
POP DE
CALL PLOT
POP BC
DJNZ EXP2
CALL SOUNDE
POP BC
LD A,B
RRCA
RRCA
RRCA
AND 7
LD (COLOUR),A
DJNZ EXP3
FINI:
LD HL,WORKQQ
LD A,(NOBITZ)
LD B,A
EXPFF:PUSH BC
LD E,(HL)
INC HL
LD D,(HL)
CALL PLOT
INC HL
INC HL
INC HL
POP BC
DJNZ EXPFF
RET
SOUNDE:
LD A,(SNDCN)
OR A
RET Z
DEC A
LD (SNDCN),A
LD HL,(SNDRG)
LD B,2
SND22:LD E,(HL)
RES 7,E
LD C,E
LD A,BORDCR
OUT (254),A
SND18:LD D,5
SND19:DEC D
JR NZ,SND19
DEC E
JR NZ,SND18
LD E,C
XOR 24
OUT (254),A
SND20:LD D,5
SND21:DEC D
JR NZ,SND21
DEC E
JR NZ,SND20
INC HL
DJNZ SND22
LD (SNDRG),HL
RET
PLOT:
PUSH DE
CALL PLOT1
POP DE
INC E
PLOT1:
LD A,D
CP BOTTOM
RET NC
PUSH HL
LD A,E
AND 7
LD C,A
SRL E
SRL E
SRL E
LD A,D
RLCA
RLCA
AND 0E0H
OR E
LD L,A
LD A,D
RRCA
RRCA
RRCA
AND 018H
OR 040H
LD H,A
LD A,D
AND 7
OR H
LD H,A
PUSH HL
LD HL,PLOTDA
LD B,0
ADD HL,BC
LD A,(HL)
POP HL
XOR (HL)
LD (HL),A
LD A,H
RRCA
RRCA
RRCA
AND 3
OR 058H
LD H,A
LD A,(HL)
AND 248
LD C,A
LD A,(COLOUR)
OR C
LD (HL),A
POP HL
RET


PLOTDA:DB 128,64,32,16,8,4,2,1

TOP:EQU 0
BOTTOM:EQU 192
LEFT:EQU 8
RIGHT:EQU 247
BORDCR:EQU 24

COORD:DB 128,88
NOBITZ:DB 22
COLOUR:DB 7
SNDRG:DW 0
SNDCN:DB 0

WORKQQ:DS 4*22

THE:END

