	ORG	32768

	LD	HL,(23670)
	LD	(RND_VAL),HL
	
	CALL	MAIN_CYCLE
	CALL	RESTORE_STANDARD_VIDEO
	
	RET


;-------------------
LEVEL_ADR	DEFW	0

;-------------------
T_COORD		DEFW	0
T_SPR_ADR	DEFW	0
T_MAS_ADR	DEFW	0
T_SPR_W		DEFB	0
T_SPR_H		DEFB	0
T_DIRECT	DEFB	0	; 
T_ACTIVE	DEFB	0
T_LIVES		DEFB	0
T_SH_COORD	DEFW	0
T_SH_DIRECT	DEFB	0
T_SH_ACTIVE	DEFB	0
T_POWERED	DEFB	0
T_VISIBLE	DEFB	0
T_BLINK_TIMER	DEFB	0
T_PROTECT_TIMER	DEFB	0
T_SLIP_TIMER	DEFB	0

;-------------------
E_COORD		EQU	0	; 
E_SPR_H		EQU	2	;   
E_SPR_W		EQU	3	;   
E_SPR_ADR	EQU	4	;   
E_MAS_ADR	EQU	6	;   
E_DIRECT	EQU	8	; 
E_ACTIVE	EQU	9	;  
E_SH_COORD	EQU	10
E_SH_DIRECT	EQU	12
E_SH_ACTIVE	EQU	13
E_BONUSED	EQU	14
E_VISIBLE	EQU	15
E_BLINK_TIMER	EQU	16
;-------------------
B_COORD		DEFW	0
B_OLD_COORD	DEFW	0
B_SPR_ADR	DEFW	0
B_ACTIVE	DEFB	0
B_INDEX		DEFB	0
B_VISIBLE	DEFB	0
B_BLINK_TIMER	DEFB	0


STOP_TIMER	DEFB	0
BLINK_TIME	EQU	3
ENEMY_LEN	EQU	20	;    
ENEMY		DEFS	60	; 
SPAWN_POS	DEFB	0
ENEMY_COUNT	DEFB	0
BASE_DAMAGED	DEFB	0
BONUS_COUNTER	DEFB	0	
IS_ICE		DEFB	0

;--------------------------
W_COORD		DEFW	0
W_SPRADR	DEFW	0
W_SPRW		DEFB	0
W_SPRH		DEFB	0

FLAG_EXIT	DEFB	0
U_PRESSED	DEFB	0
D_PRESSED	DEFB	0
L_PRESSED	DEFB	0
R_PRESSED	DEFB	0
F_PRESSED	DEFB	0

;--------------------------
START_MELODY
	DI
	LD	HL,MELODY
NOTE	LD	D,(HL)
	INC	HL
	LD	E,(HL)
	INC	HL
	LD	A,E
	OR	D
	JR	Z,END_MELODY
	PUSH	HL
	CALL	TWOTON
	POP	HL
	JR	NOTE
END_MELODY
	EI
	RET
MELODY
	DEFB	226,225
	DEFB	201,0
	DEFB	190,0

	DEFB	226,225
	DEFB	201,227
	DEFB	190,225

	DEFB	190,191
	DEFB	169,0
	DEFB	150,0

	DEFB	190,189
	DEFB	169,191
	DEFB	150,189

	DEFB	169,170
	DEFB	150,0
	DEFB	142,0

	DEFB	169,170
	DEFB	150,170
	DEFB	142,170

	DEFB	142,143
	DEFB	126,143
	DEFB	113,143

	DEFB	142,125
	DEFB	126,125
	DEFB	113,125

	DEFB	113,114
	DEFB	113,0
	DEFB	113,0
	DEFB	113,114
	DEFB	113,114
	DEFB	113,114
	DEFB	113,114

	DEFB	0,0

TWOTON

	LD	BC,5000      ;???????????? ????????
	LD	A,(23624)
	AND	#38
	RRA
	RRA
	RRA
	LD	H,D
	LD	L,E

TWOTN1	INC	H           
	DEC	H
	JR	Z,TWOTN2
	DEC	H		;???????? ??? ????????? ??????? ????
	JR	NZ,TWOTN2
	XOR	16
	OUT	(254),A     ;?????????? ??????? ?????
	LD	H,D         ;?????????????? ???????? ???????? ??? ??????? ????
TWOTN2	INC	H           
	DEC	H
	JR	Z,TWOTN22
	DEC	L           ;???????? ??? ????????? ??????? ????
	JR	NZ,TWOTN22
	XOR	16
	OUT	(254),A     ;?????????? ??????? ?????
	LD	L,E         ;?????????????? ???????? ???????? ??? ??????? ??????
TWOTN22	PUSH	AF
	LD	A,B         ;???????? ????????? ????????
	OR	C
	JR	Z,TWOTN3
	POP	AF
	DEC	BC
	JR	TWOTN1
TWOTN3	POP	AF
	
	RET

;-------------------
INTERR	PUSH	AF          ; 
	PUSH	BC          ;   
	PUSH	HL
INTER1	LD	A,(REPEAT)
	AND	A
	;      ,   
	JR	NZ,NO_EXITI
	LD	(BLOCKED),A
	JR	EXITI
NO_EXITI
	LD	HL,(CURADR) ;     
	LD	B,(HL)      ; 
	INC	B
	DEC	B
	;      ,    
	JR	Z,EXITI0
	INC	HL
	LD	C,(HL)      ; 
	INC	HL
	LD	(CURADR),HL ;  
	CALL	BEEP        ; 
EXITI
	POP	HL          ; 
	POP	BC
	POP	AF
	JP	56          ;    
	;     - 
EXITI0	LD	HL,(ADREFF) ; 
	LD	(CURADR),HL ;   
	LD	HL,REPEAT
	DEC	(HL)        ;  
	JR	INTER1
REPEAT	DEFB	0           ;  
ADREFF	DEFW	0           ;    
CURADR	DEFW	0           ;    
BLOCKED	DEFB	0
	;  
BEEP	LD	A,(23624)
	SRL	A
	SRL	A
	SRL	A
BEEP1	XOR	16
	OUT	(254),A
	PUSH	BC
DELAY	DJNZ	DELAY
	POP	BC
	DEC	C
	JR	NZ,BEEP1
	RET

;-------------------------
ON_SILENCE
	XOR	A
	JR	ON_EFF

ON_SHOT_SOUND
	LD	A,(BLOCKED)
	AND	A
	RET	NZ	;   
	LD	HL,EFF1
	LD	A,1
	JR	ON_EFF
ON_CRASH_SOUND
	LD	A,(BLOCKED)
	AND	A
	RET	NZ	;   
	LD	A,1
	LD	(BLOCKED),A
	LD	HL,EFF2
	LD	A,2
	JR	ON_EFF
ON_ADD_LIVE_SOUND
	LD	A,(BLOCKED)
	AND	A
	RET	NZ	;   
	LD	A,1
	LD	(BLOCKED),A
	LD	HL,EFF3
	LD	A,1
	JR	ON_EFF

ON_BONUS_SOUND
	LD	A,(BLOCKED)
	AND	A
	RET	NZ	;   
	LD	A,1
	LD	(BLOCKED),A
	LD	HL,EFF4
	LD	A,2
	JR	ON_EFF

ON_EFF  LD	(ADREFF),HL
	LD	(CURADR),HL
	LD	(REPEAT),A
	RET
EFF1	DEFB	50,12,100,6,150,4,200,2,250,2
	DEFB	0
EFF2	DEFB	50,2,100,2,25,2,46,2,215,2
	DEFB	0
EFF3	DEFB	60,6,60,6,60,6,60,6,60,6
	DEFB	80,6,80,6,80,6,80,6,80,6
	DEFB	100,6,100,6,100,6,100,6,100,6
	DEFB	120,6,120,6,120,6,120,6,120,6
	DEFB	100,6,100,6,100,6,100,6,100,6
	DEFB	60,6,60,6,60,6,60,6,60,6
	DEFB	70,6,70,6,70,6,70,6,70,6
	DEFB	0
EFF4	DEFB	250,4,200,4,150,4,100,4,50,4
	DEFB	0

;-------------------
IMON
	CALL	SET_VIDEO5

	LD	A,24        ;  JR
	LD	(65535),A
	LD	A,195       ;  JP
	LD	(65524),A
	LD	HL,INTERR   ;  
	LD	(65525),HL  ;  
	LD	HL,#FE00    ;   
	LD	DE,#FE01
	LD	BC,256
	LD	(HL),#FF    ;  65535 (#FFFF)
	LDIR
	
	CALL	SWAP_SCREEN
	
	;    
	LD	A,24        ;  JR
	LD	(65535),A
	LD	A,195       ;  JP
	LD	(65524),A
	LD	HL,INTERR   ;  
	LD	(65525),HL  ;  
	LD	HL,#FE00    ;   
	LD	DE,#FE01
	LD	BC,256
	LD	(HL),#FF    ;  65535 (#FFFF)


	LD	A,H         ;    
	LDIR


	DI
	LD	I,A         ;   
	IM	2           ; 2- 
	EI
	RET

;---------------------------
FIRST_INIT
	LD	A,4
	LD	(T_LIVES),A

	LD	HL,LEVEL1
	LD	(LEVEL_ADR),HL

	XOR	A
	LD	(FLAG_EXIT),A
	LD	(BASE_DAMAGED),A
	LD	(T_SH_ACTIVE),A
	LD	(T_POWERED),A
	LD	(T_PROTECT_TIMER),A

	RET

;----------------------------
MAIN_CYCLE
	CALL	ON_SILENCE
	CALL	IMON

	CALL	FIRST_SCREEN
	CALL	FIRST_INIT

M_C0
	;  
	LD	HL,(LEVEL_ADR)
	LD	A,H
	OR	L
	CP	0
	JR	NZ,M_C1
	CALL	VIN_SCREEN
	JR	MAIN_CYCLE
M_C1

	CALL	INIT_LEVEL
M_CGC	CALL	GAME_CYCLE

	; 
	LD	A,(T_LIVES)
	CP	0
	JR	NZ,M_C2
	LD	A,(T_ACTIVE)
	CP	0
	JR	NZ,M_C2
	CALL	GAME_OVER_SCREEN
	JR	MAIN_CYCLE
M_C2

	;  
	LD	A,(BASE_DAMAGED)
	CP	0
	JR	Z,M_C21
	CALL	ON_CRASH_SOUND
	CALL	GAME_OVER_SCREEN
	JR	MAIN_CYCLE
M_C21
	
	;  
	LD	A,(ENEMY_COUNT)
	CP	0
	JR	NZ,M_C3
	LD	IX,ENEMY
	LD	DE,ENEMY_LEN
	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	NZ,M_C3
	ADD	IX,DE
	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	NZ,M_C3
	ADD	IX,DE
	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	NZ,M_C3

	JR	M_C0
M_C3
	JR	M_CGC
;----------------------------
GAME_CYCLE
	CALL	PRINT_FON
	CALL	INIT_PLAYER
	CALL	INIT_EMPTY_ENEMY

	CALL	KEY_TEST

	CALL	T_ACTION
	CALL	E_ACTION
	CALL	T_SHOT_MOVE
	CALL	E_SHOT_MOVE

	CALL	PRINT_ENEMYS
	CALL	PRINT_PLAYER
	CALL	PRINT_T_SHOT
	CALL	PRINT_E_SHOT
	CALL	PRINT_FOREST
	CALL	PRINT_BONUS
	CALL	PRINT_LIVES
	CALL	SWAP_SCREEN

	RET

;---------------------------
GAME_OVER_SCREEN
	CALL	SET_VIDEO5

	LD	A,%00000010
	LD	B,0
	CALL	CLS

	LD	A,6
	LD	(COL),A
	LD	A,6
	LD	(ROW),A
	LD	A,20
	LD	(WDT),A
	LD	A,18
	LD	(HGT),A

	LD	DE,#DAE1
	LD	HL,#DAE0
	LD	(HL),0
	LD	BC,31
	LDIR
	
	LD	DE,GO_TEXT

	LD	B,11	;
GO_S1	PUSH	BC

	LD	L,23
	LD	H,6
	CALL	ADR

	LD	B,20	;  
GO_S2	PUSH	BC

	LD	A,(DE)
	CP	1
	JR	NZ,GO_S4

	PUSH	DE
	PUSH	HL
	LD	DE,SPR_C1
	LD	B,8
GO_S3	LD	A,(DE)
	LD	(HL),A
	INC	H
	INC	DE
	DJNZ	GO_S3
	POP	HL
	POP	DE

GO_S4	INC	DE
	INC	HL
	POP	BC
	DJNZ	GO_S2

	PUSH	DE
	LD	B,8
GO_S5	PUSH	BC
	CALL	SCROLL_UP
	POP	BC
	DJNZ	GO_S5
	POP	DE

	POP	BC
	DJNZ	GO_S1

	LD	B,48
GO_S6	PUSH	BC
	CALL	SCROLL_UP
	POP	BC
	DJNZ	GO_S6

GO_S7	CALL	KEY_TEST
	LD	A,(F_PRESSED)
	CP	0
	JR	Z,GO_S7

	RET

GO_TEXT	DEFB	0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1
	DEFB	1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0
	DEFB	1,0,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1
	DEFB	1,0,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0
	DEFB	0,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,1
	DEFB	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	DEFB	0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0
	DEFB	1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1
	DEFB	1,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0
	DEFB	1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1
	DEFB	0,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1

;---------------------------
VIN_SCREEN
	CALL	SET_VIDEO5

	LD	A,%00000010
	LD	B,0
	CALL	CLS

	LD	HL,#D800
	LD	BC,768
V_S0	PUSH	HL
	PUSH	BC
	CALL	RND_255
	AND	71
	;OR	2
	POP	BC
	POP	HL
	LD	(HL),A
	INC	HL
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,V_S0

	LD	A,8
	LD	(COL),A
	LD	A,6
	LD	(ROW),A
	LD	A,15
	LD	(WDT),A
	LD	A,18
	LD	(HGT),A

	LD	DE,#DAE1
	LD	HL,#DAE0
	LD	(HL),0
	LD	BC,31
	LDIR
	
	LD	DE,V_TEXT

	LD	B,11	;
V_S1	PUSH	BC

	LD	L,23
	LD	H,8
	CALL	ADR

	LD	B,15	;  
V_S2	PUSH	BC

	LD	A,(DE)
	CP	1
	JR	NZ,V_S4

	PUSH	DE
	PUSH	HL
	LD	DE,SPR_C1
	LD	B,8
V_S3	LD	A,(DE)
	LD	(HL),A
	INC	H
	INC	DE
	DJNZ	V_S3
	POP	HL
	POP	DE

V_S4	INC	DE
	INC	HL
	POP	BC
	DJNZ	V_S2

	PUSH	DE
	LD	B,8
V_S5	PUSH	BC
	CALL	SCROLL_UP
	CALL	SCROL_COLOR
	POP	BC
	DJNZ	V_S5
	POP	DE

	POP	BC
	DJNZ	V_S1

	LD	B,48
V_S6	PUSH	BC
	CALL	SCROLL_UP
	CALL	SCROL_COLOR
	POP	BC
	DJNZ	V_S6

V_S7	CALL	SCROL_COLOR
	CALL	KEY_TEST
	LD	A,(F_PRESSED)
	CP	0
	JR	Z,V_S7

	RET

SCROL_COLOR
	LD	A,(#D800)
	LD	HL,#D801
	LD	DE,#D800
	LD	BC,735
	LDIR
	LD	(#DADF),A
	RET

V_TEXT	DEFB	1,0,0,0,1,0,0,1,1,0,0,1,0,0,1
	DEFB	0,1,0,1,0,0,1,0,0,1,0,1,0,0,1
	DEFB	0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
	DEFB	0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
	DEFB	0,0,1,0,0,0,0,1,1,0,0,0,1,1,0
	DEFB	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	DEFB	1,0,0,0,1,0,1,1,1,0,1,0,0,0,1
	DEFB	1,0,0,0,1,0,0,1,0,0,1,1,0,0,1
	DEFB	1,0,1,0,1,0,0,1,0,0,1,0,1,0,1
	DEFB	1,1,0,1,1,0,0,1,0,0,1,0,0,1,1
	DEFB	1,0,0,0,1,0,1,1,1,0,1,0,0,0,1

;---------------------------
FIRST_SCREEN
	CALL	SET_VIDEO5

	LD	A,%00000010
	LD	B,0
	CALL	CLS

	LD	A,7
	LD	(COL),A
	LD	(ROW),A
	LD	A,18
	LD	(WDT),A
	LD	A,17
	LD	(HGT),A

	LD	DE,#DAE1
	LD	HL,#DAE0
	LD	(HL),0
	LD	BC,31
	LDIR
	
	LD	DE,FTEXT

	LD	B,10	;
F_S1	PUSH	BC

	LD	L,23
	LD	H,7
	CALL	ADR

	LD	B,18	;  
F_S2	PUSH	BC

	LD	A,(DE)
	CP	1
	JR	NZ,F_S4

	PUSH	DE
	PUSH	HL
	LD	DE,SPR_C1
	LD	B,8
F_S3	LD	A,(DE)
	LD	(HL),A
	INC	H
	INC	DE
	DJNZ	F_S3
	POP	HL
	POP	DE

F_S4	INC	DE
	INC	HL
	POP	BC
	DJNZ	F_S2

	PUSH	DE
	LD	B,8
F_S5	PUSH	BC
	CALL	SCROLL_UP
	POP	BC
	DJNZ	F_S5
	POP	DE

	POP	BC
	DJNZ	F_S1

	LD	B,48
F_S6	PUSH	BC
	CALL	SCROLL_UP
	POP	BC
	DJNZ	F_S6

F_S7	CALL	KEY_TEST
	LD	A,(F_PRESSED)
	CP	0
	JR	Z,F_S7

	RET

FTEXT	DEFB	1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1
	DEFB	0,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0
	DEFB	0,1,0,0,1,1,1,1,0,1,0,1,1,0,1,0,0,1
	DEFB	0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1
	DEFB	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	DEFB	0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1
	DEFB	0,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1
	DEFB	1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1
	DEFB	0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1
	DEFB	0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1

;---------------------------
SCROLL_UP 
       LD    HL,(ROW)
       CALL  ADR
       
       
       LD    A,(HGT)
       LD    B,A
       SLA   B
       SLA   B
       SLA   B     
       DEC   B

SCR_U1 PUSH  HL
       PUSH  BC

       PUSH  HL
       POP   DE
       CALL  DOWN
       LD    A,(WDT)
       LD    C,A
       LD    B,0
       LDIR

       POP   BC
       POP   HL
       CALL  DOWN
       DJNZ  SCR_U1
       
       PUSH  HL
       POP   DE
       INC   DE
       LD    (HL),0
       LD    A,(WDT)
       DEC   A
       RET   Z
       LD    C,A
       LD    B,0
       LDIR 


       RET
ROW    DEFB  0
COL    DEFB  0
HGT    DEFB  0
WDT    DEFB  0

;---------------
PRINT_LIVES

	LD	L,15
	LD	H,27
	CALL	ADR
	LD	DE,MINI

	LD	B,8
P_LI1	LD	A,(DE)
	LD	(HL),A
	INC	DE
	INC	H
	DJNZ	P_LI1

	LD	HL,(T_LIVES)
	LD	H,0
	DEC	L
	SLA	L
	SLA	L
	SLA	L
	LD	DE,15744
	ADD	HL,DE

	EX	DE,HL

	LD	L,15
	LD	H,28
	CALL	ADR

	LD	B,8
P_LI2	LD	A,(DE)
	LD	(HL),A
	INC	DE
	INC	H
	DJNZ	P_LI2	

	RET

;---------------
PRINT_MINI
	PUSH	IX
	PUSH	HL
       
	LD	IX,MINI_COORDS
	LD	C,1
NXTM	LD	L,(IX)
	LD	H,(IX+1)
	CALL	ADR

	LD	DE,MINI
	LD	B,8
NXTL	LD	A,(ENEMY_COUNT)
	CP	C
	JR	C,ZERO
	LD	A,(DE)
	JR	NOZERO
ZERO	XOR	A
NOZERO	LD	(HL),A
	INC	DE
	CALL	DOWN
	DJNZ	NXTL

	INC	IX
	INC	IX
	INC	C
	LD	A,21
	CP	C
	JR	NZ,NXTM

	POP	HL
	POP	IX

	RET

MINI_COORDS
	DEFB	1,27,1,28
	DEFB	2,27,2,28
	DEFB	3,27,3,28
	DEFB	4,27,4,28
	DEFB	5,27,5,28
	DEFB	6,27,6,28
	DEFB	7,27,7,28
	DEFB	8,27,8,28
	DEFB	9,27,9,28
	DEFB	10,27,10,28
MINI  
	DEFB	0,73,93,119,119,93,73,28

;---------------------------
BOX_COLLISION
       LD    A,(BOX_HL_W)
       ADD   A,H
       CP    D
       JR    NC,CLS16_1           
       XOR   A
       RET           ; X  
CLS16_1
       LD    A,(BOX_DE_W)
       ADD   A,D
       CP    H
       JR    NC,CLS16_2           
       XOR   A
       RET           ; X  

CLS16_2
       LD    A,(BOX_HL_H)
       ADD   A,L
       CP    E
       JR    NC,CLS16_3           
       XOR   A
       RET           ; Y  
CLS16_3
       LD    A,(BOX_DE_H)
       ADD   A,E
       CP    L
       JR    NC,CLS16_4           
       XOR   A
       RET           ; Y  
      
CLS16_4   
       LD    A,1
       RET
BOX_HL_H	DEFB	0
BOX_HL_W	DEFB	0
BOX_DE_H	DEFB	0
BOX_DE_W	DEFB	0 

;---------------------------
;    
EQUAL_IX_HL

	PUSH	IX
	POP	DE
 
	LD	A,D
	CP	H
	JR	Z,EIH_1           
	XOR	A
	RET
EIH_1
	LD	A,E
	CP	L
	JR	Z,EIH_2          
	XOR	A
	RET           
EIH_2	LD	A,1
	RET

;---------------------------
;  HL   
ENEMY_COLLISION
	; 
	LD	A,15
	LD	(BOX_DE_W),A
	LD	(BOX_DE_H),A

	LD	(CURRENT_COOR),HL
	PUSH	HL

	LD	HL,ENEMY
	LD	B,3
CO_E1  
	LD	(ECOL_ADDR),HL
	CALL	EQUAL_IX_HL
	CP	1
	JR	Z,C_NEXT	;    

	PUSH	HL
	LD	DE,E_ACTIVE
	ADD	HL,DE
	LD	A,(HL)
	POP	HL
	CP	0
	JR	Z,C_NEXT	;   
       

	PUSH	HL
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	
	LD	HL,(CURRENT_COOR)

	CALL	BOX_COLLISION
	POP	HL
       
	CP	1    
	JR	Z,IS_COLLIZ	;     
       
C_NEXT 
	LD	DE,ENEMY_LEN
	ADD	HL,DE
	DJNZ	CO_E1

	XOR	A		;  
	POP	HL
	RET

IS_COLLIZ 
	LD	A,1		; 
	POP	HL
	RET

ECOL_ADDR
	DEFW	0
;---------------------------
CURRENT_COOR
	DEFW	0

;---------------------------
;  HL   
PLAYER_COLLISION
	LD	A,(T_ACTIVE)
	CP	0
	RET	Z	;   

	; 
	LD	A,15
	LD	(BOX_DE_W),A
	LD	(BOX_DE_H),A
	LD	DE,(T_COORD)
	
	CALL	BOX_COLLISION
	RET

;---------------------------
;  HL   
T_SHOT_COLLISION
	LD	A,(T_SH_ACTIVE)
	CP	0
	RET	Z

	LD	A,6
	LD	(BOX_DE_W),A
	LD	(BOX_DE_H),A
	LD	DE,(T_SH_COORD)

	CALL	BOX_COLLISION
	RET


;----------------------------
INIT_LEVEL

	;  
	LD	IX,ENEMY
	LD	DE,ENEMY_LEN

	LD	(IX+E_ACTIVE),0
	LD	(IX+E_SH_ACTIVE),0
	ADD	IX,DE
	LD	(IX+E_ACTIVE),0
	LD	(IX+E_SH_ACTIVE),0
	ADD	IX,DE
	LD	(IX+E_ACTIVE),0
	LD	(IX+E_SH_ACTIVE),0

	;  
	XOR	A
	LD	(T_ACTIVE),A
	LD	(T_SH_ACTIVE),A

	LD	(BONUS_COUNTER),A
	LD	(B_ACTIVE),A

	; 
	LD	A,20
	LD	(ENEMY_COUNT),A



	LD	DE,(LEVEL_ADR)
	; 
	LD	A,(DE)
	LD	(LEVEL_ADR),A
	INC	DE
	LD	A,(DE)
	LD	(LEVEL_ADR+1),A
	INC	DE

	; 
	LD	HL,LEVEL
L_I_NXT	LD	A,(DE)
	CP	0
	JR	Z,L_I_ENDLVL
	AND	248
	SRL	A
	SRL	A
	SRL	A
	LD	B,A
	LD	A,(DE)
	AND	7
L_I_IND	LD	(HL),A
	INC	HL
	DJNZ	L_I_IND
	INC	DE
	JR	L_I_NXT
L_I_ENDLVL

	;   
	LD	A,1
	LD	(LEVEL+557),A
	LD	(LEVEL+558),A
	LD	(LEVEL+559),A
	LD	(LEVEL+560),A
	LD	(LEVEL+583),A
	LD	(LEVEL+586),A
	LD	(LEVEL+609),A
	LD	(LEVEL+612),A
	LD	A,6
	LD	(LEVEL+584),A
	LD	A,7
	LD	(LEVEL+585),A
	LD	A,8
	LD	(LEVEL+610),A
	LD	A,9
	LD	(LEVEL+611),A

	;       
	CALL	SET_VIDEO5
	LD	B,5
	LD	A,0
	CALL	CLS
	CALL	CLOSE_WEIL
	CALL	COLORIZE_BUF
	CALL	PRINT_LEVEL

	CALL	START_MELODY

	CALL	OPEN_WEIL
	CALL	PRINT_MINI
	CALL	COLORIZE_RIGHT

	;         
	CALL	SWAP_SCREEN
	LD	B,5
	LD	A,40
	CALL	CLS
	CALL	COLORIZE_BUF
	CALL	COLORIZE_SCREEN
	CALL	PRINT_LEVEL
	CALL	PRINT_MINI

	RET

;---------------------------
;    
INIT_EMPTY_ENEMY
	LD	A,(ENEMY_COUNT)
	CP	0
	RET	Z	;,  

	LD	IX,ENEMY
	LD	B,3                    
IEE1	LD	A,(IX+E_ACTIVE)            
	CP	0
	JR	Z,IEE2	;   ,  
	LD	DE,ENEMY_LEN
	ADD	IX,DE
	DJNZ	IEE1
	RET

IEE2	;  
	LD	A,(SPAWN_POS)
	LD	HL,#0000	;  
	CP	0
	JR	Z,IEE4 
	LD	HL,#6000	;  
	CP	1
	JR	Z,IEE4 
	LD	HL,#C000	;  
IEE4	INC	A
	CP	3
	JR	NZ,IEE5
	XOR	A
IEE5	LD	(SPAWN_POS),A

	LD	(IX+E_BONUSED),0
	LD	(IX+E_VISIBLE),1
	LD	A,(BONUS_COUNTER)
	INC	A
	CP	5
	JR	NZ,IEE_NB
	LD	(IX+E_BONUSED),1
	LD	(IX+E_BLINK_TIMER),0
	XOR	A
	
IEE_NB	LD	(BONUS_COUNTER),A
      
	;
	LD	(IX+E_COORD),L
	LD	(IX+E_COORD+1),H

	;
	LD	HL,T1_D
	LD	(IX+E_SPR_ADR),L
	LD	(IX+E_SPR_ADR+1),H
	LD	HL,M1_D
	LD	(IX+E_MAS_ADR),L
	LD	(IX+E_MAS_ADR+1),H
       
	LD	(IX+E_ACTIVE),1	; 
	LD	(IX+E_SPR_H),16
	LD	(IX+E_SPR_W),2
	LD	(IX+E_DIRECT),4	; 
	

	LD	A,(ENEMY_COUNT)
	DEC	A		;  
	LD	(ENEMY_COUNT),A

	CALL	PRINT_MINI
	CALL	SWAP_SCREEN
	CALL	PRINT_MINI
       
RET

;--------------------------
INIT_PLAYER

	LD	A,(T_LIVES)	
	CP	0
	RET	Z		;  

	LD	A,(T_ACTIVE)
	CP	1
	RET	Z		;  ,  

	;
	LD	HL,#40B0
	LD	(T_COORD),HL
	; 
	LD	A,2
	LD	(T_SPR_W),A
	LD	A,16
	LD	(T_SPR_H),A
	; 
	LD	HL,T1_U
	LD	(T_SPR_ADR),HL
	LD      DE,832		;  
	ADD	HL,DE
	LD	(T_MAS_ADR),HL
	;
	LD	A,3
	LD	(T_DIRECT),A
	; 
	LD	A,1
	LD	(T_ACTIVE),A
	;   
	LD	A,50
	LD	(T_PROTECT_TIMER),A

	RET

;--------------------------
INIT_BONUS


	;
	CALL	RND_255
	AND	22
	SLA	A
	SLA	A
	SLA	A
	LD	(B_COORD),A	;Y
	CALL	RND_255
	AND	24
	SLA	A
	SLA	A
	SLA	A
	LD	(B_COORD+1),A	;X
	
	;
	CALL	RND_255
	LD	B,0
	CP	52
	JR	C,IB_1
	LD	B,1
	CP	103
	JR	C,IB_1
	LD	B,2
	CP	154
	JR	C,IB_1
	LD	B,3
	CP	205
	JR	C,IB_1
	LD	B,4

IB_1	LD	A,B
	LD	(B_INDEX),A

	LD	A,1
	LD	(B_ACTIVE),A
	LD	(B_VISIBLE),A
	LD	(B_BLINK_TIMER),A

	; 
	LD	HL,B_1
	LD	DE,32
	LD	A,(B_INDEX)
	LD	B,A
	CP	0
	JR	Z,IB_NADD
IB_ADD	ADD	HL,DE
	DJNZ	IB_ADD
IB_NADD	LD	(B_SPR_ADR),HL

	RET

;--------------------------
; 
SWAP_SCREEN
	DI
BUF_MODE
	LD      A,%00011101		;16+8+5
	XOR	%00001010		;->%00010111=16+0+7
        LD      (BUF_MODE+1),A
	LD	(#5B5C),A
	LD	BC,#7FFD
        OUT	(C),A
	EI
        RET

;--------------------------
;    5
SET_VIDEO5
	DI
	LD      A,%00011101
        LD      (BUF_MODE+1),A

	LD      A,%00010101
	LD	(#5B5C),A
	LD	BC,#7FFD
	OUT	(C),A
	EI
	RET

;--------------------------
;  0
RESTORE_STANDARD_VIDEO
	DI
	LD      A,%00000111
	LD	(#5B5C),A
	LD	BC,#7FFD
	OUT	(C),A
	EI
	RET

;---------------------------
PRINT_ENEMYS
	LD	IX,ENEMY
	LD	B,3
P_E1	PUSH	BC

	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	Z,P_E2

	LD	L,(IX+E_COORD) ;  
	LD	H,(IX+E_COORD+1) 
	LD	(W_COORD),HL

	LD	A,(IX+E_SPR_W)
	LD	(W_SPRW),A
	LD	A,(IX+E_SPR_H)
	LD	(W_SPRH),A

	; 
	LD	A,MOD_AND
	LD	(MODE),A
       
	; 
	LD	L,(IX+E_MAS_ADR)
	LD	H,(IX+E_MAS_ADR+1)
	LD	(W_SPRADR),HL
	CALL	PRINT_SPRITE

	LD	A,(IX+E_VISIBLE)
	CP	0
	JR	Z,P_E11

	; 
	LD	A,MOD_OR
	LD	(MODE),A

	; 
	LD	L,(IX+E_SPR_ADR)
	LD	H,(IX+E_SPR_ADR+1)
	LD	(W_SPRADR),HL
	CALL	PRINT_SPRITE

P_E11	LD	A,(IX+E_BONUSED)
	CP	0
	JR	Z,P_E2

	LD	A,(IX+E_BLINK_TIMER)
	INC	A
	CP	BLINK_TIME
	JR	NZ,P_E_NB
	LD	A,(IX+E_VISIBLE)
	XOR	1
	LD	(IX+E_VISIBLE),A
	XOR	A

P_E_NB	LD	(IX+E_BLINK_TIMER),A
       
P_E2	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
	DJNZ	P_E1

	RET

;--------------------------
PRINT_PLAYER

	LD	A,(T_ACTIVE)
	CP	0
	RET	Z

	; 
	LD	HL,(T_COORD)
	LD      (W_COORD),HL
	LD	A,(T_SPR_W)
	LD	(W_SPRW),A
	LD	A,(T_SPR_H)
	LD	(W_SPRH),A

	;  
	LD	A,MOD_AND
	LD	(MODE),A
	LD	HL,(T_MAS_ADR)
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

	LD	A,(T_VISIBLE)
	CP	0
	JR	Z,P_P1

	;  
	LD	A,MOD_OR
	LD	(MODE),A
	LD	HL,(T_SPR_ADR)
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

P_P1	LD	A,(T_PROTECT_TIMER)
	CP	0
	JR	NZ,P_P2
	LD	A,1
	LD	(T_VISIBLE),A
	RET

P_P2	DEC	A
	LD	(T_PROTECT_TIMER),A

	LD	A,(T_BLINK_TIMER)
	INC	A
	CP	BLINK_TIME
	JR	NZ,P_P_NB
	LD	A,(T_VISIBLE)
	XOR	1
	LD	(T_VISIBLE),A
	XOR	A

P_P_NB	LD	(T_BLINK_TIMER),A
       
	RET

;--------------------------
PRINT_BONUS

	LD	A,(B_ACTIVE)
	CP	0
	RET	Z

	LD	A,(B_BLINK_TIMER)
	INC	A
	CP	BLINK_TIME
	JR	NZ,PB_NB
	LD	A,(B_VISIBLE)
	XOR	1
	LD	(B_VISIBLE),A
	XOR	A

PB_NB	LD	(B_BLINK_TIMER),A

	
	LD	A,(B_VISIBLE)
	CP	0
	RET	Z

	; 
	LD	HL,(B_COORD)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,16
	LD	(W_SPRH),A

	;  
	LD	A,MOD_AND
	LD	(MODE),A
	LD	HL,B_M
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

	;  
	LD	A,MOD_OR
	LD	(MODE),A
	LD	HL,(B_SPR_ADR)
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE
	RET


;--------------------------
PRINT_T_SHOT
	LD	A,(T_SH_ACTIVE)
	CP	0
	RET	Z

	; 
	LD	HL,(T_SH_COORD)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,8
	LD	(W_SPRH),A

	LD	A,H
	LD	HL,SPR_SHOT
	AND	7
	CP	0
	JR	Z,NO_ADDSH
	LD      DE,16
	LD	B,A
ADDSH	ADD	HL,DE
	DJNZ	ADDSH
NO_ADDSH
	
	PUSH	HL

	LD      DE,128		;  
	ADD	HL,DE

	;  
	LD	A,MOD_AND
	LD	(MODE),A
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

	POP	HL

	;  
	LD	A,MOD_OR
	LD	(MODE),A
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE
	RET

;--------------------------
PRINT_E_SHOT

	LD	IX,ENEMY
	LD	B,3
PES1	PUSH	BC


	LD	A,(IX+E_SH_ACTIVE)
	CP	0
	JR	Z,PENEXT

	; 
	LD	L,(IX+E_SH_COORD)
	LD	H,(IX+E_SH_COORD+1)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,8
	LD	(W_SPRH),A

	LD	A,H
	LD	HL,SPR_SHOT
	AND	7
	CP	0
	JR	Z,PES_NO_ADDSH
	LD      DE,16
	LD	B,A
PES_ADDSH
	ADD	HL,DE
	DJNZ	PES_ADDSH
PES_NO_ADDSH
	
	PUSH	HL

	LD      DE,128		;  
	ADD	HL,DE

	;  
	LD	A,MOD_AND
	LD	(MODE),A
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

	POP	HL

	;  
	LD	A,MOD_OR
	LD	(MODE),A
	LD      (W_SPRADR),HL

	; 
	CALL	PRINT_SPRITE

PENEXT	LD	DE,ENEMY_LEN
	ADD	IX,DE
	POP	BC
	DJNZ	PES1

	RET

;--------------------------
PRINT_FON

	; 
	LD	HL,(T_COORD)
	LD      (W_COORD),HL
	LD	A,(T_SPR_W)
	LD	(W_SPRW),A
	LD	A,(T_SPR_H)
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FON

	;.............................

	LD	IX,ENEMY
	LD	B,3
P_F1	PUSH	BC

	LD	L,(IX+E_COORD) ;  
	LD	H,(IX+E_COORD+1) 
	LD	(W_COORD),HL
	LD	A,(IX+E_SPR_W)
	LD	(W_SPRW),A
	LD	A,(IX+E_SPR_H)
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FON

	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
 	DJNZ	P_F1

	;.............................

	; 
	LD	HL,(T_SH_COORD)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,16
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FON

	;.............................

	LD	IX,ENEMY
	LD	B,3
P_F2	PUSH	BC

	; 
	LD	L,(IX+E_SH_COORD)
	LD	H,(IX+E_SH_COORD+1)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,16
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FON

	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
 	DJNZ	P_F2

	;.............................

	; 
	LD	HL,(B_OLD_COORD)
	LD      (W_COORD),HL
	LD	HL,(B_COORD)
	LD	(B_OLD_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	A,16
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FON

	
	RET

;--------------------------
PRINT_FOREST

	LD	A,(T_ACTIVE)
	CP	0
	JR	Z,PFR_NOPP
	; 
	LD	HL,(T_COORD)
	LD      (W_COORD),HL
	LD	A,3
	LD	(W_SPRW),A
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FOREST
	;.............................
PFR_NOPP
	LD	IX,ENEMY
	LD	B,3
PFR1	PUSH	BC
	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	Z,PFR_NOEP
	LD	L,(IX+E_COORD) ;  
	LD	H,(IX+E_COORD+1) 
	LD	(W_COORD),HL
	LD	A,3
	LD	(W_SPRW),A
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FOREST
PFR_NOEP
	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
 	DJNZ	PFR1

	;.............................
	LD	A,(T_SH_ACTIVE)
	CP	0
	JR	Z,PFR_NOTSP
	; 
	LD	HL,(T_SH_COORD)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FOREST
PFR_NOTSP
	;.............................


	LD	IX,ENEMY
	LD	B,3
PFR2	PUSH	BC

	LD	A,(IX+E_SH_ACTIVE)
	CP	0
	JR	Z,PFR_NOESP
	; 
	LD	L,(IX+E_SH_COORD)
	LD	H,(IX+E_SH_COORD+1)
	LD      (W_COORD),HL
	LD	A,2
	LD	(W_SPRW),A
	LD	(W_SPRH),A

	;   
	CALL	RESTORE_FOREST
PFR_NOESP
	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
 	DJNZ	PFR2
	
	RET

;--------------------------
RESTORE_FON

	;     
	LD	HL,(W_COORD)
	SRL	H
	SRL	H
	SRL	H
	SRL	L
	SRL	L
	SRL	L

	LD	A,(W_SPRW)	;2
	INC	A		;3
	ADD	A,H		;23+3=26
	LD	B,A		;26

	LD	A,(W_SPRH)	;16
	SRL	A
	SRL	A
	SRL	A		;2
	INC	A		;3
	ADD	A,L		;+0
	LD	C,A		;3

	XOR	A
	CP	H		;0
	JR	Z,N_DECH
	DEC	H		;23
N_DECH
	CP	L		;0
	JR	Z,N_DECL
	DEC	L
N_DECL				;0
	LD	A,25
	CP	B		;26
	JR	NC,N_DECB
	LD	B,26		;25
N_DECB				
	LD	A,23
	CP	C		;3
	JR	NC,N_DECC
	LD	C,24
N_DECC

	LD	A,C		;3
	SUB	L		;3-0=3
	ADD	A,A		;6
	ADD	A,A		;12
	ADD	A,A		;24
	LD	C,A		;24

	LD	A,B		;25
	SUB	H		;23
	LD	B,A		;2

	CALL	ADR		;C000

RES_DH	PUSH	HL
	PUSH	BC

	LD	E,L		;0
	LD	A,H		;C0
	OR	#20
	LD	D,A		;E0
	
RES_DW	LD	A,(DE)
	LD	(HL),A
	INC	HL		;C001
	INC	DE		;E001
	DJNZ	RES_DW

	POP	BC
	POP	HL
	CALL	DOWN		;C100

	DEC	C
	JR	NZ,RES_DH

	RET

;--------------------------
RESTORE_FOREST
	LD	HL,(W_COORD)
	SRL	H
	SRL	H
	SRL	H
	SRL	L
	SRL	L
	SRL	L

	;.............
	PUSH	HL

	LD	DE,LEVEL
	LD	B,L
	LD	C,H
	XOR	A
	CP	B
	JR	Z,RFR_NO_LVLH
	LD	HL,26
	EX	DE,HL
RFR_LVLH
	ADD	HL,DE		;  
	DJNZ	RFR_LVLH
	EX	DE,HL
RFR_NO_LVLH
	LD	L,C
	LD	H,0
	ADD	HL,DE		;  
	EX	DE,HL

	POP	HL
	;.............

	LD	A,(W_SPRW)
	LD	C,A
	LD	A,(W_COORD+1)
	AND	7
	;CP	0
	JR	NZ,RFR_NODECW
	DEC	C
RFR_NODECW
	LD	A,(W_SPRH)
	LD	B,A
	LD	A,(W_COORD)
	AND	7
	;CP	0
	JR	NZ,RFR_NODECH
	DEC	B
RFR_NODECH

	;LD	BC,#0203
	;.............

RFR_DH	PUSH	BC
	PUSH	HL
	PUSH	DE
	CALL	ADR
	
	;............
RFR_DW	LD	A,(DE)
	CP	4
	JR	NZ,RFR_NO_PRF
	;............
	PUSH	DE
	PUSH	HL
	LD	E,L
	LD	A,#20
	OR	H
	LD	D,A
	LD	B,8
RFR_PRF	LD	A,(DE)
	OR	(HL)
	LD	(HL),A
	INC	H
	INC	D
	DJNZ	RFR_PRF
	POP	HL
	POP	DE
	;............
RFR_NO_PRF
	INC	DE
	INC	HL
	DEC	C
	JR	NZ,RFR_DW
	;............
	
	POP	HL
	LD	DE,26
	ADD	HL,DE
	EX	DE,HL

	POP	HL
	INC	L

	POP	BC

	DJNZ	RFR_DH

	RET

;--------------------------
CLEAR_COORD_POS
	
	SRL	H
	SRL	H
	SRL	H
	SRL	L
	SRL	L
	SRL	L

	PUSH	HL
	CALL	ADR

	LD	A,#20
	OR	H
	LD	D,A
	LD	E,L

	XOR	A
	LD	B,8
CCP	LD	(DE),A
	LD	(HL),A
	INC	H
	INC	D
	DJNZ	CCP


	POP	HL
	LD	E,H
	LD	D,0

	LD	H,0
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,DE

	LD	DE,#D800
	ADD	HL,DE

	;LD	DE,#1800
	;ADD	HL,DE

	LD	A,#20
	OR	H
	LD	D,A
	LD	E,L

	LD	A,7
	LD	(HL),A
	LD	(DE),A


	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)

	CP	6
	JR	Z,CCP_1
	CP	7
	JR	Z,CCP_1
	CP	8
	JR	Z,CCP_1
	CP	9
	JR	Z,CCP_1
	RET

CCP_1	LD	A,1
	LD	(BASE_DAMAGED),A
	RET

;---------------------
PRINT_SPRITE  
	LD	HL,(W_COORD)
          
	SRL	L
	SRL	L
	SRL	L
	SRL	H
	SRL	H
	SRL	H

	CALL	ADR
	
	LD	A,(W_COORD)
	AND	7
	ADD	A,H
	LD	H,A
	
	LD	DE,(W_SPRADR) 

	LD	A,(W_SPRH)
	LD	B,A		;   
FOR_Y	PUSH	BC
	PUSH	HL		;  

	LD	A,(W_SPRW)
	LD	C,A		;   
FOR_X	LD	A,(DE)		; 
MODE	NOP
	LD	(HL),A		; 
	INC	DE		;  
	INC	HL		;   
	DEC	C		;  
	JR	NZ,FOR_X

	POP	HL		;  
	POP	BC
        CALL	DOWN

	DJNZ	FOR_Y
	RET

MOD_PUT		EQU	#00		;NOP
MOD_OR		EQU	#B6		;OR (HL)
MOD_AND		EQU	#A6		;AND (HL)
MOD_XOR		EQU	#AE		;XOR (HL)

;------------------------------
COLORIZE_BUF
	LD   HL,#F800
	LD   DE,LEVEL

	LD   C,24

CLR_1	PUSH BC
	PUSH HL
	PUSH DE
	LD   B,26
CLR_2     
	LD   A,(DE)
          

	LD   C,%00100010
	CP   1
	JR   Z,CLR_3

	LD   C,%00000111
	CP   2
	JR   Z,CLR_3

	LD   C,%01001111
	CP   3
	JR   Z,CLR_3

	LD   C,%00100110
	CP   4
	JR   Z,CLR_3

	LD   C,%00101111
	CP   5
	JR   Z,CLR_3
          
	LD   C,7

CLR_3     
	LD   (HL),C
          
	INC  HL
	INC  DE
	DJNZ CLR_2
          
	POP  HL
	LD   BC,26
	ADD  HL,BC
	EX   DE,HL

	POP  HL
	LD   BC,32
	ADD  HL,BC

	POP  BC
	DEC  C
	JR   NZ,CLR_1

	RET

;------------------------------
COLORIZE_SCREEN

	LD	HL,#F800
	LD	DE,#D800
	LD	BC,768
	LDIR
	RET

;----------------------
COLORIZE_RIGHT
	LD	HL,#D81A
	LD	B,24
	LD	DE,32
C_R1    PUSH	HL
	LD	(HL),%00101000
	INC	HL
	LD	(HL),%00101000
	INC	HL
	LD	(HL),%00101000
	INC	HL
	LD	(HL),%00101000
	INC	HL
	LD	(HL),%00101000
	INC	HL
	LD	(HL),%00101000
	POP	HL
       
	ADD	HL,DE  
	DJNZ	C_R1
	RET

;------------------------------
OPEN_WEIL
	LD	HL,#D960
	LD	(TOP_A),HL
	LD	HL,#D980
	LD	(BOT_A),HL

	LD	B,12
O_W1	PUSH	BC

	LD	HL,(TOP_A)
	LD	DE,#2000
	ADD	HL,DE
	LD	DE,(TOP_A)
	LD	BC,26
	LDIR

	LD	HL,(BOT_A)
	LD	DE,#2000
	ADD	HL,DE
	LD	DE,(BOT_A)
	LD	BC,26
	LDIR

	LD	DE,32
	LD	HL,(TOP_A)
	AND	A
	SBC	HL,DE
	LD	(TOP_A),HL

	LD	HL,(BOT_A)
	ADD	HL,DE
	LD	(BOT_A),HL


	LD	BC,3
	CALL	7997

	POP	BC
	DJNZ	O_W1


	RET


TOP_A	DEFW	0
BOT_A	DEFW	0

;----------------------
CLOSE_WEIL
	LD	HL,#D800
	LD	(TOP_A),HL
	LD	HL,#DAE0
	LD	(BOT_A),HL

	LD	B,12
C_W1	PUSH	BC

	LD	HL,(TOP_A)
	PUSH	HL
	POP	DE
	INC	DE
	LD	(HL),%00101101
	LD	BC,31
	LDIR

	LD	HL,(BOT_A)
	PUSH	HL
	POP	DE
	INC	DE
	LD	(HL),%00101101
	LD	BC,31
	LDIR

	LD	BC,3
	CALL	7997


	POP	BC
	LD	DE,32
	LD	HL,(TOP_A)
	ADD	HL,DE
	LD	(TOP_A),HL

	LD	HL,(BOT_A)
	AND	A
	SBC	HL,DE
	LD	(BOT_A),HL

	DJNZ	C_W1
	RET


;---------------------------
CLS
	PUSH	BC

	LD	DE,#C001
	LD	HL,#C000
	LD	(HL),0
	LD	BC,#1800
	LDIR
	LD	(HL),A
	LD	BC,#0300
	LDIR

	LD	DE,#E001
	LD	HL,#E000
	LD	(HL),0
	LD	BC,#1800
	LDIR
	LD	(HL),A
	LD	BC,#0300
	LDIR

	POP	AF

	CALL	8859      ;BORDER

	RET


;--------------------------
PRINT_LEVEL
	
	LD	HL,#0000	;X,Y -  
	LD	DE,LEVEL	; 

P_L3	PUSH	HL		; X,Y        
        CALL	ADR

	LD	C,26		;   
P_L2	PUSH	DE
	PUSH	HL

	LD	A,(DE)		;  
	ADD	A,A		;  8
	ADD	A,A
	ADD	A,A
	LD	H,0
	LD	L,A
	LD	DE,SPR_C0
	ADD	HL,DE
	EX	DE,HL		; 
	POP	HL
        PUSH	HL

	LD	B,8
P_L1	LD	A,(DE)
	LD	(HL),A
	INC	H
	INC	DE
	DJNZ	P_L1

P_L4	POP	HL
	POP	DE
        
	INC	DE
	INC	HL

	DEC	C
	JR	NZ,P_L2
        
	POP	HL
	INC	L
	LD	A,L
	CP	24
	JR	NZ,P_L3

	;      
	LD	HL,#0000
	CALL	ADR
	LD	E,L
	LD	A,H
	OR	#20
	LD	D,A
	LD	BC,#1800
	LDIR

	RET



;--------------------------
DOWN	INC	H
	LD	A,H
	AND	#07
	RET	NZ
	LD	A,L
	ADD	A,#20
	LD	L,A
	RET	C
	LD	A,H
	SUB	#08
	LD	H,A
	RET

;--------------------------
ADR	LD	A,L
	AND	7
	RRCA
	RRCA
	RRCA
	ADD	A,H
	LD	H,L
	LD	L,A
	LD	A,H
	AND	#18
	OR	#C0
	LD	H,A
	RET

;---------------------------
E_SHOT_MOVE

	LD	A,3
	LD	(L_DOP),A

	LD	IX,ENEMY
	LD	B,3
ESMALL	PUSH	BC

	LD	A,(IX+E_SH_ACTIVE)
	CP	0
	JP	Z,ESM_NEXT
       
	LD	A,(IX+E_SH_DIRECT)
	LD	L,(IX+E_SH_COORD)
	LD	H,(IX+E_SH_COORD+1)
       
	CALL	UPDATE_COORD
	CALL	UPDATE_COORD
	CALL	UPDATE_COORD

	LD	A,H
	CP	203
	JR	C,ESM1
	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JP	ESM_NEXT
ESM1	LD	A,L
	CP	187
	JR	C,ESM2
	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JP	ESM_NEXT

ESM2
	LD	A,6
	LD	(BOX_HL_W),A
	LD	(BOX_HL_H),A
	CALL	T_SHOT_COLLISION
	CP	1
	JR	NZ,ESM3
	XOR	A
	LD	(T_SH_ACTIVE),A
	LD	(IX+E_SH_ACTIVE),A
	JP	ESM_NEXT

ESM3
	CALL	PLAYER_COLLISION
	CP	1
	JR	NZ,ESM4
	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	LD	A,(T_PROTECT_TIMER)
	CP	0
	JP	NZ,ESM_NEXT

	LD	(T_ACTIVE),A
	LD	A,(T_LIVES)
	DEC	A
	LD	(T_LIVES),A
	; 
	XOR	A
	LD	(T_POWERED),A
	CALL	ON_CRASH_SOUND

	JP	ESM_NEXT
	;....................

ESM4	
	PUSH	HL

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,ESM5

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,ECCP1

	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JR	ESM5

ECCP1
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN
	
	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(IX+E_SH_ACTIVE),A
	
	
ESM5	POP	HL
	PUSH	HL

	LD	A,6
	ADD	A,L
	LD	L,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,ESM6

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,ECCP2

	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JR	ESM6

ECCP2
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN
	
	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(IX+E_SH_ACTIVE),A
	
	
ESM6	POP	HL
	PUSH	HL

	LD	A,6
	ADD	A,H
	LD	H,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,ESM7

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,ECCP3

	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JR	ESM7

ECCP3
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN
	
	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(IX+E_SH_ACTIVE),A
	
	
ESM7	POP	HL
	PUSH	HL

	LD	A,6
	ADD	A,H
	LD	H,A
	LD	A,6
	ADD	A,L
	LD	L,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,ESM_UC

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,ECCP4

	XOR	A
	LD	(IX+E_SH_ACTIVE),A
	JR	ESM_UC

ECCP4
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN
	
	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(IX+E_SH_ACTIVE),A
	

ESM_UC	POP	HL
	LD	(IX+E_SH_COORD),L
	LD	(IX+E_SH_COORD+1),H

ESM_NEXT
	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
	DEC	B
	JP	NZ,ESMALL
	RET

SSSSS	DEFW	0


;---------------------------
T_SHOT_MOVE
	LD	A,(T_SH_ACTIVE)
	CP	0
	RET	Z

	LD	A,3
	LD	(L_DOP),A
       
	LD	A,(T_SH_DIRECT)
	LD	HL,(T_SH_COORD)
       
	CALL	UPDATE_COORD
	CALL	UPDATE_COORD
	CALL	UPDATE_COORD

	LD	A,H
	CP	203
	JR	C,TSM1
	XOR	A
	LD	(T_SH_ACTIVE),A
	RET

TSM1	LD	A,L
	CP	187
	JR	C,TSM2
	XOR	A
	LD	(T_SH_ACTIVE),A
	RET

TSM2	LD	A,6
	LD	(BOX_HL_W),A
	LD	(BOX_HL_H),A
	PUSH	HL
	CALL	ENEMY_COLLISION
	POP	HL
	CP	0
	JR	Z,TSM3
	XOR	A
	LD	(T_SH_ACTIVE),A
	LD	IX,(ECOL_ADDR)
	LD	(IX+E_ACTIVE),A
	CALL	ON_CRASH_SOUND
	LD	A,(IX+E_BONUSED)
	CP	1
	CALL	Z,INIT_BONUS
	RET

	
TSM3	
	PUSH	HL

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL

	CP	1
	JR	NZ,TSM4

	LD	A,(T_POWERED)
	CP	1
	JR	Z,TCCP1

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,TCCP1

	XOR	A
	LD	(T_SH_ACTIVE),A
	JR	TSM4

TCCP1
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN
	
	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(T_SH_ACTIVE),A
	
	
TSM4	POP	HL

	PUSH	HL	;(1)

	LD	A,6
	ADD	A,L
	LD	L,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL

	CP	1
	JR	NZ,TSM5
	
	LD	A,(T_POWERED)
	CP	1
	JR	Z,TCCP2

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,TCCP2

	XOR	A
	LD	(T_SH_ACTIVE),A
	JR	TSM5

TCCP2

	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL	
	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN

	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(T_SH_ACTIVE),A

TSM5	POP	HL	;(1)
	
	PUSH	HL	;(2)
	
	LD	A,6
	ADD	A,H
	LD	H,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL

	CP	1
	JR	NZ,TSM6

	LD	A,(T_POWERED)
	CP	1
	JR	Z,TCCP3

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,TCCP3

	XOR	A
	LD	(T_SH_ACTIVE),A
	JR	TSM6

TCCP3
	
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL

	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN

	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(T_SH_ACTIVE),A

TSM6	POP	HL	;(2)

	PUSH	HL	;(3)
	
	LD	A,6
	ADD	A,H
	LD	H,A
	LD	A,6
	ADD	A,L
	LD	L,A

	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL

	CP	1
	JR	NZ,TSMEND

	LD	A,(T_POWERED)
	CP	1
	JR	Z,TCCP4

	PUSH	HL
	LD	HL,(CALCULATED_LPOS)
	LD	A,(HL)
	POP	HL
	CP	2
	JR	NZ,TCCP4

	XOR	A
	LD	(T_SH_ACTIVE),A
	JR	TSMEND

TCCP4
	
	PUSH	HL
	CALL	CLEAR_COORD_POS
	POP	HL

	CALL	SWAP_SCREEN
	CALL	CLEAR_COORD_POS
	CALL	SWAP_SCREEN

	XOR	A
	LD	HL,(CALCULATED_LPOS)
	LD	(HL),A
	LD	(T_SH_ACTIVE),A

TSMEND	POP	HL	;(3)
	LD	(T_SH_COORD),HL
	RET

;----------------------------
UPDATE_COORD
       CP    1
       JR    Z,UPD_L  
       CP    2
       JR    Z,UPD_R
       CP    3
       JR    Z,UPD_U
       CP    4
       JR    Z,UPD_D
       RET   
UPD_L  DEC   H
       RET
UPD_R  INC   H
       RET
UPD_U  DEC   L
       RET
UPD_D  INC   L
       RET

;-----------------------------
PRESS_F
       LD	A,(T_SH_ACTIVE)
       CP	1
       RET	Z

       LD	A,(T_DIRECT)
       LD	HL,(T_COORD)
       
       LD	D,5
       LD	E,5 

       ADD	HL,DE
       LD	(T_SH_COORD),HL
       LD	(T_SH_DIRECT),A
       LD	A,1
       LD	(T_SH_ACTIVE),A

	CALL	ON_SHOT_SOUND

       RET


;-----------------------------
PRESS_R
	LD	A,(T_ACTIVE)
	CP	0
	RET	Z

	LD	A,2
	LD	(T_DIRECT),A

	LD	A,(T_COORD)    ; ""   8
	BIT	2,A
	JR	Z,PR_R1
	ADD	A,8
PR_R1	AND	248          
	LD	(T_COORD),A

	LD	A,3
	LD	(T_SPR_W),A

	LD	A,(T_COORD+1)
	INC	A
	CP	193
	JR	Z,CLC_SN

	LD	HL,(T_COORD)
	LD	A,16
	ADD	A,H
	LD	H,A
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SN
       
	PUSH	HL
	LD	A,15
	ADD	A,L
	LD	L,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SN

	LD	A,0
	LD	(BOX_HL_W),A
	LD	A,15
	LD	(BOX_HL_H),A
	CALL	ENEMY_COLLISION
	CP	1
	JR	Z,CLC_SN

	LD	HL,(T_COORD)
	INC	H
	LD	(T_COORD),HL

CLC_SN	LD	HL,T1_R
	LD	A,(T_COORD+1)
	AND	7
	CP	0
	JR	Z,NO_ADDSR
	LD      DE,48
	LD	B,A
ADDSR	ADD	HL,DE
	DJNZ	ADDSR
NO_ADDSR
	LD	(T_SPR_ADR),HL
	LD      DE,832		;  
	ADD	HL,DE
	LD	(T_MAS_ADR),HL

	RET
;-----------------------------
PRESS_L
	LD	A,(T_ACTIVE)
	CP	0
	RET	Z

	LD	A,1
	LD	(T_DIRECT),A

	LD	A,(T_COORD)
	BIT	2,A
	JR	Z,PR_L1
	ADD	A,8
PR_L1	AND	248
	LD	(T_COORD),A

	LD	A,3
	LD	(T_SPR_W),A

	LD	A,(T_COORD+1)
	DEC	A
	CP	255
	JR	Z,CLC_SL

	LD	HL,(T_COORD)
	DEC	H
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SL
       
	PUSH	HL
	LD	A,15
	ADD	A,L
	LD	L,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SL

	LD	A,0
	LD	(BOX_HL_W),A
	LD	A,15
	LD	(BOX_HL_H),A
	CALL	ENEMY_COLLISION
	CP	1
	JR	Z,CLC_SL

	LD	HL,(T_COORD)
	DEC	H
	LD	(T_COORD),HL

CLC_SL	LD	HL,T1_L
	LD	A,(T_COORD+1)
	AND	7
	CP	0
	JR	Z,NO_ADDSL
	LD      DE,48
	LD	B,A
ADDSL	ADD	HL,DE
	DJNZ	ADDSL
NO_ADDSL
	LD	(T_SPR_ADR),HL
	LD      DE,832		;  
	ADD	HL,DE
	LD	(T_MAS_ADR),HL

	RET

;-----------------------------
PRESS_U
	LD	A,(T_ACTIVE)
	CP	0
	RET	Z

	LD	A,3
	LD	(T_DIRECT),A

	LD	A,(T_COORD+1)
	BIT	2,A
	JR	Z,PR_U1
	ADD	A,8
PR_U1	AND	248
	LD	(T_COORD+1),A

	LD	A,2
	LD	(T_SPR_W),A

	LD	A,(T_COORD)
	DEC	A
	CP	255
	JR	Z,CLC_SU

	LD	HL,(T_COORD)
	DEC	L
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SU
       
	PUSH	HL
	LD	A,15
	ADD	A,H
	LD	H,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SU

	LD	A,15
	LD	(BOX_HL_W),A
	LD	A,0
	LD	(BOX_HL_H),A
	CALL	ENEMY_COLLISION
	CP	1
	JR	Z,CLC_SU


	LD	HL,(T_COORD)
	DEC	L
	LD	(T_COORD),HL

CLC_SU
	LD	HL,T1_U
	LD	(T_SPR_ADR),HL
	LD      DE,832		;  
	ADD	HL,DE
	LD	(T_MAS_ADR),HL

	RET
;-----------------------------
PRESS_D 
	LD	A,(T_ACTIVE)
	CP	0
	RET	Z



	LD	A,4
	LD	(T_DIRECT),A

	LD	A,(T_COORD+1)
	BIT	2,A
	JR	Z,PR_D1
	ADD	A,8
PR_D1	AND	248
	LD	(T_COORD+1),A

	LD	A,2
	LD	(T_SPR_W),A
       
	LD	A,(T_COORD)
	INC	A
	CP	177
	JR	Z,CLC_SD

	LD	HL,(T_COORD)
	LD	A,16
	ADD	A,L
	LD	L,A
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SD
       
	PUSH	HL
	LD	A,15
	ADD	A,H
	LD	H,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	Z,CLC_SD

	LD	A,15
	LD	(BOX_HL_W),A
	LD	A,0
	LD	(BOX_HL_H),A
	CALL	ENEMY_COLLISION
	CP	1
	JR	Z,CLC_SD

	LD	HL,(T_COORD)
	INC	L
	LD	(T_COORD),HL

CLC_SD
	LD	HL,T1_D
	LD	(T_SPR_ADR),HL
	LD      DE,832		;  
	ADD	HL,DE
	LD	(T_MAS_ADR),HL

	LD	HL,PRESS_D
	LD	(LAST_DIRECT+1),HL

	RET


;------------------------------
KEY_TEST
SLT	EQU	8
	XOR	A
	LD	(U_PRESSED),A
	LD	(D_PRESSED),A
	LD	(L_PRESSED),A
	LD	(R_PRESSED),A
	LD	(F_PRESSED),A
	LD	(FLAG_EXIT),A

	LD	A,#BF
	IN	A,(254)

	BIT	0,A
	JR	NZ,K_T1
	LD	A,1
	LD	(F_PRESSED),A
K_T1

	LD	A,#FD
	IN	A,(254)
	LD	B,A

	BIT	0,B
	JR	NZ,K_T2
	LD	A,1
	LD	(L_PRESSED),A
	LD	A,SLT
	LD	(T_SLIP_TIMER),A
	LD	HL,PRESS_L
	LD	(LAST_DIRECT+1),HL
K_T2

	BIT	1,B
	JR	NZ,K_T3
	LD	A,1
	LD	(D_PRESSED),A
	LD	A,SLT
	LD	(T_SLIP_TIMER),A
	LD	HL,PRESS_D
	LD	(LAST_DIRECT+1),HL
K_T3

	BIT	2,B
	JR	NZ,K_T4
	LD	A,1
	LD	(R_PRESSED),A
	LD	A,SLT
	LD	(T_SLIP_TIMER),A
	LD	HL,PRESS_R
	LD	(LAST_DIRECT+1),HL
K_T4

	LD	A,#FB
	IN	A,(254)
	LD	B,A

	BIT	1,B
	JR	NZ,K_T5
	LD	A,1
	LD	(U_PRESSED),A
	LD	A,SLT
	LD	(T_SLIP_TIMER),A
	LD	HL,PRESS_U
	LD	(LAST_DIRECT+1),HL
K_T5

	BIT	3,B
	RET	NZ
	LD	A,1
	LD	(FLAG_EXIT),A
	
	RET
;------------------------------
USE_BONUS
	XOR	A
	LD	(B_ACTIVE),A

	LD	A,(B_INDEX)
	CP	0
	JR	NZ,UB_1
	LD	A,255
	LD	(T_PROTECT_TIMER),A
	CALL	ON_BONUS_SOUND
	RET

UB_1	CP	1
	JR	NZ,UB_2
	LD	A,255
	LD	(STOP_TIMER),A
	CALL	ON_BONUS_SOUND
	RET

UB_2	CP	2
	JR	NZ,UB_3
	LD	A,(T_LIVES)
	INC	A
	LD	(T_LIVES),A
	CALL	ON_ADD_LIVE_SOUND
	RET

UB_3	CP	3
	JR	NZ,UB_4
	LD	A,1
	LD	(T_POWERED),A
	CALL	ON_BONUS_SOUND
	RET

UB_4	CP	4
	JR	NZ,UB_5
	
	LD	IX,ENEMY
	LD	DE,ENEMY_LEN
	LD	B,3
UB_EN	LD	(IX+E_ACTIVE),0
	ADD	IX,DE
	DJNZ	UB_EN
	CALL	ON_CRASH_SOUND
	RET

UB_5



	RET

;------------------------------
T_ACTION

	CALL	T_COORD_IS_ICE

	XOR	A
	LD	(L_DOP),A

	LD	A,(U_PRESSED)
	CP	1
	CALL	Z,PRESS_U
	
	LD	A,(D_PRESSED)
	CP	1
	CALL	Z,PRESS_D

	LD	A,(L_PRESSED)
	CP	1
	CALL	Z,PRESS_L

	LD	A,(R_PRESSED)
	CP	1
	CALL	Z,PRESS_R

	LD	A,(F_PRESSED)
	CP	1
	CALL	Z,PRESS_F
	;------------------------------
	
	LD	A,(T_SLIP_TIMER)
	CP	0
	JR	Z,NOSLIP
	DEC	A
	LD	(T_SLIP_TIMER),A


	LD	A,(IS_ICE)
	CP	0
	JR	Z,NOSLIP
LAST_DIRECT
	CALL	NZ,0
	
NOSLIP
	;------------------------------
	LD	A,(B_ACTIVE)
	CP	0
	RET	Z

	LD	HL,(B_COORD)
	LD	A,15
	LD	(BOX_HL_H),A
	LD	(BOX_HL_W),A
	CALL	PLAYER_COLLISION
	CP	1
	CALL	Z,USE_BONUS

	RET

;-----------------------------
E_FAST_DIRECT
	;   
	CALL	RND_255
	AND	3
	INC	A
	LD	(IX+E_DIRECT),A
	RET

;-----------------------------
E_ACTION
	LD	A,(STOP_TIMER)
	CP	0
	JR	Z,E_A
	DEC	A
	LD	(STOP_TIMER),A
	RET

E_A
	XOR	A
	LD	(L_DOP),A


	LD	IX,ENEMY      
	LD	B,3
E_A1	PUSH	BC
	LD	A,(IX+E_ACTIVE)
	CP	0
	JR	Z,E_ANEXT     ; ,   

	;  
	CALL	RND_255    
	AND	15
	CP	7
	CALL	Z,E_FIRE

	;   
	CALL	RND_255
	CP	32
	JR	NZ,E_ASD1
	LD	(IX+E_DIRECT),1
	JR	E_ASD4
E_ASD1	CP	96
	JR	NZ,E_ASD2
	LD	(IX+E_DIRECT),2
	JR	E_ASD4
E_ASD2	CP	160
	JR	NZ,E_ASD3
	LD	(IX+E_DIRECT),3
	JR	E_ASD4
E_ASD3	CP	224
	JR	NZ,E_ASD4
	LD	(IX+E_DIRECT),4

E_ASD4
	LD	A,(IX+E_DIRECT)
	CP	1
	JR	NZ,E_AMR
	CALL	E_MOVE_L
	JR	E_ANEXT
E_AMR	CP	2
	JR	NZ,E_AMU
	CALL	E_MOVE_R
	JR	E_ANEXT
E_AMU	CP	3
	JR	NZ,E_AMD
	CALL	E_MOVE_U
	JR	E_ANEXT
E_AMD	CP	4
	JR	NZ,E_ANEXT
	CALL	E_MOVE_D

E_ANEXT	POP	BC
	LD	DE,ENEMY_LEN
	ADD	IX,DE
	DJNZ	E_A1
	RET

;-----------------------------
E_FIRE
	LD	A,(IX+E_SH_ACTIVE)
	CP	1
	RET	Z

	LD	A,(IX+E_DIRECT)
	LD	L,(IX+E_COORD)
	LD	H,(IX+E_COORD+1)
       
	LD	D,5
	LD	E,5 

	ADD	HL,DE
	LD	(IX+E_SH_COORD),L
	LD	(IX+E_SH_COORD+1),H
	LD	(IX+E_SH_DIRECT),A
	LD	A,1
	LD	(IX+E_SH_ACTIVE),A
	RET

;-----------------------------
E_MOVE_R 
	LD	A,(IX+E_COORD)    ; ""   8
	BIT	2,A
	JR	Z,EM_R1
	ADD	A,8
EM_R1	AND	248          
	LD	(IX+E_COORD),A

	LD	A,3
	LD	(IX+E_SPR_W),A

	LD	A,(IX+E_COORD+1)
	INC	A
	CP	193
	JR	NZ,EMR0
	CALL	E_FAST_DIRECT
	JR	E_CLC_SR

EMR0	LD	L,(IX+E_COORD)
	LD	H,(IX+E_COORD+1)
	LD	A,16
	ADD	A,H
	LD	H,A
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMR1
	CALL	E_FAST_DIRECT
	JR	E_CLC_SR
       
EMR1	PUSH	HL
	LD	A,15
	ADD	A,L
	LD	L,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMR2
	CALL	E_FAST_DIRECT
	JR	E_CLC_SR

EMR2	LD	A,0
	LD	(BOX_HL_W),A
	LD	A,15
	LD	(BOX_HL_H),A
	PUSH	IX
	CALL	ENEMY_COLLISION
	POP	IX
	CP	1
	JR	NZ,EMR3
	CALL	E_FAST_DIRECT
	JR	E_CLC_SR

EMR3	CALL	PLAYER_COLLISION
	CP	1
	JR	NZ,EMR4
	CALL	E_FAST_DIRECT
	JR	E_CLC_SR

EMR4	INC	(IX+E_COORD+1)

E_CLC_SR
	LD	HL,T1_R
	LD	A,(IX+E_COORD+1)
	AND	7
	CP	0
	JR	Z,NO_ADDESR
	LD      DE,48
	LD	B,A
ADDESR	ADD	HL,DE
	DJNZ	ADDESR
NO_ADDESR
	LD	(IX+E_SPR_ADR),L
	LD	(IX+E_SPR_ADR+1),H
	LD      DE,832		;  
	ADD	HL,DE
	LD	(IX+E_MAS_ADR),L
	LD	(IX+E_MAS_ADR+1),H
	RET
;-----------------------------
E_MOVE_L
	LD	A,(IX+E_COORD)
	BIT	2,A
	JR	Z,EM_L1
	ADD	A,8
EM_L1	AND	248
	LD	(IX+E_COORD),A

	LD	A,3
	LD	(IX+E_SPR_W),A

	LD	A,(IX+E_COORD+1)
	DEC	A
	CP	255
	JR	NZ,EML0
	CALL	E_FAST_DIRECT
	JR	E_CLC_SL

EML0	LD	L,(IX+E_COORD)
	LD	H,(IX+E_COORD+1)
	DEC	H
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EML1
	CALL	E_FAST_DIRECT
	JR	E_CLC_SL
       
EML1	PUSH	HL
	LD	A,15
	ADD	A,L
	LD	L,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EML2
	CALL	E_FAST_DIRECT
	JR	E_CLC_SL

EML2	LD	A,0
	LD	(BOX_HL_W),A
	LD	A,15
	LD	(BOX_HL_H),A
	PUSH	IX
	CALL	ENEMY_COLLISION
	POP	IX
	CP	1
	JR	NZ,EML3
	CALL	E_FAST_DIRECT
	JR	E_CLC_SL

EML3	CALL	PLAYER_COLLISION
	CP	1
	JR	NZ,EML4
	CALL	E_FAST_DIRECT
	JR	E_CLC_SL

EML4	DEC	(IX+E_COORD+1)

E_CLC_SL
	LD	HL,T1_L
	LD	A,(IX+E_COORD+1)
	AND	7
	CP	0
	JR	Z,NO_ADDESL
	LD      DE,48
	LD	B,A
ADDESL	ADD	HL,DE
	DJNZ	ADDESL
NO_ADDESL
	LD	(IX+E_SPR_ADR),L
	LD	(IX+E_SPR_ADR+1),H
	LD      DE,832		;  
	ADD	HL,DE
	LD	(IX+E_MAS_ADR),L
	LD	(IX+E_MAS_ADR+1),H
	RET

;-----------------------------
E_MOVE_U
	LD	A,(IX+E_COORD+1)
	BIT	2,A
	JR	Z,EM_U1
	ADD	A,8
EM_U1	AND	248
	LD	(IX+E_COORD+1),A

	LD	A,2
	LD	(IX+E_SPR_W),A

	LD	A,(IX+E_COORD)
	DEC	A
	CP	255
	JR	NZ,EMU0
	CALL	E_FAST_DIRECT
	JR	E_CLC_SU

EMU0	LD	L,(IX+E_COORD)
	LD	H,(IX+E_COORD+1)
	DEC	L
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMU1
	CALL	E_FAST_DIRECT
	JR	E_CLC_SU
       
EMU1	PUSH	HL
	LD	A,15
	ADD	A,H
	LD	H,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMU2
	CALL	E_FAST_DIRECT
	JR	E_CLC_SU

EMU2	LD	A,15
	LD	(BOX_HL_W),A
	LD	A,0
	LD	(BOX_HL_H),A
	PUSH	IX
	CALL	ENEMY_COLLISION
	POP	IX
	CP	1
	JR	NZ,EMU3
	CALL	E_FAST_DIRECT
	JR	E_CLC_SU

EMU3	CALL	PLAYER_COLLISION
	CP	1
	JR	NZ,EMU4
	CALL	E_FAST_DIRECT
	JR	E_CLC_SU

EMU4	DEC	(IX+E_COORD)

E_CLC_SU
	LD	HL,T1_U
	LD	(IX+E_SPR_ADR),L
	LD	(IX+E_SPR_ADR+1),H
	LD      DE,832		;  
	ADD	HL,DE
	LD	(IX+E_MAS_ADR),L
	LD	(IX+E_MAS_ADR+1),H
	RET
;-----------------------------
E_MOVE_D 
	LD	A,(IX+E_COORD+1)
	BIT	2,A
	JR	Z,EM_D1
	ADD	A,8
EM_D1	AND	248
	LD	(IX+E_COORD+1),A

	LD	A,2
	LD	(IX+E_SPR_W),A
       
	LD	A,(IX+E_COORD)
	INC	A
	CP	177
	JR	NZ,EMD0
	CALL	E_FAST_DIRECT
	JR	E_CLC_SD

EMD0	LD	L,(IX+E_COORD)
	LD	H,(IX+E_COORD+1)
	LD	A,16
	ADD	A,L
	LD	L,A
	PUSH	HL
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMD1
	CALL	E_FAST_DIRECT
	JR	E_CLC_SD
       
EMD1	PUSH	HL
	LD	A,15
	ADD	A,H
	LD	H,A
	CALL	COORD_IS_FILL
	POP	HL
	CP	1
	JR	NZ,EMD2
	CALL	E_FAST_DIRECT
	JR	E_CLC_SD

EMD2	LD	A,15
	LD	(BOX_HL_W),A
	LD	A,0
	LD	(BOX_HL_H),A
	PUSH	IX
	CALL	ENEMY_COLLISION
	POP	IX
	CP	1
	JR	NZ,EMD3
	CALL	E_FAST_DIRECT
	JR	E_CLC_SD

EMD3	CALL	PLAYER_COLLISION
	CP	1
	JR	NZ,EMD4
	CALL	E_FAST_DIRECT
	JR	E_CLC_SD

EMD4	INC	(IX+E_COORD)

E_CLC_SD
	LD	HL,T1_D
	LD	(IX+E_SPR_ADR),L
	LD	(IX+E_SPR_ADR+1),H
	LD      DE,832		;  
	ADD	HL,DE
	LD	(IX+E_MAS_ADR),L
	LD	(IX+E_MAS_ADR+1),H
	RET

;------------------------------
COORD_IS_FILL
        CALL	CALC_LEVEL_POS

        LD	A,(L_DOP)
        LD	D,A
        LD	A,(HL)
        CP	0
        JR	Z,C_NO_FILL
        CP	4
        JR	Z,C_NO_FILL
        CP	5
        JR	Z,C_NO_FILL
        CP	D
        JR	Z,C_NO_FILL

	LD	A,1
	RET
C_NO_FILL
	XOR	A
	RET
L_DOP	DEFB	0

;----------------------------
T_COORD_IS_ICE
	XOR	A
	LD	(IS_ICE),A


	LD	HL,(T_COORD)
	LD	DE,#0202

	LD	A,L
	AND	7
	CP	0
	JR	Z,TCII_NOADDY
	INC	E
TCII_NOADDY
	LD	A,H
	AND	7
	CP	0
	JR	Z,TCII_NOADDX
	INC	D
TCII_NOADDX
	PUSH	DE
	CALL	CALC_LEVEL_POS
	POP	DE

	LD	A,E
	LD	(TCII_FOR_Y-1),A
	LD	A,D
	LD	(TCII_FOR_X-1),A


	LD	B,0
TCII_FOR_Y
	PUSH	BC
	PUSH	HL
	

	LD	B,0
TCII_FOR_X
	PUSH	BC

	LD	A,(HL)
	CP	5
	JR	NZ,TCII_NOICE
	LD	A,1
	LD	(IS_ICE),A
TCII_NOICE	

	INC	HL

	POP	BC
	DJNZ	TCII_FOR_X


	POP	HL
	LD	DE,26
	ADD	HL,DE

	POP	BC
	DJNZ	TCII_FOR_Y

	RET

;----------------------------
CALC_LEVEL_POS
        SRL   L
        SRL   L
        SRL   L
        SRL   H
        SRL   H
        SRL   H

        LD    B,L
        LD    C,H
        LD    HL,LEVEL

        LD    A,B
        CP    0
        JR    Z,NO_ADD_Y  ;   

        LD    DE,26
ADD_Y
        ADD   HL,DE       ; 
        DJNZ  ADD_Y

NO_ADD_Y
        LD	D,0
        LD	E,C
        ADD	HL,DE       ;   X
	LD	(CALCULATED_LPOS),HL
        RET
CALCULATED_LPOS
	DEFW	0

;---------------------------
RND_255 
	LD	HL,(RND_VAL)
	LD	DE,7
	ADD	HL,DE
	LD	E,L
	LD	D,H
	ADD	HL,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	ADD	HL,DE
	LD	(RND_VAL),HL
	LD	A,H
	RET
RND_VAL	DEFW	0

;---------------------------------
; SPRITE1
;---------------------------------
T1_U
      DEFB 0, 0
      DEFB 0, 0
      DEFB 1, 128
      DEFB 1, 128
      DEFB 113, 142
      DEFB 17, 128
      DEFB 119, 134
      DEFB 31, 224
      DEFB 127, 246
      DEFB 31, 176
      DEFB 127, 182
      DEFB 30, 48
      DEFB 119, 230
      DEFB 16, 0
      DEFB 112, 6
      DEFB 0, 0

T1_D
      DEFB 0, 0
      DEFB 112, 6
      DEFB 16, 0
      DEFB 119, 230
      DEFB 30, 48
      DEFB 127, 182
      DEFB 31, 176
      DEFB 127, 246
      DEFB 31, 224
      DEFB 119, 134
      DEFB 17, 128
      DEFB 113, 142
      DEFB 1, 128
      DEFB 1, 128
      DEFB 0, 0
      DEFB 0, 0
T1_L
      DEFB 0, 0, 0
      DEFB 10, 170, 0
      DEFB 10, 170, 0
      DEFB 15, 254, 0
      DEFB 1, 240, 0
      DEFB 3, 248, 0
      DEFB 3, 248, 0
      DEFB 63, 232, 0
      DEFB 63, 232, 0
      DEFB 1, 136, 0
      DEFB 1, 248, 0
      DEFB 0, 240, 0
      DEFB 8, 0, 0
      DEFB 10, 170, 0
      DEFB 10, 170, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 5, 85, 0
      DEFB 5, 85, 0
      DEFB 7, 255, 0
      DEFB 0, 248, 0
      DEFB 1, 252, 0
      DEFB 1, 252, 0
      DEFB 31, 244, 0
      DEFB 31, 244, 0
      DEFB 0, 196, 0
      DEFB 0, 252, 0
      DEFB 0, 120, 0
      DEFB 4, 0, 0
      DEFB 5, 85, 0
      DEFB 5, 85, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 2, 170, 128
      DEFB 2, 170, 128
      DEFB 3, 255, 128
      DEFB 0, 124, 0
      DEFB 0, 254, 0
      DEFB 0, 254, 0
      DEFB 15, 250, 0
      DEFB 15, 250, 0
      DEFB 0, 98, 0
      DEFB 0, 126, 0
      DEFB 0, 60, 0
      DEFB 2, 0, 0
      DEFB 2, 170, 128
      DEFB 2, 170, 128
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 1, 85, 64
      DEFB 1, 85, 64
      DEFB 1, 255, 192
      DEFB 0, 62, 0
      DEFB 0, 127, 0
      DEFB 0, 127, 0
      DEFB 7, 253, 0
      DEFB 7, 253, 0
      DEFB 0, 49, 0
      DEFB 0, 63, 0
      DEFB 0, 30, 0
      DEFB 1, 0, 0
      DEFB 1, 85, 64
      DEFB 1, 85, 64
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 0, 170, 160
      DEFB 0, 170, 160
      DEFB 0, 255, 224
      DEFB 0, 31, 0
      DEFB 0, 63, 128
      DEFB 0, 63, 128
      DEFB 3, 254, 128
      DEFB 3, 254, 128
      DEFB 0, 24, 128
      DEFB 0, 31, 128
      DEFB 0, 15, 0
      DEFB 0, 128, 0
      DEFB 0, 170, 160
      DEFB 0, 170, 160
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 0, 85, 80
      DEFB 0, 85, 80
      DEFB 0, 127, 240
      DEFB 0, 15, 128
      DEFB 0, 31, 192
      DEFB 0, 31, 192
      DEFB 1, 255, 64
      DEFB 1, 255, 64
      DEFB 0, 12, 64
      DEFB 0, 15, 192
      DEFB 0, 7, 128
      DEFB 0, 64, 0
      DEFB 0, 85, 80
      DEFB 0, 85, 80
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 0, 42, 168
      DEFB 0, 42, 168
      DEFB 0, 63, 248
      DEFB 0, 7, 192
      DEFB 0, 15, 224
      DEFB 0, 15, 224
      DEFB 0, 255, 160
      DEFB 0, 255, 160
      DEFB 0, 6, 32
      DEFB 0, 7, 224
      DEFB 0, 3, 192
      DEFB 0, 32, 0
      DEFB 0, 42, 168
      DEFB 0, 42, 168
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 0, 21, 84
      DEFB 0, 21, 84
      DEFB 0, 31, 252
      DEFB 0, 3, 224
      DEFB 0, 7, 240
      DEFB 0, 7, 240
      DEFB 0, 127, 208
      DEFB 0, 127, 208
      DEFB 0, 3, 16
      DEFB 0, 3, 240
      DEFB 0, 1, 224
      DEFB 0, 16, 0
      DEFB 0, 21, 84
      DEFB 0, 21, 84
      DEFB 0, 0, 0

T1_R
      DEFB 0, 0, 0
      DEFB 85, 80, 0
      DEFB 85, 80, 0
      DEFB 127, 240, 0
      DEFB 15, 128, 0
      DEFB 31, 192, 0
      DEFB 31, 192, 0
      DEFB 23, 252, 0
      DEFB 23, 252, 0
      DEFB 17, 128, 0
      DEFB 31, 128, 0
      DEFB 15, 0, 0
      DEFB 0, 16, 0
      DEFB 85, 80, 0
      DEFB 85, 80, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 42, 168, 0
      DEFB 42, 168, 0
      DEFB 63, 248, 0
      DEFB 7, 192, 0
      DEFB 15, 224, 0
      DEFB 15, 224, 0
      DEFB 11, 254, 0
      DEFB 11, 254, 0
      DEFB 8, 192, 0
      DEFB 15, 192, 0
      DEFB 7, 128, 0
      DEFB 0, 8, 0
      DEFB 42, 168, 0
      DEFB 42, 168, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 21, 84, 0
      DEFB 21, 84, 0
      DEFB 31, 252, 0
      DEFB 3, 224, 0
      DEFB 7, 240, 0
      DEFB 7, 240, 0
      DEFB 5, 255, 0
      DEFB 5, 255, 0
      DEFB 4, 96, 0
      DEFB 7, 224, 0
      DEFB 3, 192, 0
      DEFB 0, 4, 0
      DEFB 21, 84, 0
      DEFB 21, 84, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 10, 170, 0
      DEFB 10, 170, 0
      DEFB 15, 254, 0
      DEFB 1, 240, 0
      DEFB 3, 248, 0
      DEFB 3, 248, 0
      DEFB 2, 255, 128
      DEFB 2, 255, 128
      DEFB 2, 48, 0
      DEFB 3, 240, 0
      DEFB 1, 224, 0
      DEFB 0, 2, 0
      DEFB 10, 170, 0
      DEFB 10, 170, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 5, 85, 0
      DEFB 5, 85, 0
      DEFB 7, 255, 0
      DEFB 0, 248, 0
      DEFB 1, 252, 0
      DEFB 1, 252, 0
      DEFB 1, 127, 192
      DEFB 1, 127, 192
      DEFB 1, 24, 0
      DEFB 1, 248, 0
      DEFB 0, 240, 0
      DEFB 0, 1, 0
      DEFB 5, 85, 0
      DEFB 5, 85, 0
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 2, 170, 128
      DEFB 2, 170, 128
      DEFB 3, 255, 128
      DEFB 0, 124, 0
      DEFB 0, 254, 0
      DEFB 0, 254, 0
      DEFB 0, 191, 224
      DEFB 0, 191, 224
      DEFB 0, 140, 0
      DEFB 0, 252, 0
      DEFB 0, 120, 0
      DEFB 0, 0, 128
      DEFB 2, 170, 128
      DEFB 2, 170, 128
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 1, 85, 64
      DEFB 1, 85, 64
      DEFB 1, 255, 192
      DEFB 0, 62, 0
      DEFB 0, 127, 0
      DEFB 0, 127, 0
      DEFB 0, 95, 240
      DEFB 0, 95, 240
      DEFB 0, 70, 0
      DEFB 0, 126, 0
      DEFB 0, 60, 0
      DEFB 0, 0, 64
      DEFB 1, 85, 64
      DEFB 1, 85, 64
      DEFB 0, 0, 0

      DEFB 0, 0, 0
      DEFB 0, 170, 160
      DEFB 0, 170, 160
      DEFB 0, 255, 224
      DEFB 0, 31, 0
      DEFB 0, 63, 128
      DEFB 0, 63, 128
      DEFB 0, 47, 248
      DEFB 0, 47, 248
      DEFB 0, 35, 0
      DEFB 0, 63, 0
      DEFB 0, 30, 0
      DEFB 0, 0, 32
      DEFB 0, 170, 160
      DEFB 0, 170, 160
      DEFB 0, 0, 0

M1_U
      DEFB 255, 255
      DEFB 252, 63
      DEFB 252, 63
      DEFB 12, 48
      DEFB 12, 48
      DEFB 8, 16
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 15, 240
      DEFB 255, 255

M1_D
      DEFB 255, 255
      DEFB 15, 240
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 0, 0
      DEFB 8, 16
      DEFB 12, 48
      DEFB 12, 48
      DEFB 252, 63
      DEFB 252, 63
      DEFB 255, 255

M1_L
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 252, 3, 255
      DEFB 248, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 248, 3, 255
      DEFB 252, 3, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255

      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 254, 1, 255
      DEFB 252, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 252, 1, 255
      DEFB 254, 1, 255
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127

      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 255, 0, 255
      DEFB 254, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 254, 0, 255
      DEFB 255, 0, 255
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63

      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 255, 128, 127
      DEFB 255, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 255, 0, 127
      DEFB 255, 128, 127
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31

      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 255, 192, 63
      DEFB 255, 128, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 255, 128, 63
      DEFB 255, 192, 63
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15

      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 224, 31
      DEFB 255, 192, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 255, 192, 31
      DEFB 255, 224, 31
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7

      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 240, 15
      DEFB 255, 224, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 255, 224, 15
      DEFB 255, 240, 15
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3

      DEFB 255, 192, 1
      DEFB 255, 192, 1
      DEFB 255, 192, 1
      DEFB 255, 192, 1
      DEFB 255, 248, 7
      DEFB 255, 240, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 240, 7
      DEFB 255, 248, 7
      DEFB 255, 192, 1
      DEFB 255, 192, 1
      DEFB 255, 192, 1
      DEFB 255, 192, 1

M1_R
      DEFB 0, 7, 255
      DEFB 0, 7, 255
      DEFB 0, 7, 255
      DEFB 0, 7, 255
      DEFB 192, 63, 255
      DEFB 192, 31, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 31, 255
      DEFB 192, 63, 255
      DEFB 0, 7, 255
      DEFB 0, 7, 255
      DEFB 0, 7, 255
      DEFB 0, 7, 255

      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 224, 31, 255
      DEFB 224, 15, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 15, 255
      DEFB 224, 31, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255
      DEFB 128, 3, 255

      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 240, 15, 255
      DEFB 240, 7, 255
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 7, 255
      DEFB 240, 15, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255
      DEFB 192, 1, 255

      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 248, 7, 255
      DEFB 248, 3, 255
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 3, 255
      DEFB 248, 7, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255
      DEFB 224, 0, 255

      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 252, 3, 255
      DEFB 252, 1, 255
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 1, 255
      DEFB 252, 3, 255
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127
      DEFB 240, 0, 127

      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 254, 1, 255
      DEFB 254, 0, 255
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 15
      DEFB 254, 0, 255
      DEFB 254, 1, 255
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63
      DEFB 248, 0, 63

      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 255, 0, 255
      DEFB 255, 0, 127
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 7
      DEFB 255, 0, 127
      DEFB 255, 0, 255
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31
      DEFB 252, 0, 31

      DEFB 255, 0, 15
      DEFB 255, 0, 15
      DEFB 255, 0, 15
      DEFB 255, 0, 15
      DEFB 255, 128, 127
      DEFB 255, 128, 63
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 3
      DEFB 255, 128, 63
      DEFB 255, 128, 127
      DEFB 255, 0, 15
      DEFB 255, 0, 15
      DEFB 255, 0, 15
      DEFB 255, 0, 15


B_1	
      DEFB 0, 0
      DEFB 127, 252
      DEFB 128, 2
      DEFB 128, 2
      DEFB 128, 2
      DEFB 135, 194
      DEFB 143, 226
      DEFB 143, 226
      DEFB 143, 226
      DEFB 159, 226
      DEFB 128, 242
      DEFB 128, 2
      DEFB 128, 2
      DEFB 128, 2
      DEFB 127, 252
      DEFB 0, 0
B_2
      DEFB 0, 0
      DEFB 127, 252
      DEFB 128, 2
      DEFB 131, 194
      DEFB 130, 50
      DEFB 135, 130
      DEFB 143, 194
      DEFB 157, 226
      DEFB 157, 226
      DEFB 158, 226
      DEFB 143, 194
      DEFB 135, 130
      DEFB 128, 2
      DEFB 128, 2
      DEFB 127, 252
      DEFB 0, 0
B_3
      DEFB 0, 0
      DEFB 127, 252
      DEFB 128, 2
      DEFB 128, 2
      DEFB 129, 194
      DEFB 159, 194
      DEFB 129, 194
      DEFB 135, 34
      DEFB 143, 194
      DEFB 159, 242
      DEFB 156, 10
      DEFB 138, 170
      DEFB 135, 242
      DEFB 128, 2
      DEFB 127, 252
      DEFB 0, 0
B_4
      DEFB 0, 0
      DEFB 127, 252
      DEFB 128, 2
      DEFB 128, 2
      DEFB 144, 2
      DEFB 191, 226
      DEFB 191, 242
      DEFB 152, 18
      DEFB 134, 250
      DEFB 130, 106
      DEFB 129, 234
      DEFB 128, 74
      DEFB 128, 122
      DEFB 128, 2
      DEFB 127, 252
      DEFB 0, 0
B_5
      DEFB 0, 0
      DEFB 127, 252
      DEFB 128, 2
      DEFB 135, 194
      DEFB 134, 34
      DEFB 143, 18
      DEFB 155, 82
      DEFB 148, 146
      DEFB 155, 82
      DEFB 148, 146
      DEFB 155, 66
      DEFB 136, 130
      DEFB 135, 2
      DEFB 128, 2
      DEFB 127, 252
      DEFB 0, 0

B_M
      DEFB 255, 255
      DEFB 128, 3
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 0, 1
      DEFB 128, 3
      DEFB 255, 255


SPR_SHOT

	DEFB 0, 0, 48, 0, 120, 0, 120, 0, 48, 0, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 24, 0, 60, 0, 60, 0, 24, 0, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 12, 0, 30, 0, 30, 0, 12, 0, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 6, 0, 15, 0, 15, 0, 6, 0, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 3, 0, 7, 128, 7, 128, 3, 0, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 1, 128, 3, 192, 3, 192, 1, 128, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 0, 192, 1, 224, 1, 224, 0, 192, 0, 0, 0, 0, 0, 0
	DEFB 0, 0, 0, 96, 0, 240, 0, 240, 0, 96, 0, 0, 0, 0, 0, 0

M_SHOT

	DEFB 135, 255, 3, 255, 3, 255, 3, 255, 3, 255, 135, 255, 255, 255, 255, 255
	DEFB 195, 255, 129, 255, 129, 255, 129, 255, 129, 255, 195, 255, 255, 255, 255, 255
	DEFB 225, 255, 192, 255, 192, 255, 192, 255, 192, 255, 225, 255, 255, 255, 255, 255
	DEFB 240, 255, 224, 127, 224, 127, 224, 127, 224, 127, 240, 255, 255, 255, 255, 255
	DEFB 248, 127, 240, 63, 240, 63, 240, 63, 240, 63, 248, 127, 255, 255, 255, 255
	DEFB 252, 63, 248, 31, 248, 31, 248, 31, 248, 31, 252, 63, 255, 255, 255, 255
	DEFB 254, 31, 252, 15, 252, 15, 252, 15, 252, 15, 254, 31, 255, 255, 255, 255
	DEFB 255, 15, 254, 7, 254, 7, 254, 7, 254, 7, 255, 15, 255, 255, 255, 255


; 
SPR_C0	DEFB	0,0,0,0,0,0,0,0
SPR_C1	DEFB	247,247,247,0,127,127,127,0
SPR_C2	DEFB	170,84,188,124,188,124,130,1
SPR_C3	DEFB	4,0,128,72,20,0,64,34
SPR_C4	DEFB	2,21,7,25,46,31,251,110
SPR_C5	DEFB	17,2,4,136,17,34,68,136
SPR_C6	DEFB	0,192,99,241,113,253,47,119
SPR_C7	DEFB	0,3,134,79,142,191,244,238
SPR_C8	DEFB	61,63,29,1,3,15,13,0
SPR_C9	DEFB	188,252,184,128,192,240,176,0

LEVEL1	DEFW	LEVEL2
	DEFB	37,16,49,16,49,16,69,16,49,16,49,16,69,16,17,16
	DEFB	17,16,17,16,17,16,69,16,17,16,17,16,17,16,17,16
	DEFB	69,16,49,16,17,16,17,16,69,16,49,16,17,16,17,16
	DEFB	69,48,17,16,17,16,17,16,69,48,17,16,17,16,17,16
	DEFB	69,16,49,16,49,16,69,16,49,16,49,16,253,205,18
	DEFB	80,18,80,34,64,17,18,17,64,18,20,64,49,64,36,17
	DEFB	16,17,16,49,64,36,17,18,17,18,49,18,17,18,17,36
	DEFB	17,18,17,18,49,18,17,18,17,36,17,16,17,16,17,16
	DEFB	17,16,17,16,17,36,17,16,17,80,17,16,17,36,17,16
	DEFB	17,80,17,16,17,36,17,16,17,80,17,16,17,68,112,36
	DEFB	16,52,112,36,16,0

LEVEL2 	DEFW	LEVEL3
	DEFB	20,17,16,18,48,17,16,17,16,17,16,20,17,16,18,48
	DEFB	17,16,17,16,17,16,20,17,16,52,33,16,17,18,17,16
	DEFB	20,17,16,52,33,16,17,18,17,16,20,32,17,32,33,16
	DEFB	18,48,20,32,17,32,33,16,18,48,20,32,17,16,17,18
	DEFB	32,17,20,17,18,20,32,17,16,17,18,32,17,20,17,18
	DEFB	36,16,49,32,18,17,20,32,36,16,49,32,18,17,20,32
	DEFB	81,36,18,33,20,17,16,81,36,18,33,20,17,64,18,20
	DEFB	17,16,17,16,17,16,17,64,18,20,17,16,17,16,17,16
	DEFB	17,16,18,17,19,18,16,17,16,17,16,35,17,19,18,17
	DEFB	19,18,16,17,16,17,16,35,17,35,17,16,17,16,49,16
	DEFB	17,18,17,35,17,16,17,16,49,16,17,18,17,19,20,17
	DEFB	16,17,16,49,64,19,20,17,16,17,16,49,64,35,17,112
	DEFB	17,16,17,35,17,112,17,16,17,35,17,16,17,80,49,16
	DEFB	19,17,16,17,80,49,16,0

LEVEL3 	DEFW	LEVEL4
	DEFB	21,52,17,128,21,52,17,80,34,16,18,52,149,18,52,149
	DEFB	19,52,48,17,16,65,19,52,48,17,16,65,19,52,65,16,17
	DEFB	24,9,16,19,52,49,32,17,24,9,16,19,52,32,17,72,9,16
	DEFB	19,52,32,17,72,9,16,19,20,69,50,37,20,21,19,20,69
	DEFB	50,37,20,21,19,128,68,19,17,16,17,80,68,18,57,16,57
	DEFB	68,18,57,16,9,48,68,17,64,17,48,68,17,64,17,16,33,68
	DEFB	17,32,10,56,33,19,36,19,17,32,10,88,19,36,19,33,16
	DEFB	10,88,52,19,33,16,10,88,52,19,18,49,80,33,32,18,49
	DEFB	80,33,32,0

LEVEL4 	DEFW	LEVEL5
	DEFB	20,21,48,17,16,68,16,36,21,32,33,16,68,16,36,21,24,25,36,21,33,32,18,20,21,24,25,36,21,49,32,18,16,21,33,37,33,36,9,56,21,33,37,33,36,9,64,17,56,49,16,9,64,9,80,33,16,9,24,19,24,9,16,10,24,10,24,25,56,19,24,9,16,10,24,10,24,25,88,17,80,25,24,35,32,17,16,33,32,25,24,35,18,16,33,36,21,49,16,20,17,18,16,33,36,21,49,16,20,17,18,8,41,20,89,8,20,17,18,8,41,20,89,8,20,17,21,49,20,97,20,17,21,32,17,20,65,32,20,17,21,33,16,65,16,33,21,20,21,49,16,33,16,49,21,36,16,33,64,33,16,52,160,36,18,20,128,36,16,18,20,128,36,16,0


LEVEL5 	DEFW	LEVEL6
	DEFB	48,21,17,48,33,18,64,17,21,17,48,33,18,32,18,16,17,21,32,17,16,21,32,21,20,18,16,17,21,32,17,16,21,32,21,84,17,16,33,21,35,21,19,68,17,16,33,21,35,21,19,36,16,21,17,16,53,19,37,16,36,16,21,32,53,19,37,48,17,21,35,21,51,21,33,32,17,21,35,21,51,21,65,16,21,19,57,8,37,16,21,33,16,21,19,57,8,37,16,21,48,21,19,64,21,8,18,8,21,48,21,19,64,21,8,18,8,21,51,21,19,17,18,17,18,17,8,10,16,21,51,21,19,17,18,17,18,17,8,10,16,21,168,10,33,48,33,88,10,33,18,48,81,64,18,48,17,48,33,48,49,16,18,64,33,32,33,32,18,80,17,32,17,16,18,128,17,48,18,128,17,16,0


LEVEL6 	DEFW	LEVEL7
	DEFB	21,9,16,10,16,9,64,9,20,9,16,9,20,21,9,16,10,16,9,64,9,20,9,16,9,20,21,9,16,10,16,9,24,17,24,9,20,9,16,9,20,21,9,16,10,16,9,24,17,24,9,20,9,16,9,20,21,17,32,33,18,33,20,16,17,20,21,17,32,33,18,33,20,16,17,20,21,40,9,18,41,8,17,10,24,36,21,40,9,32,25,24,10,24,36,41,40,20,17,20,40,81,40,20,17,20,40,41,19,53,8,9,52,9,8,53,35,53,8,9,52,9,8,53,19,18,33,16,17,52,17,8,41,34,33,32,52,24,41,66,48,20,48,50,64,17,16,20,16,17,64,21,17,37,17,48,18,85,17,37,17,48,18,69,20,25,40,17,16,17,40,25,36,25,128,25,20,32,17,112,52,160,52,32,18,128,36,32,18,112,17,36,0

LEVEL7 	DEFW	LEVEL8
	DEFB	32,19,50,64,18,64,19,112,18,32,17,16,19,48,20,16,18,17,19,16,33,16,19,48,20,32,17,19,16,17,16,17,48,20,18,48,19,17,32,17,48,20,18,48,19,17,48,17,16,20,19,18,52,19,18,48,17,16,20,19,18,52,19,18,16,34,36,19,34,16,18,17,20,32,34,36,19,34,16,18,17,20,32,52,18,19,17,32,17,18,16,84,18,19,17,32,17,18,16,36,10,56,18,16,17,34,40,10,20,10,56,18,16,17,34,40,10,20,24,26,48,33,20,32,18,20,24,26,48,33,20,32,18,20,16,18,48,17,18,20,17,16,34,20,16,18,48,17,18,20,17,16,34,20,16,50,17,16,20,32,18,32,20,48,18,17,16,20,32,18,32,20,17,35,17,80,18,17,16,18,17,35,17,96,17,16,18,49,160,49,160,0

LEVEL8 	DEFW	LEVEL9
	DEFB	20,49,16,17,48,33,32,20,49,16,17,16,18,16,33,32,52,32,17,16,17,16,17,24,17,8,52,64,17,56,17,8,20,83,17,67,52,83,17,67,36,33,64,17,48,52,33,64,33,32,52,17,20,17,40,9,18,17,18,33,34,17,20,17,40,9,18,17,18,33,32,33,16,81,20,97,16,81,20,65,36,16,18,20,16,84,18,16,36,16,18,20,18,84,18,16,18,19,16,83,16,67,18,19,16,83,16,67,36,24,9,128,21,36,24,9,32,33,64,21,36,17,16,9,48,9,48,17,21,36,17,16,9,48,9,16,18,33,21,20,16,17,16,9,72,17,16,17,21,20,18,17,16,9,104,17,53,33,112,17,53,33,80,17,32,21,0

LEVEL9 	DEFW	LEVEL10
	DEFB	16,17,48,20,16,36,26,8,17,32,17,48,20,16,36,26,8,17,16,20,19,20,16,20,8,34,8,20,18,20,19,17,20,19,20,18,20,8,34,8,20,16,20,19,33,19,8,34,8,20,18,20,48,19,20,17,19,8,34,8,20,16,20,48,19,20,17,19,20,18,20,96,19,33,19,20,16,20,96,19,33,19,16,20,16,20,16,20,16,20,16,19,33,19,16,20,18,20,16,20,18,20,16,19,17,18,17,24,34,32,34,24,33,18,17,24,34,32,34,24,49,19,16,20,18,20,16,20,18,20,16,19,20,17,19,16,20,16,20,16,20,16,20,16,19,20,17,19,16,20,16,20,16,20,16,20,16,19,33,19,16,20,18,20,16,20,18,20,16,19,33,19,24,34,32,34,24,19,33,19,24,34,32,34,24,19,17,20,19,16,20,18,20,16,20,18,20,16,19,17,20,19,16,20,16,20,16,20,16,20,16,19,49,144,81,112,113,80,129,80,65,0


LEVEL10	DEFW	LEVEL11
	DEFB	16,17,16,33,64,49,32,17,16,33,64,49,16,9,16,33,16,9,68,9,48,17,16,33,16,9,68,9,48,33,8,17,8,25,68,9,8,73,8,17,8,25,68,9,40,49,16,33,20,34,20,17,40,41,16,33,20,34,20,49,8,9,8,25,16,17,16,67,9,48,9,8,25,16,17,16,67,9,48,73,16,18,17,34,33,18,81,16,18,17,34,33,18,17,64,18,16,17,16,18,128,18,16,17,16,18,96,153,56,153,24,17,20,49,34,65,18,33,20,48,34,64,18,17,18,180,17,18,180,17,32,52,48,68,48,52,48,68,64,9,104,9,72,18,9,104,9,40,0


LEVEL11	DEFW	LEVEL12
	DEFB	21,8,41,21,17,16,17,80,21,8,41,21,17,16,17,80,21,49,21,81,52,21,49,21,81,52,21,49,37,17,18,17,20,18,36,21,49,37,17,18,17,20,18,36,21,19,16,33,21,18,33,20,18,19,17,21,19,16,33,21,18,33,20,18,19,17,21,19,33,18,37,17,16,36,33,21,19,32,18,37,17,16,36,33,21,19,33,16,18,84,53,19,33,16,18,84,53,32,18,32,20,51,20,53,32,18,32,20,51,20,37,18,21,16,68,18,52,17,21,18,21,16,68,18,52,17,53,18,68,64,33,37,18,68,64,33,21,17,36,32,17,16,18,49,16,21,17,36,32,17,32,49,16,21,17,36,80,49,16,21,17,36,80,49,16,21,17,36,144,21,17,36,144,0

LEVEL12	DEFW	LEVEL13
	DEFB	20,49,80,17,48,20,65,64,17,48,20,48,17,16,17,64,33,20,48,17,96,33,20,83,16,25,8,35,17,18,20,83,16,25,8,35,17,16,36,48,19,16,17,16,26,8,17,52,50,19,16,17,16,26,8,17,20,17,20,49,51,16,19,33,20,17,20,49,51,16,19,33,84,18,19,36,18,19,116,18,19,36,18,19,52,51,16,35,33,16,19,32,20,51,16,35,33,16,19,32,20,17,64,17,34,16,35,18,20,17,64,17,48,35,18,20,21,33,144,20,21,33,144,20,21,33,16,34,32,18,33,16,37,33,80,18,33,16,21,18,33,96,17,53,18,33,96,17,53,49,96,113,96,65,0

LEVEL13	DEFW	LEVEL14
	DEFB	8,25,16,9,16,25,24,33,16,25,24,25,16,9,16,25,24,33,16,25,32,9,24,9,16,9,16,9,16,9,16,9,16,9,16,9,24,9,24,9,16,9,16,9,16,9,16,9,16,9,16,9,8,9,8,9,8,9,8,9,16,33,16,33,16,9,16,9,8,9,8,9,8,9,8,9,16,33,16,33,16,9,16,9,8,41,8,9,40,9,40,9,16,9,16,9,8,41,8,9,40,9,40,9,16,9,16,9,8,9,24,9,8,9,16,33,16,33,16,33,8,9,24,9,8,9,16,33,16,33,16,33,248,176,18,180,34,180,18,96,26,184,26,96,18,32,18,32,17,24,50,24,18,32,18,32,17,24,50,40,10,16,10,40,33,16,18,72,10,16,10,40,33,32,18,64,18,112,18,64,18,128,18,48,18,96,50,48,18,96,50,16,0


LEVEL14	DEFW	LEVEL15
	DEFB	48,21,32,20,32,21,96,21,32,20,32,21,80,18,32,20,16,20,32,18,64,18,32,20,16,20,32,18,48,21,32,20,16,17,16,20,32,21,32,21,32,20,16,17,16,20,32,21,16,17,32,20,16,17,16,17,16,20,32,33,32,20,16,17,16,17,16,20,32,17,32,20,16,17,48,17,16,20,64,20,16,17,48,17,16,20,48,20,16,17,32,18,32,17,16,20,32,20,16,17,32,18,32,17,16,20,48,20,16,17,48,18,16,20,64,20,16,17,48,18,16,20,32,18,32,20,16,17,16,17,16,20,32,34,32,20,16,17,16,17,16,20,32,18,16,17,32,20,16,17,16,20,32,17,32,17,32,20,16,17,16,20,32,17,48,21,32,20,16,20,32,21,64,21,32,20,16,20,32,21,32,17,32,17,80,17,32,33,32,17,80,17,32,49,144,65,144,33,0


LEVEL15	DEFW	LEVEL16
	DEFB	16,20,16,49,32,17,8,17,8,17,32,20,96,17,8,17,8,17,16,52,8,50,24,17,8,17,8,17,16,52,8,10,32,10,24,17,8,17,8,17,48,20,8,10,32,10,24,17,8,17,8,17,48,20,8,50,24,17,8,17,8,17,32,20,80,100,16,20,16,66,132,16,10,16,18,16,10,16,17,8,17,8,17,16,36,16,10,16,18,16,10,16,17,8,17,8,17,32,36,66,16,17,8,17,8,17,32,36,66,16,17,8,17,8,17,32,20,16,10,16,18,16,10,16,17,8,17,8,17,32,20,16,10,16,18,16,10,16,17,8,17,8,17,32,20,16,33,34,8,25,8,17,8,17,32,20,88,25,8,17,8,17,16,10,16,34,104,18,32,10,16,34,104,18,32,10,16,10,104,66,8,10,16,10,104,10,16,18,16,10,8,10,16,34,80,10,16,18,16,10,8,10,16,10,16,10,80,66,8,10,16,10,16,10,104,18,32,10,16,34,104,18,32,0

LEVEL16	DEFW	LEVEL17
	DEFB	16,17,48,17,16,17,48,17,32,17,48,17,16,17,48,17,48,17,16,17,52,17,16,17,64,17,16,17,52,17,16,17,32,20,32,18,16,20,19,20,16,18,32,36,32,18,16,20,19,20,16,18,32,20,32,17,16,17,52,17,16,17,64,17,16,17,52,17,16,17,48,17,52,17,16,17,52,18,32,17,52,17,16,17,52,18,16,18,16,20,19,20,16,18,16,20,19,20,16,34,16,20,19,20,16,18,16,20,19,20,16,18,16,17,52,17,16,17,52,18,32,17,52,17,16,17,52,18,48,17,16,81,16,17,64,17,16,81,16,17,32,20,32,18,16,17,19,17,16,18,32,36,32,18,16,17,19,17,16,18,32,20,32,33,18,97,64,33,18,97,48,49,80,49,32,49,80,49,16,33,18,112,81,18,112,49,0

LEVEL17	DEFW	LEVEL18
	DEFB	16,33,19,80,52,32,33,19,80,52,248,216,19,32,81,16,17,48,19,32,81,16,17,16,19,16,19,32,17,16,18,16,17,16,51,16,19,32,17,16,18,16,17,16,35,18,16,52,17,50,17,16,36,18,16,52,17,50,17,16,36,32,20,32,17,16,18,16,17,32,20,32,20,32,17,16,18,16,17,32,20,32,20,32,17,18,16,18,17,32,17,32,20,32,17,18,16,18,17,32,17,16,18,16,20,16,17,48,17,32,17,16,18,16,20,16,17,48,17,32,17,18,48,20,81,48,18,48,20,81,208,10,8,18,8,10,160,10,8,18,8,10,33,18,16,18,80,10,8,18,8,10,33,18,16,18,80,10,8,18,8,10,16,17,128,50,16,17,128,50,0

LEVEL18	DEFW	LEVEL19
	DEFB	16,17,112,18,64,17,112,18,48,65,32,18,32,17,16,34,65,32,18,32,17,16,34,16,17,48,17,16,18,9,16,41,18,16,17,48,17,16,18,9,16,41,18,17,16,17,16,18,48,9,72,17,16,17,16,18,48,9,72,33,18,17,32,17,8,9,24,10,16,9,8,9,8,33,18,17,32,17,8,9,24,10,16,9,8,9,40,18,48,17,32,10,16,41,32,18,48,17,32,10,16,41,32,17,48,17,24,10,8,10,32,9,40,17,48,17,24,10,8,10,32,9,8,34,33,24,9,16,9,32,10,8,41,34,33,24,9,16,9,32,10,8,41,32,18,32,9,32,10,24,10,32,9,40,18,32,9,32,10,24,10,32,9,40,17,24,9,48,9,104,17,24,9,48,9,72,18,160,36,18,160,52,18,16,17,88,10,16,52,18,16,17,88,10,16,36,0


LEVEL19	DEFW	LEVEL20
	DEFB	48,18,36,56,10,20,80,18,36,56,10,20,32,252,172,26,8,10,8,9,16,25,8,10,8,9,16,25,8,18,17,26,8,10,8,9,16,25,8,10,8,9,16,25,8,18,17,10,24,10,8,9,32,10,8,10,8,9,16,9,8,9,8,9,16,9,10,24,10,8,9,32,10,8,10,8,9,16,9,8,9,8,9,16,9,26,8,10,8,9,24,9,16,10,8,9,16,9,8,9,8,33,16,10,8,10,8,9,24,9,16,10,8,9,16,9,8,9,8,33,16,10,8,33,8,9,24,26,9,8,9,8,9,8,9,16,9,16,10,8,33,8,9,24,26,9,8,9,8,9,8,9,16,9,26,24,10,16,25,24,10,16,25,8,33,26,24,10,16,25,24,10,16,25,8,33,252,172,25,8,33,16,68,16,10,40,25,8,17,32,68,16,10,48,9,16,17,112,10,24,18,8,9,16,33,96,10,48,9,16,33,96,10,24,18,8,9,16,17,112,10,48,9,16,17,112,34,24,9,16,33,96,34,16,0

LEVEL20	DEFW	LEVEL21
	DEFB	32,33,176,33,16,18,64,34,16,17,164,49,164,145,16,19,177,16,19,65,32,33,16,20,32,19,33,64,33,16,20,32,19,33,48,49,36,32,19,36,9,16,9,16,49,36,32,19,36,9,16,9,32,33,16,17,18,17,18,36,9,16,9,32,33,16,17,18,17,18,36,9,16,9,16,49,99,25,16,9,16,49,99,25,16,41,18,17,64,33,34,49,18,17,64,33,34,17,32,33,18,64,9,88,33,18,64,9,56,18,16,33,18,64,9,16,9,8,9,16,18,16,33,18,64,9,16,9,8,9,32,49,80,9,16,9,8,9,32,49,80,9,16,9,8,9,48,18,17,80,65,32,18,17,80,65,0

LEVEL21	DEFW	LEVEL22
	DEFB	80,17,16,17,18,16,34,96,17,16,17,18,16,34,16,17,32,17,21,16,18,32,17,32,33,32,17,21,16,18,32,17,32,33,16,19,16,19,48,19,16,19,16,33,16,19,16,19,48,19,16,19,16,17,16,17,19,16,19,17,16,17,19,16,19,17,32,17,19,16,19,17,16,17,19,16,19,17,48,19,16,35,16,35,16,19,64,19,16,35,16,35,16,19,80,81,18,17,112,65,18,64,17,48,18,48,17,48,33,48,18,16,18,33,48,33,48,33,16,33,48,33,48,33,16,33,48,17,18,48,18,33,16,17,48,17,18,48,18,48,17,48,33,16,18,16,81,48,33,16,18,97,18,32,33,34,33,48,49,16,33,34,33,48,49,16,17,18,176,34,176,18,0

LEVEL22	DEFW	LEVEL23
	DEFB	16,33,32,17,16,17,16,34,48,33,32,17,16,17,16,34,72,18,80,17,96,18,80,17,104,20,64,17,32,36,48,20,64,17,32,36,19,40,18,48,17,24,20,17,20,19,40,18,48,17,24,20,17,20,64,20,32,20,32,36,17,64,20,32,20,32,36,33,20,40,18,16,17,40,20,18,33,20,40,18,16,17,40,20,18,17,18,17,48,34,32,20,17,20,17,18,17,48,34,32,20,17,20,33,16,17,32,33,32,17,20,33,32,17,32,33,32,17,20,16,17,16,17,16,17,16,18,17,32,36,16,17,48,17,16,18,17,32,36,16,17,32,17,32,33,32,17,20,112,33,48,20,32,33,144,35,33,144,35,18,17,128,49,18,17,128,49,0

LEVEL23	DEFW	LEVEL24
	DEFB	32,49,21,17,34,17,18,64,49,21,17,34,17,18,32,37,49,21,17,18,17,53,17,37,49,21,17,18,17,53,33,133,17,21,18,33,133,17,21,18,33,18,21,17,18,17,34,21,17,21,18,33,18,21,17,18,17,34,21,17,21,18,33,18,21,65,18,21,18,37,33,18,21,65,18,21,18,37,17,16,37,33,21,34,21,18,37,17,16,37,33,21,34,21,18,37,17,16,21,18,33,69,17,37,18,16,21,18,33,69,17,37,34,21,16,33,18,65,53,18,21,16,33,18,65,53,18,37,32,33,50,37,20,18,37,32,33,50,37,20,34,21,32,18,17,18,48,36,34,21,32,18,17,18,48,52,16,21,16,18,56,10,32,52,16,21,16,18,56,10,32,68,21,128,68,21,128,36,0

LEVEL24	DEFW	LEVEL25
	DEFB	32,17,20,64,17,20,32,21,32,17,20,64,17,20,32,69,144,69,144,69,16,18,19,17,16,18,117,16,18,19,17,16,18,69,32,21,49,19,17,32,18,21,17,32,21,49,19,17,32,18,21,17,20,16,37,18,49,16,33,21,36,16,37,18,49,16,33,21,20,18,20,37,33,18,64,37,18,20,37,33,18,64,37,33,20,33,67,68,33,20,33,67,68,32,19,48,36,51,18,20,32,19,48,36,51,18,20,16,18,19,112,19,17,20,16,18,19,112,19,17,20,33,19,112,19,17,20,33,19,112,19,17,20,33,19,112,19,65,19,112,19,65,18,112,81,18,112,49,0

LEVEL25	DEFW	LEVEL26
	DEFB	32,36,16,17,16,17,16,36,48,17,36,16,17,16,17,16,36,17,32,17,20,32,17,16,17,32,20,17,48,20,17,16,17,16,17,16,17,20,64,20,17,32,18,32,17,20,48,17,20,48,18,48,20,32,18,33,48,17,48,17,50,33,16,17,16,17,16,17,16,17,34,19,48,18,48,17,64,19,192,19,17,18,17,80,49,35,17,18,17,16,49,16,49,35,17,16,17,16,49,16,20,16,17,35,17,16,17,16,17,48,20,16,17,35,17,20,17,32,17,32,20,16,17,35,17,20,17,32,17,32,20,16,17,35,32,17,48,17,16,17,16,17,35,32,17,16,49,16,17,16,17,19,65,16,49,16,49,19,65,80,49,35,192,19,192,19,52,80,18,36,16,19,52,80,18,36,16,0

LEVEL26	DEFW	LEVEL27
	DEFB	32,21,49,16,65,16,20,32,21,49,16,65,18,20,35,37,32,17,48,17,16,20,35,37,32,17,48,17,16,36,32,21,19,20,17,20,32,17,16,36,16,17,21,19,20,17,20,34,17,18,36,33,21,19,16,17,48,17,16,36,33,21,19,16,17,48,17,16,36,33,21,19,20,17,20,18,16,18,16,36,33,21,19,20,17,20,66,20,18,16,17,21,19,16,17,16,19,16,17,16,20,18,16,17,21,19,16,17,16,19,16,17,16,36,33,21,36,17,20,17,16,17,16,36,33,21,36,17,20,17,18,17,18,36,33,21,32,17,21,67,36,33,21,32,17,21,67,20,18,49,18,33,53,49,18,49,18,33,53,49,20,16,17,48,17,48,17,34,20,16,17,48,17,48,17,34,33,18,112,17,32,33,18,112,17,32,49,112,17,32,49,112,17,32,0


LEVEL27	DEFW	LEVEL28
	DEFB	20,17,16,18,80,17,36,16,20,17,16,18,80,17,36,16,21,17,16,17,16,17,18,16,17,18,20,34,21,17,16,17,16,17,18,16,17,18,20,34,21,17,48,35,117,17,48,35,117,17,18,16,33,16,33,16,18,17,37,17,18,16,33,16,33,16,18,17,53,17,16,18,19,32,18,16,19,17,53,17,16,18,19,32,18,16,19,17,21,18,21,18,16,33,16,18,17,16,33,21,18,21,18,16,33,16,18,17,16,33,21,17,21,17,32,17,67,17,20,21,17,21,17,32,17,67,17,20,21,20,17,20,17,16,65,16,17,37,20,17,20,17,16,65,16,17,37,20,17,20,80,17,16,20,18,17,20,17,20,80,17,16,20,18,17,52,17,16,33,32,18,36,17,52,17,16,33,32,18,36,33,20,33,80,17,18,20,33,20,33,80,17,18,20,33,36,17,96,17,20,33,36,17,96,17,20,17,0


LEVEL28	DEFW	LEVEL29
	DEFB	64,33,16,17,48,17,32,17,32,33,16,17,48,17,16,33,84,33,20,81,84,17,16,20,57,8,17,20,16,17,16,20,33,20,8,9,20,25,8,17,20,16,17,16,20,17,16,20,8,9,20,49,20,16,17,16,20,33,20,8,9,36,33,20,16,17,16,20,17,16,20,8,9,36,9,8,17,84,33,20,16,36,9,8,17,84,33,20,16,36,33,20,16,18,20,18,33,20,17,36,33,20,16,18,20,18,17,16,20,17,36,32,20,32,20,16,20,18,20,16,20,48,20,32,20,16,20,18,20,16,20,16,18,17,20,16,33,20,33,16,49,18,17,20,16,17,16,20,17,32,9,24,25,24,17,16,81,16,9,24,25,24,17,16,81,16,17,16,65,112,17,16,65,112,17,16,17,32,17,112,17,16,17,32,17,112,17,16,49,18,112,81,18,112,49,0


LEVEL29	DEFW	LEVEL30
	DEFB	21,32,17,20,32,20,32,21,32,21,32,17,20,32,20,32,21,18,16,21,32,17,20,80,21,32,21,32,17,20,16,18,48,21,32,37,32,20,32,52,21,20,17,37,32,20,32,52,21,20,17,16,21,18,36,32,20,17,16,21,20,17,18,21,18,36,32,20,17,16,21,20,33,69,33,21,20,16,21,20,33,69,33,21,20,16,21,20,49,37,18,33,21,18,20,21,18,49,37,18,33,21,18,20,21,18,49,37,33,21,36,37,18,49,37,33,21,36,37,18,33,32,18,17,48,33,53,17,32,18,17,32,17,32,53,65,16,17,18,33,16,17,20,21,65,16,17,18,49,16,20,21,49,80,49,16,20,49,80,49,16,36,160,20,17,20,160,20,33,20,16,17,96,20,17,19,17,20,16,17,96,20,17,19,0


LEVEL30	DEFW	LEVEL31
	DEFB	16,49,34,16,17,48,18,32,49,34,16,17,32,34,64,18,16,17,16,18,17,19,36,64,18,16,17,16,18,17,19,36,32,18,33,16,17,16,17,32,36,8,10,16,18,33,16,17,16,17,32,36,8,10,48,17,48,33,32,20,8,10,48,17,48,33,32,20,8,10,16,36,17,18,49,26,16,10,33,16,36,17,18,49,26,16,10,33,18,33,18,16,34,16,18,33,16,17,18,33,18,16,34,16,18,33,16,17,16,20,34,16,18,20,16,20,16,17,16,17,16,20,34,16,18,20,16,20,16,17,16,17,16,19,34,32,20,24,10,16,10,24,17,16,19,18,48,20,24,10,16,10,24,17,16,19,18,48,26,24,17,24,25,16,19,18,48,26,24,17,24,25,35,18,64,49,34,16,35,80,49,18,48,17,112,34,48,17,112,34,240,66,128,18,0

LEVEL31	DEFW	LEVEL32
	DEFB	48,18,52,32,33,80,18,52,32,33,80,17,16,52,18,33,80,17,16,52,18,33,32,35,33,18,33,16,17,35,32,35,33,18,33,18,17,35,16,18,33,48,17,16,49,37,18,33,48,17,18,49,37,16,17,21,48,20,16,20,16,17,37,20,17,21,48,20,16,20,16,17,37,36,21,16,18,16,17,16,18,16,17,37,36,21,16,18,16,17,16,18,16,17,37,36,21,32,33,48,17,37,36,21,32,33,48,17,37,20,16,21,16,18,16,65,37,33,16,21,16,18,16,65,37,33,16,21,48,65,34,17,32,21,48,65,34,17,32,18,48,17,32,17,48,17,34,48,17,96,17,18,16,49,64,33,64,49,64,33,176,33,80,18,80,33,32,0

LEVEL32	DEFW	LEVEL33
	DEFB	52,160,52,160,36,48,18,81,18,16,36,48,18,16,17,16,17,16,18,96,18,81,18,96,18,80,18,32,17,64,18,52,16,9,16,9,16,81,18,52,25,16,9,16,81,18,52,25,16,9,16,17,64,18,52,16,9,16,9,80,18,80,18,96,18,81,18,96,18,16,17,16,17,16,18,96,18,81,18,64,17,112,36,48,17,112,36,35,33,18,52,16,35,36,35,33,18,52,16,35,36,34,33,18,36,32,37,8,10,20,34,33,18,36,32,37,8,10,20,37,18,96,53,17,37,18,96,53,17,53,96,21,18,21,18,53,96,21,18,21,18,0

LEVEL33	DEFW	LEVEL34
	DEFB	48,17,80,33,80,17,80,33,32,35,64,17,36,33,37,35,64,17,36,33,37,35,16,37,16,9,8,36,32,37,35,16,37,16,9,8,36,32,37,32,9,8,37,32,17,16,17,80,9,8,37,32,17,16,17,32,18,32,33,32,37,48,17,48,33,32,37,48,17,16,37,33,32,37,18,17,16,35,37,33,32,37,18,17,18,35,37,32,18,33,37,17,16,35,37,32,18,33,37,17,16,35,40,18,40,34,16,20,18,72,18,40,34,16,20,18,96,18,20,34,16,36,96,18,20,34,16,36,32,17,16,17,16,36,48,18,48,17,16,17,16,36,64,17,32,18,16,33,96,33,16,18,16,33,96,33,18,33,8,10,112,18,36,33,8,10,112,18,36,0


LEVEL34	DEFW	LEVEL35
	DEFB	32,36,34,64,36,48,36,34,64,36,32,33,16,35,33,32,36,32,33,16,35,33,32,36,32,33,37,16,33,34,32,17,16,33,37,16,33,34,32,17,48,37,48,34,32,17,48,37,48,34,32,17,19,20,32,36,16,33,16,35,16,19,20,32,36,16,33,16,35,16,18,17,32,36,16,33,16,34,16,18,17,32,36,16,33,16,34,64,35,16,34,48,33,48,35,16,34,48,33,48,35,16,34,48,33,48,35,16,34,48,33,32,33,64,17,19,80,33,64,17,19,80,18,17,64,17,19,80,18,17,64,17,19,48,34,32,18,80,33,16,34,32,18,80,33,16,34,128,33,16,34,128,33,16,0


LEVEL35	DEFW	LEVEL36
	DEFB	16,18,33,16,52,16,33,18,32,18,33,16,52,16,33,18,32,37,20,80,36,21,32,37,20,80,36,21,16,10,8,53,16,21,17,21,16,36,37,10,8,53,16,21,17,21,16,36,37,16,21,20,17,21,48,21,17,20,21,32,21,20,17,21,48,21,17,20,21,32,21,20,33,16,17,19,21,17,18,21,18,16,21,20,33,32,19,21,17,18,21,34,21,20,17,21,17,32,21,17,20,21,16,18,21,20,17,21,33,16,21,17,20,21,32,21,20,16,21,48,37,16,21,32,21,20,16,21,48,37,16,21,16,9,8,21,20,16,37,18,53,16,37,9,8,21,20,16,37,18,53,16,69,20,16,101,16,69,20,16,101,16,37,16,34,17,34,16,18,33,34,32,34,17,34,16,18,33,34,248,184,10,40,17,80,18,40,18,40,17,80,18,40,10,0


LEVEL36	DEFW	0;  
	DEFB	16,19,16,51,16,19,16,19,16,19,32,19,16,51,16,19,16,19,16,19,16,20,32,17,80,19,48,20,32,17,80,19,48,20,51,20,19,17,19,20,51,16,20,51,20,19,17,19,20,51,16,17,19,17,36,17,32,20,17,20,32,17,19,17,36,17,32,20,17,20,32,20,32,51,16,51,20,35,20,32,51,16,51,20,35,20,19,16,19,32,17,16,20,17,20,32,20,19,16,19,32,17,16,20,17,20,32,34,16,18,16,17,34,20,8,9,34,64,18,16,17,16,18,20,8,9,34,64,18,16,17,32,18,33,36,48,18,16,33,16,18,33,36,24,10,17,34,17,18,16,49,18,17,24,10,17,16,18,17,32,49,16,17,32,33,64,17,96,33,64,17,192,49,32,18,112,49,32,34,176,66,128,18,0


LEVEL	DEFB	0















