;z80
;assembler
;zx-spectrum


SELECT  EI 
        HALT 
        HALT 
        HALT 
        HALT 
        HALT 
        LD      A,#F7
        IN      A,(#FE)
        RRA 
        JP      NC,CONTROL
        RRA 
        JR      NC,MUS_ON
        RRA 
        JR      NC,INSTR
        RRA 
        RET     NC
SLCT    LD      A,100
        DEC     A
        JP      Z,HISCOR
        LD      (SLCT+1),A
        JR      SELECT
INSTR   LD      A,100
        LD      (SLCT+1),A
        CALL    STIR
        CALL    INT_OFF
        CALL    CLS_SCR
        LD      A,17
        CALL    PAGE
        CALL    53825
        LD      A,16
        CALL    PAGE
        POP     HL
        JP      START2
PAGE    LD      BC,32765
        OUT     (C),A
        LD      (INT3+1),A
        RET 
MUS_ON  LD      A,(MUS+1)
        XOR     1
        LD      (MUS+1),A
        LD      HL,NP
        JR      NZ,MUS_ON1
        LD      HL,YP
MUS_ON1 LD      DE,TXT2+13
        LD      BC,3
        LDIR 
        CALL    POSSY
        JR      CNT_1
CONT    LD      HL,TEXT
        CALL    IN_SP
        LD      HL,TXT1
        CALL    IN_SP
        LD      HL,TXT2
        CALL    IN_SP
        LD      HL,TXT3
        CALL    IN_SP
        LD      HL,TXT4
        CALL    IN_SP
CNT_1   LD      A,100
        LD      (SLCT+1),A
        JP      SELECT

KLAVS   LD      HL,TAB_S2
        CALL    KLAV+3
        LD      D,C
        CALL    KLAV
        LD      A,C
        AND     D
        LD      C,A
        RET 
KLAV    LD      HL,TAB_S1
        LD      BC,#0500
KLAV3   LD      A,(HL)
        INC     HL
        IN      A,(#FE)
        AND     (HL)
        INC     HL
        JR      Z,KLAV1
KLAV2   SET     0,C
KLAV1   LD      A,(KLAV2+1)
        ADD     A,8
        LD      (KLAV2+1),A
        DJNZ    KLAV3
        LD      A,#C1
        LD      (KLAV2+1),A
        RET 

KEMPST  XOR     A               ;KEMPSTON
        IN      A,(#1F)
        CPL 
        RRA 
        RL      B
        RRA 
        RL      C
        RRA 
        RL      B
        RRA 
        RL      C
        RR      B
        RLA 
        RR      C
        RLA 
        RR      B
        RLA 
        RR      C
        RLA 
        AND     31
        LD      C,A
        RET 

CLS1    LD      HL,#5900
        LD      (STT+1),HL
        LD      HL,512
        LD      (STT1+1),HL
        CALL    STIR
        LD      HL,768
        LD      (STT1+1),HL
        LD      HL,#5800
        LD      (STT+1),HL
        LD      HL,18432
        LD      DE,18433
        LD      BC,4095
        LD      (HL),L
        LDIR 
        LD      HL,#5900
        LD      DE,#5901
        LD      BC,511
        LD      (HL),4
        LDIR 
        RET 
CONTROL CALL    CLS1
        CALL    WIW_C
CONTR1  EI 
        HALT 
        HALT 
        HALT 
        HALT 
        HALT 
        LD      A,#F7
        IN      A,(#FE)
        RRA 
        JR      NC,N_KEY
        RRA 
        JR      NC,N_SIN1
        RRA 
        JR      NC,N_KEM
        RRA 
        JR      NC,MOUSE
        RRA 
        JR      NC,N_CUR
        LD      A,#EF
        IN      A,(#FE)
        BIT     4,A
        JP      Z,RED_K
        JR      CONTR1
N_KEY   LD      HL,TABLE_K
EX_MEN1 LD      (KLAV+1),HL
        LD      HL,KLAV
        JR      KLAVA
N_SIN1  LD      HL,TAB_S1
        LD      (KLAV+1),HL
        LD      HL,KLAVS
        JR      KLAVA
N_CUR   LD      HL,TAB_CUR
        JR      EX_MEN1

N_KEM   LD      B,0
        XOR     A
        IN      A,(#1F)
        AND     224
        JR      NZ,NO_KEM
        DJNZ    N_KEM+2

        LD      HL,KEMPST
KLAVA   LD      (KEYS+1),HL
        JR      EX_MEN

MOUSE   JR      N_SIN1



NO_KEM  LD      B,16
NO_KEM2 EI 
        HALT 
        LD      HL,#5620
        PUSH    BC
        CALL    SCR_UP
        POP     BC
        DJNZ    NO_KEM2
        LD      HL,TEXT2
        CALL    PR_RED
        LD      A,%11000010
        CALL    CLC
        LD      B,100
NO_KEM1 EI 
        HALT 
        DJNZ    NO_KEM1
        LD      A,4
        CALL    CLC
        LD      HL,TEXT1+64
        LD      DE,#5000
        CALL    PR_RED2
        JP      CONTR1
EX_MEN  CALL    CLS1
        JP      CONT
CLC     LD      HL,#5A04
        PUSH    HL
        CALL    CLC2
        POP     HL
        LD      DE,32
        ADD     HL,DE
CLC2    LD      B,22
CLC1    LD      (HL),A
        INC     L
        DJNZ    CLC1
        RET 

RED_K   LD      HL,#4894
        LD      (K_TXT),HL
        CALL    CLS1
        LD      HL,TABLE_K
        LD      DE,TABLE_K+1
        LD      BC,9
        LD      (HL),B
        LDIR 
        LD      HL,TEXT4
        CALL    PR_RED
        LD      IX,TABLE_K
        LD      HL,L_TXT
        CALL    R_KEY
        LD      HL,R_TXT
        CALL    R_KEY
        LD      HL,U_TXT
        CALL    R_KEY
        LD      HL,D_TXT
        CALL    R_KEY
        LD      HL,F_TXT
        CALL    R_KEY
        JP      N_KEY
R_KEY   CALL    PR_RED
R_KEY1  HALT 
        HALT 
        HALT 
        HALT 
        HALT 
        CALL    REDKEYS
        JR      Z,R_KEY1
        LD      A,128
CHECK3  RLCA 
        RR      C
        JR      NC,CHECK3
        LD      C,A
        LD      IX,TABLE_K
CHECK5  LD      A,(IX+0)
        CP      B
        JR      NZ,CHECK
        LD      A,(IX+1)
        CP      C
        JR      NZ,CHECK
        JR      R_KEY1
CHECK   LD      A,(IX+0)
        OR      A
        JR      Z,CHECK2
        LD      A,(IX+1)
        JR      Z,CHECK2
        INC     IX
        INC     IX
        JR      CHECK5
CHECK2  LD      (IX+0),B
        LD      (IX+1),C
CHECK4  RRC     C
        INC     HL
        INC     HL
        JR      NC,CHECK4
        LD      DE,K_TXT+2
        LDI 
        LDI 
        LD      HL,K_TXT
        CALL    PR_KEY
        LD      HL,(K_TXT)
        LD      B,#10
FUJI    CALL    DPIX_HL
        DJNZ    FUJI
        LD      (K_TXT),HL
        LD      A,128
        LD      (CHECK3-1),A
        RET 

REDKEYS LD      HL,TAB1-2
        LD      DE,10
        LD      BC,#7FFE
KEYCK1  IN      A,(C)
        CPL 
        AND     31
        JR      NZ,KEYPRD
        ADD     HL,DE
        RRC     B
        JR      C,KEYCK1
        OR      A
        RET 
KEYPRD  LD      C,A
        RET 
;----------------------------------
HISCOR  CALL    STIR
        LD      HL,16384
        LD      DE,16385
        LD      BC,6144
        LD      (HL),L
        LDIR 
        LD      BC,767
        LD      (HL),7
        LDIR 
        XOR     A
        LD      (HIS+1),A
        LD      (SCROL+1),A
        CALL    HIS
        LD      HL,500
HIS1    EI 
        HALT 
        DEC     HL
        XOR     A               ;NZ-esli klawia navata
        IN      A,(254)
        CPL 
        AND     31
        JR      NZ,HIS2
        LD      A,H
        OR      L
        JR      NZ,HIS1
        CALL    STIR
        LD      HL,16384
        LD      DE,16385
        LD      BC,6911
        LD      (HL),L
        LDIR 
        LD      A,20
        CALL    PAGE
        LD      HL,ZAST
        CALL    DECOM
        LD      A,16
        CALL    PAGE
        CALL    LIEW
        LD      HL,500
HIS3    EI 
        HALT 
        DEC     HL
        XOR     A               ;NZ-esli klawia navata
        IN      A,(254)
        CPL 
        AND     31
        JR      NZ,HIS2
        LD      A,H
        OR      L
        JR      NZ,HIS3
HIS2    CALL    STIR
        LD      HL,SCREEN
        CALL    DECOM
        CALL    LIEW
        JP      CONT
HIS     LD      A,0
        EI 
        HALT 
        OR      A
        RET     NZ
        JR      HIS
SCROLL  JP      SCROL1
SCROL1  LD      A,17
        DEC     A
        JR      Z,SCROL2
        LD      (SCROL1+1),A
SLOP1   LD      HL,(SCROL4+1)
        DEC     HL
        DEC     HL
        LD      (SCROL4+1),HL
        LD      HL,(SCROL3+1)
        CALL    SCR_DN
SLOP    LD      HL,H_S
        LD      B,16
SCROL5  LD      A,(HL)
        SUB     32
        ADD     A,A
        EXX 
        LD      L,A
        LD      H,0
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
SCROL4  LD      DE,FONT1+32
        ADD     HL,DE
SCROL3  LD      DE,#4000
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     E
        LD      A,(HL)
        LD      (DE),A
        INC     E
        LD      (SCROL3+1),DE
        EXX 
        INC     HL
        DJNZ    SCROL5
STP_0   LD      HL,#4000
        LD      (SCROL3+1),HL
        RET 
SCROL2  LD      HL,FONT1+32
        LD      (SCROL4+1),HL
        LD      A,17
        LD      (SCROL1+1),A
        LD      HL,SCROL6
        LD      (SCROLL+1),HL
        RET 
SCROL6  LD      A,17
        DEC     A
        JR      Z,SCROL7
        LD      (SCROL6+1),A
SLP     LD      HL,(SCROL9+1)
        INC     HL
        INC     HL
        LD      (SCROL9+1),HL
        LD      HL,(SCROL10+1)
        CALL    SCR_UP
SCROL13 LD      HL,HI_TAB
        LD      B,16
SCROL8  LD      A,(HL)
        SUB     32
        ADD     A,A
        EXX 
        LD      L,A
        LD      H,0
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
SCROL9  LD      DE,FONT1-2
        ADD     HL,DE
SCROL10 LD      DE,#47A0
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     E
        LD      A,(HL)
        LD      (DE),A
        INC     E
        LD      (SCROL10+1),DE
        EXX 
        INC     HL
        DJNZ    SCROL8
SCROL15 LD      HL,#47A0
        LD      (SCROL10+1),HL
        RET 
SCROL7  LD      A,10
        DEC     A
        JR      Z,SCROL11
        LD      (SCROL7+1),A
        LD      HL,(SCROL13+1)
        LD      DE,16
        ADD     HL,DE
        LD      (SCROL13+1),HL
SCROL14 LD      A,17
        LD      (SCROL6+1),A
        LD      HL,FONT1-2
        LD      (SCROL9+1),HL
        LD      HL,(SCROL10+1)
        LD      B,16
SCROL12 CALL    DPIX_HL
        DJNZ    SCROL12
        LD      (SCROL10+1),HL
        LD      (SCROL15+1),HL
        RET 
SCROL11 CALL    SCROL14
        LD      HL,HI_TAB
        LD      (SCROL13+1),HL
        LD      A,10
        LD      (SCROL7+1),A
        LD      (HIS+1),A
        LD      (SCROL+1),A
        LD      HL,SCROL1
        LD      (SCROLL+1),HL
        LD      HL,#47A0
        LD      (SCROL10+1),HL
        LD      (SCROL15+1),HL
        RET 
SCR_DN  LD      B,14
SCR_DN1 CALL    DPIX_HL
        DJNZ    SCR_DN1
        PUSH    HL
        CALL    DPIX_HL
        POP     DE
        EX      DE,HL
        LD      B,16
SCR_DN3 PUSH    HL
        LD      C,32
SCR_DN2 LD      A,(HL)
        LD      (DE),A
        INC     L
        INC     E
        DEC     C
        JR      NZ,SCR_DN2
        POP     HL
        LD      D,H
        LD      E,L
        CALL    UPIX_HL
        DJNZ    SCR_DN3
        RET 
SCR_UP  LD      B,14
SCR_UP1 CALL    UPIX_HL
        DJNZ    SCR_UP1
        PUSH    HL
        CALL    UPIX_HL
        POP     DE
        EX      DE,HL
        LD      B,16
SCR_UP3 PUSH    HL
        LD      C,32
SCR_UP2 LD      A,(HL)
        LD      (DE),A
        INC     L
        INC     E
        DEC     C
        JR      NZ,SCR_UP2
        POP     HL
        LD      D,H
        LD      E,L
        CALL    DPIX_HL
        DJNZ    SCR_UP3
        RET 
STIR    LD      B,8
STIR2   PUSH    BC
STT     LD      HL,22528
STT1    LD      BC,768
STIR1   LD      A,(HL)
        AND     7
        JR      Z,STIR_E
        DEC     A
        LD      (HL),A
STIR_E  INC     HL
        DEC     BC
        LD      A,B
        OR      C
        JR      NZ,STIR1
        EI 
        HALT 
        HALT 
        HALT 
        HALT 
        HALT 
        POP     BC
        DJNZ    STIR2
        RET 
LIEW    LD      B,8
LIEW2   PUSH    BC
        LD      DE,#6000
        LD      HL,22528
        LD      BC,768
        CALL    LIEW4
        EX      DE,HL
LIEW1   LD      A,(DE)
        CP      (HL)
        JR      Z,LIEW_E
        INC     A
        LD      (DE),A
LIEW_E  INC     HL
        INC     DE
        DEC     BC
        LD      A,B
        OR      C
        JR      NZ,LIEW1
        EI 
        HALT 
        HALT 
        HALT 
        HALT 
        HALT 
        POP     BC
        DJNZ    LIEW2
        LD      A,#E5
        LD      (LIEW4),A
        RET 
LIEW4   PUSH    HL
        PUSH    DE
        PUSH    BC
LIEW5   LD      A,(DE)
        AND     248
        LD      (HL),A
        INC     DE
        INC     HL
        DEC     BC
        LD      A,B
        OR      C
        JR      NZ,LIEW5
        POP     BC
        POP     DE
        POP     HL
        LD      A,#C9
        LD      (LIEW4),A
        RET 
WWOD_HI LD      HL,(S_YA2+1)
        CALL    CONVER
        LD      HL,HI_TAB+13
        LD      (WWOD3+1),HL
        LD      B,10
WWOD4   PUSH    BC
        LD      DE,SCORE
        LD      A,(DE)
        CP      (HL)
        JR      C,WWOD1
        JR      Z,WWOD2
        JR      WWOD3
WWOD1   LD      BC,16
WWOD7   ADD     HL,BC
        LD      (WWOD3+1),HL
        POP     BC
        DJNZ    WWOD4
        CALL    STIR
        RET 
WWOD2   INC     DE
        INC     HL
        LD      A,(DE)
        CP      (HL)
        JR      C,WWOD5
        JR      Z,WWOD6
        JR      WWOD3
WWOD5   LD      BC,15
        JR      WWOD7
WWOD6   INC     DE
        INC     HL
        LD      A,(DE)
        CP      (HL)
        JR      C,WWOD8
        JR      Z,WWOD8
        JR      WWOD3
WWOD8   LD      BC,14
        JR      WWOD7
WWOD3   LD      HL,0
        POP     DE
        PUSH    HL
        LD      DE,14
        OR      A
        SBC     HL,DE
        PUSH    HL
        EX      DE,HL
        LD      HL,HI_TAB+143
        OR      A
        SBC     HL,DE
        LD      A,H
        OR      L
        JR      Z,WWOD11
        PUSH    HL
        POP     BC
        LD      DE,HI_TAB+159
        LD      HL,HI_TAB+143
        LDDR 
WWOD11  POP     HL
        POP     DE
        PUSH    HL
        LD      HL,SCORE
        LD      BC,3
        LDIR 
        POP     HL
        INC     HL
        PUSH    HL
        LD      B,12
WWOD9   LD      (HL),#20
        INC     HL
        DJNZ    WWOD9
        XOR     A
        LD      (FLAG+1),A
        CALL    STIR
        LD      HL,16384
        LD      DE,16385
        LD      BC,6144
        LD      (HL),L
        LDIR 
        LD      BC,767
        LD      (HL),7
        LDIR 
        LD      A,6
        CALL    INIT_M
        XOR     A
        LD      (HIS+1),A
        LD      (SCROL+1),A
        CALL    HIS
        POP     HL
        PUSH    HL
        LD      IX,HI_TAB
        LD      DE,16
        LD      B,0
CHK_C   LD      A,H
        CP      HX
        JR      NZ,CHK_A
        LD      A,L
        CP      LX
        JR      Z,CHK_B
CHK_A   SBC     HL,DE
        INC     B
        JR      CHK_C
CHK_B   LD      HL,#4080
        LD      A,B
        OR      A
        JR      Z,CHK_D
        ADD     A,A
        ADD     A,A
        ADD     A,A
        ADD     A,A
        LD      B,A
CHK_E   CALL    DPIX_HL
        DJNZ    CHK_E
CHK_D   LD      (A_PRN+1),HL
        LD      (A_PRN3+1),HL
        POP     HL
        LD      (A_PRN1+1),HL
;-----------------------------------
;wwod HI-SCORE
;-----------------------------------

        LD      B,12
        CALL    KEY_W
        LD      B,16
SRUP    EI 
        HALT 
        LD      HL,#4720
        PUSH    BC
        CALL    SCR_UP
        POP     BC
        DJNZ    SRUP
        LD      HL,SAV_TXT
        LD      (SLOP+1),HL
        LD      B,16
SLOP2   EI 
        HALT 
        LD      DE,1000
SLOP4   DEC     DE
        LD      A,D
        OR      E
        JR      NZ,SLOP4
        PUSH    BC
        CALL    SLOP1
        POP     BC
        DJNZ    SLOP2
        LD      HL,FONT1+32
        LD      (SCROL4+1),HL
        LD      HL,H_S
        LD      (SLOP+1),HL
SLOP3   EI 
        HALT 
        LD      A,#DF
        IN      A,(#FE)
        BIT     4,A
        JR      Z,Y_SAV
        LD      A,#7F
        IN      A,(#FE)
        BIT     3,A
        JR      NZ,SLOP3
N_SAV   CALL    STIR
        XOR     A
        LD      (FLAG+1),A
        LD      A,100
        LD      (SLCT+1),A
        RET 
Y_SAV   CALL    INT_OFF
        CALL    XORKA
        DI 
        LD      HL,HI_TAB
        LD      D,159
        LD      E,0
        LD      BC,#0106
        XOR     A
        LD      (23824),A
        CALL    15635
        CALL    ANTI_X1
        JR      N_SAV


KEY_W   INC     B
        LD      C,B
KEY2    CALL    KEY1
        CP      12
        JR      NZ,KEY4
        LD      A,B
        CP      C
        JR      Z,KEY8
        DEC     HL
        INC     B
KEY8    LD      (HL),#20
        CALL    KEY_P
        JR      KEY2
KEY4    CP      13
        JR      Z,KEY5
        DEC     B
        JR      NZ,KEY6
        INC     B
        JR      KEY2
KEY6    INC     B
        LD      (HL),A
        CALL    KEY_P
        INC     HL
        DJNZ    KEY2
KEY5    LD      A,C
        SUB     B
        DEC     C
        CP      C
        JR      Z,KEY_P
        DEC     B
KEY7    LD      (HL),#20
        INC     HL
        DJNZ    KEY7
KEY_P   PUSH    HL
        PUSH    BC
A_PRN1  LD      HL,0
        LD      B,13
A_PRN4  PUSH    BC
        LD      A,(HL)
        SUB     32
        ADD     A,A
        EXX 
        LD      L,A
        LD      H,0
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        LD      DE,FONT1
        ADD     HL,DE
A_PRN   LD      DE,0
        LD      B,16
A_PRN2  PUSH    DE
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     E
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        POP     DE
        CALL    DPIX_DE
        DJNZ    A_PRN2
        LD      HL,(A_PRN+1)
        INC     L
        INC     L
        LD      (A_PRN+1),HL
        EXX 
        INC     HL
        POP     BC
        DJNZ    A_PRN4
A_PRN3  LD      HL,0
        LD      (A_PRN+1),HL
        POP     BC
        POP     HL
        RET 
;---------------------------------------------
; opros klawy
;----------------------------------------------
KEY1    EI 
        HALT 
        HALT 
        HALT 
        HALT 
        PUSH    HL,BC
        CALL    CURSOL
        CALL    INP_NAM
        OR      A
        JR      NZ,KEY0
        POP     BC,HL
        JR      KEY1
KEY0    BIT     7,A
        JR      Z,KEY3
        LD      A,12
        POP     BC,HL
        RET 
KEY3    LD      B,5
        INC     HL
        RRCA 
        JR      C,KEY9
        DJNZ    KEY3+2
KEY9    LD      A,(HL)
        POP     BC,HL
        RET 
;-----------------------------------
;skanirowanie klawy
;-----------------------------------

INP_NAM LD      BC,#FEFE
        IN      A,(C)
        RRCA 
        JR      C,INP4
        LD      B,#F7
        IN      A,(C)
        RRCA 
        RRCA 
        JR      C,INP1
        LD      A,(INP3+1)
        CPL 
        LD      (INP3+1),A
        XOR     A
        RET 
INP1    LD      B,#EF
        IN      A,(C)
        RRCA 
        JR      C,INP9
        XOR     A
        SET     7,A
        RET 
INP9    XOR     A
        RET 
INP4    LD      HL,TAB_SE-1
        LD      B,#7F
        IN      A,(C)
        RRCA 
        RRCA 
        JR      NC,INP2
INP3    LD      A,0
        LD      HL,TAB_ENG-1
        OR      A
        JR      Z,INP2
        LD      HL,TAB_RUS-1
INP2    LD      DE,5
        LD      B,#7F
INP5    IN      A,(C)
        CPL 
        AND     31
        JR      NZ,INP6
INP8    ADD     HL,DE
        RRC     B
        JR      C,INP5
        XOR     A
        RET 
INP6    PUSH    AF
        LD      A,B
        CP      #7F
        JR      Z,INP7
        POP     AF
        RET 
INP7    POP     AF
        BIT     1,A
        RET     Z
        RES     1,A
        AND     31
        RET     NZ
        JR      INP8
;-----------------------------------
;wwod HI-SCORE
;-----------------------------------
;------------------------------------
; wywod kursora
;------------------------------------
CURSOL  LD      A,B
        CPL 
        ADD     A,14
        LD      HL,(A_PRN3+1)
        OR      A
        JR      Z,CURSOR1
        LD      B,A
CURSOR2 INC     L
        INC     L
        DJNZ    CURSOR2
CURSOR1 EX      DE,HL
NUMB_SP LD      A,0
        INC     A
        CP      16
        JR      C,CURSOR3
        XOR     A
CURSOR3 LD      (NUMB_SP+1),A
        ADD     A,A
        LD      L,A
        LD      H,0
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        LD      BC,CURS_SP
        ADD     HL,BC
        LD      B,16
CURSOR4 PUSH    DE
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     E
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        POP     DE
        CALL    DPIX_DE
        DJNZ    CURSOR4
        RET 
XORKA   CALL    CHECK_K
        LD      A,C
        LD      (HI_TAB+160),A
        LD      HL,HI_TAB
        DI 
        XOR     A
        LD      R,A
        LD      B,#A1
XORKA1  LD      A,R
        XOR     B
        XOR     (HL)
        LD      (HL),A
        INC     HL
        DJNZ    XORKA1
        EI 
        RET 
ANTI_X1 LD      HL,HI_TAB
        DI 
        XOR     A
        LD      R,A
        LD      B,#A1
ANTI_X2 LD      A,R
        XOR     B
        XOR     (HL)
        LD      (HL),A
        INC     HL
        DJNZ    ANTI_X2
        EI 
        CALL    CHECK_K
        LD      A,(HI_TAB+160)
        CP      C
        RET     Z
        LD      HL,SCORE_N
        LD      DE,HI_TAB
        LD      BC,161
        LDIR 
        JR      ANTI_X1
CHECK_K LD      HL,HI_TAB
        XOR     A
        LD      B,160
CHK_K1  ADD     A,(HL)
        INC     HL
        DJNZ    CHK_K1
        LD      C,A
        RET 
POSSY   LD      HL,TXT2+1
POSSY4  LD      B,16
POSSY3  LD      A,(HL)
        SUB     32
        EXX 
        ADD     A,A
        LD      L,A
        LD      H,0
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL
        LD      DE,FONT1
        ADD     HL,DE
POSSY2  LD      DE,#48C0
        LD      B,16
POSSY1  PUSH    DE
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     E
        LD      A,(HL)
        LD      (DE),A
        INC     HL
        POP     DE
        CALL    DPIX_DE
        DJNZ    POSSY1
        LD      HL,POSSY2+1
        INC     (HL)
        INC     (HL)
        EXX 
        INC     HL
        DJNZ    POSSY3
        LD      HL,#48C0
        LD      (POSSY2+1),HL
        RET 
PR_KEY  LD      E,(HL)
        INC     HL
        LD      D,(HL)
        INC     HL
        LD      (POSSY+1),HL
        LD      (POSSY2+1),DE
        LD      A,2
        LD      (POSSY4+1),A
        CALL    POSSY
        LD      HL,#48C0
        LD      (POSSY2+1),HL
        LD      HL,TXT2+1
        LD      (POSSY+1),HL
        LD      A,16
        LD      (POSSY4+1),A
        RET 
WIW_C   LD      HL,TEXT1
        LD      (SLOP+1),HL
        LD      HL,#4800
        LD      (SCROL3+1),HL
        LD      (STP_0+1),HL
        LD      B,16
LLOP2   EI 
        HALT 
        PUSH    BC
        CALL    SLOP1
        POP     BC
        DJNZ    LLOP2
        LD      HL,FONT1+32
        LD      (SCROL4+1),HL
        LD      HL,H_S
        LD      (SLOP+1),HL
        LD      HL,#4000
        LD      (SCROL3+1),HL
        LD      (STP_0+1),HL
        LD      HL,TEXT1+16
        LD      (SCROL13+1),HL
        LD      HL,#4F60
        LD      (SCROL10+1),HL
        LD      (SCROL15+1),HL
        LD      A,6
FLOP3   PUSH    AF
        LD      B,16
FLOP2   EI 
        HALT 
        PUSH    BC
        CALL    SLP
        POP     BC
        DJNZ    FLOP2
        LD      HL,(SCROL13+1)
        LD      DE,16
        ADD     HL,DE
        LD      (SCROL13+1),HL
        LD      HL,FONT1-2
        LD      (SCROL9+1),HL
        LD      HL,(SCROL10+1)
        LD      B,16
FCROL12 CALL    DPIX_HL
        DJNZ    FCROL12
        LD      (SCROL10+1),HL
        LD      (SCROL15+1),HL
        POP     AF
        DEC     A
        JR      NZ,FLOP3
        LD      HL,HI_TAB
        LD      (SCROL13+1),HL
        LD      HL,#47A0
        LD      (SCROL10+1),HL
        LD      (SCROL15+1),HL
        RET 
PR_RED  LD      E,(HL)
        INC     HL
        LD      D,(HL)
        INC     HL
PR_RED2 LD      (SLOP+1),HL
        LD      (SCROL3+1),DE
        LD      (STP_0+1),DE
        LD      B,16
PR_RED1 EI 
        HALT 
        PUSH    BC
        CALL    SLOP1
        POP     BC
        DJNZ    PR_RED1
        LD      HL,FONT1+32
        LD      (SCROL4+1),HL
        LD      HL,H_S
        LD      (SLOP+1),HL
        LD      HL,#4000
        LD      (SCROL3+1),HL
        LD      (STP_0+1),HL
        RET 
CONVER  LD      DE,SCORE
        LD      BC,100
        CALL    CONVER1
        LD      BC,10
        CALL    CONVER1
        LD      A,L
        ADD     A,48
        LD      (DE),A
        RET 
CONVER1 XOR     A
CONVER3 OR      A
        SBC     HL,BC
        JR      C,CONVER2
        INC     A
        JR      CONVER3
CONVER2 ADD     HL,BC
        ADD     A,48
        LD      (DE),A
        INC     DE
        RET 
MSU     LD      HL,(COORDX)
        LD      A,H
        CALL    SCHET
        CP      21
        RET     C
        CP      23
        RET     NC
        LD      A,L
        CALL    SCHET
        CP      30
        RET     NC
        CP      10
        JR      C,MUSAX
        CP      20
        JR      C,POS
        CP      30
        JR      C,PCCC
        POP     HL
        RET 
MUSAX   LD      A,(MUS+1)
        XOR     1
        LD      (MUS+1),A
        LD      HL,NP
        JR      NZ,LUS_ON1
        LD      HL,YP
LUS_ON1 LD      DE,TXT2+13
        LD      BC,3
        LDIR 
MUSAX1  LD      A,10
        LD      (KEY+1),A
        POP     HL
        RET 
POS     LD      A,(TYME+1)
        CPL 
        LD      (TYME+1),A
        LD      (FURE1+1),A
        LD      A,3
        LD      (STR+1),A
        JR      MUSAX1
PCCC    XOR     A
        LD      (FLAG+1),A
        LD      A,4
        LD      (STR+1),A
        JR      MUSAX1



