        ORG #8000
-       INCBIN "BGchunks"
        ORG #8800
-       INCBIN "BGfont"
        ORG #9000
-       INCBIN "BGspr"
        ORG #9D00
-       INCBIN "BGcs1"
-       INCBIN "BGcs2"
        ORG #C000
-       INCBIN "BGmus"
        ORG #E000
-       INCBIN "BGmus2"
        ORG 25000
        LD SP,25000
        CALL Im2     ; IM 2
        LD A,0
        CALL Pages
        CALL #C000
        CALL #E000
        EI 
        LD HL,Geniration_Table
        LD DE,Geniration_Table+1
        LD BC,68*32-1
        LD (HL),0
        LDIR 
        XOR A
        OUT (254),A
        LD HL,#4000
        LD DE,#4001
        LD BC,#17FF
        LD (HL),A
        LDIR 
        LD HL,#5800
        LD DE,#5801
        LD BC,#5F
        LD (HL),7
        LDIR 
        LD HL,#5860
        LD DE,#5861
        LD BC,#1F
        LD (HL),2
        LDIR 
        LD HL,#5880
        LD DE,#5881
        LD BC,#1FF
        LD (HL),4
        LDIR 
        LD HL,#5A80
        LD DE,#5A81
        LD BC,#7F
        LD (HL),7
        LDIR 
        LD HL,#586D
        LD (HL),7
        LD HL,#586E
        LD (HL),7
        LD HL,#586B
        LD (HL),7
        LD HL,#586A
        LD (HL),7
        LD HL,#5869
        LD (HL),7

        LD HL,#58BA
        LD (HL),7
        LD HL,#58B9
        LD (HL),7
        LD HL,#58DB
        LD (HL),7
        LD HL,#58DE
        LD (HL),7
        LD HL,#58DA
        LD (HL),7
        LD HL,#58D9
        LD (HL),7
        LD HL,#58D8
        LD (HL),7
        LD HL,#58F8
        LD (HL),7
        LD HL,#58F9
        LD (HL),7
        LD HL,#58FA
        LD (HL),7
        LD HL,#58FB
        LD (HL),7
        LD HL,#58FC
        LD (HL),7
        LD HL,#58FD
        LD (HL),7
        LD HL,#58FE
        LD (HL),7
        LD HL,#591A
        LD (HL),7
        LD HL,#591B
        LD (HL),7
        LD HL,#591C
        LD (HL),7
        LD HL,#591D
        LD (HL),7
        LD HL,#593D
        LD (HL),7

        LD HL,#4000
        LD DE,#9000
        LD B,8*4
SPR2    PUSH BC
        PUSH HL
        LD B,32
SPR1    LD A,(DE)
        LD (HL),A
        INC DE
        INC L
        DJNZ SPR1
        POP HL
        CALL HL_Down
        POP BC
        DJNZ SPR2

        LD A,7
        CALL Pages
        LD HL,#4000
        LD DE,#C000
        LD BC,#1B00
        LDIR 
LL      HALT 
        CALL Xorscr
        CALL Gum
        CALL Print
        CALL Dece
        CALL Staer
        PUSH HL
        CALL TexP
        POP HL
        LD BC,#F7FE
        IN A,(C)
        BIT 0,A
        JR NZ,$+7
        LD A,1
        LD (Changer),A
        LD BC,#F7FE
        IN A,(C)
        BIT 1,A
        JR NZ,$+7
        LD A,0
        LD (Changer),A
        LD BC,#EFFE
        IN A,(C)
        BIT 0,A
        JR NZ,$+7
        LD A,0
        LD (MusicBox),A
        LD BC,#EFFE
        IN A,(C)
        BIT 1,A
        JR NZ,$+7
        LD A,1
        LD (MusicBox),A
        LD BC,#BFFE
        IN A,(C)
        BIT 0,A
        JR NZ,LSSK
        LD A,(Pager)
        INC A
        CP 9
        JR NZ,$+3
        XOR A
        LD (Pager),A
LSSK
        JR LL
Staer   LD IX,Star
Staer2  LD L,(IX+1)
        LD H,0
        ADD HL,HL
        ADD HL,HL
        PUSH HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        POP DE
        ADD HL,DE
        LD DE,Geniration_Table
        ADD HL,DE
        LD C,(IX)
        LD B,0
        ADD HL,BC
        LD (HL),#8
        LD A,(IX+0)
        ADD A,(IX+2)
        CP 68
        JR C,$+3
        XOR A
        LD (IX+0),A
        INC IX
        INC IX
        INC IX
        LD A,(IX)
        CP 255
        JR NZ,Staer2
        RET 


CLA     DB 0
Gum
        LD A,(CLA)
        INC A
        LD (CLA),A
        CALL Bumer
        LD A,(CLA)
        ADD A,32
        CALL Bumer
        LD A,(CLA)
        ADD A,50
        CALL Bumer
        LD A,(CLA)
        ADD A,128
        CALL Bumer
        LD A,(CLA)
        ADD A,130
        CALL Bumer
        LD A,(CLA)
        ADD A,198
        CALL Bumer
        LD A,(CLA)
        ADD A,191
        CALL Bumer
        LD A,(CLA)
        ADD A,200
        CALL Bumer
        LD A,(CLA)
        ADD A,202
        CALL Bumer
        RET 
Bumer   LD L,A
        LD H,0
        ADD HL,HL
        LD DE,#9D00
        LD A,(Changer)
        SLA A
        ADD A,D
        LD D,A
        ADD HL,DE
        LD C,(HL)
        INC HL
        LD L,(HL)
        LD H,0
        ADD HL,HL
        ADD HL,HL
        PUSH HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        POP DE
        ADD HL,DE
        LD DE,Geniration_Table
        ADD HL,DE
        LD B,0
        ADD HL,BC
        LD DE,Char
        LD B,7
LLD     PUSH BC
        PUSH HL
        LD B,7
CHC     LD A,(DE)
        OR (HL)
        LD (HL),A
        INC HL
        INC DE
        DJNZ CHC
        POP HL
        LD BC,68
        ADD HL,BC
        POP BC
        DJNZ LLD
        RET 
Dece    LD HL,Geniration_Table
        LD BC,#0009
L1L     LD A,(HL)
        INC HL
        OR (HL)
        DEC HL
        SRL A
        LD (HL),A
        INC HL
        DJNZ L1L
        DEC C
        JR NZ,L1L
        RET 
TexP    LD A,(Pager)
        LD L,A
        LD H,0
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD DE,Text
        ADD HL,DE
        PUSH HL
        POP BC
        LD HL,#D000+128
        LD D,128
PRTX    PUSH DE
        LD A,(BC)
        INC BC
        LD E,A
        LD D,#88
        PUSH HL
        DUP 8
        LD A,(DE)
        LD (HL),A
        INC D
        INC H
        EDUP 
        POP HL
        INC L
        POP DE
        DEC D
        JR NZ,PRTX
        RET 



Print   LD HL,Geniration_Table
        LD BC,#C000+128
        CALL LineCh
        LD BC,#C400+128
        CALL LineCh
        LD BC,#C000+128+32
        CALL LineCh
        LD BC,#C400+128+32
        CALL LineCh
        LD BC,#C000+128+64
        CALL LineCh
        LD BC,#C400+128+64
        CALL LineCh
        LD BC,#C000+128+32+64
        CALL LineCh
        LD BC,#C400+128+32+64
        CALL LineCh
        LD BC,#C800
        CALL LineCh
        LD BC,#CC00
        CALL LineCh
        LD BC,#C800+32
        CALL LineCh
        LD BC,#CC00+32
        CALL LineCh
        LD BC,#C800+64
        CALL LineCh
        LD BC,#CC00+64
        CALL LineCh
        LD BC,#C800+32+64
        CALL LineCh
        LD BC,#CC00+32+64
        CALL LineCh
        LD BC,#C800+128
        CALL LineCh
        LD BC,#CC00+128
        CALL LineCh
        LD BC,#C800+128+32
        CALL LineCh
        LD BC,#CC00+128+32
        CALL LineCh
        LD BC,#C800+128+64
        CALL LineCh
        LD BC,#CC00+128+64
        CALL LineCh
        LD BC,#C800+128+32+64
        CALL LineCh
        LD BC,#CC00+128+32+64
        CALL LineCh
        LD BC,#D000
        CALL LineCh
        LD BC,#D400
        CALL LineCh
        LD BC,#D000+32
        CALL LineCh
        LD BC,#D400+32
        CALL LineCh
        LD BC,#D000+64
        CALL LineCh
        LD BC,#D400+64
        CALL LineCh
        LD BC,#D000+32+64
        CALL LineCh
        LD BC,#D400+32+64
        CALL LineCh
        PUSH HL
        LD HL,#C000+128+9
        LD DE,#9400
        LD B,2
SPR21   PUSH BC
        PUSH HL
        LD B,6
SPR11   LD A,(DE)
        AND (HL)
        LD (HL),A
        INC DE
        INC L
        DJNZ SPR11
        POP HL
        CALL HL_Down
        POP BC
        DJNZ SPR21
        LD HL,#C000+128+23+1024
        LD DE,#9000+1072+(9*4)
        LD B,7*8-2-4
SPR22   PUSH BC
        PUSH HL
        LD B,9
SPR12   LD A,(DE)
        AND (HL)
        LD (HL),A
        INC DE
        INC L
        DJNZ SPR12
        POP HL
        CALL HL_Down
        POP BC
        DJNZ SPR22
        LD HL,#D000+64+256
        LD DE,#9000+1576+32
        LD B,15
SPR23   PUSH BC
        PUSH HL
        DUP 32
        LD A,(DE)
        AND (HL)
        LD (HL),A
        INC DE
        INC L
        EDUP 
        POP HL
        CALL HL_Down
        POP BC
        DEC B
        JP NZ,SPR23
        POP HL
        RET 
LineCh
        DUP 16
        LD D,#80
        LD A,(HL)
        INC HL
        RRCA 
        RRCA 
        RRCA 
        RRCA 
        OR (HL)
        INC HL
        LD E,A
        DUP 3
        LD A,(DE)
        LD (BC),A
        INC D
        INC B
        EDUP 
        LD A,(DE)
        LD (BC),A
        INC D
        INC C
        LD A,(HL)
        INC HL
        RRCA 
        RRCA 
        RRCA 
        RRCA 
        OR (HL)
        INC HL
        LD E,A
        DUP 3
        LD A,(DE)
        LD (BC),A
        INC D
        DEC B
        EDUP 
        LD A,(DE)
        LD (BC),A
        INC C
        EDUP 
        DUP 4
        INC HL
        EDUP 
        RET 
HL_Down
        INC H         ;  -    
        LD A,H
        AND 7         ;HL -      . .
        RET NZ
        LD A,L
        ADD A,32
        LD L,A
        RET C
        LD A,H
        SUB 8
        LD H,A
        RET 
Im2
        DI 
        LD HL,#BE00
        LD A,H
        LD I,A
        INC A
_IM2    LD (HL),A
        INC L
        JP NZ,_IM2
        INC H
        LD (HL),A
        LD A,#C3
        LD (#BFBF),A
        LD HL,BREAKING_2
        LD (#BFC0),HL
        IM 2
        EI 
        RET 
BREAKING_2
        DI 
        PUSH AF,BC,DE,HL
        LD A,(#5B5C)
        LD (H5B5C),A
        LD A,0
        CALL Pages
        LD A,(MusicBox)
        CP 1
        CALL Z,#C005
        LD A,(MusicBox)
        CP 0
        CALL Z,#E005
        LD A,(H5B5C)
        CALL Pages
        POP HL,DE,BC,AF




        EI 
        RET 
H5B5C   DB 0
Xorscr

        LD A,(#5B5C)
        XOR %00001010
        LD (#5B5C),A
        LD BC,#7FFD
        OUT (C),A
        RET 
;- ----------------------------------------------------------- -
Pages

        AND %00001111 ; A -  
        OR %00010000  ;BC -    
        LD BC,#7FFD
        OUT (C),A     ; 
        LD (#5B5C),A
        RET 

Char    DD #01020208020201
        DD #0206080A080602
        DD #02080A0F0A0802
        DD #080A0F0F0F0A08
        DD #02080A0F0A0802
        DD #0206080A080602
        DD #01020208020100
Star    DB 0,9,1;X,Y
        DB 7,0,1 ;X,Y
        DB 16,4,2;X,Y
        DB 36,24,1;X,Y
        DB 62,16,3 ;X,Y
        DB 8,13,1;X,Y
        DB 28,0,2;X,Y
        DB 19,9,3 ;X,Y
        DB 32,20,1;X,Y
        DB 11,9,2;X,Y
        DB 19,26,1;X,Y
        DB 32,31,2;X,Y
        DB 11,20,1;X,Y
        DB 30,27,2;X,Y
        DB 11,19,3;X,Y
        DB 255
Stek             DW 0
        DS 8
Geniration_Table DS 68*32,#F
        DS 768 ;
MusicBox DB 1
Changer  DB 1
Pager   DB 0
Text    DB "    ."
        DB "  23 .  "
        DB " -   "
        DB "   ...      Enter"
        DB ":~1~,~2~ -  "
        DB "           ~9~,~0~ -      "
        DB "           ENTER -  "
        DB "                                "
        DB "   23...                "
        DB "                                "
        DB "  ...  ,  "
        DB "                   ..."
        DB ", , , ,  "
        DB "  ,  "
        DB "  ,     "
        DB ",   "

        DB "   AY, INTERNET "
        DB "BUG' , , "
        DB ",  !!!      "
        DB "       !!!   "

        DB "  ...             "
        DB "  Gift   6-  "
        DB "       "
        DB "   ... "

        DB "Gift credits:   Code FiREsTarter"
        DB "               Music FireSTARter"
        DB "                Text fiRESTARTer"
        DB "                 GFX firestARTer"

        DB ",     :)   "
        DB "  FIRESTARTER    "
        DB "HDS,   :                "
        DB "www.bugsy.narod.ru              "


        DB "                                "
        DB "        .                  "
        DB "                                "
        DB "                      17.09.2003"

        END
        DISPLAY END-25000

