       ORG   60000

       LD    A,7
       LD    (23693),A
       XOR   A
       CALL  8859
       CALL  3435
       LD    A,2
       CALL  5633

       CALL  BLACKR

       LD    HL,0          ; 
       LD    (SCR_X),HL 
       
       LD    L,0        ;Y
       LD    H,32        ;X
       LD    (P_COORD),HL

       CALL  PR_FS
       

DXX    
       CALL  SH_MOV
       CALL  KEYB_POLL
       CALL  K_PRESSED
       
       CALL  JUMPEN;   
       CALL  FALEN
       
       
       
       CALL  PUSH_SHBUF
       CALL  PR_PERS
       CALL  PR_SHOT
       CALL  SHOWSHAD
       CALL  PR_SHBUF
       CALL  PR_PBUF
       
       LD    A,(KEY_EX)
       CP    1
       JR    NZ,DXX
       

       RET
;------------------------------
COORD     
C_Y       DEFB 0 
C_X       DEFB 0
P_COORD   ; 
P_Y       DEFB 0 
P_X       DEFB 0 

SCR_X     DEFW 0 ;      ()
V_OFFS EQU   #40         ;    
KEY_L     DEFB 0
KEY_R     DEFB 0   
KEY_U     DEFB 0
KEY_D     DEFB 0
KEY_J     DEFB 0
KEY_F     DEFB 0
KEY_EX    DEFB 0
IS_MOV    DEFB 0
P_KADR    DEFB 0
P_FALL    DEFB 0
P_JUMP    DEFB 0
JMP_CNT   DEFB 0

SPR_W     DEFB 0 
SPR_H     DEFB 0 

SH_TIMER  DEFB 0
SH_DATA   ;  Y,X,DY,DX,ACTIV
           DEFS 50

;-----------------------------
SH_MOV
       LD    DE,5
       LD    B,10
       LD    IX,SH_DATA

SH_M0  LD    A,(IX+1)
       ADD   A,(IX+3)
       CP    0
       JR    C,SH_RES
       CP    240
       JR    NC,SH_RES
       LD    (IX+1),A
   ;----------------------       
       LD    A,(IX+2)
       CP    0
       JR    Z,NO_MY

       
       LD    C,A
       AND   128
       JR    Z,PLUSY
  
       LD    A,(IX)
       DEC   A
       JR    DALEE
PLUSY  LD    A,(IX)
       INC   A

DALEE  CP    0
       JR    C,SH_RES
       CP    152
       JR    NC,SH_RES
       LD    (IX),A
   ;------------------

NO_MY  ADD   IX,DE
       DJNZ  SH_M0
       RET
SH_RES XOR   A
       LD    (IX+4),0
       ADD   IX,DE
       DJNZ  SH_M0
       RET


;-----------------------------
K_PRESSED
       XOR   A
       LD    (IS_MOV),A

       LD    A,(KEY_F)
       CP    1
       CALL  Z,PRES_F

       LD    A,(KEY_L)
       CP    1
       CALL  Z,PRES_L

       LD    A,(KEY_R)
       CP    1
       CALL  Z,PRES_R

       LD    A,(KEY_J)
       CP    1
       CALL  Z,PRES_J

       LD    A,(IS_MOV)
       CP    1
       JR    NZ,NO_MOV
       LD    A,(P_KADR)
       INC   A
       CP    3
       JR    Z,NO_MOV
       LD    (P_KADR),A
       RET

NO_MOV XOR   A
       LD    (P_KADR),A
       RET



;-----------------------------
PRES_F
       LD    A,(SH_TIMER)
       CP    0
       JR    Z,PR_F1
       DEC   A
       LD    (SH_TIMER),A
       RET
PR_F1  
       LD    IX,SH_DATA
       LD    B,10
PR_F2  LD    A,(IX+4)
       CP    0
       JR    Z,PR_F3
       LD    DE,5
       ADD   IX,DE
       DJNZ  PR_F2
       RET
PR_F3  LD    A,(P_COORD)
       ADD   A,9
       LD    (IX),A

       LD    A,(P_COORD+1)
       ADD   A,25
       LD    (IX+1),A
       LD    A,1
       LD    (IX+3),A
       LD    (IX+4),A

       LD    C,0
       LD    A,(KEY_U)
       CP    1
       JR    NZ,PR_KD
       LD    C,129   ;-1
       
PR_KD  LD    A,(KEY_D)
       CP    1
       JR    NZ,PR_F4

       LD    C,1   ;+1
PR_F4
       LD    A,C
       LD    (IX+2),A
       LD    A,8
       LD    (SH_TIMER),A

       
       RET


;-----------------------------
PRES_J
       LD    A,(P_JUMP)
       CP    1
       RET   Z;    

       LD    A,(P_FALL)
       CP    1
       RET   Z;    

       LD    A,(KEY_D)
       CP    1
       JR    NZ,PJ1 ;   
       LD    A,(P_COORD) ;Y
       INC   A
       LD    (P_COORD),A ;  
       RET

PJ1    LD    A,1
       LD    (P_JUMP),A
       LD    A,50
       LD    (JMP_CNT),A
       RET

;-----------------------------
PRES_L
       LD    HL,(P_COORD)
       LD    A,H
       CP    0
       RET   Z
       DEC   H
       LD    (P_COORD),HL
       LD    A,1
       LD    (IS_MOV),A
       RET
;-----------------------------
PRES_R
       LD    HL,(P_COORD)
       LD    A,H
       CP    96
       JR    NC,PR_R1   ; >= 96  
       INC   H
       LD    (P_COORD),HL
       LD    A,1
       LD    (IS_MOV),A
       RET
PR_R1
       LD    A,(LVL_W)
       SRL   A
       SRL   A
       SRL   A
       DEC   A
       LD    HL,(SCR_X)
       CP    H

       JR    Z,PR_R2 ;   
       INC   HL
       LD    (SCR_X),HL
       LD    A,1
       LD    (IS_MOV),A
       PUSH  HL
       CALL  SCR_LF
       POP   HL
       LD    A,L
       AND   7
       JR    NZ,NOROW
       CALL  PR_ROW
NOROW  

       RET
PR_R2
       LD    HL,(P_COORD)
       INC   H
       LD    A,232
       CP    H
       RET   C     
       LD    A,1
       LD    (IS_MOV),A
       LD    (P_COORD),HL
 
       RET

;------------------------------
KEYB_POLL
          XOR   A
          LD    (KEY_L),A
          LD    (KEY_R),A
          LD    (KEY_U),A
          LD    (KEY_D),A
          LD    (KEY_J),A
          LD    (KEY_F),A
          LD    (KEY_EX),A

          LD    A,#7F
          IN    A,(254)
          LD    B,A

          BIT   0,B
          JR    NZ,NO_J
          LD    A,1
          LD    (KEY_J),A
NO_J

          LD    A,#FB
          IN    A,(254)
          LD    B,A

          BIT   1,B
          JR    NZ,NO_U
          LD    A,1
          LD    (KEY_U),A
NO_U

          BIT   3,B
          JR    NZ,NO_EX
          LD    A,1
          LD    (KEY_EX),A
NO_EX

          LD    A,#FD
          IN    A,(254)
          LD    B,A

          BIT   0,B
          JR    NZ,NO_L
          LD    A,1
          LD    (KEY_L),A
NO_L

          BIT   1,B
          JR    NZ,NO_D
          LD    A,1
          LD    (KEY_D),A
NO_D

          BIT   2,B
          JR    NZ,NO_R
          LD    A,1
          LD    (KEY_R),A
NO_R

          LD    A,#BF
          IN    A,(254)
          LD    B,A

          BIT   0,B
          JR    NZ,NO_F
          LD    A,1
          LD    (KEY_F),A
NO_F
          RET
;------------------------------
FALEN     LD    A,(P_JUMP)
          CP    1
          RET   Z;   ,  
          
          LD    A,0
          LD    (P_FALL),A

          LD    A,(P_COORD+1) ;X
          ADD   A,10
          LD    E,A
          LD    D,0
          LD    HL,(SCR_X)
          ADD   HL,DE
          ;  32
          SRL   H
          RR    L
          SRL   H
          RR    L
          SRL   H
          RR    L
          SRL   H
          RR    L
          SRL   H
          RR    L    

          LD    A,(P_COORD) ;Y
          LD    B,A
          AND   15
          CP    0
          JR    NZ,FAL2
          LD    A,B
          ADD   A,32
          SRL   A
          SRL   A
          SRL   A
          SRL   A     
          
          LD    DE,(LVL_W)
          LD    B,A 
FAL1      ADD   HL,DE        
          DJNZ  FAL1
          LD    DE,LEVEL
          ADD   HL,DE
          LD    A,(HL)
          CP    3         ;
          RET   Z
          CP    7         ;
          RET   Z

FAL2      LD    A,(P_COORD) ;Y
          INC   A
          LD    (P_COORD),A ;Y
          
          LD    A,1
          LD    (P_FALL),A
          RET

;------------------------------
JUMPEN    LD    A,(P_FALL)
          CP    1
          RET   Z;   ,  
          
          LD    A,(P_JUMP)
          CP    0
          RET   Z;    ,    

          LD    A,(JMP_CNT)
          DEC   A
          JR    NZ,JMP1
          LD    (P_JUMP),A

JMP1      LD    (JMP_CNT),A
          LD    A,(P_COORD) ;Y
          DEC   A
          LD    (P_COORD),A ;Y
          
          RET

;------------------------------
SHOWSHAD
       LD    DE,#4000
       LD    HL,#8000
       LD    BC,#1040
       LDIR

       LD    DE,#5000
       LD    HL,#9000
       LD    A,8
SH_SD1 LD    BC,#80
       PUSH  DE
       PUSH  HL
       LDIR
       POP   HL
       POP   DE
       INC   H
       INC   D
       DEC   A
       JR    NZ,SH_SD1

       RET

;---------------------
PUSH_SHBUF
       ; 
       LD    A,2
       LD    (SPR_W),A
       LD    A,4
       LD    (SPR_H),A



       LD    B,10
       LD    IX,SH_DATA
       LD    DE,BUF_SH
PU_SH1 
       PUSH  DE
       LD    A,(IX+4)
       CP    0
       JR    Z,PU_SH2
       PUSH  BC
       PUSH  IX
       
       
       ;    
       LD    L,(IX)
       LD    H,(IX+1)
       CALL  PUSHBUF

       POP   IX
       POP   BC
PU_SH2 LD    DE,5
       ADD   IX,DE
       POP   DE
       LD    HL,8
       ADD   HL,DE
       EX    DE,HL
       DJNZ  PU_SH1

       RET

;---------------------
PR_SHOT
       ; 
       LD    A,2
       LD    (SPR_W),A
       LD    A,4
       LD    (SPR_H),A



       LD    B,10
       LD    IX,SH_DATA
       
PR_SH1 
       
       LD    A,(IX+4)
       CP    0
       JR    Z,PR_SH2
       PUSH  BC
       PUSH  IX

       ; 
       LD    A,MOD_AND
       LD    (MODE),A
       LD    HL,ISMASK
       LD    (MODMASK),HL
       
       ; 
       LD    L,(IX)
       LD    H,(IX+1)
       LD    DE,MASK_SH
       CALL  SET_RL

       ; 
       LD    A,MOD_OR
       LD    (MODE),A
       LD    HL,NOMASK
       LD    (MODMASK),HL

       ; 
       LD    L,(IX)
       LD    H,(IX+1)
       LD    DE,SHOT
       CALL  SET_RL
       
       
       POP   IX
       POP   BC
PR_SH2 LD    DE,5
       ADD   IX,DE
       DJNZ  PR_SH1

       RET


;---------------------
PR_PERS
       ; 
       LD    A,4
       LD    (SPR_W),A
       LD    A,16
       LD    (SPR_H),A

       ;    
       LD    HL,(P_COORD)
       LD    DE,BUF1
       CALL  PUSHBUF

       LD    HL,(P_COORD)
       LD    A,16
       ADD   A,L
       LD    L,A
       LD    DE,BUF2
       CALL  PUSHBUF

       ; 
       LD    A,MOD_AND
       LD    (MODE),A
       LD    HL,ISMASK
       LD    (MODMASK),HL
       
       ; 
       LD    HL,(P_COORD)
       LD    DE,MASK_T1
       CALL  SET_RL

       LD    HL,(P_COORD)
       LD    A,16
       ADD   A,L
       LD    L,A

       LD    A,(P_JUMP)
       CP    1
       JR    Z,PR_P2
       LD    A,(P_FALL)
       CP    1
       JR    Z,PR_P2

       LD    A,(P_KADR)
       CP    0
       JR    NZ,PR_P1
       LD    DE,MASK_B1
       JR    PR_P3
PR_P1  CP    1
       JR    NZ,PR_P2
       LD    DE,MASK_B2
       JR    PR_P3
PR_P2  LD    DE,MASK_B3
PR_P3  CALL  SET_RL

       ; 
       LD    A,MOD_OR
       LD    (MODE),A
       LD    HL,NOMASK
       LD    (MODMASK),HL

       ; 
       LD    HL,(P_COORD)
       LD    DE,TOP1
       CALL  SET_RL

       LD    HL,(P_COORD)
       LD    A,16
       ADD   A,L
       LD    L,A

       LD    A,(P_JUMP)
       CP    1
       JR    Z,PR_P22
       LD    A,(P_FALL)
       CP    1
       JR    Z,PR_P22
       
       LD    A,(P_KADR)
       CP    0
       JR    NZ,PR_P11
       LD    DE,BOT1
       JR    PR_P33
PR_P11 CP    1
       JR    NZ,PR_P22
       LD    DE,BOT2
       JR    PR_P33
PR_P22 LD    DE,BOT3
PR_P33 CALL  SET_RL
       RET

;---------------------
;   
PR_PBUF
       ; 
       LD    A,4
       LD    (SPR_W),A
       LD    A,16
       LD    (SPR_H),A


       ; 
       LD    A,MOD_PUT
       LD    (MODE),A
       LD    HL,NOMASK
       LD    (MODMASK),HL

       ;  
       LD    HL,(P_COORD)
       LD    DE,BUF1
       CALL  POPBUF

       LD    HL,(P_COORD)
       LD    A,16
       ADD   A,L
       LD    L,A
       LD    DE,BUF2
       CALL  POPBUF

       RET

;---------------------
;    
PR_SHBUF

       ; 
       LD    A,2
       LD    (SPR_W),A
       LD    A,4
       LD    (SPR_H),A

       LD    B,10
       LD    IX,SH_DATA
       LD    DE,BUF_SH
PR_SB1 
       PUSH  DE
       LD    A,(IX+4)
       CP    0
       JR    Z,PR_SB2
       
       PUSH  BC
       PUSH  IX


       ; 
       LD    A,MOD_PUT
       LD    (MODE),A
       LD    HL,NOMASK
       LD    (MODMASK),HL

       ;  
       LD    L,(IX)
       LD    H,(IX+1)
       ;LD    DE,BUF_SH
       CALL  POPBUF

       
       POP   IX
       POP   BC
PR_SB2 LD    DE,5
       ADD   IX,DE
       POP   DE
       LD    HL,8
       ADD   HL,DE
       EX    DE,HL
       DJNZ  PR_SB1


       RET

;---------------
BLACKR LD    HL,#581F
       LD    B,24
BL1    LD    (HL),0
       LD    DE,32
       ADD   HL,DE  
       DJNZ  BL1
       RET

;---------------
PR_ROW LD    HL,(SCR_X)
       LD    DE,248
       ADD   HL,DE

       SRL   H; 
       RR    L;
       SRL   H
       RR    L
       SRL   H
       RR    L

       LD    A,3;     
       AND   L
       LD    (OFS_X),A

       SRL   H
       RR    L
       SRL   H
       RR    L

       LD    DE,LEVEL
       ADD   HL,DE;
       EX    DE,HL;    
      
       LD    HL,#1F00 ;  
       LD    (COORD),HL
       
       ;  
       LD   B,10
PR_Y    PUSH BC

       LD    A,(DE)
       AND   A
       JR    Z,PR_Z
       DEC   A
       PUSH  DE
       LD    L,A
       LD    H,0
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       LD    DE,SPRSTART
       ADD   HL,DE
       EX    DE,HL

       CALL  ROW_X31

       POP   DE

PR_Z   LD    HL,(LVL_W)
       ADD   HL,DE
       EX    DE,HL
       LD    A,(COORD)
       ADD   A,2
       LD    (COORD),A
       POP  BC
       DJNZ PR_Y
       RET
OFS_X     DEFS 2

;-------------------------------
;  
PR_FS  LD    DE,LEVEL
       LD    HL,0
       LD    (COORD),HL
       LD    B,8
SX     PUSH  DE
       LD    C,10
SY     LD    A,(DE)
       AND   A
       JR    Z,PROP
       DEC   A
       PUSH  DE
       LD    L,A
       LD    H,0
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       ADD   HL,HL
       LD    DE,SPRSTART
       ADD   HL,DE
       EX    DE,HL
       PUSH  BC
       CALL  SETSPR
       POP   BC
       POP   DE
PROP   
       LD    HL,(LVL_W)
       ADD   HL,DE
       EX    DE,HL
       LD    A,(COORD)
       ADD   A,2
       LD    (COORD),A
       DEC   C
       JR    NZ,SY
       LD    A,0
       LD    (COORD),A
       LD    A,(COORD+1)
       ADD   A,4
       LD    (COORD+1),A

       POP   DE
       INC   DE
       DJNZ  SX
       RET

;----------------------------------------------------------
ROW_X31   LD   HL,(OFS_X) 
          ADD  HL,DE       ; 
          EX   DE,HL
          LD   HL,(COORD)  ;  HL  .

          CALL ADR         ;   .

          LD   B,16        ;  B    .
SET_R1    LD   A,(DE)      ;  .     
          LD   (HL),A      ; .
          
          INC  DE          ;   
          INC  DE
          INC  DE
          INC  DE

          CALL DOWN        ;     .
          DJNZ SET_R1      ;    0,  .
          RET

;----------------------------------------------------------
SETSPR    LD   HL,(COORD)  ;  HL  .
          CALL ADR         ;   .
          
          LD   B,16        ;  B    -
                           ;.
SETSPR1   PUSH HL          ;   .
          LD   C,4         ;  C    -
                           ;.
SETSPR2   LD   A,(DE)      ;  .
          LD   (HL),A      ; .
          INC  DE          ;    
          INC  HL          ;    -
                           ;.
          DEC  C           ;  .
          JR   NZ,SETSPR2  ;    0, 
                           ;  .
          POP  HL          ;   .
          CALL DOWN        ;    -
                           ; .
          DJNZ SETSPR1     ;    0, 
                           ;.
          RET

;--------------------------------------------
SET_RL    
          LD   A,7         ;  X
          AND  H
          LD   (DX),A
          LD   A,7         ;  Y
          AND  L
          LD   B,A         

          SRL  H
          SRL  H
          SRL  H
          SRL  L
          SRL  L
          SRL  L

          CALL ADR         ;   .
                            
          INC  B
S_DY      INC  H           ;  Y
          DJNZ S_DY
          DEC  H

          LD   A,(SPR_H)
          LD   B,A         ;  B    .
SET_RL1   PUSH BC
          PUSH HL          ;   .
          
        ;  
          LD   A,(SPR_W)
          LD   C,A
          LD   HL,BUF
B1        LD   A,(DE)
          LD   (HL),A
          INC  DE
          INC  HL
          DEC  C
          JR   NZ,B1
          
        ; 
          CALL ROLBUF

          POP  HL
          PUSH HL          ;   .

          LD   A,(SPR_W)
          LD   C,A         ;  C    .
          PUSH DE
          LD   DE,BUF
SET_RL2
          LD   A,(DE)      ;  .
MODE      NOP
          LD   (HL),A      ; .
          INC  DE          ;    
          INC  HL          ;    -
                           ;.
          DEC  C           ;  .
          JR   NZ,SET_RL2  ;    0, 
                           ;  .
          POP  DE          ;   .
          POP  HL          ;   .
          CALL DOWN        ;    -
                           ; .
          POP  BC
          DJNZ SET_RL1     ;    0, 
                           ;.
          RET

MOD_PUT  EQU   0           ;  NOP
MOD_OR   EQU   #B6         ;  OR (HL)
MOD_AND  EQU   #A6         ;  AND (HL)
MOD_XOR  EQU   #AE         ;  XOR (HL)

;--------------------------------------------
PUSHBUF
          LD   A,7         ;  Y
          AND  L
          LD   B,A         

          SRL  H
          SRL  H
          SRL  H
          SRL  L
          SRL  L
          SRL  L

          CALL ADR         ;   .
                
          INC  B
PU_DY     INC  H           ;  Y
          DJNZ PU_DY
          DEC  H
          LD   A,(SPR_H)
          LD   B,A         ;  B    .
PUSH1     PUSH HL
          LD   A,(SPR_W)
          LD   C,A         ;  C    .
PUSH2     LD   A,(HL)      ;  .
          LD   (DE),A      ;  .
          INC  DE          ;    
          INC  HL          ;    .
          DEC  C           ;  .
          JR   NZ,PUSH2    ;    0, 
                           ;  .
          
          POP  HL          ;   .
          CALL DOWN        ;    -
                           ; .
          
          DJNZ PUSH1       ;    0, 
                           ;.
          LD   A,1
          LD   (DE),A      ;  .
          RET
;----------------------------------------------------------
POPBUF
          LD   A,7         ;  Y
          AND  L
          LD   B,A         

          SRL  H
          SRL  H
          SRL  H
          SRL  L
          SRL  L
          SRL  L

          CALL ADR         ;   .
                
          INC  B
POPDY     INC  H           ;  Y
          DJNZ POPDY
          DEC  H
          LD   A,(SPR_H)
          LD   B,A        ;  B    .
POP1      PUSH HL
          LD   A,(SPR_W)
          LD   C,A         ;  C    .
POP2      LD   A,(DE)      ; 
          LD   (HL),A      
          INC  DE          ;    
          INC  HL          ;    .
          DEC  C           ;  .
          JR   NZ,POP2     ;    0, 
                           ;  .
          
          POP  HL          ;   .
          CALL DOWN        ;    -
                           ; .
          
          DJNZ POP1       ;    0, 
                           ;.
          RET
;------------------------------------
ROLBUF  
        LD   A,(DX)
        CP   0
        RET  Z

        LD   C,A
ROLBUF1 LD   HL,BUF
        LD   A,(SPR_W)
        LD   B,A
        

MODMASK CP   255           
        ;NOP
     
ROLBUF2 RR   (HL)        ; .
        INC  HL
        DJNZ ROLBUF2
        DEC  C
        JR   NZ,ROLBUF1
        RET

BUF     DEFS 4
DX      DEFB 0
ISMASK  EQU   #FFFE        ;CP    255
NOMASK  EQU   #00FE        ;CP    0

;--------------------------

DOWN      INC  H
          LD   A,H
          AND  #07
          RET  NZ
          LD   A,L
          ADD  A,#20
          LD   L,A
          RET  C
          LD   A,H
          SUB  #08
          LD   H,A
          RET

;------------------------

ADR  LD   A,L
     AND  7
     RRCA
     RRCA
     RRCA
     ADD  A,H
     LD   H,L
     LD   L,A
     LD   A,H
     AND  #18
     OR   #40
     ADD  A,V_OFFS
     LD   H,A
     RET

;-----------------------
SCR_LF LD    A,(HGT)     ;   ,
       LD    B,A         ;    
       LD    A,(ROW)     ;  
SCRLF1 PUSH  AF          ;      SCRLIN
       PUSH  BC
       CALL  3742
       ;-------
       LD    A,V_OFFS
       ADD   A,H
       LD    H,A
       ;-------
       LD    A,(COL)
       LD    B,A
       LD    A,(LEN)
       DEC   A
       ADD   A,B
       ADD   A,L
       LD    L,A
       LD    B,8
SCRLF2 PUSH  HL
       LD    A,(LEN)
       AND   A
SCRLF3 RL    (HL)
       DEC   HL
       DEC   A
       JR    NZ,SCRLF3
       POP   HL
       INC   H
       DJNZ  SCRLF2
       POP   BC
       POP   AF
       INC   A
       DJNZ  SCRLF1
       RET

;-----------------------

COL    DEFB  0
ROW    DEFB  0
LEN    DEFB  32
HGT    DEFB  20

;------------------------
PRNT_NUM  PUSH  BC
          PUSH  DE
          PUSH  HL
          CALL  11563       ;    
          CALL  11747
          LD    A,13
          RST   16
          POP   HL
          POP   DE
          POP   BC
          RET

;----------------------
LVL_W  DEFW 104
LEVEL  
       DEFB 0,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, 0,0,0,0,5,5,5,5, 5,0,0,0,0,5,5,5, 5,5,5,5,5,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,5,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,9,17,17  
       DEFB 0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, 0,0,0,0,6,6,6,6, 6,0,0,0,0,6,6,6, 6,6,6,6,6,5,0,0, 0,5,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,5,6,5,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,10,18,18  
       DEFB 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, 7,7,7,7,3,3,3,3, 3,7,7,7,7,3,3,3, 3,3,3,3,3,6,5,5, 5,1,5,5,5,0,0,0, 0,0,3,3,3,3,3,3, 3,6,1,6,0,3,3,3, 0,0,0,0,0,3,3,3, 0,3,3,0,0,0,0,0, 0,0,0,0,0,0,3,3, 3,3,0,0,0,11,19,19  
       DEFB 0,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 8,8,8,8,2,2,2,2, 2,8,8,8,8,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,5,0,0, 0,0,2,2,2,2,2,2, 2,2,2,2,0,2,2,2, 0,0,0,0,0,2,2,2, 0,2,2,0,0,0,0,0, 0,0,0,0,0,0,2,2, 2,2,0,0,0,12,20,20  
       DEFB 0,1,1,1,1,1,1,1, 1,1,1,1,1,3,3,1, 1,1,1,1,1,1,1,1, 0,0,0,0,1,1,1,1, 1,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1, 1,3,3,3,3,3,3,3, 3,5,1,1,1,1,1,1, 1,1,1,1,3,3,3,1, 0,3,3,0,0,1,1,1, 0,1,3,3,3,3,3,3, 0,0,0,0,3,3,1,1, 1,1,3,0,0,13,17,17  
       DEFB 0,2,2,2,2,2,2,2, 2,2,2,2,2,4,4,2, 2,2,2,2,3,3,3,2, 0,0,0,0,2,2,2,2, 2,0,0,0,0,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 2,6,2,2,2,2,2,2, 2,2,3,2,2,2,2,2, 0,2,2,0,0,2,2,3, 0,2,2,2,2,2,2,2, 0,0,0,0,2,2,2,3, 3,3,2,0,0,14,18,18  
       DEFB 0,1,1,1,1,1,1,1, 3,1,1,3,1,1,1,1, 1,1,1,1,1,1,1,1, 0,0,0,0,1,1,1,1, 1,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,3, 3,1,1,1,1,1,1,1, 1,1,1,1,3,3,1,3, 3,1,1,1,1,1,1,1, 0,1,3,3,3,1,1,1, 0,1,1,1,1,1,1,1, 0,3,3,0,1,1,1,1, 1,1,1,3,0,15,19,19  
       DEFB 0,0,0,0,0,2,2,2, 4,2,2,2,0,2,2,0, 0,0,2,2,2,2,2,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,2, 2,2,2,2,2,2,2,2, 2,0,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 0,2,2,2,2,2,2,2, 0,2,2,2,2,2,2,2, 0,2,2,0,2,2,2,2, 2,2,2,2,0,16,20,20  
       DEFB 0,0,0,0,0,0,0,0, 0,3,3,0,0,0,0,0, 0,0,0,3,3,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,3,3,3,0, 0,0,0,0,0,0,3,3, 3,3,3,3,1,1,1,1, 1,1,1,1,1,1,1,1, 0,3,1,1,1,1,3,1, 0,1,1,1,1,3,3,3, 0,1,1,0,1,1,3,3, 3,3,3,3,3,3,3,19  
       DEFB 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 0,2,2,2,2,2,2,2, 0,2,2,2,2,2,2,2, 0,2,2,0,2,2,2,2, 2,2,2,2,2,2,2,20  
       

;  
SPRSTART 
;1-2 
      DEFB 31, 255, 135, 192
      DEFB 31, 255, 131, 224
      DEFB 31, 255, 129, 240
      DEFB 31, 255, 132, 240
      DEFB 63, 255, 128, 96
      DEFB 63, 255, 128, 32
      DEFB 63, 255, 130, 18
      DEFB 127, 248, 65, 16
      DEFB 255, 224, 64, 17
      DEFB 255, 224, 32, 0
      DEFB 255, 192, 32, 1
      DEFB 255, 0, 8, 1
      DEFB 255, 16, 64, 1
      DEFB 114, 128, 136, 1
      DEFB 4, 128, 4, 0
      DEFB 4, 64, 0, 0
      
      DEFB 8, 88, 0, 192
      DEFB 4, 32, 7, 224
      DEFB 4, 16, 31, 224
      DEFB 4, 8, 63, 192
      DEFB 2, 0, 127, 160
      DEFB 224, 1, 255, 32
      DEFB 248, 0, 254, 16
      DEFB 112, 1, 254, 16
      DEFB 96, 0, 254, 8
      DEFB 49, 248, 124, 8
      DEFB 7, 252, 188, 4
      DEFB 7, 252, 190, 4
      DEFB 7, 254, 94, 2
      DEFB 15, 254, 79, 18
      DEFB 95, 255, 23, 218
      DEFB 31, 255, 135, 192

;3-4 
      DEFB 170, 161, 140, 69
      DEFB 64, 212, 81, 168
      DEFB 1, 0, 128, 16
      DEFB 1, 0, 128, 16
      DEFB 2, 1, 0, 32
      DEFB 2, 1, 0, 32
      DEFB 6, 191, 189, 240
      DEFB 127, 247, 62, 70
      DEFB 91, 90, 208, 26
      DEFB 54, 178, 37, 37
      DEFB 187, 77, 36, 170
      DEFB 23, 57, 208, 81
      DEFB 76, 28, 66, 44
      DEFB 137, 166, 155, 96
      DEFB 9, 4, 81, 64
      DEFB 0, 0, 0, 0
      DEFB 0, 64, 0, 0
      DEFB 0, 192, 0, 192
      DEFB 15, 192, 1, 224
      DEFB 31, 224, 6, 224
      DEFB 15, 208, 31, 240
      DEFB 7, 136, 63, 144
      DEFB 64, 0, 111, 136
      DEFB 56, 0, 63, 8
      DEFB 48, 0, 127, 4
      DEFB 16, 252, 62, 4
      DEFB 1, 254, 30, 2
      DEFB 3, 254, 31, 2
      DEFB 3, 255, 15, 1
      DEFB 7, 255, 7, 129
      DEFB 7, 255, 131, 193
      DEFB 7, 255, 129, 225




;5-6 
      DEFB 0, 0, 0, 0
      DEFB 0, 22, 0, 0
      DEFB 156, 132, 28, 0
      DEFB 170, 224, 171, 0
      DEFB 212, 17, 84, 0
      DEFB 84, 193, 84, 0
      DEFB 80, 160, 84, 24
      DEFB 144, 136, 144, 44
      DEFB 139, 172, 201, 162
      DEFB 9, 170, 9, 88
      DEFB 34, 37, 34, 175
      DEFB 18, 5, 18, 33
      DEFB 8, 5, 40, 57
      DEFB 16, 5, 16, 4
      DEFB 16, 129, 16, 10
      DEFB 0, 1, 0, 10

      DEFB 32, 1, 32, 2
      DEFB 4, 128, 0, 2
      DEFB 68, 64, 4, 0
      DEFB 36, 32, 32, 0
      DEFB 68, 96, 68, 0
      DEFB 0, 0, 0, 0
      DEFB 4, 0, 4, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 7, 0
      DEFB 0, 224, 63, 224
      DEFB 131, 224, 255, 224
      DEFB 241, 176, 255, 176
      DEFB 32, 66, 251, 66
      DEFB 64, 128, 108, 128
      DEFB 9, 40, 0, 72
      DEFB 8, 130, 22, 130

;7-8 
      DEFB 0, 0, 0, 0
      DEFB 63, 63, 63, 63
      DEFB 63, 63, 63, 63
      DEFB 126, 126, 126, 126
      DEFB 126, 126, 126, 126
      DEFB 252, 252, 252, 252
      DEFB 252, 252, 252, 252
      DEFB 255, 255, 255, 255
      DEFB 252, 255, 252, 252
      DEFB 252, 128, 2, 252
      DEFB 0, 128, 2, 0
      DEFB 254, 128, 2, 254
      DEFB 252, 255, 254, 252
      DEFB 252, 255, 252, 252
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 204, 1, 204, 1
      DEFB 136, 0, 136, 0
      DEFB 207, 255, 207, 255
      DEFB 159, 254, 159, 254
      DEFB 195, 255, 195, 255
      DEFB 128, 0, 128, 0
      DEFB 192, 1, 192, 1
      DEFB 128, 0, 128, 0
      DEFB 63, 255, 63, 255
      DEFB 127, 254, 127, 254
      DEFB 127, 254, 127, 254
      DEFB 63, 255, 63, 255
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0

;9-10 
      DEFB 0, 0, 0, 1
      DEFB 0, 0, 0, 7
      DEFB 0, 0, 0, 31
      DEFB 0, 0, 0, 127
      DEFB 0, 0, 1, 255
      DEFB 0, 0, 0, 231
      DEFB 0, 0, 0, 135
      DEFB 0, 0, 0, 135
      DEFB 0, 0, 0, 159
      DEFB 0, 0, 0, 255
      DEFB 0, 0, 0, 135
      DEFB 0, 127, 255, 135
      DEFB 1, 0, 0, 223
      DEFB 7, 0, 0, 255
      DEFB 31, 0, 0, 135
      DEFB 127, 0, 0, 135
      DEFB 255, 0, 0, 159
      DEFB 95, 0, 0, 255
      DEFB 119, 0, 2, 127
      DEFB 131, 0, 6, 127
      DEFB 131, 0, 54, 63
      DEFB 223, 0, 176, 63
      DEFB 127, 133, 128, 31
      DEFB 255, 140, 1, 159
      DEFB 255, 192, 13, 79
      DEFB 63, 192, 169, 135
      DEFB 63, 224, 141, 71
      DEFB 63, 240, 41, 135
      DEFB 31, 240, 141, 64
      DEFB 15, 252, 41, 128
      DEFB 15, 220, 141, 4
      DEFB 0, 128, 173, 4



;11-12 
      DEFB 0, 1, 18, 9
      DEFB 0, 25, 82, 9
      DEFB 1, 153, 18, 9
      DEFB 1, 153, 82, 9
      DEFB 1, 153, 82, 9
      DEFB 1, 153, 82, 0
      DEFB 1, 152, 18, 1
      DEFB 1, 129, 82, 9
      DEFB 0, 16, 18, 9
      DEFB 1, 153, 26, 137
      DEFB 1, 152, 86, 9
      DEFB 1, 153, 26, 137
      DEFB 1, 152, 214, 9
      DEFB 1, 153, 26, 128
      DEFB 1, 130, 214, 9
      DEFB 0, 1, 26, 137
      DEFB 0, 2, 214, 0
      DEFB 32, 1, 26, 128
      DEFB 29, 122, 213, 117
      DEFB 93, 121, 25, 117
      DEFB 93, 122, 213, 117
      DEFB 92, 121, 25, 113
      DEFB 32, 2, 212, 128
      DEFB 0, 1, 24, 0
      DEFB 0, 56, 0, 0
      DEFB 0, 56, 231, 0
      DEFB 0, 1, 255, 0
      DEFB 0, 121, 255, 1
      DEFB 0, 249, 255, 3
      DEFB 1, 249, 255, 7
      DEFB 1, 249, 255, 7
      DEFB 0, 0, 0, 0

;13-14 
      DEFB 0, 0, 0, 0
      DEFB 4, 252, 252, 252
      DEFB 9, 25, 25, 25
      DEFB 19, 243, 243, 243
      DEFB 39, 231, 231, 231
      DEFB 95, 223, 223, 223
      DEFB 223, 207, 207, 207
      DEFB 95, 207, 207, 207
      DEFB 95, 167, 167, 167
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 94, 0, 39, 103
      DEFB 93, 252, 0, 7
      DEFB 93, 252, 63, 251
      DEFB 92, 252, 63, 195
      DEFB 92, 252, 63, 131
      DEFB 92, 60, 63, 3
      DEFB 92, 28, 62, 59
      DEFB 93, 28, 60, 123
      DEFB 92, 140, 56, 243
      DEFB 93, 192, 49, 251
      DEFB 93, 231, 195, 243
      DEFB 92, 232, 103, 251
      DEFB 94, 104, 103, 251
      DEFB 95, 80, 119, 179
      DEFB 95, 80, 119, 51

;15-16 
     DEFB 95, 80, 119, 51
      DEFB 94, 80, 119, 51
      DEFB 92, 208, 119, 179
      DEFB 93, 232, 103, 251
      DEFB 93, 232, 231, 251
      DEFB 93, 231, 195, 243
      DEFB 93, 192, 49, 251
      DEFB 93, 140, 56, 243
      DEFB 93, 28, 60, 123
      DEFB 92, 60, 62, 59
      DEFB 92, 124, 63, 3
      DEFB 92, 252, 63, 131
      DEFB 94, 12, 63, 195
      DEFB 95, 64, 3, 251
      DEFB 95, 96, 64, 7
      DEFB 95, 103, 96, 71
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 95, 103, 103, 103
      DEFB 223, 135, 103, 103
      DEFB 3, 207, 135, 103
      DEFB 0, 67, 207, 135
      DEFB 0, 0, 67, 207
      DEFB 0, 0, 0, 67

;17-18 
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 255, 255, 255, 255
      DEFB 255, 255, 255, 255
      DEFB 255, 255, 255, 255
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192

;19-20 

      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192
      DEFB 0, 96, 0, 192

TOP1; 1
      DEFB 0, 112, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 112, 0, 0
      DEFB 0, 112, 0, 0
      DEFB 1, 208, 0, 0
      DEFB 7, 228, 0, 0
      DEFB 15, 254, 0, 0
      DEFB 15, 254, 0, 0
      DEFB 15, 187, 0, 0
      DEFB 15, 124, 2, 0
      DEFB 7, 131, 183, 0
      DEFB 3, 248, 0, 0
      DEFB 0, 249, 172, 0
      DEFB 0, 48, 96, 0
      DEFB 1, 240, 0, 0
      DEFB 1, 240, 0, 0

MASK_T1; 
      DEFB 255, 7, 255, 255
      DEFB 255, 7, 255, 255
      DEFB 255, 7, 255, 255
      DEFB 254, 7, 255, 255
      DEFB 248, 3, 255, 255
      DEFB 240, 1, 255, 255
      DEFB 224, 0, 255, 255
      DEFB 224, 0, 255, 255
      DEFB 224, 0, 125, 255
      DEFB 224, 0, 0, 255
      DEFB 240, 0, 0, 127
      DEFB 248, 0, 0, 255
      DEFB 252, 0, 1, 255
      DEFB 252, 6, 3, 255
      DEFB 252, 7, 159, 255
      DEFB 252, 7, 255, 255
 


BOT1; 1
      DEFB 0, 240, 0, 0
      DEFB 0, 56, 0, 0
      DEFB 0, 124, 0, 0
      DEFB 0, 188, 0, 0
      DEFB 0, 78, 0, 0
      DEFB 0, 28, 0, 0
      DEFB 0, 92, 0, 0
      DEFB 0, 184, 0, 0
      DEFB 0, 120, 0, 0
      DEFB 1, 112, 0, 0
      DEFB 6, 224, 0, 0
      DEFB 2, 224, 0, 0
      DEFB 2, 192, 0, 0
      DEFB 0, 224, 0, 0
      DEFB 0, 240, 0, 0
      DEFB 0, 252, 0, 0
MASK_B1; 
      DEFB 254, 7, 255, 255
      DEFB 255, 3, 255, 255
      DEFB 255, 1, 255, 255
      DEFB 254, 1, 255, 255
      DEFB 255, 0, 255, 255
      DEFB 255, 1, 255, 255
      DEFB 255, 1, 255, 255
      DEFB 254, 3, 255, 255
      DEFB 254, 3, 255, 255
      DEFB 248, 7, 255, 255
      DEFB 240, 15, 255, 255
      DEFB 248, 15, 255, 255
      DEFB 248, 31, 255, 255
      DEFB 252, 15, 255, 255
      DEFB 254, 3, 255, 255
      DEFB 254, 1, 255, 255

BOT2;
      DEFB 0, 238, 0, 0
      DEFB 0, 239, 0, 0
      DEFB 1, 231, 128, 0
      DEFB 1, 227, 128, 0
      DEFB 0, 195, 0, 0
      DEFB 3, 207, 0, 0
      DEFB 7, 142, 0, 0
      DEFB 7, 12, 0, 0
      DEFB 14, 8, 0, 0
      DEFB 28, 56, 0, 0
      DEFB 24, 112, 0, 0
      DEFB 48, 48, 0, 0
      DEFB 112, 24, 0, 0
      DEFB 120, 12, 0, 0
      DEFB 56, 0, 0, 0
      DEFB 30, 0, 0, 0
MASK_B2;

      DEFB 254, 0, 255, 255
      DEFB 254, 0, 127, 255
      DEFB 252, 0, 63, 255
      DEFB 252, 0, 63, 255
      DEFB 252, 0, 127, 255
      DEFB 248, 0, 127, 255
      DEFB 240, 32, 255, 255
      DEFB 240, 97, 255, 255
      DEFB 224, 195, 255, 255
      DEFB 193, 131, 255, 255
      DEFB 195, 7, 255, 255
      DEFB 135, 135, 255, 255
      DEFB 7, 195, 255, 255
      DEFB 3, 225, 255, 255
      DEFB 129, 243, 255, 255
      DEFB 192, 255, 255, 255

BOT3;
      DEFB 1, 224, 0, 0
      DEFB 32, 112, 0, 0
      DEFB 55, 48, 0, 0
      DEFB 119, 248, 0, 0
      DEFB 97, 248, 0, 0
      DEFB 96, 56, 0, 0
      DEFB 64, 4, 0, 0
      DEFB 64, 14, 0, 0
      DEFB 64, 6, 0, 0
      DEFB 0, 6, 0, 0
      DEFB 0, 7, 0, 0
      DEFB 0, 3, 0, 0
      DEFB 0, 0, 0, 0
      DEFB 0, 3, 0, 0
      DEFB 0, 3, 192, 0
      DEFB 0, 3, 240, 0


MASK_B3;

      DEFB 220, 7, 255, 255
      DEFB 128, 7, 255, 255
      DEFB 128, 7, 255, 255
      DEFB 0, 3, 255, 255
      DEFB 0, 3, 255, 255
      DEFB 14, 3, 255, 255
      DEFB 31, 193, 255, 255
      DEFB 31, 224, 255, 255
      DEFB 31, 240, 255, 255
      DEFB 191, 240, 255, 255
      DEFB 255, 240, 127, 255
      DEFB 255, 248, 127, 255
      DEFB 255, 248, 127, 255
      DEFB 255, 248, 63, 255
      DEFB 255, 248, 15, 255
      DEFB 255, 248, 7, 255

SHOT
      DEFB 0, 0
      DEFB 96, 0
      DEFB 96, 0
      DEFB 0, 0
MASK_SH      
      DEFB 159, 255
      DEFB 15, 255
      DEFB 15, 255
      DEFB 159, 255
    



BUF1     DEFS 64     
BUF2     DEFS 64
BUF_SH   DEFS 80





