	ORG	#6200
	
	DI
	LD	SP,#61FF
;	CALL	WG_REST
;	CALL	WG_OFF  
	JR	START_P

	NOP
HELLO   DEFM	"HELLO TO  : ARKAN,  J.V.B.,  SAM,   "
	DEFM	"KOROTKOV ELDAR,  D&K,   T.V.I.,   "
	DEFM	"L.Y.N.,  BRAIN,  KUTIN V.,   "
	DEFM	"VOVA-KILLER,   IWANSOFT,  ETC  ...   "
	NOP


START_P CALL	INIT_DR
	JR	ST_PROG

PRG_ERR CALL	WG_OFF
	CALL	PLAY_NO

ST_PROG DI
	LD	SP,#61FF
	CALL	SCR CLS

	LD	SP,#4038

	CALL	N_BREAK
	CALL	SOUND_l
	CALL	CH_OPEN
	CALL	MAK_FNT

START   CALL	PRT_MAS
	CALL	ONL_ENT
	JR	CONT_IN

AGAIN  	CALL	KEY_ENT
CONT_IN CALL	INIT
	CALL	PRT_CHK
	CALL	WG_ON
	CALL	WG_REST
	CALL	TEST_TV
	CALL	LOADER
DAT_XOR CALL	XOR_DAT
	CALL	RET_DAT
	CALL	WG_REST			

	CALL	RE_REST

	CALL	WG_REST
	CALL	WG_OFF
	CALL	PRT_FRM
	CALL	KEY_Y_N
	CALL	PRT_COP
	CALL	KEY_ENT
	CALL	PRT_RES
	CALL	WG_ON
	CALL	WG_REST

	CALL	WR_REST

	CALL	WG_REST
	LD	D,#00
	CALL	FORM_TR
	CALL	WG_REST
	CALL	SAV_CAT
	CALL	REST_TR
	CALL	WG_REST
	CALL	WG_OFF
	CALL	PRT_OK
	CALL	S0UND_1
	CALL	WG_PAUS
	CALL	ZVUK3
	JR	AGAIN

;------ ;

SCR_CLS XOR	A
	OUT	(#FE),A
	LD	(23624),A
	LD	HL,23295
	LD	DE,23294
	LD	ВС,6911
	LD	(HL),A
	LDDR
	RET

;------- ;


N_BREAK LD	HL,51697
	LD	(23746),HL
	RET

; ------ ;

CH_OPEN LD	A,#02
	CALL	5633
	RET

; ------ ;

INIT	LD	A,36
	LD	(MAX_FIL+1),A
	XOR	A
	LD	(NUM_FIL),A
	LD	HL,BUF_DAT
	LD	(BUF_IX),HL
FM_INIT LD	(FORM_TR),A
	LD	(REST_TR),A
	RET

; ------ ;

ONL_ENT LD	A,#BF
	IN	A,(#FE)
	RRA
	JR	С,ONL_ENT

	CALL	NC, S0UND_2
	RET

; ------ ;

KEY_ENT LD	A,#BF
	IN	A,(#FE)
	RRA
	JR	NC, PRS_ENT

KEY_SPC LD	A,#7F
	IN	A,(#FE)
	RRA
	JR	С,KEY_ENT

PRS_SPS JP	ST_PROG


PRS_ENT CALL	NC,S0UND_2
RET

; ------ ;

KEY_Y_N LD	A,#DF
	IN	A, (#FE)
	BIT	4,A
	JR	Z,PRS_Y


	LD	A,#7F
	IN	A, (#FE)
	BIT	3,A
	JR	NZ, KEY_Y_N

PRS_N   CALL	S0UND_2
	LD	A,#C9
	JR	FM_INIT

PRS_Y   CALL	S0UND_2
	XOR	A
	JR	FM_INIT

; ------ ;

NUM_FIL DEFB	#00

; ------ ;

BUF_IX    DEFW	BUF_DAT

; ------ ;

BOOT	DEFM	"boot    "

; ------ ;

LDI_DTM LD	HL, DAT_MEM
LDI_DT1 LD	DE,BUF_DAT
	LD	ВС,256
	LDIR
	RET

; ------ ;

MAK_FNT LD	HL,#3D00
	LD	DE,BUF_FNT
	PUSH	DE
	LD	ВС,768
M_FNT1  LD	A,(HL)
	RRA
	OR	(HL)
	LD	(DE),A
	INC	HL
	INC	DE
	DEC	ВС
	LD	А,В
	OR	С
	JR	NZ,M_FNT1
	POP	HL
	DEC	H
	LD	(23606),HL
	RET

; ------ ;	

PRT_MAS LD	DE,MAS_TXT
	JR	PRINT
PRT_COP LD	DE,COP_TXT
	JR	PRINT
PRT_FRM LD	DE,FRM_TXT
	JR	PRINT
PRT_CHK LD	DE,CHK_TXT
	JR	PRINT
PRT_WRK LD	DE,WRK_TXT
	JR	PRINT
PRT_RES LD	DE,RES_TXT
	JR	PRINT
PRT_OK  LD	DE,OK_TXT
	JR	PRINT
PRT_NO  LD	DE,NO_TXT

PRINT   LD	ВС,45
	JP	8252

; ------ ;

MAS_TXT DEFB	#16,#0A,#03,#11,#00,#10,#07,#13,#01
	DEFM	"    INSERT MASTER DISK    "
	DEFB	#16,#0C,#0C
	DEFM	"<ENTER>"

COP_TXT DEFB	#16,#0A,#03,#11,#00,#10,#06,#13,#01
	DEFM	"INSERT COPY OF MASTER DISK"
	DEFB	#16,#0C,#0C
	DEFM	"<ENTER>"


FRM_TXT DEFB	#16,#0A,#03,#11,#00,#10,#02,#13,#01
	DEFM	"RE-FORMAT CAT & F_TRACK ? "
	DEFB	#16,#0C,#0C
	DEFM	"< Y/N >"


CHK_TXT DEFB	#16,#0A,#03,#11,#00,#10,#04,#13,#01
	DEFM	"NOW CHECKING LABEL OF DISK"
	DEFB	#16,#0C,#0C
	DEFM	"	"


WRK_TXT DEFB	#16,#0A,#03,#11,#00,#10,#05,#13,#01
	DEFM	"  NOW LOADING & DECODING  "
	DEFB	#16,#0C,#0C
	DEFM	"	"


RES_TXT DEFB	#16,#0A, #03,#11,#00,#10,#05,#13,#01
VER_RES DEFM	"NOW RESTORING - FANTOM 4.5"
	DEFB	#16,#0C,#0C
	DEFM	"	"


OK_TXT  DEFB	#16,#0A,#03,#11,#00,#10,#04,#13,#01
	DEFM	"DISK RESTORED, INSERT NEXT"
	DEFB	#16,#0C,#0C
	DEFM	"<ENTER>"


NO_TXT  DEFB	#16,#0A,#03,#11,#00,#10,#03,#13,#01
	DEFM	"NO FANTOM NUMBER 4.0 - 4.5"
	DEFB	#16,#0C,#0C
	DEFM	"<ENTER>"

; ------ ;

ТЕST_TV CALL	CATALOG


	LD	IX,NAME_DI	; NAME OF DISK = TV_._ #10
	LD	A,(IX+#00)
	CP	"T"
	JP	NZ,NO_FPS
	LD	A,(IX+#01)
	CP	"V"
	JP	NZ,NO_FPS
	LD	A,(IX+#03)
	CP	"."

; ------ ;

	JP	NZ,NO_FPS
	LD	A,(IX+#05)
	CP	#10
	JP	NZ,NO_FPS

; ------ ;

	LD	A,(IX+#02)
	CP	#31
	JR	Z,FPS_1X
	CP	#32
	JR	Z,FPS_2X
	CP	#33
	JR	Z,FPS_3X
	CP	#34
	JP	NZ,NO_FPS

; ------ ;

FPS_4X  LD	A,(IX+#04)
	CP	#30
	JP	Z,FPS_4 0
	CP	#31
	JP	Z,FPS_41
	CP	#32
	JP	Z,FPS_42
	CP	#35
	JP	Z,FPS_45
	JP	NZ,NO_FPS

; ------ ;

FPS_3X  LD	A,(IX+#04)
	CP	#30
	JP	Z,FPS_30
	CP	#31
	JP	Z,FPS_31
	JP	NZ,NO_FPS

; ------ ;

FPS_2X  LD	A,(IX+#04)
	CP	#30
	JP	Z,FPS_20
	JP	NZ,NO_FPS

; ------ ;

FPS_1X  LD	A,(IX+#04)
	CP	#30
	JP	Z,FPS_10
	CP	#31
	JP	Z,FPS_11
	CP	#32
	JP	Z,FPS_12
	CP	#33
	JP	Z,FPS_13
	CP	#34
	JP	Z,FPS_14
	JP	NZ,NO_FPS

; ------ ;

NO_FPS  CALL	WG_OFF
	CALL	PRT_NO
	CALL	S0UND_3
	CALL	WG_PAUS

	CALL	PLAY_NO

	CALL	KEY_ENT
	POP	AF
	JP	START

; ------ ;

YES_FPS CALL	INI_VER		; HL
	CALL	INI_YES		; IX

	CALL	PRT_WRK
	CALL	PLAY_YE

	LD	IX,BUF_CAT
	LD	ВС,16
AGAIN_8 PUSH	ВС
	PUSH	IX
	LD	A,(IX+#00)
	OR	A
	JP	Z,QUIT_F8
	CP	#01
	JP	Z,NXT_FIL
	LD	A,(IX+#08)
	CP	#42
	JP	NZ,NXT_FIL

	PUSH	IX
	LD	B,#08
	LD	HL,BOOT
CP_BT_0 LD	A,(HL)
	CP	(IX+#00)
	JR	NZ,CON_YES
	INC	HL
	INC	IX
	DJNZ	CP_BT_0
	POP	IX
	JR	NXT_FIL

CON_YES POP	IX

	LD	A,(IX+#09)

CAT_9_0 CP	#DC
	JR	NZ,NXT_FIL
	LD	A,(IX+#OA)
CAT_A_0 CP	#00
	JR	NZ,NXT_FIL
	LD	A,(IX+#0B)
CAT_B_0 CP	#DC
	JR	NZ,NXT_FIL
	LD	A,(IX+#0C)
CAT_C_0 CP	#00
	JR	NZ,NXT_FIL
	LD	A,(IX+#0E)
	CP	#08
	JR	NZ,NXT_FIL

FANT_TR LD	A,(IX+#0F)
	LD	(LOADER+1),A
	LD	(FPS_TRK+1),A
	LD	(TRK_FAN+1) ,A
	LD	(S53_TR1+1),A
	LD	(S53_TR2+1),A

	OR	A
	JR	Z,C0NT_T1
	LD	A,#20
	JR	CONT_T2
C0NT_T1 LD	A,#24
CONT_T2 LD	(WG_CODE+1),A
	CALL	LOAD_FN

	POP	IX
	POP	ВС
	RET

QUIT_F8 POP	IX
	POP	ВС


	POP	AF
	JP	NO_FPS

NXT_FIL POP	IX
	POP	ВС
	ADD	IX,ВС
	JP	AGAIN_8

; ------ ;

LOAD_FN LD	HL,BUF_LD
	LD	ВС,#0105
FPS_TRK LD	D,#00
	LD	E,#08
	CALL	DISK_DR
	RET

; ------ ;

CATALOG LD	HL,BUF_CAT
	LD	DE,#0000
	LD	ВС,#0905
	CALL    DISK_DR
	RET

; ------ ;


INI_YES LD	A,(IX+#00)
	LD	(CAT_9_0+1),A
	LD	(CAT_9_1+1),A
	LD	A,(IX+#01)
	LD	(CAT_A_0+1),A
	LD	(CAT_A_1+1),A
	LD	A,(IX+#02)
	LD	(CAT_B_0+1),A
	LD	(CAT_B_1+1),A
	LD	A,(IX+#03)
	LD	(CAT_C_0+1),A
	LD	(CAT_C_1+1),A
	RET

; ------ ;

INI_VER LD	A,H
	LD	(VER_RES+#17),A
	LD	A,L
	LD	(VER_RES+#19),A
	RET

; ------ ;

LOADER  LD	D,#00
	LD	A,D
	LD	(LOAD_TR+1) ,A
	CALL	TRACK


	CALL	INIT_R
LOAD_3  LD	ВС,#07OA
LOAD_2  LD	DE,F42_PAT
	LD	HL,BUF_LD
LOAD_l  LD	A,(DE)
	CALL	SECTOR
	JR	NZ,LOAD_ER
	INC	H
	INC	DE
	DJNZ	LOAD_l
	RET


LOAD_ER PUSH	HL
	LD	HL,LOAD_2
	LD	(TREAT_A+1),HL
	POP	HL
LOAD_TR LD	D,#00
	
	CALL	TREAT_E

	JP	Z,ST_PROG
	JR	С,L0AD_3
	JP	NC,ST_PROG

; ------ ;

LD_S53  CALL	INIT_R
S53_TR1 LD	D,#00
	CALL	TRACK

AGN_D53 LD	C,#OA
AGN_S53 LD	HL,BUF_LD
	LD	A,#53
	CALL	SECTOR
	RET	NZ


S53_ERR PUSH	HL
	LD	HL,AGN_S53
	LD	(TREAT_A+1),HL
	POP	HL


S53_TR2 LD	D,#00
	CALL	TREAT_E

	JP	Z,ST_PROG
	JR	C,AGN_D53
	JP	NC,ST_PROG

; ------ ;

RET_DAT LD	IX,BUF_CAT
	LD	ВС,16
AGAIN_1 PUSH	ВС
	PUSH	IX
	LD	A,(IX+#00)
	OR	A
	JR	Z,QUIT_L1
	CP	#01
	JR	Z,NEXT_FL
	LD	A,(IX+#08)
	CP	#42
	JR	NZ,NEXT_FL

	PUSH	IX
	LD	B,#08
	LD	HL,BOOT
CP_BT_1 LD	A,(HL)
	CP	(IX+#00)
	JR	NZ,CP_FANT
	INC	HL
	INC	IX
	DJNZ	CP_BT_1
	POP	IX
	JR	NEXT_FL

CP_FANT POP	IX

	LD	A, (IX+#09)
CAT_9_1 CP	#DC
	JR	NZ,QUIT_L1
	LD	A, (IX+#OA)
CAT_A_1 CP	#00
	JR	NZ,QUIT_L1
	LD	A,(IX+#0B)
CAT_B_1 CP	#DC
	JR	NZ,QUIT_L1
	LD	A,(IX+#0C)
CAT_C_1 CP	#00
	JR	NZ,QUIT_L1
	LD	A,(IX+#0E)
	CP	#08
	JR	NZ,QUIT LI

	PUSH	IX


NO_BOOT POP	HL
	LD	ВС,#09
	ADD	HL,ВС
	EX	DE,HL
	CALL	LDI_DAT
	LD	HL,NUM_FIL
	INC	(HL)
	LD	A,(HL)
MAX_FIL CP	36
	JR	С,NEXT_FL
QUIT_L1 POP	IX
	POP	ВС
	RET

NEXT_FL POP	IX
	POP	ВС
	ADD	IX,ВС
	JR	AGAIN_1

LDI_DAT LD	IX,(BUF_IX)
	LD	B,#07
B7_LDIR LD	A,(IX+#00)
	LD	(DE),A
	INC	IX
	INC	DE
	DJNZ	B7_LDIR
	LD	(BUF_IX),IX
	RET

; ------ ;

RE_REST LD	A,#05
	LD	(D_MODE+l),A
	XOR	A
	LD	(JR_MD_3),A
	JR	RESTORE


WR_REST LD	A,#06
	LD	(D_MODE+l),A
	LD	A,#C9
	LD	(JR_MD_3),A

; ------ ;

RESTORE LD	IX,BUF_DAT
	LD	A,(NUM_FIL)
	OR	A
	JP	Z,PRG_ERR
	CP	37
	JP	NC,PRG_ERR
	LD	B,A
	LD	HL,BUF_LD
REST_1  PUSH	ВС
	LD	В,1
	LD	E,(IX+#05)
	LD	A,E
	CP	16
	JP	NC,PRG_ERR
	LD	D,(IX+#06)
	LD	A,D
	CP	160
	JP	NC,PRG_ERR
	PUSH	HL
	PUSH	IX
D_MODE  LD	C,#05
	CALL	DISK_DR
	POP	IX
	POP	HL
	LD	ВС,#07
	ADD	IX,ВС
	POP	ВС
	INC	H
	DJNZ	REST_1
JR_MD_3 NOP
BAS_XOR CALL	XOR_BAS
	RET

; ------ ;

REST_TR NOP


TRK_FAN LD	D,#00

	CALL	TRACK
	LD	HL,BUF_LD
	LD	ВС,#0905
	LD	E,#00
	PUSH	DE

	CALL    DISK_DR
	POP	DE
	PUSH    DE
	CALL    FORM_TR
	POP	DE
	LD	HL,BUF_LD
	LD	ВС,#0906
	LD	E,#00
	CALL	DISK_DR
	RET

; ------ ;


FORM_TR NOP

	CALL	TRK_MOD
	LD	(CHK_FRM+1),A
	CALL	TRACK
	LD	HL,#5CD8
	LD	A,(HL)
	LD	(BUF_CD8+1) ,A
	LD	A,#01
	LD	(HL),A

	XOR	A
	CALL	TO_3F
	LD	A,#0A
	CALL	TO_5F

	CALL	TRK_MOD
	LD	E,A


	LD	HL,PATTERN
	LD	A,#F0
	CALL	T0_1F
	PUSH	DE
	CALL	FORMAT
	POP	DE

	PUSH	AF
BUF_CD8 LD	A,#00
	LD	(#5CD8),A
	POP	AF

	CP	#0A

	JR	NZ,CHK_FRT


	LD	С,#01			; WRITE PROTECTION
	CALL	TREAT_E


	JP	Z,ST_PROG
	JR	С,FORM_TR
	JP	NC,ST_PROG


CHK_FRT CALL	INIT_R


CHK_FRM LD	A,#00
	CALL	TO_3F
	LD	E,#01


	LD	HL,BUF_SEC
	LD	ВС,#1001
CHK_F01 LD	A,E
	CALL	SECTOR
	JR	NZ,ERR_FRM
	INC	E
	DJNZ	CHK_F01
	RET

ERR_FRM CALL	TREAT_E
	JP	Z, ST_PROG
	JR	С,FORM_TR
	JP	NC,ST_PROG

PATTERN DEFB	#01,#02,#03,#04,#05,#06,#07,#08
	DEFB	#09,#0A,#0B,#0C,#0D,#0E,#0F,#10

; ------ ;

SAV_CAT CALL	M_NAME

	LD	HL,BUF_CAT
	LD	DE,#0000
	LD	ВС,#0906
	CALL	DISK_DR
	RET

; ------ ;

M_NAME  LD	HL,NAME_DS
	LD	DE,NAME_DI
	LD	ВС,#08
	LDIR
	RET

NAME_DS DEFM	"RESTORED"

; ------ ;

SOUND_1 LD	HL,408
	LD	DE,104
	CALL	949
	DI
	LD	HL,340
	LD	DE,141
	CALL	949
	DI
SOUND_2 LD	HL,250


	LD	DE,174
	CALL	949
	DI
	RET

; ------ ;

S0UND_3 LD	A,(23624)
	RRA
	RRA
	RRA
	LD	B,#FF
	LD	С,#FE
SND_3_1 DEC	H
	JR	NZ,SND_3_2
	XOR	#10
	OUT	(C),A
	LD	H,#EE
SND_3_2 DEC	L
	JR	NZ, SND_3_1
	XOR	#10
	OUT	(C) ,A
	LD	L,#FE
	DJNZ	SND_3_1
	RET

; ------ ;

ZVUK3  	LD	HL,MUS_OK	; MESSAGE FOR T.V.I. : "DO YOU
	LD	DE,#0C2A		; KNOW THIS SUBROUTINE ???!!!"
	LD	ВС,#FFFD
	LD	A,#07
	OUT	(C),A

	LD	А,В
	LD	B,#BF
	OUT	(C),A

LL1	CALL	CHANN
	LD	A,(HL)
	AND	#0F
	CALL	SOUND


	CALL	CHANN
	LD	A,(HL)
	AND	#F0
	RRCA
	RRCA
	RRCA
	RRCA
	CALL	SOUND

	INC	HL
	DEC	DE
	LD	A,D
	OR	E
	JR	NZ,LL1

	LD	В,#BF
	XOR	A
	OUT	(C),A
	DI


CHANN  	LD	В,#FF
	LD	A,#09
	OUT	(C),A
	RET

SOUND   OR	#A0
	LD	B,#BF
	OUT	(C),A
	LD	A,#0F
LL2	DEC	A
	JR	NZ,LL2
	RET

; ------ ;

PLAY_NO LD	HL,MUS_ONO
	LD	(ADR_SND+1),HL
	JR	ZVUK4

PLAY_YE LD	HL,MUS_YEA
	LD	(ADR_SND+1),HL

ZVUK4   EXX				; PLAYER FROM "LENINGRAD  128"
	PUSH	ВС				; (С)   1995 AGAEV E.
	PUSH	DE
	LD	ВС,#FFFD
	LD	DE,#0908
	EXX
	CALL	ZVUK4_3
ADR_SND LD	HL,MUS_YEA
	LD	DE,#1F40
	LD	ВС,#BFFD
ZVUK4_1 PUSH	DE
	PUSH	HL
	NOP
	EXX
	OUT	(C),E
	EXX
	LD	A,(HL)
	SRL	A
	SRL	A
	SRL	A
	SRL	A
	OUT	(C) ,A
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	LD	A, (HL)
	AND	#0F
	EXX
	OUT	(C),D
	EXX
	LD	D,#06
ZVUK4_2 DEC	D
	JR	NZ, ZVUK4_2
	OUT	(C),A
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	POP	HL
	INC	HL
	POP	DE
	DEC	DE
	LD	A, D
	OR	E
	JR	NZ, ZVUK4_1
	LD	ВС,#FFFD
	LD	E,#08
	OUT	(C),E
	LD	B,#BF
	XOR	A
	OUT	(C),A
	LD	В,#FF
	INC	E
	OUT	(C),E
	LD	В,#BF
	OUT	(C),A
	EXX
	POP	DE
	POP	ВС
	EXX
	RET
ZVUK4_3 LD	ВС,#FFFD
	LD	A,#07
	OUT	(C),A
	LD	В,#BF
	LD	A,#3F
	OUT	(C) ,A
	RET
	LD	А,С
	RET

; ------- DISK - DRIVER ------ ;

DISK_DR DI
;	LD	DE,(#5CF4)
	PUSH	HL
	LD	А,В
	BIT	0,C
	JR	Z,WRITE
READ    LD	BC,#80E5
	JR	INIT_RW
WRITE   LD	BC,#AOCA
INIT_RW LD	HL,SECT+1
	LD	(HL),B
	LD	HL,MODE+2
	LD	(HL),C
	
	LD	HL, REPEAT
	LD	(TREAT_A+1),HL

	LD	В,A
	POP	HL

	CALL	TRACK
AGAIN_D LD	C,10		; RETRY CONSTANT
; BREAK CALL	#1F54
;	JR	NC,EXIT


REPEAT  LD	A,E
	INC	A
	CALL	SECTOR
	JR	Z,NEXT_SC

	CALL	TREAT_E

	JP	Z,ST_PROG	;  IF ABORT    MODE
	JR	С,AGAIN_D	;  IF RETRY    MODE
;	JR	NC,NEXT SC	;  IF IGNORE MODE

NEXT_SC INC	E
	BIT	4,E
	JR	Z,NEW_BUF
	LD	E,#00
	INC	D
	LD	А,В
	DEC	A
	CALL	NZ,TRACK

NEW_BUF INC	H
	DJNZ	AGAIN_D

EXIT    DI
;	LD	(#5CF4),DE
	RET

TREAT_E PUSH	ВС
	CALL	RES_A_T
	POP	ВС
	DEC	С
	JR	Z,DSK_ERR
	POP	AF
TREAT_A JP	REPEAT


DSK_ERR CALL	WG_OFF

	EXX
	PUSH	HL
	CALL	SPR_ON
	POP	HL
	EXX

KEY_R   LD	A, #FB
	IN	A, (#FE)
	BIT	3,A
	JR	Z,RETRY
KEY_I   LD	A,#DF
	IN	A,(#FE)
	BIT	2,A
	JR	Z,IGNORE
KEY_A   LD	A,#FD
	IN	A,(#FE)
	RRA
	JR	С, KEY_R

ABORT   CALL	REST_DR
	XOR	A
	RET

RETRY   CALL	REST_DR
	XOR	A
	CP	#01
	RET

IGNORE  CALL	REST_DR
	XOR	A
	CP	#01
	CCF
	RET

REST_DR EXX
	PUSH	HL
	CALL	SPR_OFF
	POP	HL
	EXX
WG_ON   CALL	PHYSIC
	EX	AF, AF'
	LD	A,#D0
	CALL	T0_1F
	XOR	A
PAUSE   DEC	A
JR	NZ,PAUSE
	EX	AF, AF'
	CALL	TO_3F
	JR	TRACK

RES_A_T CALL	WG_REST

TRACK   LD	A,D
	LD	(BUF_TRK) ,A
	CALL	PHYSIC
	CALL	TO_7F
	LD	A,#18
FIND_TR CALL	T0_1F
	CALL	READY
	DI
WG_PAUS PUSH	AF
	PUSH	ВС
	LD	A,#50
	LD	C,#00
PAUSE_S DEC	С
	JR	NZ, PAUSE_S
	DEC	A
	JR	NZ, PAUSE_S
	POP	ВС
	POP	AF
	RET

BUF_TRK DEFB	#00

WG_REST XOR	A
LD	(BUF_TRK),A
	LD	A,#08
	JR	FIND_TR

PHYSIC  LD	A,(BUF_TRK)
	LD	D,A


DRV_NUM LD	A,#3C
JR_MODE JR	SIDE
SIDE    BIT	0,D
	JR	Z,SIDE_FF
	RES	4,A
SIDE_FF CALL	TO_FF

TRK_MOD LD	A,D
	NOP
	AND	A
	RRA
	RET

SECTOR  PUSH	HL
	PUSH	ВС
	CALL	TO_5F

SECT    LD	A,#80
	CALL	T0_1F
	LD	C,#7F
MODE    LD	IX,#3FE5
	CALL	TO_DOS

CHECK   LD	A,(#5CD6)
	EX	AF,AF'

	LD	ВС,VERIFY
	PUSH	ВС

CHECK_M LD	BC,CHECK_M
	PUSH	ВС
	LD	B,#01
	PUSH	ВС
II	LD	IX,#2099
	JR	TO_DOS

VERIFY  DI
	EX	AF,AF'
	LD	HL,#5CD6
	CP	(HL)
	LD	(HL),A
	POP	ВС
	POP	HL
	RET

WG_OFF  LD	A,#3C
	AND	#03

TO_FF   LD	С,#FF


TO_WG93 LD	IX,#2A53
	JR	TO_DOS

T0_1F   LD	C,#1F
	JR	TO_WG93

TO_3F   LD	C,#3F
	JR	TO_WG93

TO_5F   LD	C,#5F
	JR	TO_WG93

TO_7F   LD	C,#7F
	JR	TO_WG93

READY   LD	IX,#3EF5
	JR	TO_DOS

FORMAT  LD	IX,#2005

TO_DOS  PUSH	IX
	JP	#3D2F

INIT_DR LD	A,(#5CF6)
	LD	HL,#5CC8
	ADD	A,L
	LD	L,A
	BIT	1,(HL)
	JR	NZ, DRIVE_N

	LD	A,#06
	LD	(JR_MODE+1),A
	LD	A,#C9
	LD	(TRK_MOD+1),A

DRIVE_N LD	A,(#5D16)
	SET	4,A
	LD	(DRV_NUM+1),A
	LD	(WG_OFF+1),A

DOS_VER LD	H,#00
	LD	IX,#0516
	CALL	TO_DOS
	LD	A,H
	OR	A
DOS_503 RET	Z

DOS_501 LD	HL,TO_WG93+2
	LD	(HL),#09
	LD	HL,READY+2
	LD	(HL),#EB
	LD	HL,I1+2
	LD	(HL),#5D	;  ?
	LD	HL,FORMAT+2
	LD	(HL),#92	;  ?
	LD	HL,READ+1
	LD	(HL),#DB
	LD	HL,WRITE+1
	LD	(HL),#C0
	RET

INIT_R  PUSH	HL
	PUSH	ВС
	LD	BC,#80E5
	LD	HL,SECT+1
	LD	(HL),B
	LD	HL,MODE+2
	LD	(HL),C
	POP	ВС
	POP	HL
	RET

INIT_W   PUSH	HL
	PUSH	ВС
	LD	BC,#A0CA
	LD	HL,SECT+1
	LD	(HL),B
	LD	HL,M0DE+2
	LD	(HL),C
	POP	ВС
	POP	HL
	RET


; --- PRINT "RETRY, IGNORE, ABORT" --- ;


CONT_1  XOR	A
	CALL	ATR_COP

CONT_2  XOR	A
	CALL	ATR_CLS
	LD	HL,ERROR_l
	LD	DE,#50C6
	CALL	PRINT_S
	LD	DE,#50E6

PRINT_S LD	C,#08
PRINT_1 PUSH	DE
	LD	B,#14
PRINT_2 LD	A,(DE)
	EX	AF,AF'
	LD	A,(HL)
	LD	(DE),A
	EX	AF,AF'
	LD	(HL),A
	INC	HL
	INC	DE
	DJNZ	PRINT_2
	POP	DE
	INC	D
	DEC	С
	JR	NZ,PRINT_1
	RET

SPR_OFF CALL	CONT_2

	LD	A,#EB
ATR_COP LD	(BUF_BT1),A
	LD	(BUF_BT2),A
	LD	HL,#5AC6
	LD	DE,ATR_1
	CALL	BUF_BT2
BUF_BT1 NOP
	LD	L,#E6
BUF_BT2 NOP

ATR_SCN LD	ВС,20
ATR_SC1 LDIR
	RET

SPR_ON  CALL	CONT_1
	LD	A,#46

ATR_CLS LD	HL,#5AC6
	CALL	ATR_FIL
	LD	L,#E6

ATR_FIL LD	D,H
	LD	E,L
	INC	DE
	LD	ВС,19
	LD	(HL),A
	JR	ATR_SC1


ERROR_l DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#7F,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
	DEFB	#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FE
	DEFB	#7F,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
	DEFB	#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FE
	DEFB	#60,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#06
	DEFB	#60,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#06
	DEFB	#63,#88,#00,#00,#00,#00,#00,#0E,#01,#00
	DEFB	#00,#47,#00,#00,#00,#02,#19,#00,#01,#06
	DEFB	#62,#40,#C9,#06,#52,#8C,#A0,#09,#31,#14
	DEFB	#90,#42,#33,#8C,#A3,#02,#25,#06,#51,#06
	DEFB	#62,#59,#0A,#09,#6B,#52,#D1,#09,#4B,#9A
	DEFB	#90,#82,#4A,#52,#D4,#84,#25,#C9,#6B,#86

	DEFB	#62,#48,#CC,#0E,#42,#12,#80,#0E,#71,#10
	DEFB	#90,#82,#4A,#52,#87,#04,#3D,#29,#41,#06
	DEFB	#62,#48,#2A,#08,#42,#12,#81,#09,#41,#10
	DEFB	#71,#02,#3A,#52,#84,#08,#25,#29,#41,#06
	DEFB	#63,#9D,#C9,#06,#42,#0C,#80,#09,#30,#D0
	DEFB	#11,#07,#0A,#4C,#83,#08,#25,#C6,#40,#C6
	DEFB	#60,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#60,#00,#30,#00,#00,#00,#00,#00,#00,#06
	DEFB	#60,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#06
	DEFB	#7F,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
	DEFB	#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FE
	DEFB	#7F,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
	DEFB	#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FE
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00

ATR_1   DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00


ATR_2   DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00
	DEFB	#00,#00,#00,#00,#00,#00,#00,#00,#00,#00

; ------ ;

	.INCLUDE	A_FPS2_4

;MUS_OK .INCBIN    VOICE_AY

MUS_YEA EQU	MUS	OK+3328

MUS_ONO EQU	MUS_YEA+8192

; ------ ;

BUF_FNT DEFS	03*256,#00
BUF_SEC DEFS	01*256,#00
BUF_DAT DEFS	01*256,#00

BUF_CAT DEFS	09*256, #00
NAME_DI EQU	BUF_CAT+2293


BUF_LD  DEFS	36*256,#00
FST_MEM EQU	BUF_LD+#0047
SND_MEM EQU	BUF_LD+#047F
FST_M45 EQU	BUF_LD+#0047
SND_M45 EQU	BUF_LD+#046F

DAT_MEM EQU	BUF_LD+#0503
XOR_MEM EQU	BUF_LD+#0323




; --- ANTI FANTOM PROTECTION SYSTEM 4.5 END VERSION —-- ;

FPS_45	LD	IX,F45_CAT
	LD	HL,#3435
	CALL	YES_FPS


	LD	HL,XO_D_45
	LD	(DAT_XOR+l),HL
	LD	HL,XO_B_45
	LD	(BAS_XOR+l),HL
	LD	HL,F45_PAT
	LD	(LOAD_2+1),HL
	LD	A,#05
	LD	(RES_TXT+6) ,A

; ------ ;

CALL	LOAD_FN

WG_CODE LD	A,#24
	LD	B,219
	LD	HL,BUF_LD
ADD_B45 ADD	A,(HL)
	INC	HL
	DJNZ	ADD_B45
	ADD	A,#1A
	LD	(BAS_S45+4),A
	LD	(BAS_X45+1),A
	LD	(BAS_SM5+1),A


; ------ ;

	CALL	LD_S53

	LD	HL,BUF_LD+1
	LD	A,#01
	LD	B,30
SUM_S53 ADD	A,(HL)
	INC	HL
	DJNZ	SUM_S53
	LD	(S53_F45+4),A

	LD	IX,BUF_LD
	LD	A,(IX+#01)
	LD	(C53_F45+1),A

; ------ ;

	CALL	LOADER

	LD	HL,FST_M45
	LD	A,#62
	XOR	#40
	XOR	#80
	XOR	#40
	XOR	#93
	XOR	(HL)
	XOR	#48
	XOR	#47

	LD	(FR_CD45+1),A
	LD	(KEY_DAT+1),A

	LD	(C_D_451+1),A
	LD	(X_D_451+1),A
	AND	#0F
	LD	(C_D_450+1) ,A
	LD	(X_D_450+4),A

; ------ ;

	LD	A,#08
	LD	B,39
X_45_X2 PUSH	ВС
	LD	HL,XR_AD45
	LD	B,76
X_45_X1 ADD	A,(HL)
	INC	HL
	SUB	(HL)
	INC	HL
	DJNZ	X_45_X1
	POP	ВС
	PUSH	AF
	LD	А,В
	CP	#02
	JR	NZ,C0NT_S1
	POP	AF
	LD	(LST__SUM+1) ,A
	LD	(LAST_XR+1) ,A
	JR	CONT_S2
CONT_Sl POP	AF
CONT_S2 DJNZ	X_45_X2
	LD	(XR_SM45+1) ,A

; ------ ;

	XOR	A
	LD	B,39
X_45_L2 PUSH	ВС
	LD	HL,LAST_SM
	LD	B,86
X_45_L1 ADD	A, (HL)
	INC	HL
	DJNZ	X_4 5_L1
	POP	ВС
	DJNZ	X_4 5_L2
	LD	(XR_SU45+1),A

; ------ ;

	LD	HL,SND_M45
	LD	A, #02
	XOR	#40
	XOR	#80
	XOR	#40
	XOR	#93
	XOR	(HL)
	XOR	#4С
	XOR	#6F
	LD	(HL),A
	LD	A,#36
	XOR	#3F
	XOR	#48
	XOR	(HL)

FR_CD45 XOR	#3F

	XOR	#09
	XOR	#04
	LD	В,A
	LD	A,#40
	XOR	В
	XOR	#4С
	XOR	#6F
	LD	(HL),A
	LD	A,#1F
	XOR	(HL)
	XOR	#B9
	XOR	#03
	LD	(HL),A
	LD	A,#7C
	XOR	(HL)

XR_SM45 XOR	#2B

LST_SUM XOR	#70

	XOR	#EB
	XOR	#E6
	LD	(HL),A
	LD	A,#11
	XOR	(HL)

BAS_X45 XOR	#E0

	XOR	#02
	XOR	#38
	XOR	#F6
	XOR	#53


XR_SU45 XOR	#E8

LAST_XR XOR	#86


	XOR	#00
	XOR	#DC
	XOR	#8C
	XOR	#DE
	XOR	#7E
	XOR	#4A
	XOR	#34
	LD	(HL),A
	LD	A,#32
	XOR	(HL)
	XOR	#43
	LD	(HL),A
	LD	A,(HL)

C53_F45 XOR	#3D

	XOR	#F7

	LD	(C_B_451+1),A
	LD	(X_B_451+1),A
	AND	#0F
	LD	(C_B_450+1),A
	LD	(X_B_450+3),A

; ------ ;

	LD	HL,XOR_MEM+148-1
	LD	DE,#4BB6
	LD	B,148
	LD	A,#3E-2
	LD	R, A
ST_C0D1 LD	A,R
	NOP

	NOP
	XOR	#40
	XOR	#80
	NOP
	NOP
	NOP
	XOR	#40
	XOR	#93
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	XOR	(HL)
	XOR	D
	XOR	E
	LD	(HL),A
	DEC	DE
	DEC	HL
	NOP
	DJNZ	ST_COD1

; ------ ;

	LD	IX,XOR_MEM+148-1
	LD	IY,#4BB6
	LD	DE,#0350
	LD	C,148

	LD	A, #60-2
	LD	R,A

ST_COD2 NOP
	NOP
	NOP
	NOP

	LD	A,R
	XOR	#3F
	XOR	#48
	XOR	(IX+#00)

KEY_DAT XOR	#3F

	XOR	E
	XOR	D
	BIT	0,E
	DEC	DE
	JR	Z,LOOP_2
	LD	B,A
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	LD	A,#80
	RRCA
	XOR	В

LOOP_2  DEFB	#FD,#AC
	DEFB	#FD,#AD
	LD	(IX+#00),A
	DEC	IX
	DEC	IY
	DEC	С
	JR	NZ,ST_COD2

; ------ ;

	LD	HL,XOR_MEM+148-1
	LD	ВС,#0300
	LD	D,148

	LD	A, #76-2
	LD	R, A

ST_COD3 LD	A,R
	XOR	(HL)
	XOR	С
	XOR	В
	CALL	AD_RETN
	DI
	LD	(HL),A
	DEC	HL
	DEC	ВС
	NOP
	DEC	D
	JR	NZ,ST_COD3

; ------ ;

	LD	IX,BUF_C04
	LD	A,#C1
	LD	(CD03_X4-1),A

; ------ ;

	LD	HL,#F110
	LD	(CD03_X4+0),HL
	LD	HL,#DF06
	LD	(CD03_X5+1),HL
	LD	A,#C5
	LD	(CD03_X5+3),A

	LD	A,#08
	LD	B,148+1
CD03_X5 PUSH	ВС
	LD	B,223
CD03_X2 PUSH	ВС
	LD	HL,XR_AD45
	LD	B,76
CD03_X1 ADD	A,(HL)
	INC	HL
	SUB	(HL)
	INC	HL
	DJNZ	CD03_X1
	POP	ВС
CD03_X4 DJNZ	CD03_X2
	PUSH	AF
	XOR	A
	LD	(CD03_X4-1),A
	LD	(CD03_X4+0),A
	LD	(CD03_X4+1),A
	LD	(CD03_X5+1),A
	LD	(CD03_X5+2),A
	LD	(CD03_X5+3),A
	POP	AF
	LD	(IX+#00),A
	INC	IX
	POP	ВС
	DJNZ	CD03_X5

	LD	D,148
	LD	HL,XOR_MEM+148-1
	LD	IX,BUF_C04		; fuck1
	EXX
	LD	HL,#EB2D
	EXX

	LD	A,#2D-2
	LD	R,A

ST_COD4 LD	A,R
	NOP
	NOP
	XOR	(HL)
	NOP
	PUSH	HL
	NOP
	LD	B,76
	EX	AF, AF'
ST_CD41 NOP
	NOP
	LD	A,(IX+#01)
	DJNZ    ST_CD41
	LD	H,A
	NOP
	NOP
	NOP
	EX	AF, AF'
	XOR	H
	POP	HL
	NOP
	EXX
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	XOR	(IX+#00)
	XOR	H
	XOR	L
	DEC	HL
	EXX
	LD	(HL),A
	DEC	HL
	NOP
	INC	IX
	DEC	D
	JR	NZ,ST_COD4

; ------ ;

LD	IX,KEYS_45

	LD	A,#C1
	LD	(CD05_X4-1),A
	LD	HL,#F310
	LD	(CD05_X4+0),HL
	LD	HL,#E006
	LD	(CD05_X5+1),HL
	LD	A,#C5
	LD	(CD05_X5+3),A

	XOR	A
	LD	B,148
CD05_X5 PUSH	ВС
	LD	B,224
CD05_X2 PUSH	ВС
	LD	HL,LAST_SM
	LD	B,86
CD05_X1 ADD	A,(HL)
	INC	HL
	DJNZ	CD05_X1
	POP	ВС
CD05_X4 DJNZ	CD05_X2
	PUSH	AF
	XOR	A
	LD	(CD05_X4-1),A
	LD	(CD05_X4+0),A
	LD	(CD05_X4+1),A
	LD	(CD05_X5+1),A
	LD	(CD05_X5+2),A
	LD	(CD05_X5+3),A
	POP	AF
	LD	(IX+#00),A
	INC	IX
	POP	ВС
	DJNZ	CD05_X5

	LD	HL,XOR_MEM+148-1
	LD	IY,BUF_C04
	LD	IX,KEYS_45
	LD	DE,#F59A
	LD	BC,#017F
	EXX
	LD	HL,#DF6C
	LD	DE,#E15E
	LD	B,148
	EXX

	LD	A, #49-2
	LD	R, A

ST_COD5 LD	A,R
	NOP
	NOP
	XOR	(HL)

BAS_SM5 XOR	#87

	XOR	В
	XOR	С
	XOR	D
	XOR	E
	PUSH	ВС
	PUSH	HL
	NOP
	LD	B,86
	EX	AF,AF' 1
ST_CD51 LD	A,(IX+#00)

	DJNZ	ST_CD51
	LD	H,A
	EX	AF,AF'
	XOR	H
	POP	HL
	POP	ВС
	EXX
	PUSH        ВС
	PUSH        AF
	NOP
	NOP
	NOP
	INC	IX
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	LD	B,#04
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
ST_CD52 LD	C,#00
	NOP
	NOP
	NOP
	NOP
	INC	HL
	INC	DE
	DJNZ	ST_CD52
	NOP
	NOP
	POP	AF
	XOR	(IY+#00)
	XOR	С
	XOR	H
	XOR	L
	XOR	D
	XOR	E
	POP	ВС
	EXX
	INC	IY
	NOP
	NOP
	XOR	#4A
	XOR	#34
	NOP
	NOP
	LD	(HL),A
	DEC	HL
	DEC	ВС
	DEC	DE
	EXX
	DEC	В
	EXX
	JR	NZ,ST_COD5

	LD	HL,XOR_MEM+148-1
	LD	B,148

	LD	A,#6C-2
	LD	R, A

ST_COD6 LD	A,R
	XOR	(HL)
	XOR	#43
	LD	(HL),A
	DEC	HL
	NOP
	NOP
	NOP
	DJNZ	ST_COD6
	LD	HL,XOR_MEM
	LD	DE,KEYS_45
	LD	ВС,148
	LDIR

	LD	IY,23610
AD_RETN RETN


BUF_C04 DEFS	149,#00

; ------ ;

XO_D_45 LD	B,#00
C_D_450 LD	C,#0D
	LD	HL,X_B_450
	AND	A
	SBC	HL,ВС
	LD	DE, DAT_MEM
X_D_45  LD	A, (DE)
	XOR	(HL)
C_D_451 XOR	#7D
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_D_45

	CALL	LDI_DTM
	RET

; ------ ;

XO_B_45 LD	DE,BUF_LD
	LD	A,(NUM_FIL)
	LD	B,A
X_36_45 PUSH	ВС
	LD	HL,X_B_450
	LD	B,#00
C_B_450 LD	C,#05
	AND	A
	SBC	HL,ВС
X_B_45  LD	A, (DE)
	XOR	(HL)
C_B_451 XOR	#25
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_B_45
	POP	ВС
	DJNZ	X_36_45
	RET

; ------ ;

KEYS_45 DEFS	148,#00

	
	DEFB	#06,#D5,#7E,#AA,#EE,#F7,#77	
X_D_450 DEFB	#2B,#10,#F8,#0E,#0F,#21,#66,#4C
	DEFB	#ED,#42,#11,#03,#4D,#D5,#1A,#AE
X_D_451 DEFB	#EE,#3F,#12,#2B,#13,#10,#F7,#E1
	DEFB	#11,#07,#00,#D5,#3A,#EA,#5C,#3D
	DEFB	#28,#04,#19,#3D,#20,#FC,#11,#E6
	DEFB	#5C,#C1,#ED,#B0,#11,#4E,#2A,#CD
	DEFB	#6C,#40,#32,#5C,#5B,#18,#1D,#21
	DEFB	#D3,#01,#E5,#DD,#21,#20,#29,#C3
	DEFB	#91,#4C,#E3,#E5,#7C,#FE,#0D,#20
	DEFB	#08,#7D,#FE,#6B,#20,#03,#C3,#1C
	DEFB	#3C,#F1,#E3,#C9,#ED,#7B,#3D,#5C
	DEFB	#E1,#21,#56,#4C,#E5,#ED,#73,#3D
	DEFB	#5C,#3E,#C3,#32,#C2,#5C,#21,#00
	DEFB	#4C,#22,#C3,#5C,#3E,#FF,#32,#15
	DEFB	#5D,#32,#1F,#5D,#21,#01,#02,#22
	DEFB	#1A,#5D,#ED,#73,#1C,#5D,#3B,#3B
	DEFB	#DD,#21,#1D,#02,#CD,#91,#4C,#DD
	DEFB	#21,#4A,#29,#CD,#91,#4C,#AF,#32
	DEFB	#10,#5D,#32,#D6,#5C,#CD,#F5,#4B
	DEFB	#ED,#7B,#3D,#5C,#E1,#21,#1C,#3C
	DEFB	#E5,#F3,#11,#3B,#5D,#21,#66,#4C
X_B_450 DEFB	#06,#00,#0E,#08,#ED,#42,#1A,#AE
X_B_451 DEFB	#EE,#08,#12,#36,#00,#2B,#13,#10
	DEFB	#F5

; ------ ;

XR_AD45 DEFB	#ED,#4F,#11,#F5,#F5,#CD,#2F,#3D
	DEFB	#ED,#5F,#3B,#3B,#AE,#C5,#E5,#21
	DEFB	#CF,#48,#06,#4C,#08,#86,#23,#96
	DEFB	#23,#10,#FA,#67,#D9,#5F,#D9,#08
	DEFB	#AC,#E1,#C1,#D9,#CD,#F8,#48,#18
	DEFB	#18,#F5,#3E,#17,#32,#5C,#5B,#D6
	DEFB	#A4,#32,#14,#49,#ED,#4B,#12,#49
	DEFB	#04,#04,#04,#CB,#F1,#C5,#C3,#2F
	DEFB	#3D,#AE,#AC,#AD,#2B,#73,#D9,#77
	DEFB	#ED,#A8,#E8,#E9,#CD,#14,#23,#21
	DEFB	#B2,#49,#77,#C9,#06,#40,#FD,#21
	DEFB	#3A,#5C,#60,#69,#71,#2C,#10,#FC
	DEFB	#21,#76,#49,#E3,#D9,#47,#D9,#21
	DEFB	#00,#47,#3E,#53,#CD,#4E,#40,#CD
	DEFB	#5A,#49,#06,#1E,#21,#01,#47,#86
S53_F45 DEFB	#23,#10,#FC,#FE,#00,#CA,#00,#47
	DEFB	#D9,#04,#78,#FE,#05,#D9,#20,#DF
	DEFB	#C3,#1C,#3C,#AF,#32,#D6,#5C,#21
	DEFB	#6F,#49,#E5,#2A,#53,#5C,#E5,#26

; ------ ;

LAST_SM DEFB	#11,#79,#F6,#CD,#2E,#4A,#ED,#5F
BAS_S45 DEFB	#3B,#3B,#AE,#EE,#87,#A8,#A9,#AA
	DEFB	#AB,#C5,#E5,#21,#E2,#49,#06,#56
	DEFB	#08,#86,#23,#10,#FC,#67,#08,#AC
	DEFB	#E1,#C1,#F5,#D9,#CD,#17,#4A,#F1
	DEFB	#FD,#AE,#CF,#A9,#AC,#AD,#AA,#AB

DEFB	#D9,#FD,#2B,#18,#1A,#CD,#22,#4A
DEFB	#06,#04,#DD,#21,#13,#21,#18,#09
DEFB	#3E,#17,#32,#5C,#5B,#DD,#21,#ED
DEFB	#2E,#F5,#DD,#E5,#C3,#2F,#3D,#CD
DEFB	#FB,#5D,#77,#ED,#A8,#E8

F45_CAT DEFB	#DC,#00,#DC,#00
F45_PAT DEFB	#F9,#FC,#FE,#FF,#FF,#FF,#FF

; --- ANTI FANTOM PROTECTION SYSTEM 4.2 BETA / END VERSION --- ;

FPS_4 2 LD	IX,F42_CAT
	LD	HL,#3432
	CALL	YES_FPS

	LD	HL,XOR_DAT
	LD	(DAT_XOR+1),HL
	LD	HL,XOR_BAS
	LD	(BAS_XOR+1),HL
	LD	HL,F42_PAT
	LD	(LOAD_2+1),HL

	LD	A,(BUF_LD+137)
	CP	#40
	JR	NZ,F_42END

F_42BET CALL	INIT_FB

	LD	A,#07
	LD	(RES_TXT+6),A


	LD	A,(BUF_LD+217)
	LD	(C_DT_2+1),A
	LD	(CD_3+5),A
	AND	#0F
	LD	(C_DT_1+1),A
	LD	(CD_4+1),A

	LD	A,(BUF_LD+218)
	LD	(C_BS_2+1),A
	LD	(CD_1+5),A
	AND	#0F
	LD	(C_BS_1+1),A
	LD	(CD_2+7),A
	RET

; ------ ;

F_42END CALL	INIT_FE

	LD	A,#05
	LD	(RES_TXT+6),A

; ------ ;

	CALL	LOAD_FN

	XOR	A
	LD	B,219
	LD	HL,BUF_LD
ADD_BAS ADD	A,(HL)
	INC	HL
	DJNZ	ADD_BAS
	ADD	A,#1A
	LD	(BAS_SUM+4),A
	LD	(BAS_SM1+1),A

; ------ ;

	CALL	LD_S53
	
	LD	IX,BUF_LD
	LD	A, (IX+31)
	LD	(COD_53+1),A

; ------ ;

	CALL	LOADER

	LD	HL,FST_MEM
	LD	A,#62
	XOR	#40
	XOR	#80
	XOR	#40
	XOR	#93
	XOR	(HL)
	XOR	#48
	XOR	#47

	LD	(FRST_CD+1),A

	LD	(C_DT_2+1),A
	LD	(CD_3+5),A
	AND	#0F
	LD	(C_DT_1+1),A
	LD	(CD_4+1),A

; ------ ;

	XOR	A
	LD	B,36
LOOP_X2 PUSH	ВС
	LD	HL,XOR_ADD
	LD	B,86
LOOP_X1 XOR	(HL)
	INC	HL
	DJNZ	LOOP_X1
	AND	A
	RLA
	POP	ВС
	DJNZ	LOOP_X2
	LD	(XOR_SUM+1),A

; ------ ;

	LD	HL,SND_MEM
	LD	A,#42
	XOR	#40
	XOR	#80
	XOR	#40
	XOR	#93
	XOR	(HL)
	XOR	#4C
	XOR	#7F
	LD	(HL),A
	LD	A,#75
	XOR	#3F
	XOR	#48
	XOR	(HL)

FRST_CD XOR	#7D

	XOR	#18
	XOR	#04
	XOR	#4С
	XOR	#7F
	LD	(HL),A
	LD	A,#57
	XOR	(HL)
	XOR	#C8
	XOR	#03
	LD	(HL),A
	XOR	A
	XOR	(HL)
	XOR	#70
	XOR	#70
	XOR	#EB
	XOR	#E9
	LD	(HL),A
	LD	A,#65
	XOR	(HL)

BAS_SM1 XOR	#E0

	XOR	#02
	XOR	#8D
	XOR	#F6
	XOR	#56

XOR_SUM XOR	#E8

	XOR	#70
	XOR	#00

; ------ ;

	XOR	#DC
	XOR	#80
	XOR	#DE
	XOR	#72
	XOR	#49
	XOR	#EF
	LD	(HL),A
	LD	A,#70
	XOR	(HL)
	LD	(HL),A
	LD	A,(HL)

COD_53  XOR	#3D

	XOR	#A3

	LD	(C_BS_2+1),A
	LD	(CD_1+5),A
	AND	#0F
	LD	(C_BS_1+1),A
	LD	(CD_2+7),A
	RET

; ------ ;

XOR_DAT LD	B,#00
C_DT_1  LD	C,#0D
	LD	HL,CD_2+4
	AND	A
	SBC	HL,BC
	LD	DE,DAT_MEM
X_DAT   LD	A,(DE)
	XOR	(HL)
C_DT_2  XOR	#7D
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_DAT

	CALL	LDI_DTM
	RET

; ------ ;

XOR_BAS LD	DE,BUF_LD
	LD	A,(NUM_FIL)
	LD	В, A
XOR_36F PUSH	ВС
	LD	HL,CD_2+4
	LD	B,#00
C_BS_1  LD	С,#05
	AND	A
	SBC	HL,ВС
X_BAS   LD	A,(DE)
	XOR	(HL)

C_BS_2  XOR	#25
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_BAS
	POP	ВС
	DJNZ	XOR_36F
	RET

; ------ ;

XOR_ADD DEFB	#11,#79,#F6,#CD,#E9,#49,#ED,#5F
BAS_SUM DEFB	#3B,#3B,#AE,#EE,#00,#A8,#A9,#AA
	DEFB	#AB,#C5,#E5,#21,#9D.#49,#06,#56
	DEFB	#08,#AE,#23,#10,#FC,#A7,#17,#67
	DEFB	#08,#AC,#E1,#C1,#F5,#D9,#CD,#D4
	DEFB	#49,#F1,#FD,#AE,#CF,#A9,#AC,#AD
	DEFB	#AA,#AB,#D9,#FD,#2B,#18,#18,#CD
	DEFB	#DC,#49,#06,#04,#C3,#3E,#34,#3A
	DEFB	#BB,#49,#32,#5C,#5B,#DD,#21,#ED
	DEFB	#2E,#F5,#DD,#E5,#C3,#A6,#3D,#CD
	DEFB	#FB,#5D,#77,#ED,#A8,#E8

; ------ ;

KEYS_42 DEFB	#66,#08
	DEFB	#01,#10,#00,#C5,#DD,#E5,#DD,#7E
	DEFB	#00,#B7,#28,#3F,#FE,#01,#28,#1B
	DEFB	#DD,#7E,#08,#FE,#42,#20,#14,#DD
IN_F_1  DEFB	#E5,#06,#04,#21,#9C,#4B,#7E,#DD
	DEFB	#BE,#00,#20,#12,#23,#DD,#23,#10
	DEFB	#F5,#DD,#E1,#DD,#E1,#C1,#DD,#09
	DEFB	#18,#D1,#62,#6F,#6F,#74,#08,#3C
	DEFB	#08,#E1,#DD,#21,#DD,#5C,#06,#09
	DEFB	#7E,#DD,#BE,#00,#20,#E5,#23,#DD
	DEFB	#23,#10,#F5,#DD,#E1,#C1,#06,#00
CD_4    DEFB	#0E,#0D,#21,#76,#4C,#ED,#42,#11
CD_3    DEFB	#03,#4D,#1A,#AE,#EE,#7D,#12,#2B
	DEFB	#13,#10,#F7,#21,#03,#4D,#11,#07
	DEFB	#00,#08,#3D,#28,#04,#19,#3D,#20
	DEFB	#FC,#08,#11,#E6,#5C,#01,#07,#00
	DEFB	#ED,#B0,#11,#4E,#2A,#CD,#6C,#40
	DEFB	#32,#5C,#5B,#18,#22,#21,#D3,#01
IN_F_2  DEFB	#E5,#DD,#21,#20,#29,#C3,#9E,#4C
	DEFB	#E3,#E5,#7C,#FE,#0D,#20,#0D,#7D
	DEFB	#20,#0A,#FE,#6B,#20,#06,#AF,#32
	DEFB	#3A,#5C,#18,#58,#F1,#E3,#C9,#F3
	DEFB	#21,#3B,#5D,#22,#53,#5C,#ED,#7B
IN_F_5  DEFB	#3D,#5C,#E1,#21,#66,#4C,#E5,#ED
	DEFB	#73,#3D,#5C,#3E,#C3,#32,#C2,#5C
IN_F_6  DEFB	#21,#FA,#4B,#22,#C3,#5C,#AF,#32
	DEFB	#10,#5D,#3D,#32,#3A,#5C,#32,#15
	DEFB	#5D,#32,#1F,#5D,#21,#01,#02,#22
	DEFB	#1A,#5D,#21,#00,#00,#39,#22,#1C
	DEFB	#5D,#2B,#2B,#F9,#DD,#21,#1D,#02

IN_F_3  DEFB	#CD,#9E,#4C,#DD,#21,#4A,#29,#CD
IN_F_4  DEFB	#9E,#4C,#AF,#32,#10,#5D,#32,#D6
IN_F_7  DEFB	#5C,#CD,#EF,#4B,#ED,#7B,#3D,#5C
	DEFB	#E1,#21,#1C,#3C,#E5,#F3,#11,#3B
CD_2    DEFB	#5D,#21,#76,#4C,#06,#00,#0E,#05
CD_1    DEFB	#ED,#42,#1A,#AE,#EE,#25,#12,#36
	DEFB	#00,#2B,#13,#10,#F5

; ------ ;

INIT_FB LD	A,#A2
	LD	(IN_F_1+4) ,A
	LD	A,#7C
	LD	(CD_4+3),A
	LD	(CD_2+2),A
	LD	A,#A4
	LD	(IN_F_2+6),A
	LD	(IN_F_3+1),A
	LD	(IN_F_4+0),A
	LD	A,#6C
	LD	(IN_F_5+4),A
	XOR	A
	LD	(IN_F_6+1),A
	LD	A,#4C
	LD	(IN_F_6+2) ,A
	LD	A,#F5
	LD	(IN_F_7+2) ,A
	RET

; ------ ;


INIT_FE LD	A,#9C
	LD	(IN_F_1+4) ,A
	LD	A,#76
	LD	(CD_4+3),A
	LD	(CD_2+2),A
	LD	A,#9E
	LD	(IN_F_2+6),A
	LD	(IN_F_3+1),A
	LD	(IN_F_4+0),A
	LD	A,#66
	LD	(IN_F_5+4),A
	LD	A,#FA
	LD	(IN_F_6+1),A
	LD	A,#4B
	LD	(IN_F_6+2),A
	LD	A,#EF
	LD	(IN_F_7+2),A
	RET

F42_CAT DEFB	#DC,#00,#DC,#00

F42_PAT DEFB	#F9,#FC,#FE,#FF,#FF,#FF,#FF

; --- ANTI FANTOM PROTECTION SYSTEM 4.1 END VERSION --- ;

FPS_41    LD	IX,F41_CAT
	LD	HL,#3431
	CALL	YES_FPS

	LD	A,(BUF_LD+217)
	LD	(X_D_410+1),A
	LD	(X_D_411+1),A

	LD	A,(BUF_LD+218)
	LD	(X_B_410+1),A
	LD	(X_B_411+5),A

	LD	HL,XO_D_41
	LD	(DAT_X0R+1),HL
	LD	HL,XO_B_41
	LD	(BAS_XOR+1),HL
	LD	HL,F41_PAT
	LD	(L0AD_2+1),HL
	LD	A, #05
	LD	(RES_TXT+6),A
	RET

; ------ ;

XO_D_41 LD	B,#00
D_AD_41 LD	HL,D_MB_41+5
	LD	DE,DAT_MEM
X_D_41  LD	A,(DE)
	XOR	(HL)
X_D_410 XOR	#53
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_D_41

	CALL	LDI_DTM
	RET

; ------ ;

XO_B_41  LD	DE,BUF_LD
	LD	A,(NUM_FIL)
	LD	B,A
X_36_41 PUSH	ВС
B_AD_41 LD	HL,B_MB_41+2
	LD	B,#00
X_B_41  LD	A,(DE)
	XOR	(HL)
X_B_410 XOR	#7E
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_B_41
	POP	ВС
	DJNZ	X_36_41
	RET

; ------ ;

KEYS_41 DEFB	#01,#10,#00,#C5,#DD,#E5,#DD,#7E
	DEFB	#00,#B7,#28,#3F,#FE,#01,#28,#1B
	DEFB	#DD,#7E,#08,#FE,#42,#20,#14,#DD
	DEFB	#E5,#06,#04,#21,#A2,#4B,#7E,#DD
	DEFB	#BE,#00,#20,#12,#23,#DD,#23,#10
	DEFB	#F5,#DD,#E1,#DD,#E1,#C1,#DD,#09
	DEFB	#18,#D1,#62,#6F,#6F,#74,#08,#3C
	DEFB	#08,#E1,#DD,#21,#DD,#5C,#06,#09
	DEFB	#7E,#DD,#BE,#00,#20,#E5,#23,#DD
	DEFB	#23,#10,#F5,#DD,#E1,#C1,#06,#00
	DEFB	#21,#85,#4C,#11,#03,#4D,#1A,#AE
X_D_411 DEFB	#EE,#53,#12,#2B,#13,#10,#F7,#21
	DEFB	#03,#4D,#11,#07,#00,#08,#3D,#28
	DEFB	#04,#19,#3D,#20,#FC,#08,#11,#E6
	DEFB	#5C,#01,#07,#00,#ED,#B0,#11,#4E
	DEFB	#2A,#CD,#6C,#40,#32,#5C,#5B,#18
	DEFB	#22,#21,#D3,#01,#E5,#DD,#21,#20
	DEFB	#29,#C3,#A4,#4C,#E3,#E5,#7C,#FE
	DEFB	#0D,#20,#0D,#7D,#20,#0A,#FE,#6B
	DEFB	#20,#06,#AF,#32,#3A,#5C,#18,#58
	DEFB	#F1,#E3,#C9,#F3,#21,#3B,#5D,#22
	DEFB	#53,#5C,#ED,#7B,#3D,#5C,#E1,#21
	DEFB	#68,#4C,#E5,#ED,#73,#3D,#5C,#3E
	DEFB	#C3,#32,#C2,#5C,#21,#FC,#4B,#22
	DEFB	#C3,#5C,#AF,#32,#10,#5D,#3D,#32
	DEFB	#3A,#5C,#32,#15,#5D,#32,#1F,#5D
	DEFB	#21,#01,#02,#22,#1A,#5D,#21,#00
	DEFB	#00,#39,#22,#1C,#5D,#2B,#2B,#F9
	DEFB	#DD,#21,#1D,#02,#CD,#A4,#4C,#DD
	DEFB	#21,#4A,#29,#CD,#A4,#4C,#AF,#32
	DEFB	#10,#5D,#32,#D6,#5C,#CD,#F1,#4B
	DEFB	#ED,#7B,#3D,#5C,#E1,#21,#1C,#3C
B_MB_41 DEFB	#E5,#F3,#11,#3B,#5D,#21,#72,#4C
X_B_411 DEFB	#06,#00,#1A,#AE,#EE,#7E,#12,#36
D_MB_41 DEFB	#00,#2B,#13,#10,#F5,#21,#00,#40
	DEFB	#11,#01,#40,#01,#91,#0C,#75,#CD
	DEFB	#C3,#33,#3E,#C9,#32,#C2,#5C,#DD
	DEFB	#21,#00,#3C,#DD,#22,#36,#5C,#DD
	DEFB	#21,#2A,#01,#FB,#DD,#E5,#C3,#2F
	DEFB	#3D


F41_CAT DEFB	#DC,#00,#DC,#00
F41_PAT DEFB	#F9,#FC,#FE,#FF,#FF,#FF,#FF

; --- ANTI FANTOM PROTECTION SYSTEM 4.0 END VERSION --- ;

FPS_40	LD	IX,F40_CAT

	LD	HL,#3430
	CALL	YES_FPS

	LD	A,(BUF_LD+217)
	LD	(X_D_400+1),A
	LD	(X_D_401+2),A

	LD	A,(BUF_LD+218)
	LD	(X_B_400+1),A
	LD	(X_B_401+5),A

	LD	HL,XO_D_40
	LD	(DAT_XOR+1),HL
	LD	HL,XO_B_40
	LD	(BAS_X0R+1),HL
	LD	HL,F40_PAT
	LD	(L0AD_2 +1) ,HL
	LD	A, #05
	LD	(RES_TXT+6),A
	RET

; ------ ;

XO_D_40 LD	B,#00
D_AD_40 LD	HL,X_B_401+2
	LD	DE,DAT_MEM
X_D_40  LD	A,(DE)
	XOR	(HL)
X_D_400 XOR	#53
	LD	(DE) ,A
	DEC	HL
	INC	DE
	DJNZ	X_D_40

	CALL	LDI_DTM
	RET

; ------ ;

XO_B_40 LD	DE,BUF_LD
	LD	A,(NUM_FIL)
	LD	B,A
X_36_40 PUSH	ВС
B_AD_40 LD	HL,B_MB_40
	LD	B,#00
X_B_40  LD	A,(DE)
	XOR	(HL)
X_B_400 XOR	#7E
	LD	(DE),A
	DEC	HL
	INC	DE
	DJNZ	X_B_40
	POP	ВС
	DJNZ	X_36_40
	RET

; ------ ;

KEYS_40 DEFB	#01,#10,#00,#C5,#DD,#E5,#DD,#7E
	DEFB	#00,#B7,#28,#37,#FE,#01,#28,#38
	DEFB	#DD,#7E,#08,#FE,#42,#20,#31,#DD
	DEFB	#E5,#06,#04,#21,#95,#4C,#7E,#DD
	DEFB	#BE,#00,#20,#09,#23,#DD,#23,#10
	DEFB	#F5,#DD,#E1,#18,#1B,#21,#99,#4C
	DEFB	#34,#E1,#DD,#21,#DD,#5C,#06,#09
	DEFB	#7E,#DD,#BE,#00,#20,#0A,#23,#DD
	DEFB	#23,#10,#F5,#DD,#E1,#C1,#18,#07
	DEFB	#DD,#E1,#C1,#DD,#09,#18,#B4,#06
	DEFB	#00,#21,#64,#4C,#11,#03,#4D,#1A
X_D_401 DEFB	#AE,#EE,#54,#12,#2B,#13,#10,#F7
	DEFB	#21,#F1,#C9,#22,#C2,#5C,#21,#03
	DEFB	#4D,#11,#07,#00,#3A,#99,#4C,#4F
	DEFB	#0D,#28,#04,#19,#0D,#20,#FC,#11
	DEFB	#E6,#5C,#01,#07,#00,#CD,#C3,#33
	DEFB	#ED,#7B,#3D,#5C,#E1,#21,#F9,#4B
	EFB	#E5,#C3,#FC,#4B,#21,#D3,#01,#E5
	DEFB	#DD,#21,#20,#29,#C3,#8E,#4C,#E3
	DEFB	#E5,#7C,#FE,#0D,#20,#0E,#7D,#20
	DEFB	#0B,#FE,#6B,#20,#07,#AF,#32,#3A
	DEFB	#5C,#C3,#52,#4C,#F1,#E3,#C9,#C3
	DEFB	#1C,#3C,#F3,#21,#3B,#5D,#22,#53
	DEFB	#5C,#ED,#7B,#3D,#5C,#E1,#21,#52
	DEFB	#4C,#E5,#ED,#73,#3D,#5C,#3E,#C3
	DEFB	#32,#C2,#5C,#21,#E1,#4B,#22,#C3
	DEFB	#5C,#F3,#AF,#32,#10,#5D,#3D,#32
	DEFB	#3A,#5C,#32,#15,#5D,#32,#1F,#5D
	DEFB	#21,#01,#02,#22,#1A,#5D,#21,#00
	DEFB	#00,#39,#22,#1C,#5D,#2B,#2B,#F9
	DEFB	#DD,#21,#1D,#02,#CD,#8E,#4C,#DD
	DEFB	#21,#4A,#29,#CD,#8E,#4C,#AF,#32
	DEFB	#10,#5D,#32,#D6,#5C,#CD,#D6,#4B
B_MB_40 DEFB	#ED,#7B,#3D,#5C,#E1,#21,#F9,#4B
	DEFB	#E5,#F3,#11,#3B,#5D,#21,#52,#4C
X_B_401 DEFB	#06,#00,#1A,#AE,#EE,#39,#12,#36
	DEFB	#00,#2B,#13,#10,#F5,#21,#00,#40
	DEFB	#11,#01,#40,#01,#7B,#0C,#75,#CD
	DEFB	#C3,#33,#3E,#C9,#32,#C2,#5C,#DD
	DEFB	#21,#00,#3C,#DD,#22,#36,#5C,#DD
	DEFB	#21,#2A,#01,#FB,#DD,#E5,#C3,#2F
	DEFB	#3D

F40_CAT DEFB	#DC,#00,#DC,#00

F40_PAT DEFB	#F9,#FC,#FE,#FF,#FF,#FF,#FF

; --- ANTI FANTOM PROTECTION SYSTEM 2.0 END VERSION --- ;

FPS_20	LD	IX,F20_CAT
	LD	HL,#3230

	CALL	YES_FPS

	LD	A, (BUF_LD+208)
	LD	(BUF_D20),A

	LD	A,(BUF_LD+209)
	LD	(BUF_B20),A
	
	LD	HL,XO_D_20
	LD	(DAT_X0R+1),HL
	LD	HL,XO_B_20
	LD	(BAS_X0R+1),HL
	LD	HL,F20_PAT
	LD	(L0AD_2+1), HL
	LD	A, #05
	LD	(RES_TXT+6),A
	RET

XO_D_20 LD	В,#00
	LD	HL,BUF_D20
	LD	DE,DAT_MEM-3
X_D_20	LD	A,(DE)
	XOR	(HL)
	RRC	(HL)
	LD	(DE) ,A
	INC	DE
	DJNZ	X_D_20

	LD	HL,DAT_MEM-3
	CALL	LDI_DT1
	RET

BUF_D20 DEFB	#5C

; ------ ;

XO_B_20 LD	DE,BUF_LD
	LD	A,(NUM_FIL)
	LD	В,A
X_36_20 PUSH	ВС
	LD	HL,BUF_B20
	LD	B,#00
X_B_20  LD	A,(DE)
	XOR	(HL)
	RLC	(HL)
	LD	(DE),A
	INC	DE
	DJNZ	X_B_20   '
	POP	ВС
	DJNZ	X_36_20
	RET

BUF_B20 DEFB	#2A

F20_CAT DEFB        #D3,#00,#D3,#00
F20 PAT DEFB        #A4,#A4,#A4,#A4,#A4,#A4,#A4

; --- RESERV ANTI FPS VERSION : 3.1, 3.0, 1.0-1.4 --- ;

FPS_31	NOP
	JP	NO_FPS

FPS_30	NOP
	JP	NO FPS

FPS_14  NOP
	JP	NO_FPS

FPS_13  NOP

JP	NO_FPS

FPS_12  NOP
JP	NO_FPS

FPS_11  NOP
	JP	NO_FPS

FPS_10  NOP
	JP	NO_FPS

F10_CAT DEFB	#00,#00,#00,#00
F11_CAT DEFB	#00,#00,#00,#00
F12_CAT DEFB	#00,#00,#00,#00
F13_CAT DEFB	#00,#00,#00,#00
F14_CAT DEFB	#00,#00,#00,#00
F30_CAT DEFB	#00,#00,#00,#00
F31_CAT DEFB	#00,#00,#00,#00

F10_PAT DEFB 	#00,#00,#00,#00,#00,#00,#00
F11_PAT DEFB	#00,#00,#00,#00,#00,#00,#00
F12_PAT DEFB	#00,#00,#00,#00,#00,#00,#00
F13_PAT DEFB	#00,#00,#00,#00,#00,#00,#00
F14_PAT DEFB	#00,#00,#00,#00,#00,#00,#00
F30_PAT DEFB	#00,#00,#00,#00,#00,#00,#00
F31_PAT DEFB	#00,#00,#00,#00,#00,#00,#00






