;(C)Baz0FFt/Smokers/AmD/aMiGa           '2
;sOmE hElP (C)wReckER/Smokers/pC        END-------->'28.02.1999'

LENGHT  EQU     3683*2

GAM_EKR EQU     #D8D0
ADR_ZAL EQU     #9600   ;#9700
FNT     EQU     #9700   ;#9A00
UZOR    EQU     #A000
SCR_ZAP EQU     #A400   ;2048
FRM1    EQU     #AFC8
FRM11   EQU     #B286+9
MUZAK   EQU     #C000
MAPZ    EQU     #E041        ; = 640 bytes
DOP_FRM EQU     #E341        ; = 640 bytes
GO_SMP  EQU     #E678
SPEED   EQU     50*10
SPEED1  EQU     25
MEN_MUZ EQU     #C000
MEN_SCR EQU     60000

        ORG     MEN_MUZ,17
        +INCBIN "MENU_MUZ"

        ORG     MEN_SCR,17
        +INCBIN "#MENU#"

        ORG     FNT
        +INCBIN  "NRVFNT"

        ORG     GO_SMP
        +INCBIN  "GO!"

        ORG     GAM_EKR
        +INCBIN  "#r##"

        ORG     FRM1
        +INCBIN  "FRAMEZZZ"

        ORG     ADR_ZAL
        +INCBIN "ZALIVKA"

        ORG     UZOR
        +INCBIN  "UZOR32"

        ORG     MUZAK,23
        +INCBIN  "MUZ_PACK"

        ORG     #8000
        JP      AGONY
KAMAN   XOR     A
        OUT     (#FE),A
        LD      HL,22528
        LD      DE,22529
        LD      BC,767
        LD      (HL),L
        LDIR 
        LD      A,23
        CALL    OPEN
SUZU    LD      A,R
        OR      A
        JR      Z,SUZU
        CP      1
        JP      Z,CHACH1
        CP      2
        JP      Z,CHACH2
        CP      3
        JP      Z,CHACH3
        CP      4
        JP      Z,CHACH4
        CP      5
        JP      Z,CHACH5
        CP      6
        JR      NC,SUZU
NOGA    LD      A,16
        CALL    OPEN
        CALL    25000
        LD      A,#0F
        LD      (CT1),A
        LD      (CT1+1),A
        LD      (CT1+2),A
        LD      (CT1+3),A
        LD      A,#F0
        LD      (MAS1+1),A
        LD      A,8
        LD      (CH_MODE+1),A
        LD      A,#C9
        LD      (BOMBA),A
        LD      (MAMBA),A
        LD      A,25
        LD      (KVAK1+1),A
        LD      (KVAK2+1),A
        LD      (NANA+1),A
        LD      (KAKA+1),A
        LD      A,1
        LD      (COR_X),A
        LD      (COR_X1),A
        INC     A
        LD      (COR_Y),A
        LD      (COR_Y1),A
        LD      HL,0
        LD      (SCORE1),HL
        LD      (SCORE2),HL
        LD      A,L
        LD      (IGROK),A
        LD      (COUNT),A
        LD      A,20
        LD      (COR_X2),A
        INC     A
        LD      (COR_Y2),A
        LD      A,13
        LD      (MOVES),A
        LD      A,16
        LD      (COLOR),A
        LD      A,81
        LD      (TIMER1),A
        LD      (TIMER2),A
        LD      HL,#4436
        LD      (ADR_T1),HL
        LD      HL,#4C96
        LD      (ADR_T2),HL
        LD      HL,#580F
        LD      (AD_OB1),HL
        LD      HL,#5AEF
        LD      (AD_OB2),HL
        LD      A,#C3
        LD      (PIZDA),A
        LD      HL,SEXY
        LD      (PIZDA+1),HL
        LD      A,#F7
        LD      (CH1+2),A
        LD      A,#67
        LD      (CH2+1),A
        LD      A,#5F
        LD      (CH3+1),A
        LD      A,#57
        LD      (CH4+1),A
        LD      A,#4F
        LD      (CH5+1),A
        LD      A,#47
        LD      (CH6+1),A
        LD      A,(STONE1)
        LD      (STONEZ1),A
        LD      A,(STONE2)
        LD      (STONEZ2),A
        CALL    GAM_EKR
        LD      HL,MAPZ
        LD      DE,MAPZ+1
        LD      BC,20*32
        LD      (HL),5
        LDIR 
        LD      HL,23606
        LD      A,#00
        LD      (HL),A
        LD      A,#96
        INC     HL
        LD      (HL),A
        LD      DE,48000
        LD      HL,MAPZ
        LD      B,18
RM0     PUSH    BC
        LD      B,18
RM1     LD      A,H
        LD      (DE),A
        INC     DE
        LD      A,L
        LD      (DE),A
        INC     DE
        INC     HL
        DJNZ    RM1
        PUSH    DE
        LD      DE,14
        ADD     HL,DE
        POP     DE
        POP     BC
        DJNZ    RM0
        LD      A,#FF
        LD      (DE),A

        LD      A,(MODE)
        OR      A
        JR      Z,DALEE
        LD      A,5
        LD      (CH_MODE+1),A

DALEE   LD      A,(SWAP)
        OR      A
        JR      Z,DALEE1
        XOR     A
        LD      (SWAPER),A

DALEE1  LD      HL,FRM1
        CALL    CHACHA
        LD      (PRV1+1),HL
        LD      (MAK+1),HL
        LD      HL,#587A
        CALL    ZADANIE
        LD      HL,FRM11
        CALL    CHACHA
        LD      (MAK1+1),HL
        LD      HL,#59DA
        CALL    ZADANIE

        LD      HL,PR_SCO1
        CALL    PRINT_
        LD      BC,(SCORE1)
        CALL    6683
        LD      HL,PR_SCO2
        CALL    PRINT_
        LD      BC,(SCORE2)
        CALL    6683

        CALL    VIV_ST1
        CALL    VIV_ST2

        CALL    BABA

        LD      A,(SET_TIM)
        CP      1
        JP      Z,SET_T1
        CP      2
        JP      Z,SET_T2
        CP      3
        CALL    Z,SET_T3
DA1     CALL    SMP_PL
        CALL    PREP    ;

OPS     CALL    VIR_ATR
OPS1    CALL    ATR_SCR
        LD      A,56
        LD      (HL),A
        EI 
        HALT 
        HALT 
PIZDA   JP      SEXY
        JP      MAMBA

SEXY    LD      A,(TIMER1)
        OR      A
        JP      Z,IMOFFF
        LD      A,(TIMER2)
        OR      A
        JP      Z,IMOFFF
        LD      A,(STONEZ1)
        OR      A
        JP      Z,IMOFFF
        LD      A,(STONEZ2)
        OR      A
        JP      Z,IMOFFF

CH1     LD      BC,#EFFE
        IN      A,(C)
CH2     BIT     0,A
        JP      Z,FIRE
        IN      A,(C)
CH3     BIT     1,A
        JP      Z,UP
        IN      A,(C)
CH4     BIT     2,A
        JP      Z,DOWN
        IN      A,(C)
CH5     BIT     3,A
        JP      Z,RIGHT
        IN      A,(C)
CH6     BIT     4,A
        JP      Z,LEFT
        LD      BC,#DFFE
        IN      A,(C)
        BIT     0,A
        JP      Z,PAUZA
BIKI    LD      BC,#FEFE
        IN      A,(C)
        AND     1
        LD      E,A
        LD      BC,#FBFE
        IN      A,(C)
        AND     1
        OR      E
        OR      A
        JR      NZ,OPS1
        JP      BUM

JABA    LD      A,2
        LD      HL,#5820+22
        LD      DE,32
        LD      B,22
ZOP1    LD      (HL),A
        ADD     HL,DE
        DJNZ    ZOP1
        RET 

SET_T1  CALL    JABA
        XOR     A
        LD      (BOMBA),A
        JP      DA1
SET_T2  XOR     A
        LD      (MAMBA),A
        LD      HL,PIZDA
        XOR     A
        LD      (HL),A
        INC     HL
        LD      (HL),A
        INC     HL
        LD      (HL),A
        JP      DA1
SET_T3  CALL    JABA
        XOR     A
        LD      (BOMBA),A
        LD      (MAMBA),A
        LD      HL,PIZDA
        XOR     A
        LD      (HL),A
        INC     HL
        LD      (HL),A
        INC     HL
        LD      (HL),A
        RET 

;..................................:::::::::::::::::::::::::::::

PREP    CALL    MUZAK
        LD HL,PRERR
        LD A,24
        LD (65535),A
        LD A,195
        LD (65524),A
        LD (65525),HL
        LD HL,#FE00
        LD DE,#FE01
        LD BC,256
        LD (HL),#FF
        LD A,H
        LDIR 
        DI 
        LD I,A
        IM 2
        EI 
        RET 

IMOFFF  XOR     A
        LD      HL,#5800
        LD      B,22
ZYZY    LD      (HL),A
        INC     HL
        DJNZ    ZYZY
        LD      B,24
ZY0     PUSH    BC
        LD      B,10
ZY1     LD      (HL),A
        INC     HL
        DJNZ    ZY1
        LD      DE,22
        ADD     HL,DE
        POP     BC
        DJNZ    ZY0
        LD      HL,#5AE0
        LD      B,29
ZYZ     LD      (HL),A
        INC     HL
        DJNZ    ZYZ
        LD      A,#C9
        LD      (BOMBA),A
        LD      (MAMBA),A
        CALL    CLSKA
        LD      HL,#40C6
        LD      (EEE+1),HL
        LD      HL,TEXT2
        CALL    PODP
        LD      HL,#4841
        LD      (EEE+1),HL
        LD      HL,TEXT1
        CALL    PODP
        LD      HL,P_SCO1
        CALL    PRINT_
        LD      BC,(SCORE1)
        CALL    6683
        LD      HL,P_SCO2
        CALL    PRINT_
        LD      BC,(SCORE2)
        CALL    6683
        LD      HL,(SCORE1)     ;100
        LD      DE,(SCORE2)     ;120
        SBC     HL,DE
        LD      A,L
        OR      A
        JR      Z,PR_FRD
        LD      A,H
        CP      #FF
        JR      Z,WIN_2
        LD      HL,#5061
        LD      (EEE+1),HL
        LD      HL,TEXT3
        CALL    PODP
        JR      BUM
WIN_2   LD      HL,#5061
        LD      (EEE+1),HL
        LD      HL,TEXT4
        CALL    PODP
        JR      BUM
PR_FRD  LD      HL,#5061
        LD      (EEE+1),HL
        LD      HL,TEXT5
        CALL    PODP
BUM     LD      BC,399
VFR     EI 
        HALT 
        DEC     BC
        LD      A,B
        OR      C
        JR      NZ,VFR
        DI 
        LD A,63
        LD I,A
        IM 1
        CALL    MUZAK
        EI 
        JP      AGONY

PRERR   PUSH HL
        PUSH DE
        PUSH BC
        PUSH AF
        PUSH IX
        PUSH IY
        EXX 
        EX AF,AF'
        PUSH AF
        PUSH HL
        PUSH DE
        PUSH BC
        PUSH IX
        PUSH IY
MIKLE   CALL    MUZAK+6
        CALL    BOMBA
        POP IY
        POP IX
        POP BC
        POP DE
        POP HL
        POP AF
        EXX 
        EX AF,AF'
        POP IY
        POP IX
        POP AF
        POP BC
        POP DE
        POP HL
        EI 
        RETI 

;===================================

BOMBA   RET 
        LD      A,(IGROK)
        OR      A
        JR      NZ,PAPA
MAMA    LD      BC,SPEED
        LD      A,B
        OR      C
        CALL    Z,FUNKY1
        LD      HL,(MAMA+1)
        DEC     HL
        LD      (MAMA+1),HL
        RET 

PAPA    LD      BC,SPEED
        LD      A,B
        OR      C
        CALL    Z,FUNKY2
        LD      HL,(PAPA+1)
        DEC     HL
        LD      (PAPA+1),HL
        RET 

FUNKY1  LD      HL,(ADR_T1)
        CALL    TIME
        LD      (ADR_T1),HL
ZYXEL   LD      HL,SPEED
        LD      (MAMA+1),HL
        LD      A,(TIMER1)
        DEC     A
        LD      (TIMER1),A
        RET 

FUNKY2  LD      HL,(ADR_T2)
        CALL    TIME
        LD      (ADR_T2),HL
USR     LD      HL,SPEED
        LD      (PAPA+1),HL
        LD      A,(TIMER2)
        DEC     A
        LD      (TIMER2),A
        RET 

;=++=+==+=+=+===+++=+=+==+====++==+==+=+=+====+===+==+-^^~|

MAMBA   RET 
        LD      A,(IGROK)
        OR      A
        JR      NZ,NANA
KAKA    LD      A,SPEED1
        DEC     A
        JR      Z,KVAK1
PISI    LD      A,(KAKA+1)
        DEC     A
        LD      (KAKA+1),A
        JP      SEXY

NANA    LD      A,SPEED1
        DEC     A
        JR      Z,KVAK2
SISI    LD      A,(NANA+1)
        DEC     A
        LD      (NANA+1),A
        JP      SEXY

KVAK1   LD      A,SPEED1
        LD      (KAKA+1),A
        LD      HL,(AD_OB1)
        LD      (HL),7
        DEC     HL
        LD      A,L
        CP      #05
        JP      Z,FIRE1
        LD      (AD_OB1),HL
        JR      PISI

KVAK2   LD      A,SPEED1
        LD      (NANA+1),A
        LD      HL,(AD_OB2)
        LD      (HL),7
        DEC     HL
        LD      A,L
        CP      #E5
        JP      Z,FIRE1
        LD      (AD_OB2),HL
        JR      SISI

;=++=+==+=+=+===+++=+=+==+====++==+==+=+=+====+===+==+-^^~|

PRINT_  PUSH    HL
        LD      A,2
        CALL    5633
        POP     HL
MM1     LD      A,(HL)
        CP      255
        RET     Z
        RST     16
        INC     HL
        JR      MM1

;===============================================================

VIV_ST1 LD      HL,PR_STN1
        CALL    PRINT_
        LD      B,0
        LD      A,(STONEZ1)
        LD      C,A
        CALL    6683
        RET 

VIV_ST2 LD      HL,PR_STN2
        CALL    PRINT_
        LD      B,0
        LD      A,(STONEZ2)
        LD      C,A
        CALL    6683
        RET 

;+++++++++++++++++++++=============+++++++++~~~~~~~~~~~~~~~~~~~~

UP      LD      A,(COR_Y)
        CP      3-1
        JP      Z,OPS1
        CALL    NO_SPR
        CALL    UP1
        JP      OPS
DOWN    LD      A,(COR_Y)
        CP      20+1
        JP      Z,OPS1
        CALL    NO_SPR
        CALL    DOWN1
        JP      OPS
LEFT    LD      A,(COR_X)
        CP      2-1
        JP      Z,OPS1
        CALL    NO_SPR
        CALL    LEFT1
        JP      OPS
RIGHT   LD      A,(COR_X)
        CP      19+1
        JP      Z,OPS1
        CALL    NO_SPR
        CALL    RIGHT1
        JP      OPS
FIRE    CALL    ATR_SCR
        LD      A,H
        LD      B,#88
        ADD     A,B
        LD      H,A
        LD      A,(HL)
        CP      8               ;fReeZe
        JP      Z,OPS
        CP      16              ;Pl 1
        JP      Z,OPS
        CP      32              ;Pl 2
        JP      Z,OPS
        LD      A,(COLOR)
        LD      (HL),A
FIRE1   LD      A,(MOVES)
        DEC     A
        LD      (MOVES),A
        OR      A
        CALL    Z,SWAPER
        CALL    PROVA

        LD      HL,#580F
        LD      (AD_OB1),HL
        LD      HL,#5AEF
        LD      (AD_OB2),HL

                                ;   
        LD      HL,MAPZ
        LD      B,20
QIK1    PUSH    BC
        LD      B,20
QIK     LD      A,(HL)
        CP      5
        JR      Z,UFF
        INC     HL
        DJNZ    QIK
        LD      DE,12
        ADD     HL,DE
        POP     BC
        DJNZ    QIK1
        JP      IMOFFF
                        ;enD
UFF     POP     BC
        CALL    CH_PL
        JP      OPS
;=================================================

PROVA   LD      IX,48000
PRV1    LD      HL,00000        ; MAPZ'a
        LD      DE,DOP_FRM
        LD      BC,9
        LDIR 
        XOR     A
        LD      (COUNT),A
        LD      D,(IX+0)
        LD      A,D
        CP      #FF
        RET     Z
        LD      E,(IX+1)
        PUSH    DE          ;!!!!!  ;BEGIN OF KIDALA FRM>DOP_MAP
        LD      HL,DOP_FRM
        LD      B,3
LL0     PUSH    BC
        LD      B,3
LL1     LD      A,(DE)
        XOR     (HL)
        LD      (HL),A
        INC     HL
        INC     DE
        DJNZ    LL1
        PUSH    HL
        PUSH    DE
        POP     HL
        LD      DE,29
        ADD     HL,DE
        PUSH    HL
        POP     DE
        POP     HL
        POP     BC
        DJNZ    LL0
        LD      HL,DOP_FRM      ;BEGIN OF PROV OF FRM
        LD      B,9
L0      LD      A,(HL)
        OR      A
        CALL    Z,COUNT_        ;FROM 1 TO N
        INC     HL
        DJNZ    L0
        LD      A,(COUNT)
        CP      5               ;IF N THEN 
        JR      Z,YES_OK
        INC     IX
        INC     IX
        POP     DE
        JR      PRV1
YES_OK                          ;+-+-+-+-+
        LD      HL,DOP_FRM
        POP     DE
        LD      B,3
Y0      PUSH    BC
        LD      B,3
Y1      LD      A,(HL)
        OR      A
        JR      NZ,DSFS
CH_MODE LD      A,8
        LD      (DE),A
DSFS    INC     HL
        INC     DE
        DJNZ    Y1
        PUSH    HL
        PUSH    DE
        POP     HL
        LD      DE,29
        ADD     HL,DE
        PUSH    HL
        POP     DE
        POP     HL
        POP     BC
        DJNZ    Y0
                                ; enD!!!!!!!!!!!!!!!!!!
        LD      A,(IGROK)
        OR      A
        JR      Z,CH_FRM1
        CALL    CH_FRM2
SHIT    JP      PROVA

COUNT_  LD      A,(COUNT)
        INC     A
        LD      (COUNT),A
        RET 

;===========================================================

CHACHA  LD      A,R
        OR      A
        JR      Z,CHACHA
        CP      79
        JR      NC,CHACHA
        LD      DE,9
        LD      B,A
MUHA    ADD     HL,DE
        DJNZ    MUHA
        LD      D,H
        LD      E,L
        RET 

CH_FRM1 LD      HL,FRM1
        CALL    CHACHA
        LD      (MAK+1),HL
        LD      (PRV1+1),HL
        LD      HL,#587A
        CALL    ZADANIE
        LD      BC,(SCORE1)
        INC     BC
        INC     BC
        INC     BC
        INC     BC
        INC     BC
        PUSH    BC
        LD      (SCORE1),BC
        LD      HL,PR_SCO1
        CALL    PRINT_
        POP     BC
        CALL    6683
        LD      A,(STONEZ1)
        ADD     A,5
        LD      (STONEZ1),A
        JR      SHIT

CH_FRM2 LD      HL,FRM11
        CALL    CHACHA
        LD      (MAK1+1),HL
        LD      (PRV1+1),HL
        LD      HL,#59DA
        CALL    ZADANIE
        LD      BC,(SCORE2)
        INC     BC
        INC     BC
        INC     BC
        INC     BC
        INC     BC
        PUSH    BC
        LD      (SCORE2),BC
        LD      HL,PR_SCO2
        CALL    PRINT_
        POP     BC
        CALL    6683
        LD      A,(STONEZ2)
        ADD     A,5
        LD      (STONEZ2),A
        RET 

;==================================================

VIR_ATR LD      HL,MAPZ
        LD      DE,#5841
        LD      B,20
HIK1    PUSH    BC
        LD      B,20
HIK     LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     DE
        DJNZ    HIK
        LD      DE,12
        ADD     HL,DE
        LD      E,L
        LD      A,H
        SUB     #88
        LD      D,A
        POP     BC
        DJNZ    HIK1
        RET 

;+++++++++++++++++++++++++

UP1     LD      A,(COR_Y)
        DEC     A
        LD      (COR_Y),A
        RET 
DOWN1   LD      A,(COR_Y)
        INC     A
        LD      (COR_Y),A
        RET 
LEFT1   LD      A,(COR_X)
        DEC     A
        LD      (COR_X),A
        RET 
RIGHT1  LD      A,(COR_X)
        INC     A
        LD      (COR_X),A
        RET 
;+++++++++++++++++++++++++

NO_SPR  CALL    ATR_SCR
        LD      A,5
        LD      (HL),A
        RET 

;++++++++++++++++++++++++

ATR_SCR LD      A,(COR_X)
        LD      D,A
        LD      A,(COR_Y)
        AND     #18
        SRL     A
        SRL     A
        SRL     A
        OR      #58
        LD      H,A
        LD      A,(COR_Y)
        AND     #07
        OR      A
        RRA 
        RRA 
        RRA 
        RRA 
        ADD     A,D
        LD      L,A             ;EXIT-HL
        RET 

;===============================================================

CH_PL   LD      A,(IGROK)
        OR      A
        JR      NZ,DALE
        LD      A,45
        LD      HL,#5920+28
        LD      (HL),A
        INC     HL
        LD      (HL),A
        INC     HL
        LD      (HL),A
        LD      A,(STONEZ1)
        DEC     A
        LD      (STONEZ1),A
        CALL    VIV_ST1

        LD      A,1
        LD      (IGROK),A
        LD      A,#EF
        LD      (CH1+2),A
        LD      A,#47
        LD      (CH2+1),A
        LD      A,#4F
        LD      (CH3+1),A
        LD      A,#57
        LD      (CH4+1),A
        LD      A,#5F
        LD      (CH5+1),A
        LD      A,#67
        LD      (CH6+1),A
        LD      A,32
        LD      (COLOR),A
        LD      A,(COR_X)
        LD      (COR_X1),A
        LD      A,(COR_Y)
        LD      (COR_Y1),A
        LD      A,(COR_X2)
        LD      (COR_X),A
        LD      A,(COR_Y2)
        LD      (COR_Y),A

MAK1    LD      HL,00000
        LD      (PRV1+1),HL

        LD      HL,#5AE6
        LD      A,15
        LD      B,10
IRK1    LD      (HL),A
        INC     HL
        DJNZ    IRK1
        LD      HL,#5806
        XOR     A
        LD      B,10
IRK11   LD      (HL),A
        INC     HL
        DJNZ    IRK11
        RET 

DALE    XOR     A
        LD      (IGROK),A
        LD      A,45
        LD      HL,#5A80+28
        LD      (HL),A
        INC     HL
        LD      (HL),A
        INC     HL
        LD      (HL),A
        LD      A,(STONEZ2)
        DEC     A
        LD      (STONEZ2),A
        CALL    VIV_ST2
        LD      A,#F7
        LD      (CH1+2),A
        LD      A,#67
        LD      (CH2+1),A
        LD      A,#5F
        LD      (CH3+1),A
        LD      A,#57
        LD      (CH4+1),A
        LD      A,#4F
        LD      (CH5+1),A
        LD      A,#47
        LD      (CH6+1),A

        LD      A,16
        LD      (COLOR),A
        LD      A,(COR_X)
        LD      (COR_X2),A
        LD      A,(COR_Y)
        LD      (COR_Y2),A
        LD      A,(COR_X1)
        LD      (COR_X),A
        LD      A,(COR_Y1)
        LD      (COR_Y),A

MAK     LD      HL,00000
        LD      (PRV1+1),HL

BABA    LD      HL,#5806
        LD      A,15
        LD      B,10
IRK0    LD      (HL),A
        INC     HL
        DJNZ    IRK0
        LD      HL,#5AE6
        XOR     A
        LD      B,10
IRK00   LD      (HL),A
        INC     HL
        DJNZ    IRK00
        RET 

;++++++++++++++++++++++++ zAdAnIe!!! +++++++++++++++++++++++++++

ZADANIE LD      B,3
ZD      PUSH    BC
        LD      B,3
ZDD     LD      A,(DE)
        LD      (HL),A
        INC     HL
        INC     DE
        DJNZ    ZDD
        PUSH    DE
        LD      DE,29
        ADD     HL,DE
        POP     DE
        POP     BC
        DJNZ    ZD
        RET 

;++++++++++++++++++++++++++++++++++++++++++++++++

SWAPER  RET 
        LD      HL,MAPZ
        LD      B,20
PUG0    PUSH    BC
        LD      B,20
PUG1    LD      A,(HL)
        CP      16
        JR      Z,FEE_32
        CP      32
        JR      Z,FEE_16
        INC     HL
FK      DJNZ    PUG1
        LD      DE,12
        ADD     HL,DE
        POP     BC
        DJNZ    PUG0
        LD      A,13
        LD      (MOVES),A
        LD      A,(IGROK)
        OR      A
        JR      NZ,ZMAA
        LD      HL,(MAK+1)
        LD      (PRV1+1),HL
        JR      ZMAB
ZMAA    LD      HL,(MAK1+1)
        LD      (PRV1+1),HL
ZMAB    RET 

FEE_32  LD      A,32
        LD      (HL),A
        INC     HL
        JR      FK

FEE_16  LD      A,16
        LD      (HL),A
        INC     HL
        JR      FK

;///////////////////////////////////////////////////////////////

TIME    LD      A,66
        LD      (HL),A
T189    INC     H
        LD      A,H
        AND     7
        RET     NZ
        LD      A,L
        ADD     A,32
        LD      L,A
        RET     C
        LD      A,H
        SUB     8
        LD      H,A
        RET 

;--+++++++++++++++------------+++++++++++++++--

COR_X   DEFB    1
COR_Y   DEFB    2
COR_X1  DEFB    1            ; 1...20
COR_Y1  DEFB    2            ; 1...20
COR_X2  DEFB    20           ; 1...20
COR_Y2  DEFB    21           ; 1...20

IGROK   DEFB    0            ; 1_Player OR 2_Player

COLOR   DEFB    16           ; 16 or 32

COUNT   DEFB    0            ;   

MODE    DEFB    1            ; 0->fReeZe   1->clEAr

SWAP    DEFB    0            ; 0->Off   1->mIx

SCORE1  DEFB    0,0
SCORE2  DEFB    0,0

PR_SCO1 DEFB    22,10,27,16,0,17,5
        DEFB    255
PR_SCO2 DEFB    22,21,27,16,0,17,5
        DEFB    255
P_SCO1  DEFB    22,12,4,16,2,17,1
        DEFB    255
P_SCO2  DEFB    22,12,14,16,2,17,1
        DEFB    255

MOVES   DEFB    13           ;    sWaP On

TIMER1  DEFB    81
TIMER2  DEFB    81
ADR_T1  DEFB    #36,#44
ADR_T2  DEFB    #96,#4C
SET_TIM DEFB    0            ; 0-> Time oFF   1-> pLaYiN' tImE
                             ; 2-> tHiNkIn' tImE
                             ; 3-> "1" + "2"

STONEZ1 DEFB    150          ; -  of Player 1
STONEZ2 DEFB    150          ; -  of Player 2
                             ; 50,100,150,200,250

PR_STN1 DEFB    22,9,28,16,0,17,5
        DEFB    255
PR_STN2 DEFB    22,20,28,16,0,17,5
        DEFB    255

AD_OB1  DEFB    #0F,#58
AD_OB2  DEFB    #EF,#5A

MUZ_SEL DEFB    1

;=+=+=+==+=-+-+-+=+=-+====+=+=+-=-==-=-=+=+=--+-+-=+===+=++=+=+=

PAUZA   LD      A,#C9
        LD      (BOMBA),A
        LD      (MAMBA),A
        LD      HL,#4000
        LD      DE,25000
        LD      BC,6912
        LDIR 
        LD      HL,#5AF9
        LD      B,7
JAJAA   LD      (HL),B
        INC     HL
        DJNZ    JAJAA
        LD      HL,#50F9
        LD      (EEE+1),HL
        LD      HL,TEXT
        CALL    PODP
        LD      HL,#50F9
        LD      (EEE+1),HL
        LD      HL,TEXT
        CALL    PODP
        LD      A,1
        OUT     (#FE),A
        LD      HL,#5800
        LD      DE,#5801
        LD      BC,767
        LD      (HL),10
        LDIR 
GLOW    LD      DE,SCR_ZAP
        LD      B,16
ZIPER   PUSH    BC
XF      LD      IX,UZOR
        LD      H,#96
        LD      B,8
ZIP1    PUSH    BC
        PUSH    IX
        LD      B,8
ZIP     LD      L,(IX+0)
ZZZ     LD      A,0
        ADD     A,L
        LD      L,A
        LD      A,(HL)
        LD      (DE),A
        INC     DE
        LD      L,(IX+1)
ZZZ1    LD      A,0
        ADD     A,L
        LD      L,A
        LD      A,(HL)
        LD      (DE),A
        INC     DE
        INC     IX
        INC     IX
        DJNZ    ZIP
        POP     IX
        LD      A,(ZZZ+1)
        INC     A
        LD      (ZZZ+1),A
        LD      (ZZZ1+1),A
        POP     BC
        DJNZ    ZIP1
        LD      HL,(XF+2)
        LD      A,L
        ADD     A,32                ;32
        LD      L,A
        LD      (XF+2),HL
        XOR     A
        LD      (ZZZ+1),A
        LD      (ZZZ1+1),A
        POP     BC
        DJNZ    ZIPER
        LD      DE,#4000
        CALL    OUTSPR
        LD      DE,#4000+16
        CALL    OUTSPR
        LD      DE,#4800
        CALL    OUTSPR
        LD      DE,#4800+16
        CALL    OUTSPR
        EI 
        HALT 
        LD      DE,SCR_ZAP
        CALL    CHANG
        CALL    8020
        JP      NC,FIKI
        JP      GLOW

CHANG   LD      HL,UZOR
        LD      E,8
        LD      B,0
ENGEL   LD      A,(HL)
        SUB     E               ;SUB E _ ADD A,8
        LD      (HL),A
        INC     HL
        DJNZ    ENGEL
        RET 

OUTSPR  LD      HL,SCR_ZAP      ;ADRES SPRITES
        LD      B,128           ;PO Y W PIXELYAH
L40032  PUSH    DE
        PUSH    BC
        DEFS    16,#ED,#A0       ;PO X W ZNAKOMESTAH
        POP     BC
        POP     DE
        INC     D
        LD      A,D
        AND     7
        JR      NZ,L40064
        LD      A,E
        ADD     A,32
        LD      E,A
        JR      C,L40064
        LD      A,D
        SUB     8
        LD      D,A
L40064  DJNZ    L40032
        RET 

FIKI    XOR     A
        OUT     (#FE),A
        LD      HL,25000
        LD      DE,#4000
        LD      BC,6912
        LDIR 
        LD      A,(SET_TIM)
        CP      1
        JR      Z,SE_T1
        CP      2
        JR      Z,SE_T2
        CP      3
        JP      Z,SE_T3
        JP      BIKI

SE_T1   XOR     A
        LD      (BOMBA),A
        CALL    JABA
        JP      BIKI
SE_T2   XOR     A
        LD      (MAMBA),A
        JP      BIKI
SE_T3   XOR     A
        LD      (MAMBA),A
        LD      (BOMBA),A
        CALL    JABA
        JP      BIKI

PODP    LD      A,(HL)
        CP      #FF
        RET     Z
        PUSH    HL
        LD      L,A
        XOR     A
        LD      H,A
        CALL    WIWOD
        LD      A,(EEE+1)
        INC     A
        LD      (EEE+1),A
        POP     HL
        INC     HL
        JR      PODP
WIWOD   LD      DE,FNT-256
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,DE
        EX      DE,HL
EEE     LD      HL,#50F9
        PUSH    HL
        PUSH    DE
        INC     DE
        INC     DE
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     H
        INC     H
        INC     H
        INC     H
        INC     H
        INC     H
        LD      A,(DE)
        LD      (HL),A
        HALT 
        HALT 
        HALT 
        DEC     H
        LD      (HL),A
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        POP     DE
        POP     HL
        PUSH    DE
        PUSH    HL
        INC     DE
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     DE
        INC     H
        LD      A,(DE)
        LD      (HL),A
        HALT 
        HALT 
        HALT 
        DEC     DE
        DEC     DE
        DEC     H
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     H
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     DE
        LD      A,(DE)
        LD      (HL),A
        HALT 
        HALT 
        HALT 
        POP     HL
        POP     DE
        LD      B,8
M1      LD      A,(DE)
        LD      (HL),A
        INC     H
        INC     DE
        DJNZ    M1
        RET 
TEXT    DEFB    "PAUSED!"
        DEFB    #FF
TEXT1   DEFB    " PLAYER 1  PLAYER 2 " ;#40E1
        DEFB    #FF
TEXT2   DEFB    "GAME OVER!"            ;#4086
        DEFB    #FF
TEXT3   DEFB    "PLAYER 1 IS A WINNER" ;#5061
        DEFB    #FF
TEXT4   DEFB    "PLAYER 2 IS A WINNER" ;#5061
        DEFB    #FF
TEXT5   DEFB    "    A FULL DRAW!    " ;#5061
        DEFB    #FF

CLSKA   XOR     A
        LD      HL,#5841
        PUSH    HL
        PUSH    HL
        LD      B,7
CLS1    LD      (HL),A
        HALT 
        ADD     A,9
        DJNZ    CLS1
        PUSH    HL
        LD      B,20
CLS2    LD      (HL),A
        HALT 
        LD      DE,32
        ADD     HL,DE
        DJNZ    CLS2
        POP     HL
        INC     HL
        LD      B,19
CLS4    PUSH    BC
        PUSH    HL
        LD      B,20
CLS3    LD      (HL),A
        LD      DE,32
        ADD     HL,DE
        DJNZ    CLS3
        POP     HL
        INC     HL
        HALT 
        POP     BC
        DJNZ    CLS4
        POP     HL
        LD      A,54
        LD      B,6
CLS7    PUSH    BC
        PUSH    HL
        LD      B,20
CLS5    PUSH    BC
        LD      B,20
CLS6    LD      (HL),A
        INC     HL
        DJNZ    CLS6
        LD      DE,12
        ADD     HL,DE
        POP     BC
        DJNZ    CLS5
        SUB     9
        HALT 
        HALT 
        POP     HL
        POP     BC
        DJNZ    CLS7
        CALL    TEXTUR
        LD      A,8+6
        POP     HL
        LD      B,20
CLS9    PUSH    BC
        LD      B,20
CLS8    LD      (HL),A
        INC     HL
        DJNZ    CLS8
        LD      DE,12
        ADD     HL,DE
        POP     BC
        DJNZ    CLS9
        RET 

TEXTUR  LD      HL,#4041
        LD      B,160
T158    PUSH    HL
        LD      C,20
        XOR     A
T163    LD      (HL),A
        INC     L
        DEC     C
        JR      NZ,T163
        POP     HL
        CALL    T189
        DJNZ    T158
        RET 

SMP_PL  LD HL,GO_SMP  ;  
        LD DE,LENGHT ;( ) * 2
        CALL PLAY1
        EI 
        RET 

PLAY1   PUSH HL
        PUSH DE
        CALL INIAY
        POP  DE
        POP  HL

PLAY    DI 
        CALL PLAYAY
        CALL INIAY
        RET 
PLAYAY  EXX 
        LD DE,#FFBF
        LD C,#FD
        LD L,8
        EXX 
        LD B,0
LPLAY   LD A,(HL)
MAS1    AND #F0
CT1     RRCA 
        RRCA 
        RRCA 
        RRCA 
        EX AF,AF'
        EXX 
        LD A,L
        LD B,D
        OUT (C),A
        EX AF,AF'
        LD B,E
        OUT (C),A
        EX AF,AF'
        INC A
        LD B,D
        OUT (C),A
        EX AF,AF'
        LD B,E
        OUT (C),A
        EX AF,AF'
        INC A
        LD B,D
        OUT (C),A
        EX AF,AF'
        LD B,E
        OUT (C),A
        EXX 
        LD A,(CT1)
        XOR #0F
        LD (CT1),A
        LD (CT1+1),A
        LD (CT1+2),A
        LD (CT1+3),A
        LD A,(MAS1+1)
        CPL 
        LD (MAS1+1),A
        RLCA 
        AND 1
        LD C,A
        ADD HL,BC
        DEC DE
        LD A,D
        OR E
        JR NZ,LPLAY
        RET 
INIAY   LD HL,BUFAY
        XOR A
        LD DE,#FFBF
        LD C,#FD
LIA     LD B,D
        OUT (C),A
        LD B,E
        OUTI 
        INC A
        CP 14
        JR NZ,LIA
        RET 
BUFAY   DEFW 1,1,1
        DEFB 0,#3F,0,0,0
        DEFB 0,0,0

CHACH1  LD      HL,#C000
        LD      DE,25000
        LD      BC,2634
        LDIR 
        JP      NOGA
CHACH2  LD      HL,#C000+2634
        LD      DE,25000
        LD      BC,3063
        LDIR 
        JP      NOGA
CHACH3  LD      HL,#C000+2634+3063
        LD      DE,25000
        LD      BC,2621
        LDIR 
        JP      NOGA
CHACH4  LD      HL,#C000+2634+3063+2621
        LD      DE,25000
        LD      BC,2199
        LDIR 
        JP      NOGA
CHACH5  LD HL,#C000+2634+3063+2621+2199
        LD      DE,25000
        LD      BC,2518
        LDIR 
        JP      NOGA

AGONY   INCLUDE "MENUHA"
