FONT    EQU     #F000        ;61440
HELP    EQU     60000
TEXT    EQU     24700
MUSIC   EQU     49152
SET_UP  EQU     #F000-1665   ;59775
        ORG     #E000,17
        -INCBIN "#HLP_P"
        ORG     #C000,17
        -INCBIN "IzDaRule"
        ORG     FONT
        -INCBIN "FONT"
        ORG     TEXT
        -INCBIN "instr.W"
        ORG     HELP,23
        -INCBIN "#help1"
        ORG     SET_UP
        DEFB    "BODY"
        DEFB    0
        DEFB    0
DRS     DEFB    1
DRQ     DEFB    1
BUFBEL  DEFB    1
BMUS    DEFB    1
BUFCV   DEFB    5
BUFCV1  DEFB    5
        ORG 24500
WRECKER LD      A,17
        CALL    P17
GETRA   CALL    #E000
MM2     CALL    MUSIC
MM3     CALL    MUSIC
        LD      A,23
        CALL    P17
        CALL    HELP
        LD      A,16
        CALL    P17
WR1     LD HL,PRER
        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 
IMOFF   DI 
LK      LD      SP,0
IMOF1   DI 
        LD      HL,10072
        EXX 
        LD      HL,10072
        CALL    NOT_MUS
        LD A,63
        LD I,A
        IM 1
        EI 
        RET 
PRER    PUSH HL
        PUSH DE
        PUSH BC
        PUSH AF
        PUSH IX
        PUSH IY
        EXX 
        PUSH HL
        PUSH DE
        PUSH BC
        PUSH IX
        PUSH IY
        EX   AF,AF'
        PUSH    AF
KUR     CALL    82       ; KRS
        LD      A,17
        CALL    P17
MOF     CALL    MUSIC+6
SEWER   LD      A,16
        CALL    P17
        POP AF
        POP IY
        POP IX
        POP BC
        POP DE
        POP HL
        EX      AF,AF'
        EXX 
        POP IY
        POP IX
        POP AF
        POP BC
        POP DE
        POP HL
        JP 56
HELP1   CALL    OFF
        LD      A,24
        LD      (SEWER+1),A
        CALL    P17
        XOR     A
        LD      (23560),A
UUS     LD      A,(23560)
        OR      A
        JR      NZ,UUS1
        IN      A,(31)
        OR      A
        JR      Z,UUS
        BIT     4,A
        JR      NZ,UUS
UUS1    LD      A,16
        LD      (SEWER+1),A
        CALL    P17
        JP      ON
P17     LD      BC,32765
        OUT     (C),A
        RET 
;++++++++++++++++++
        ORG     54700
        LD      HL,KURZOR
        LD      (L36042),HL
        LD      HL,(23613)
        LD      (KOLL+1),HL
        LD      HL,0
        LD      (23613),HL
        LD      HL,SET_UP-257
        LD      DE,#000A
        LD      BC,#0105
        CALL    15635
KOLL    LD      HL,0
        LD      (23613),HL
        LD      HL,#4000
        LD      DE,#4001
        LD      BC,6911
        LD      (HL),L
        LDIR 
        LD      (LK+1),SP
        CALL    WRECKER
        HALT 
        CALL    IMOF1
        LD      HL,82
        LD      (GETRA+1),HL
        LD      HL,TEXT
        LD      DE,#0102
        CALL    PRINT64     ;HL-TEXT
        INC     HL
        LD      (BEG+1),HL
        LD      (BEG1+1),HL
        LD      (BEG2+1),HL
        LD      (BUP),HL
        LD      A,#CA
        LD      HL,PRINT_X
        LD      (RETA),A
        LD      (RETA+1),HL
        LD      HL,#5821
        LD      DE,#5822
        LD      BC,29
        LD      (HL),32+8
        LDIR 
        LD      A,8+5
        LD      (#5820+31),A
        LD      HL,SET_UP-257
        LD      A,(HL)
        CP      "B"
        JR      NZ,GET
        INC     HL
        LD      A,(HL)
        CP      "O"
        JR      NZ,GET
        INC     HL
        INC     HL
        INC     HL
        INC     HL
        INC     HL
        LD      A,(HL)
        DEC     A
        LD      (DRS),A
        PUSH    HL
        CALL    CIR
        POP     HL
        INC     HL
        LD      A,(HL)
        DEC     A
        LD      (DRQ),A  ;KEMPSTON
        PUSH    HL
        CALL    ASD
        POP     HL
        INC     HL
        LD      A,(HL)
        DEC     A
        LD      (BUFBEL),A
        PUSH    HL
        CALL    INV
        POP     HL
        INC     HL
        LD      A,(HL)
        DEC     A
        LD      (BMUS),A
        CALL    MUSS1
        JR      STS
GET     XOR     A
        LD      (KONTR),A
        LD      A,1
        LD      (DRS),A
        CALL    CIRS
        LD      A,1
        LD      (DRQ),A
        CALL    ASD
        XOR     A
        LD      (KONTR),A
        LD      (BMUS),A
        LD      (BUFBEL),A
        CALL    INV
        CALL    MUSS
STS     CALL    WRECKER
;++++++++++ MAIN PROGRAM +++++++++++++++++
        LD      HL,(BUP)
        LD      DE,#0300
        CALL    PRN
        LD      (BDW),HL
;++++++++++++++++++++++++
OPR     CALL    KJOY
        CALL    CCVV
        LD      A,1
        LD      (SS),A
        LD      A,(Y_COORD)
        CP      161
        CALL    NC,IKON
;+++++++++ UDALIT ++++++++++++++++++++++++
        JP      OPR
IKON    CALL    CCVV
        LD      A,(Y_COORD)
        CP      161
        RET     C
        CP      161+8
        JR      C,IKON
        CP      161+8+14
        JR      NC,IKON
        LD      A,(X_COORD)
        CP      8
        JR      C,IKON
        CP      134
        JR      NC,IKON
        CP      8+16
        JP      C,LE1
        CP      8+16+16
        JP      C,VE1
        CP      8+16+16+16
        JP      C,FE1
        CP      8+16+16+16+16
        JP      C,WE1
        CP      8+16+16+16+16+16
        JP      C,RE1
        CP      8+16+16+16+16+16+16
        JP      C,KE1
        CP      8+16+16+16+16+16+16+16
        JP      C,IE1
        CP      8+16+16+16+16+16+16+16+16
        JP      C,OE1
        JP      IKON
BUFKN   DEFB    2
RD      DEFB    0,0
RG      DEFB    0,0
RS      DEFB    0,0
KKON    CALL    ZAKR
        JR      IKON
LE1     LD      HL,#51A1
        LD      (RD),HL
        LD      HL,#50C1
        LD      (RG),HL
        LD      HL,#56C1
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
LE2     LD      A,(X_COORD)
        CP      8
        JP      C,KKON
        CP      16+8
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,LE4
LE3     CALL    FIKR
        OR      A
        JR      NZ,LE2
        CALL    OTKR
        CALL    DOWS
        XOR     A
        LD      (BUFKN),A
        JP      LE3
LE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        RET 
VE1     LD      HL,#51A3
        LD      (RD),HL
        LD      HL,#50C3
        LD      (RG),HL
        LD      HL,#56C3
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
VE2     LD      A,(X_COORD)
        CP      16+8
        JP      C,KKON
        CP      16+8+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,VE4
VE3     CALL    FIKR
        OR      A
        JR      NZ,VE2
        CALL    OTKR
        CALL    DOWZ     ;;;;;
        XOR     A
        LD      (BUFKN),A
        JP      VE3
VE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        RET 
FE1     LD      HL,#51A5
        LD      (RD),HL
        LD      HL,#50C5
        LD      (RG),HL
        LD      HL,#56C5
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
FE2     LD      A,(X_COORD)
        CP      16+8+16
        JP      C,KKON
        CP      16+8+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,FE4
FE3     CALL    FIKR
        OR      A
        JR      NZ,FE2
        CALL    OTKR
        CALL    UPN
        XOR     A
        LD      (BUFKN),A
        JP      FE3
FE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        RET 
WE1     LD      HL,#51A7
        LD      (RD),HL
        LD      HL,#50C7
        LD      (RG),HL
        LD      HL,#56C7
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
WE2     LD      A,(X_COORD)
        CP      16+8+16+16
        JP      C,KKON
        CP      16+8+16+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,WE4
WE3     CALL    FIKR
        OR      A
        JR      NZ,WE2
        CALL    OTKR
        CALL    UPS
        XOR     A
        LD      (BUFKN),A
        JP      WE3
WE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        RET 
RE1     LD      HL,#51A9
        LD      (RD),HL
        LD      HL,#50C9
        LD      (RG),HL
        LD      HL,#56C9
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
RE2     LD      A,(X_COORD)
        CP      16+8+16+16+16
        JP      C,KKON
        CP      16+8+16+16+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,RE4
RE3     CALL    FIKR
        OR      A
        JR      NZ,RE2
        CALL    OTKR
        CALL    MUSS
        LD      A,1
        LD      (KONTR),A
        XOR     A
        LD      (BUFKN),A
        JP      RE3
RE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        XOR     A
        LD      (KONTR),A
        RET 
KE1     LD      HL,#51A9+2
        LD      (RD),HL
        LD      HL,#50C9+2
        LD      (RG),HL
        LD      HL,#56C9+2
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
KE2     LD      A,(X_COORD)
        CP      16+8+16+16+16+16
        JP      C,KKON
        CP      16+8+16+16+16+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,KE4
KE3     CALL    FIKR
        OR      A
        JR      NZ,KE2
        CALL    OTKR
        CALL    INV
        LD      A,1
        LD      (KONTR),A
        XOR     A
        LD      (BUFKN),A
        JP      KE3
KE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        XOR     A
        LD      (KONTR),A
        RET 
IE1     LD      HL,#51A9+4
        LD      (RD),HL
        LD      HL,#50C9+4
        LD      (RG),HL
        LD      HL,#56C9+4
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
IE2     LD      A,(X_COORD)
        CP      16+8+16+16+16+16+16
        JP      C,KKON
        CP      16+8+16+16+16+16+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
        LD      A,(BUFKN)
        OR      A
        CALL    Z,IE4
IE3     CALL    FIKR
        OR      A
        JR      NZ,IE2
        CALL    OTKR
        CALL    HELP1
        XOR     A
        LD      (BUFKN),A
        JP      IE3
IE4     CALL    ZAKR
        LD      A,1
        LD      (BUFKN),A
        RET 
OE1     LD      HL,#51A9+6
        LD      (RD),HL
        LD      HL,#50C9+6
        LD      (RG),HL
        LD      HL,#56C9+6
        LD      (RS),HL
        LD      A,2
        LD      (BUFKN),A
OE2     LD      A,(X_COORD)
        CP      16+8+16+16+16+16+16+16
        JP      C,KKON
        CP      16+8+16+16+16+16+16+16+16
        JP      NC,KKON
        LD      A,(Y_COORD)
        CP      161+8
        JP      C,KKON
        CP      161+8+14
        JP      NC,KKON
OE3     CALL    FIKR
        OR      A
        JR      NZ,OE2
        CALL    OTKR
        CALL    IMOFF
        XOR     A
        LD      (BUFKN),A
        JP      OE3

FAZA3   LD      B,7
DERF3   RES     1,(HL)
        INC     H
        DJNZ    DERF3
        RET 
FAZA    LD      B,7
DERF    RES     6,(HL)
        INC     H
        DJNZ    DERF
        RET 
FAZA2   LD      B,7
DERF2   SET     1,(HL)
        INC     H
        DJNZ    DERF2
        RET 
FAZA1   LD      B,7
DERF1   SET     6,(HL)
        INC     H
        DJNZ    DERF1
        RET 
ZAKR    CALL    OFF
        LD      HL,(RD)
        LD      A,255-128
        LD      (HL),A
        INC     L
        LD      A,255-2
        LD      (HL),A
        DEC     L
        CALL    FAZA1
        LD      HL,(RG)
        CALL    FAZA1
        LD      HL,(RS)
        LD      A,128
        LD      (HL),A
        INC     L
        LD      A,1
        LD      (HL),A
        LD      HL,(RD)
        INC     L
        CALL    FAZA3
        LD      HL,(RG)
        INC     L
        LD      B,6
        CALL    DERF3
        JP      ON
OTKR    CALL    OFF
        LD      HL,(RD)
        XOR     A
        LD      (HL),A
        INC     L
        LD      A,3
        LD      (HL),A
        DEC     L
        CALL    FAZA
        LD      HL,(RG)
        LD      B,6
        CALL    DERF
        LD      HL,(RS)
        LD      A,255
        LD      (HL),A
        INC     L
        LD      (HL),A
        LD      HL,(RD)
        INC     L
        CALL    FAZA2
        LD      HL,(RG)
        INC     L
        LD      B,6
        CALL    DERF2
        JP      ON

SATE    LD      A,(KONTR)
        OR      A
        RET     NZ
        LD      A,1
        LD      (KONTR),A
        CALL    IMOF1
        CALL    OFF
        CALL    SAVER
        CALL    ON
        JP      WR1
SS      DEFB    1
;++++++++++ SAVE SETUP +++++++++++++
SETES   LD      A,(KONTR)
        OR      A
        RET     NZ
        LD      A,1
        LD      (KONTR),A
        CALL    IMOF1
        CALL    OFF
        LD      HL,(23613)
        LD      (GGFF+1),HL
        LD      HL,GTRF
        LD      (23613),HL
        LD      HL,#C9F1
        LD      (#5CC2),HL
        LD      HL,SET_UP
        LD      BC,#0106
        LD      DE,10
        CALL    15635
GGFF    LD      HL,0
        LD      (23613),HL
        CALL    ON
        JP      WR1
GTRF    DEFB    SETES
;========= HELP ==================
;++++++++ FIRE ++++++++++++
FIKR    LD      BC,#EFFE
        IN      A,(C)
        BIT     0,A
        JR      Z,FI
        LD      B,#F7
        IN      A,(C)
        BIT     4,A
        JR      Z,FI
        LD      B,#7F
        IN      A,(C)
        BIT     0,A
        JR      Z,FI
FIRKEM  JP      KEMPS
FIRMOU  JP      S1
S1      LD      A,1
        RET 
;++++++++++ MOUS FIRE +++++
FI      XOR     A
        RET 
KEMPS   IN      A,(31)
        BIT     4,A
        JR      NZ,FI
        LD      A,1
        RET 
;+++++++++++ EXIT +++++++++
EXIT    CALL    NOT_MUS
        LD      HL,00
        PUSH    HL
        JP      15663
;++++++++++++ BEGIN +++++++
BEG2    LD      DE,00
        LD      HL,(BUP)
        SBC     HL,DE
        RET     Z
        RET     C
        PUSH    DE
        CALL    OFF
        POP     HL
        LD      (BUP),HL
        CALL    PRN
        LD      (BDW),HL
        JP      ON
;+++++++++++ END TEXT +++++
KONEC   LD      HL,(BDW)
        LD      A,(HL)
        OR      A
        RET     Z
        CALL    OFF
        LD      HL,(BDW)
ENTR    LD      A,(HL)
        OR      A
        JR      Z,END
        INC     HL
        JR      ENTR
END     LD      (BDW),HL
        LD      B,17
PSI     PUSH    BC
        CALL    POISK
        POP     BC
        DJNZ    PSI
        LD      (BUP),HL
        CALL    PRN
        JP      ON
;++++++++ MUSIK ON/OFF +++++++
MUSS    LD      A,(KONTR)
        OR      A
        RET     NZ
        LD      A,1
        LD      (KONTR),A
MUSS1   LD      A,(BMUS)
        OR      A
        JR      Z,ONN
        XOR     A
        LD      (BMUS),A
        LD      HL,82
        LD      (MOF+1),HL
NOT_MUS XOR A
        LD D,14
SSS_1   LD BC,#FFFD
        DEC D
        OUT (C),D
        LD B,#BF
        OUT (C),A
        JR NZ,SSS_1
        LD B,#FF
        LD D,7
        OUT (C),D
        LD B,#BF
        DEC A
        OUT (C),A
        RET 
ONN     LD      A,1
        LD      (BMUS),A
        LD      HL,MUSIC+6
        LD      (MOF+1),HL
        RET 
;++++++++ CURSOR ON/OFF +++++++++
CIRS    LD      A,(KONTR)
        OR      A
        RET     NZ
        LD      A,1
        LD      (KONTR),A
CIR     LD      A,(DRS)
        OR      A
        JR      Z,ONNN
        XOR     A
        LD      (DRS),A
        LD      HL,KJOY
        LD      (OPR+1),HL
        CALL    OFF
        LD      A,#C9
        LD      (ON),A
        LD      (OFF),A
        RET 
ONNN    LD      A,1
        LD      (DRS),A
        XOR     A
        LD      (ON),A
        LD      (OFF),A
        LD      HL,FIRE
        LD      (OPR+1),HL
        CALL    INMEM
        JP      ON
KEMON   LD      A,(KONTR)
        OR      A
        RET     NZ
        LD      A,1
        LD      (KONTR),A
ASD     LD      A,(DRQ)
        OR      A
        JR      Z,ONN1
        XOR     A
        LD      (DRQ),A
        LD      HL,FIRMOU    ;OFF
        LD      (FIRKEM+1),HL
        LD      A,#C9
        LD      (OFFJOY),A
        RET 
ONN1    LD      A,1
        LD      (DRQ),A
        LD      HL,KEMPS      ;ON
        LD      (FIRKEM+1),HL
        XOR     A
        LD      (OFFJOY),A
        RET 
;+++++++ SCROLL UP DOWN ++++++++++
UP      LD      B,16
        LD      DE,4
        LD      HL,#4060
DOZ     PUSH    BC
        CALL    DVIG
        PUSH    HL
        PUSH    DE
        LD      A,E
        AND     #18
        SRL     A
        SRL     A
        SRL     A
        OR      #58
        LD      H,A
        LD      A,E
        AND     7
        OR      A
        RRA 
        RRA 
        RRA 
        RRA 
        ADD     A,D
        LD      L,A   ;HL=4060 ATR
        PUSH    HL
        LD      DE,#20
        SBC     HL,DE
        PUSH    HL
        POP     DE
        POP     HL
        DEFS    32,#ED,#A0
        POP     DE
        POP     HL
        INC     E
        POP     BC
        DJNZ    DOZ
        RET 
DOWN    LD      B,16
        LD      DE,18
        LD      HL,#5060
DEK     PUSH    BC
        CALL    DVIG
        PUSH    HL
        PUSH    DE
        LD      A,E
        AND     #18
        SRL     A
        SRL     A
        SRL     A
        OR      #58
        LD      H,A
        LD      A,E
        AND     7
        OR      A
        RRA 
        RRA 
        RRA 
        RRA 
        ADD     A,D
        LD      L,A   ;HL=4060 ATR
        PUSH    HL
        LD      DE,#20
        ADD     HL,DE
        PUSH    HL
        POP     DE
        POP     HL
        DEFS    32,#ED,#A0
        POP     DE
        POP     HL
        DEC     E
        POP     BC
        DJNZ    DEK
        RET 
DVIG    PUSH    DE
        PUSH    HL
        LD      A,E
        AND     #18
        ADD     A,#40
        LD      H,A
        LD      A,E
        AND     #07
        RRCA 
        RRCA 
        RRCA 
        ADD     A,D
        LD      L,A
        POP     DE
        PUSH    HL
        LD      B,8
DEZ     PUSH    BC
        LD      BC,32
        PUSH    HL
        PUSH    DE
        DEFS    32,#ED,#A0 ;SPECIAL FOR
        POP     DE         ;ALEX
        POP     HL         ;NIKIFOROV
        INC     H
        INC     D
        POP     BC
        DJNZ    DEZ
        POP     HL
        POP     DE
        RET 
;++++++ OUTPUT SYMBOLS 64 +++++++++++++
PRINT64 PUSH HL       ;   
        PUSH DE       ; HL - C
        SRL E
        LD A,D
        AND #18
        OR #40
        LD H,A
        LD A,D
        AND 7
        RRCA 
        RRCA 
        RRCA 
        OR E
        LD L,A     ; HL=ADDRESS OF SCREEN
        LD (AD_SCRN+1),HL
        POP DE
        POP HL
        LD A,(HL)
        INC HL
        CP     8
        JR     C,PRINT1X
PROD    PUSH    AF
PR1     LD      A,5
        LD      (BUFCV),A
        POP     AF
        JR      PROD1
PRINT1X LD      (BUFCV),A
PRINT_X LD      A,(HL)
        INC     HL
        CP      8
        JR      C,PRINT1X
PROD1   PUSH    DE
        PUSH    HL
        PUSH    AF
        LD      A,E
        SRA     A     ;(C) BY SATZUFT!
        CP      32
        JR      C,RETD
        LD      A,31
RETD    LD      E,A
        LD      A,D
        AND     #18
        SRL     A
        SRL     A
        SRL     A
        OR      #58
        LD      H,A
        LD      A,D
        AND     7
        OR      A
        RRA 
        RRA 
        RRA 
        RRA 
        ADD     A,E
        LD      L,A
        LD      A,(BUFCV)
        LD      (HL),A
        POP     AF
        POP     HL
        POP     DE
        CP 10
        JR Z,PRINT13
        CP 9
        JR Z,PRINT9
        CP 13
RETA    RET     Z         ;JR Z,PRINT_X
        NOP 
        NOP 
        CALL PR_SYMB
        JP PRINT_X
PRINT9  LD A,7
        OR E
        INC A
        LD C,A
P9_LOOP LD A,E
        CP C
        JR Z,PRINT_X
        LD A," "
        CALL PR_SYMB
        JP P9_LOOP
PRINT13 PUSH HL
        LD A,E
        CP 64
        JR Z,LABEL_9
        LD A," "
        CALL PR_SYMB
        JR $-10
LABEL_9 POP HL
        LD E,0
        INC D
        LD A,D
        CP 24
        RET C
        DEC D
        RET 
PR_SYMB PUSH DE
        EXX 
AD_SCRN LD HL,0
        LD E,A
        LD D,'FONT  ; DE=ADDRESS OF SYMBOL
        POP AF
        JP NC,MASK_0F
MASK_F0 LD A,L
        INC A
        LD (AD_SCRN+1),A
        LD A,(DE)  ; 1
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 2
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 3
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 4
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE)  ; 5
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 6
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 7
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 8
        AND #0F
        LD C,A
        LD A,(HL)
        AND #F0
        OR C
        LD (HL),A
        EXX 
        INC E
        RET 
MASK_0F LD A,(DE) ; 1
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 2
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 3
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 4
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 5
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 6
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 7
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        INC H
        INC D
        LD A,(DE) ; 8
        AND #F0
        LD C,A
        LD A,(HL)
        AND #0F
        OR C
        LD (HL),A
        EXX 
        INC E
        RET 
;++ NEW PROG DOWN!!! C00L  DOWN ALG
DOWZ    LD      HL,(BUP)
BEG     LD      DE,00
        SBC     HL,DE
        RET     C
        RET     Z
        CALL    OFF
        LD      HL,(BUP)
        CALL    POISK
        LD      (BUP),HL
        LD      HL,(BDW)
        CALL    POISK
        LD      (BDW),HL
        CALL    DOWN
        LD      HL,(BUP)
        LD      DE,#0300
        CALL    PRINT64
        JP      ON
POISK   LD      A,#0D
        DEC     HL
        DEC     HL
        DEC     HL
        LD      BC,5000
POSIS   CPD 
        JR      NZ,POSIS
        INC     HL
        INC     HL
        INC     HL
        RET 
;+++++++PROCEDURE UP!++++++++++++++
UPN     LD      HL,(BDW)
        LD      A,(HL)
        OR      A
        RET     Z
        CALL    OFF
        LD      HL,(BUP)
        CALL    REZER
        LD      (BUP),HL
        CALL    UP
        LD      HL,(BDW)
        LD      DE,#1300
        CALL    PRINT64
        LD      (BDW),HL
        JP      ON
;========================
REZER   LD      BC,5000
        LD      A,#0D
POS     CPI 
        JR      NZ,POS
        INC     HL
        RET 
;====== DOWN STRANICY =========
DOWS    LD      HL,(BUP)
BEG1    LD      DE,21313
        SBC     HL,DE
        RET     C
        RET     Z
        PUSH    DE
        CALL    OFF
        POP     DE
        LD      B,17    ;
        LD      HL,(BUP)
DATA    PUSH    BC
        CALL    POISK
        PUSH    HL
        SBC     HL,DE
        JP      Z,GAD
        JP      C,GAD
        POP     HL
        POP     BC
        DJNZ    DATA
NAZ     LD      (BUP),HL
        CALL    PRN
        LD      (BDW),HL
        JP      ON
GAD     POP     HL
        POP     BC
        JR      NAZ
;;+++++++++++++++++++++
PRN     LD      B,17
        LD      DE,#0300
JK      CALL    PRINT64
        DJNZ    JK
        RET 
;======== UP STRANICY  ======
UPS     LD      HL,(BDW)
        LD      A,(HL)
        OR      A
        RET     Z
        CALL    OFF
        LD      HL,(BDW)
        LD      B,17
FRAK    PUSH    BC
        CALL    REZER
        POP     BC
        LD      A,(HL)
        OR      A
        JP      Z,TALL
        DJNZ    FRAK
TALL    LD      (BDW),HL
        LD      B,17
METKA   PUSH    BC
        CALL    POISK
        POP     BC
        DJNZ    METKA
        LD      (BUP),HL
        CALL    PRN
        JP      ON
;+++++++++++++++++++++++++
FIRE    LD      A,(KONTR)
        PUSH    AF
        CALL    FIKR
        LD      (ASW+1),A
        POP     AF
        LD      (KONTR),A
ASW     LD      A,0
        OR      A
        RET     NZ
;++++++++++++++++++++++++++
FIRES   LD      A,(X_COORD)
        CP      27
        JP      C,DOS
        LD      A,(X_COORD)
        CP      255-32
        JP      NC,US
        LD      A,(Y_COORD)
        CP      96
        JP      NC,UPN
        JP      DOWZ
DOS     LD      A,(Y_COORD)
        CP      32
        JP      C,BEG2
        JP      DOWS
US      LD      A,(Y_COORD)
        CP      32
        JP      C,KONEC
        JP      UPS
BDW     DEFB    0,0
BUP     DEFB    0,0
KONTR   DEFB    0
;++++++++++ OPROS  KEMPSTON , SINCLER+
KJOY    LD      BC,#FEFE
        IN      A,(C)
        BIT     0,A           ;CS
        JR      Z,VBB
        LD      B,#FB
        IN      A,(C)
        BIT     0,A        ;Q
        JP      Z,DOWZ
        LD      B,#FD
        IN      A,(C)
        BIT     0,A        ;A
        JP      Z,UPN
        LD      B,#DF
        IN      A,(C)      ;O
        BIT     1,A
        JP      Z,DOWS
        BIT     0,A        ;P
        JP      Z,UPS
        LD      B,#EF
        IN      A,(C)
        BIT     1,A
        JP      Z,DOWZ
        BIT     2,A
        JP      Z,UPN
        BIT     3,A
        JP      Z,UPS
        BIT     4,A
        JP      Z,DOWS
        LD      B,#F7
        IN      A,(C)
        BIT     3,A
        JP      Z,DOWZ
        BIT     2,A
        JP      Z,UPN
        BIT     1,A
        JP      Z,UPS
        BIT     0,A
        JP      Z,DOWS
        RET 
VBB     LD      B,#F7
        IN      A,(C)
        BIT     4,A     ;CS
        JP      Z,DOWS
        LD      B,#EF
        IN      A,(C)
        BIT     4,A
        JP      Z,UPN
        BIT     3,A
        JP      Z,DOWZ
        BIT     2,A
        JP      Z,UPS
        RET 
CCVV    LD      BC,#7FFE
        IN      A,(C)
        BIT     2,A           ;M
        JP      Z,MUSS
        IN      A,(C)
        BIT     4,A           ;B
        JP      Z,BEG2
        LD      BC,#FBFE
        IN      A,(C)
        BIT     2,A           ;E
        JP      Z,KONEC
        LD      B,#BF
        IN      A,(C)
        BIT     0,A
        JP      Z,CIRS
        LD      B,#BF
        IN      A,(C)
        BIT     4,A           ;H
        JP      Z,HELP1
        BIT     3,A           ;J
        JP      Z,KEMON
        LD      B,#FE
        IN      A,(C)
        BIT     3,A           ;C
        JR      Z,INV
        IN      A,(C)
        BIT     0,A           ;CS
        JR      NZ,FFGG
        LD      B,#F7
        IN      A,(C)
        BIT     0,A           ;1
        JP      Z,IMOFF
        LD      B,#FD
        IN      A,(C)
        BIT     1,A           ;S
        JP      Z,SETES
        LD      B,#FB
        IN      A,(C)
        BIT     4,A           ;T
        JP      Z,SATE
FFGG    XOR     A
        LD      (KONTR),A
        RET 
SAAS    DEFB    SAVER
        INCLUDE "CHIT",7
KURZOR  INCBIN  "KURZOR"
