WND_COLOR equ 0x02aa00FF

use32
  org	 0x0
  db	 'MENUET01'
  dd	 0x01
  dd	 START
  dd	 I_END
  dd	 0x300000
  dd	 0x27fff0
  dd	 0x0
  dd	 0x0

include 'lang.inc'
include '..\..\macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!

include 'ASCL.INC'
include 'ASCGL.INC'



gif_hash_offset = gif_hash_area
COLOR_ORDER equ MENUETOS

DELAY equ  2	     ; ‡ ¤¥à¦ª  ¯¥à¥¤ ¯¥à¥å®¤®¬ ª á«¥¤ãî饬㠪 ¤àã ¢ ¬á¥ª

START:
;****************
; Žâªà뢠¥¬ ä ¨«
;****************
openfile:
;    and  [entered],0
;    mov ecx,499*3*4 ;at start
    xor ecx,ecx
    mov ecx,1

  ; Convert gif to animation format
    giftoani workarea,Image,ecx
    bmptoimg bullet_bmp, img_bullet
    bmptoimg level_bmp, img_level
    bmptoimg kirpich, img_area
    bmptoimg kirpich2, img_area2
    bmptoimg kirpich3, img_area3
    bmptoimg lest_bmp, img_lestniza
    bmptoimg water1_bmp, img_water1
    bmptoimg water2_bmp, img_water2
    bmptoimg door1_bmp, img_door1
    bmptoimg door2_bmp, img_door2


red:
    call timer
    call draw_window
;    call load_level
;    delay 200

still:
    timeevent DELAY,no_event, red, key, button

no_event:
    call draw_subimage
    jmp  still

  key:
 ; ¡«®ª  ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
    mov  eax,2
    int  0x40
     cmp  ah, 179	   ; ¯à ¢®  4
     je go_mov
     cmp  ah, 176	   ; «¥¢®  1
     je go_mov
     cmp  ah, 178	   ; ¢¥àå  3
     je go_mov
     cmp  ah, 177	   ; ­¨§  2
     je go_mov
     cmp  ah, 120	   ; ­¨§  2
     je go_fire
     cmp  ah, 122	   ; ­¨§  2
     je go_fire
     cmp  ah, 239	   ; ­¨§  2
     je go_fire_left
     cmp  ah, 231	   ; ­¨§  2
     je go_fire


      jmp no_mov    ; if not left, right, up, down, then go NO MOV

    go_mov:
       ;mov ebx, [v_mov2]
       mov [v_mov2], ah
       sub word [v_mov2], 175	; ®â­¨¬ ¥¬ ®â ª®¤  ª« ¢¨è¨ 175 ¨ ®áâ ¥âáï 1,2,3 ¨«¨ 4 ᮮ⢥âá⢥­­® ­ ¯à ¢«¥­¨ï ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
      jmp no_mov    ; if not left, right, up, down, then go NO MOV

    go_fire_left:
       xor eax,eax
       mov ah, 122
       call fire
      jmp no_mov
    go_fire:
       call fire
    no_mov:
 ; ª®­¥æ ¡«®ª  ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
    jmp  still

  button:
    mov  eax, 17
    int  0x40

    cmp  ah,1
    jne  noclose
  _close:
    or	 eax,-1
    int  0x40
  noclose:
    jmp  still

;   *********************************************
;   *******  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ *******
;   *********************************************

draw_window:
    startwd

    mov  eax,0
    mov  ebx,50*65536+522
    mov  ecx,50*65536+536
    mov  edx,WND_COLOR
    mov  esi,0x8050FFd0
    mov  edi,0x005080d0
    int  0x40

    label 8,6,'Ž„‡…Œ…‹œ… ¤«ï Š®«¨¡à¨ Ž‘ <<<RU095@YANDEX.RU>>> z/x áâ५ïâì',cl_White+font_Big

    mov  eax,8
    mov  ebx,(500)*65536+12
    mov  ecx,5*65536+12
    mov  edx,1
    mov  esi,0x000000
    int  0x40

    xor  ecx,ecx
    call draw_subimage
    cmp  [imgcount],1
    je	 .enddraw

    mov  ecx,[img_index]

    call draw_subimage

  .enddraw:

    endwd


ret

;*******************************************
; LABIRINT
;*******************************************

 labirint:

   ; ¢ë¢®¤ ¡«®ª®¢ « ¡¨à¨­â 
   cycle:

    mov     eax, [Lab]
    shl     eax, 5	    ; ᤢ¨£ ॣ¨áâà  ¢ ¯à ¢® ­  5 ¯®§¨æ¨¨ ¢á¥ à ¢­® ç⮠㬭®¦¨«¨ ­  32
    mov     [perem1], eax
    mov     eax, [Lab]
    shr     eax, 4	    ; ᤢ¨£ ॣ¨áâà  ¢ «¥¢®
    shl     eax, 5	    ; ᤢ¨£ ®¡à â­® (¢á¥ à ¢­® ç⮠楫®ç¨á«¥­­®¥ ¤¥«¥­¨¥­  256)
    mov     [perem2], eax
    shl     eax, 4	    ; ¢á¥ à ¢­® çâ® ®â­¨¬ ¥¬ ®â ª®®à¤¨­ â ­¥­ã¦­ë© ¯à¨à®áâ -> “-256*X
    sbb  dword [perem1], eax;

  mov	 ebx, [Lab]
  sbb	 ebx, 1
  mov	  eax,[Dangeon + ebx]	 ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥

  cmp  ah, 1   ;
  je go_block

  cmp  ah, 0   ;
  je back_block

  cmp  ah, 12	; § ªà áª  ä®­  §   «¬ §®¬
  je back_block

  cmp  ah, 3   ;
  je boom_block

  cmp  ah, 16	;
  je door_block

  cmp  ah, 2   ; § ªà áª  ä®­  §   «¬ §®¬
  je cool_block

  jmp end_block
  go_block:
    imgtoimg img_area,dword [perem1],dword [perem2],canvas
  jmp end_block

  cool_block:
     imgtoimg img_area3,dword [perem1],dword [perem2],canvas
  jmp end_block


  back_block:
    imgtoimg img_area2,dword [perem1],dword [perem2],canvas
   jmp end_block

  door_block:
    imgtoimg img_door1,dword [perem1],dword [perem2],canvas

    mov eax, [gold]
    cmp ax, 10	      ; ¥á«¨ ᮡ࠭® ¡®«¥¥ 10  «¬ §®¢ ¤¢¥àì ®âªàëâ 
    jna end_block
    imgtoimg img_door2,dword [perem1],dword [perem2],canvas
   jmp end_block


  boom_block:
    imgtoimg img_area,dword [perem1],dword [perem2],canvas
	   mov ebp,18 ; ª ¤à
	   mov eax, dword [perem1]
	   mov dword [X_anime], eax
	   mov eax, dword [perem2]
	   mov dword [Y_anime], eax
	   call animashka

	     mov ecx, [timer1]	 ;
	     and ecx, 15
	     cmp ecx, 0
	     jne  end_block

	       mov    ebx, [Lab]
		mov	byte [Dangeon + ebx], 0    ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥


  end_block:

    add word [Lab],1
    mov     eax, [Lab]

   cmp	   eax, 256		      ;   if eax == 0
   je	   cycle_end		     ;   jump to cycle_end:
   jmp	   cycle		    ;

   cycle_end:

   mov	  eax, 0
   mov	  [Lab],eax

 ret   ; END labirint


;*******************************************
; ‹…‘’ˆ–€
;*******************************************
 lestniza:
   ; ¢ë¢®¤ ¡«®ª®¢ « ¡¨à¨­â 
   cycle2:

    mov     eax, [Lab]
    shl     eax, 5	    ; ᤢ¨£ ॣ¨áâà  ¢ ¯à ¢® ­  5 ¯®§¨æ¨¨ ¢á¥ à ¢­® ç⮠㬭®¦¨«¨ ­  32
    mov     [perem1], eax
    mov     eax, [Lab]
    shr     eax, 4	    ; ᤢ¨£ ॣ¨áâà  ¢ «¥¢®
    shl     eax, 5	    ; ᤢ¨£ ®¡à â­® (¢á¥ à ¢­® ç⮠楫®ç¨á«¥­­®¥ ¤¥«¥­¨¥­  256)
    mov     [perem2], eax
    shl     eax, 4	    ; ¢á¥ à ¢­® çâ® ®â­¨¬ ¥¬ ®â ª®®à¤¨­ â ­¥­ã¦­ë© ¯à¨à®áâ -> “-256*X
    sbb  dword [perem1], eax;


  mov	 ebx, [Lab]
  sbb	 ebx, 1
  mov	  eax,[Dangeon + ebx]	 ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥

  cmp  ah, 8   ;
  je go_lestniza

  jmp end_lestniza
  go_lestniza:

    imgtoimg img_lestniza,dword [perem1],dword [perem2],canvas
  end_lestniza:

    add word [Lab],1
    mov     eax, [Lab]

   cmp	   eax, 256		      ;   if eax == 0
   je	   cycle2_end		      ;   jump to cycle_end:
   jmp	   cycle2		     ;

   cycle2_end:

   mov	  eax, 0
   mov	  [Lab],eax


 ret   ; END lestniza



;*******************************************
; ‚Ž„€     ¨  €‹Œ€‡›
;*******************************************
 water:

   ; ¢ë¢®¤ ¢®¤ë « ¡¨à¨­â 
   cycle3:

    mov     eax, [Lab]
    shl     eax, 5	    ; ᤢ¨£ ॣ¨áâà  ¢ ¯à ¢® ­  5 ¯®§¨æ¨¨ ¢á¥ à ¢­® ç⮠㬭®¦¨«¨ ­  32
    mov     [perem1], eax
    mov     eax, [Lab]
    shr     eax, 4	    ; ᤢ¨£ ॣ¨áâà  ¢ «¥¢®
    shl     eax, 5	    ; ᤢ¨£ ®¡à â­® (¢á¥ à ¢­® ç⮠楫®ç¨á«¥­­®¥ ¤¥«¥­¨¥­  256)
    mov     [perem2], eax
    shl     eax, 4	    ; ¢á¥ à ¢­® çâ® ®â­¨¬ ¥¬ ®â ª®®à¤¨­ â ­¥­ã¦­ë© ¯à¨à®áâ -> “-256*X
    sbb  dword [perem1], eax;


  mov	 ebx, [Lab]
  sbb	 ebx, 1
  mov	  eax,[Dangeon + ebx]	 ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥

  cmp  ah, 4   ;
  je go_water

  cmp  ah, 12	;  à¨á®¢ ­¨¥  «¬ §®¢
  je go_almaz

  jmp end_water
  go_water:
  mov	  eax,0    ;
  mov	  eax, [timer1];
  and  eax, 15
  cmp  eax, 7	;
  jb go_water2

    imgtoimg img_water1,dword [perem1],dword [perem2],canvas
  jmp end_water

  go_water2:
    imgtoimg img_water2,dword [perem1],dword [perem2],canvas

  jmp end_water
  go_almaz:

  mov	  eax,0    ;
  mov	  eax, [timer1];
  and  eax, 31

   cmp eax, 10
   ja almaz2

   mov ebp,14 ; ª ¤à
   mov eax, dword [perem1]
   mov dword [X_anime], eax
   mov eax, dword [perem2]
   mov dword [Y_anime], eax
   call animashka
   jmp end_water

   almaz2:
   cmp eax, 20
   ja almaz3

   mov ebp,15 ; ª ¤à
   mov eax, dword [perem1]
   mov dword [X_anime], eax
   mov eax, dword [perem2]
   mov dword [Y_anime], eax
   call animashka
   jmp end_water

   almaz3:
   mov ebp,16 ; ª ¤à
   mov eax, dword [perem1]
   mov dword [X_anime], eax
   mov eax, dword [perem2]
   mov dword [Y_anime], eax
   call animashka


  end_water:

    add word [Lab],1
    mov     eax, [Lab]

   cmp	   eax, 256		      ;   if eax == 0
   je	   cycle3_end		      ;   jump to cycle_end:
   jmp	   cycle3		     ;

   cycle3_end:

   mov	  eax, 0
   mov	  [Lab],eax


 ret   ; END water


;*******************************************
; ‚뢮¤¨¬ á«¥¤ãî騩 ª ¤à ¨§ ᯨ᪠ ª à⨭®ª
;*******************************************
draw_subimage:
  ;aframetoimg Image,32, 32,canvas,0x00ffffff ; …‚ˆ„ˆŒ›‰, ¯à®§à ç­ë© –‚…’ ˆ‹ˆ … ˆ‘“…Œ›‰

  call labirint
  call lestniza
  call enemy_mas
  call enemy_mov
;-------------------------------------------------------------------------------
    mov ebx, [gold]
    cmp bx, 5		;㢥«¨ç¥­¨¥ ᪮à®á⨠¢à £®¢ ¥á«¨ ãªà « ¡®«¥¥ 9
    jna lov_velo
     call enemy_mas
     call enemy_mov
    lov_velo:
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
    mov ebx, [gold]
    cmp bx, 9		;㢥«¨ç¥­¨¥ ᪮à®á⨠¢à £®¢ ¥á«¨ ãªà « ¡®«¥¥ 9
    jna lov_velo2
     call enemy_mas
     call enemy_mov
    lov_velo2:
;-------------------------------------------------------------------------------
;  call enemy_mas
;  call enemy_mov
  call hiro
  call hiro_mov
  call water

  call bullet_mov
  call bullet_mov
  call bullet_mov
  call bullet_mas
  call bullet_mov
  call bullet_mov
  call bullet_mov
  call bullet_mas
  call proverka_gold
  call potop

  setimg 6,20,canvas

  call timer
  call tablo
ret

;@@@@@@@@@@@@@@@@@@
animashka:
;!!!‚€†Ž ¯¥à¥¤ ¢ë§®¢®¬ ¯à®æ¥¤ãàë ¤®«¦¥­ ¡ëâì ãáâ ­®¢«¥­ ebx[­®¬¥à ª ¤à ] ¨ x,y

  mov edi,coords
  mov esi, Image ; £¨ä  ­¨¬ èª  ¢ ¯ ¬ïâ¨
;
;  mov ebp, dword [edi+8] ;ecx §¤¥áì ª®­ªà¥â­ë© ­®¬¥à ¢ë¢®¤¨¬®£® ª ¤à 
;  inc ebp ; 㢥«¨ç¥­¨¥ ª ¤à 
;  cmp ebp,3 ;  ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ ª ¤à®¢ !!!!!!!
;  jna ok_fr ; ¥á«¨ ¢ë¢®¤¨¬ë ª ¤à ¬¥­ìè¥ ¬ ªá¨¬ «ì­®£® ª®«¨ç¥á⢠ ª ¤à®¢
;!!!!!!!!!  mov ebp,2 ;®¡­ã«¥­¨¥ ª ¤à 

ok_fr:
  mov dword [edi+8], ebp ;­®¬¥à ¢ë¢®¤¨¬®£® ª ¤à 
loo:
  cmp ebp,0  ; ¥á«¨ ª ¤à ­ã«¥¢®© â® áࠧ㠭  ¢ë¢®¤ ?
  je  setpic
  movzx eax,word [esi+4]   ; ¥á«¨ ­¥â ⮠㢥«¨ç¨¢ ¥¬ å ã ?
  movzx ebx,word [esi+6]
  mul ebx ;dword [esi+4] 㬭®¦ ¥â ebx ­  eax ¨ १ã«ìâ â ¢ eax edx
  mov ebx,3 ; ª®«¨ç¥á⢮ ª ¤à®¢ ???
  mul ebx
  add eax,8
  add esi,eax
  dec ebp
  jmp loo
setpic:

  pushad
; aframetoimg esi,dword [edi], dword [edi+4],canvas,0x00ffffff ; …‚ˆ„ˆŒ›‰, ¯à®§à ç­ë© –‚…’ ˆ‹ˆ … ˆ‘“…Œ›‰
;  aframetoimg esi,32, 32,canvas,0x00ffffff ; …‚ˆ„ˆŒ›‰, ¯à®§à ç­ë© –‚…’ ˆ‹ˆ … ˆ‘“…Œ›‰
  aframetoimg esi,dword [X_anime],dword [Y_anime],canvas,0x00ffffff ; …‚ˆ„ˆŒ›‰, ¯à®§à ç­ë© –‚…’ ˆ‹ˆ … ˆ‘“…Œ›‰
  ;call enemy_mas
  popad
ret
;@@@@@@@@@@@@@@


 ;-------------- TIMER --------------
 timer:
     mov     eax,0    ;
     mov     eax,[timer1]    ;
     add     eax, 1;
     mov     [timer1], eax

     cmp     eax, 64   ;      â ©¬¥à ®â 0 ¤® 64
     je nul_timer
     jmp timer_dalee
     nul_timer :
     mov    [timer1], 0
     timer_dalee:
 ret
 ;-------------- TIMER --------------





;*******************************************
; ENEMY
;*******************************************

 enemy_mas:	  ; ¢ë¢®¤ ENEmy    ENEMYYYYYYYYYYYYYYY ENEMYYYYYYYYYYYYYY !!!

  mov word [Lab2], 0 ; ¢á¥ ¤¥« âì ¢ WORD ®¤¨­ í«¥¬¥­â ¢ ¬ áᨢ¥ +2 á«¥¤ãî騩 ¢à £ á®®â¢â¥âá⢥­­® 6*2= + 12

 cycle4:

  mov	 ebx, 0
  mov	 ecx, 0
  mov	 edx, 0
  mov	 esi, 0

  mov	 word bx, [Lab2]
  mov	 word ax,[Enemy+bx]    ; ¡¥à¥â ¡ ©â ¨§ Enemy + ᬥ饭¨¥

  cmp  ax, 1   ;   ®¡ëç­ë© ¢à £ ­®¬¥à 1
  je go_enemy

  jmp end_enemy
  go_enemy:

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + bx]
  mov	 word [X_enemy], ax

  add	 word bx, 2 ; Y ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [Y_enemy], ax

  add	 word bx, 2 ; ¯®«®¦¥­¨¥ ¢ ¬ áᨢ¥ ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [lab_enemy], ax

  add	 word bx, 2 ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [mov_enemy], ax

  add	 word bx, 2 ; enemy LIFE
  mov	 word ax, [Enemy + ebx]
  mov	 word [life_enemy], ax

  cmp  ax, 499;            ; § ¬®à®¦¥­­ë¥ ¢à £¨
  ja enemy_dalee
   mov ebp,2 ; ª ¤à
   mov eax, dword [X_enemy]
   mov dword [X_anime], eax
   mov eax, dword [Y_enemy]
   mov dword [Y_anime], eax
   call animashka
   jmp enemy_bmp_end



  enemy_dalee:
  xor	  eax,eax    ;
  mov	  eax, [X_enemy]    ;
  and  eax, 15
  cmp  ax, 7;
  ja enemy_1

  jmp enemy_2

   enemy_1:

   mov ebp,0 ; ª ¤à
   mov eax, dword [X_enemy]
   mov dword [X_anime], eax
   mov eax, dword [Y_enemy]
   mov dword [Y_anime], eax
   call animashka

   jmp enemy_bmp_end

   enemy_2:
   mov ebp,1 ; ª ¤à
   mov eax, dword [X_enemy]
   mov dword [X_anime], eax
   mov eax, dword [Y_enemy]
   mov dword [Y_anime], eax
   call animashka
   enemy_bmp_end:

   end_enemy:

    mov     eax, 0
    mov     word ax, [Lab2]

   cmp	   ax, 96		    ;   if eax == 0
   je	   cycle4_end		      ;   jump to cycle_end:

    add     word [Lab2],12

   jmp	   cycle4		     ;

   cycle4_end:

 ret   ; END eNEMYYYYYYYYYYYYYYY ENEMYYYYYYYYYYYYYY !!!

;$$$$$$$$$$$$$$$$$$$$$$$$$$
;   ENEMY MOV
;$$$$$$$$$$$$$$$$$$$$$$$$$$
enemy_mov:
  mov word [Lab2], 0 ; ¢á¥ ¤¥« âì ¢ WORD ®¤¨­ í«¥¬¥­â ¢ ¬ áᨢ¥ +2 á«¥¤ãî騩 ¢à £ á®®â¢â¥âá⢥­­® 6*2= + 12

 cycle5:

  mov	 ebx, 0
  mov	 ecx, 0
  mov	 edx, 0
  mov	 esi, 0

  mov	 word bx, [Lab2]
  mov	 word ax,[Enemy+bx]    ; ¡¥à¥â ¡ ©â ¨§ Enemy + ᬥ饭¨¥

  cmp  ax, 1   ;   ®¡ëç­ë© ¢à £ ­®¬¥à 1
  je go_mov_enemy

  jmp end_mov_enemy
  go_mov_enemy:

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + bx]
  mov	 word [X_enemy], ax

  add	 word bx, 2 ; Y ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [Y_enemy], ax

  add	 word bx, 2 ; ¯®«®¦¥­¨¥ ¢ ¬ áᨢ¥ ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [lab_enemy], ax

  add	 word bx, 2 ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
  mov	 word ax, [Enemy + ebx]
  mov	 word [mov_enemy], ax

  add	 word bx, 2 ; enemy LIFE
  mov	 word ax, [Enemy + ebx]
  mov	 word [life_enemy], ax

  cmp  ax, 499;            ; § ¬®à®¦¥­­ë¥ ¢à £¨
  ja  dalee_enemy_mov
  add ax, 1

  mov	 word [Enemy + ebx], ax

  jmp end_mov_enemy

  dalee_enemy_mov:
     ; ¡«®ª ¯®¥¤ ­¨ï £¥à®ï
      mov  ax, [Xpl]
      add  ax, 23
      cmp ax, [X_enemy]
	jna ne_em
	 sbb ax, 45
	 cmp ax, [X_enemy]
	  ja ne_em
	    mov  ax, [Ypl]
	    add  ax, 23
	    cmp ax, [Y_enemy]
	     jna ne_em
	     sbb ax, 45
	     cmp ax, [Y_enemy]
	  ja ne_em
	  call load_level  ; DEAD HIRO
	  delay 150

       ne_em:
     ;«®ª ¯®¯ ¤ ­¨ï 1 ¯ã«¨

  mov	 word bx, 0
  mov	 word ax,[Bullet + ebx]
  cmp ax, 0
  je no_bullet

  add	 word bx, 2   ; [Xpl]
  mov	 word cx, [Bullet + ebx]

  add	 word bx, 2   ; [Ypl]
  mov	 word dx, [Bullet + ebx]

    cmp dx, [Y_enemy]
    jna no_bullet
      sbb dx, 32
      cmp dx, [Y_enemy]
      ja no_bullet
      cmp cx, [X_enemy]
       jna no_bullet
       sbb cx, 32
	cmp cx, [X_enemy]
	ja no_bullet
	mov    word bx, [Lab2]
	add    word bx, 10 ; enemy LIFE
	mov    word [Enemy + ebx],0

	mov    byte [Bullet], 0    ;

    no_bullet:


     ;‹ŽŠ ˆŽ‘’€ „‚ˆ†…ˆŸ ‚€ƒŽ‚
	mov word ax, [mov_enemy]		      ;
	cmp ax, 1	     ; left                   ;
	jne next_2				      ;
	  sbb	 word [X_enemy], 1		      ;
	  mov	 word ax, [X_enemy]		      ;
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;
						      ;
	next_2: 				      ;
	cmp ax, 2	     ; down                   ;
	jne next_3				      ;
	  add	 word [Y_enemy], 1		      ;
	  mov	 word ax, [Y_enemy]		      ;
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 4 ; Y ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;
						      ;
	next_3: 				      ;
	cmp ax, 3	     ; up                     ;
	jne next_4				      ;
	  sbb	 word [Y_enemy], 1		      ;
	  mov	 word ax, [Y_enemy]		      ;
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 4 ; Y ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;
						      ;
	next_4: 				      ;
	cmp ax, 4	     ; right                  ;
	jne next_end

	     ;ƒà ¢¨â æ¨®­­ ï § ¯« âª    «¥ç¨â âà ¡« - ª®£¤  ¢à £ ¤¢¨£ ¥âáï á«¥¢  ­  ¯à ¢® â® ¯à®«¥â ¥â ®¤¨­ ¯ãá⮩ ¡«®ª
	      mov word bx, [X_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	      and ebx, 31    ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	      cmp bx, 0     ;
	      jne n4_dalee   ;
		mov    bx,[lab_enemy]
		add    bx,16
		mov    ax, [Dangeon + bx]
		and   eax,15
		 cmp word ax, 0
		 je next_end
		 cmp word ax, 4
		 je next_end
	      ;ª®­¥æ § ¯« âª¨

	   n4_dalee:
	;
	  add	 word [X_enemy], 1		      ;
	  mov	 word ax, [X_enemy]		      ;
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;
						      ;
	next_end:
	  ;END ‹ŽŠ ˆŽ‘’€ „‚ˆ†…ˆŸ ‚€ƒ

	  ;

     ;   ­¤®¬­ë© ¢ë¡®à ­  «¥á­¨æ¥
	mov word bx, [X_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and ebx, 31    ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp bx, 0     ;
	jne end_les   ;
	   mov word bx, [Y_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	   and ebx, 31	  ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	   cmp bx, 0	 ;
	   jne end_les	 ;

		random 300, eax

		 cmp eax, 150
		 ja les2
		 jmp end_up_or_down
		les2:

		mov eax, [Ypl]
		cmp eax, [Y_enemy]
		jna bolee
		mov    word [mov_enemy],2		    ; ¢­¨§
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;
		jmp end_les

		bolee:
		mov    word [mov_enemy],3		    ; up
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;
		jmp end_les

		end_up_or_down:

		 random 300, eax
		 cmp eax, 150
		 ja les22
		 jmp end_les
		les22:

		mov eax, [Xpl]
		cmp eax, [X_enemy]
		jna bolee2
		mov    word [mov_enemy],4		    ; ¢­¨§
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;
		jmp end_les

		bolee2:
		mov    word [mov_enemy],1		    ; up
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;

	end_les:
     ;  end  ­¤®¬­ë© ¢ë¡®à ­  «¥á­¨æ¥

     ;ƒà ¢¨â æ¨ï
	mov word bx, [X_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and ebx, 31    ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp bx, 0     ;
	jne end_grava	;

		mov    bx,[lab_enemy]
		add    bx,16
		mov    ax, [Dangeon + bx]

		and   eax,15
		 cmp word ax, 0
		 je grava
		 cmp word ax, 4
		 je grava
		 jmp end_grava
		grava:
		mov    word [mov_enemy], 2		    ; padenie ‚€ƒ€
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;

	end_grava:
     ;ª®­¥æ £à ¢¨â æ¨¨

	  ;¡«®ª à áç¥â  ¯®«®¦¥­¨ï ¢à £  ¢ « ¡¨à¨­â¥
	    mov eax, 0				  ;
	    mov eax, [Y_enemy]			      ;
	    shr eax, 5				  ;
	    shl eax, 4				  ;
	    mov ebx, 0				  ;
	    mov ebx, [X_enemy]			      ;
	    shr ebx, 5				  ;
	    add eax, ebx			  ;
	    mov [lab_enemy], eax		   ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 6  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;
	  ;¡«®ª à áç¥â  ¯®«®¦¥­¨ï ¢à £  ¢ « ¡¨à¨­â¥






       ;‹ŽŠ ‡€…’€ „‚¨¦¥­¨ï
	mov word bx, [Y_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and bx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp bx, 0     ;
	jne end_zapret	 ;
	   mov word ax, [X_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	   and ax, 31	 ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	   cmp ax, 0	 ;
	   jne end_zapret   ;

	      mov word ax, [mov_enemy] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 

	      cmp ax, 0
	      jne duma1
		    ;  ­¤®¬­ë© ¢ë¡®à ¤¢¨¦¥­¨ï
		 mov eax, [timer1]
		 and eax, 3
		 cmp eax, 0
		 jne dalee_duma1
		 add eax, 4
		 dalee_duma1:

		mov    word [mov_enemy], ax		     ;
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;



	      duma1:
	      cmp ax, 4
	      jne duma2  ; ¯à¢¥àª  á¯à ¢ 
		mov    bx,[lab_enemy]
		add    bx,1
		mov    ax, [Dangeon + bx]
		and   eax,3
		 cmp ax, 0
		 jne duma_stop
		 jmp duma_end

	      duma2:
	      cmp ax, 1
	      jne duma3  ; á«¥¢ 
		mov    bx,[lab_enemy]
		sbb    bx,1
		mov    ax, [Dangeon + bx]
		and   eax,3
		 cmp ax, 0
		 jne duma_stop
		 jmp duma_end

	      duma3:
	      cmp ax, 2
	      jne duma4  ; á­¨§ã
		mov    bx,[lab_enemy]
		add    bx,16
		mov    ax, [Dangeon + bx]
		and   eax,3
		 cmp ax, 0
		 jne duma_stop
		 jmp duma_end

	      duma4:
	      cmp ax, 3
	      jne duma_stop  ; ᢥàåã

		mov    bx,[lab_enemy]	  ; ¥á«¨ ª¨à¯¨ç ­ ¤ £®«®¢®©
		sbb    bx,16
		mov    ax, [Dangeon + bx]
		and   eax,3
		 cmp ax, 0		  ; ¥á«¨ ª¨à¯¨ç ­ ¤ £®«®¢®©
		 jne duma_stop

		mov    bx,[lab_enemy]	  ; ¥á«¨ ¢à £ ­¥ ­  «¥á­¨æ¥
		mov    ax, [Dangeon + bx]
		and   eax,15
		cmp ax, 8
		 jne duma_stop

		 jmp duma_end

	      duma_stop:

		mov    word [mov_enemy], 0		    ; Ž‘’€Ž‚Š€ ‚€ƒ€
		mov    word ax, [mov_enemy]		    ;
		mov    word bx, [Lab2]			    ;
		add    word bx, 8  ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¤ ­­®£® ¢à £ 
		mov    word [Enemy + bx], ax		    ;

	   duma_end:

	 end_zapret:
	 ;ª®­¥æ § ¯à¥â 

  end_mov_enemy:

    mov     eax, 0
    mov     word ax, [Lab2]

   cmp	   ax, 96		    ;   if eax == 0
   je	   cycle5_end		      ;   jump to cycle_end:

    add     word [Lab2],12

   jmp	   cycle5		     ;

   cycle5_end:


ret

;*****************************
;   HIRO
;*****************************

 hiro:

  mov ecx, [v_fire]   ;áâ५졠
  cmp ecx, 0
  je  next_anima
      cmp ecx, 1
	je wprawo
	 mov ebp,12 ; ª ¤à
	 mov eax, dword [Xpl]
	 mov dword [X_anime], eax
	 mov eax, dword [Ypl]
	 mov dword [Y_anime], eax
	 call animashka
	     mov ecx, [timer1]	 ;áâ५졠
	     and ecx, 15
	     cmp ecx, 0
	     jne  end_hiro
	      mov dword [v_fire], 0
	  jmp end_hiro

	 wprawo:
	 mov ebp,11 ; ª ¤à
	 mov eax, dword [Xpl]
	 mov dword [X_anime], eax
	 mov eax, dword [Ypl]
	 mov dword [Y_anime], eax
	 call animashka
	     mov ecx, [timer1]	 ;áâ५졠
	     and ecx, 15
	     cmp ecx, 0
	     jne  end_hiro
	      mov dword [v_fire], 0
	  jmp end_hiro

		      ;áâ५졠
   jmp end_hiro

 next_anima:
  mov eax, [v_mov]
  cmp eax, 1
  jne next_r
  mov	  eax,0    ;
  mov	  eax, [Xpl];
  and  eax, 15
  cmp  eax, 7	;
  ja next_l1

   mov ebp,3 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka
   jmp end_hiro

   next_l1:
   mov ebp,5 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka
       pusha
       mcall 55, eax, , , Music_mov   ; §¢ãª ¢ëáâ५ 
       popa

   jmp end_hiro

  next_r:
  cmp eax, 4
  jne next_d

  mov	  eax,0    ;
  mov	  eax, [Xpl];
  and  eax, 15
  cmp  eax, 7	;
  ja next_d1

   mov ebp,4 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka

       pusha
       mcall 55, eax, , , Music_mov   ; §¢ãª ¢ëáâ५ 
       popa
   jmp end_hiro

   next_d1:
   mov ebp,6 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka

   jmp end_hiro

  next_d:
  cmp eax, 2
  jne next_u
   mov ebp,13 ; ª ¤à
    mov eax, [temp2]
    cmp eax, 8
    jne padaem
   mov ebp,10 ; ª ¤à
    padaem:
    mov eax, [temp5]
    cmp eax, 8
    jne padaem2
   mov ebp,10 ; ª ¤à
    padaem2:
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka
   jmp end_hiro

  next_u:
  cmp eax, 3
  jne next_s
  mov	  eax,0    ;
  mov	  eax, [Ypl];
  and  eax, 15
  cmp  eax, 7	;
  ja next_u1

   mov ebp,10 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka
   jmp end_hiro

   next_u1:
   mov ebp,9 ; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka

   jmp end_hiro

  next_s:
  cmp eax, 0
  jne next_s
   mov ebp,17; ª ¤à
   mov eax, dword [Xpl]
   mov dword [X_anime], eax
   mov eax, dword [Ypl]
   mov dword [Y_anime], eax
   call animashka
   jmp end_hiro

 end_hiro:

 ret   ; END Hiro
;**************
;  end HIRO
;**************


;****************
;  Hiro MOV
;****************
hiro_mov:

     ;…ƒ€„

       ; ¢ëç¨á«¥­¨¥ á®á¥¤­¨å ¡«®ª®¢
       mov    ebx, [hiro_lab]
       sbb    ebx,2
       mov    eax,[Dangeon + bx]    ;                 up
       mov    [temp1], ah	    ;               temp4
				    ;
       add    ebx,1		    ;        left    hiro  right
       mov    eax,[Dangeon + bx]    ;       temp1   temp2  temp3
       mov    [temp2], ah	    ;

;-------------------------------------------------------------------------------
;     ‘¡®à  «¬ §®¢
;-------------------------------------------------------------------------------
	mov ecx, [Ypl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and ecx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 

	mov edx, [Xpl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and edx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	or edx,ecx ; Œë ç¥âª® ᯮ§¨æ¨®­¨à®¢ ­ë ¯® • ¨ “
	cmp edx, 0
	jne no_almaz

	  cmp ah, 12
	  jne no_almaz
	  xor cx, cx
	  add ebx,1  ; ‡€‹€’Š€ !!!  ¡¥§ ­¥¥ ¯®ç¥¬ãâ® ®¡­ã«ï¥â ­¥  «¬ §ë   á®á¥¤­¨¥ ¡«®ª¨
	  mov  [Dangeon + bx], ch
	  sbb ebx, 1  ; ‡€‹€’Š€ !!!
	  mov ecx, [gold]
	  add ecx, 1
	  mov [gold], ecx
       pusha
       mcall 55, eax, , , Music_almaz	; §¢ãª Almaz
       popa
	  no_almaz:
;-------------------------------------------------------------------------------
;     ‘¡®à  «¬ §®¢
;-------------------------------------------------------------------------------
				    ;                down
       add    ebx,1		    ;               temp5
       mov    eax,[Dangeon + bx]    ;
       mov    [temp3], ah

       sbb    ebx,17		    ; !!!!!!!!!!!!
       mov    eax,[Dangeon + bx]    ; ¯à¨ ®âáãâá⢨¨ ¡¨¡«¨®â¥ª¨  MACROS.INC   ebx=17 , ¯à¨ ¥¥ ¯à¨áãâá⢨¨ ebx=16
       mov    [temp4], ah

       add    ebx,32		    ;
       mov    eax,[Dangeon + bx]    ;
       mov    [temp5], ah
       ; ¢ëç¨á«¥­¨¥ á®á¥¤­¨å ¡«®ª®¢





     ;à §à¥è¥­¨¥ ­  ¤¢¨¦¥­¨¥
     mov     eax,0		;
     mov     eax,[v_mov2]	;
     and     eax,7
     and     eax,2
     cmp eax, 2
     je smena

	mov ebx, [Ypl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and ebx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp ebx, 0     ;
	jne end_tamgna	 ;
	smena:

	 mov	 eax,0		    ;
	 mov	 eax,[v_mov2]	    ;
	 and	 eax,7
	 and	 eax,2
	 cmp eax, 0
	 je smena2

	 mov ebx, [Xpl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	 and ebx, 31	; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	 cmp ebx, 0	;
	 jne end_tamgna   ;

	  smena2:
	  mov eax, [v_mov2]
	  and eax, 7
	  mov [v_mov], eax
     end_tamgna:
     ;à §à¥è¥­¨¥ ­  ¤¢¨¦¥­¨¥


     ;“ˆ€ˆ… ‚ …ƒ€„“
	mov ebx, [Ypl] ;
	and ebx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp ebx, 0     ;
	jne end_stop   ;
	mov eax, [Xpl] ; ¡¥§ ¬ ªà®á  í⮣® ¡«®ª  ­¥ ¡ë«® ®­ ¡ë« ¢­ãâਠ¡«®ª  㯨࠭¨©
	and eax, 31    ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	cmp eax, 0     ;
	jne end_stop   ;
     mov eax, [v_mov]

     cmp  eax, 2
       je stop_d
       jmp stop_u

       stop_d:
	mov ebx, [temp5]
	  ;§ ¯« âª  2 à ¢­® 1 ¥á«¨ ¡¥â®­ â® íâ® ª ª ª¨à¯¨ç, ¨­ ç¥ £¥à®© ¯à®å®¤¨â ᪢®§ì ¡¥â®­

	  cmp ebx, 2
	  jne no_zaplat1

	   sbb ebx,1

	  no_zaplat1:

	and ebx,3
	or eax, ebx

	 cmp eax, 2
	 je end_stop
	  mov ebx, 0
	  mov [v_mov], ebx

       stop_u:
       cmp  eax, 3
       jne stop_l

	mov ebx, [temp4]
	and ebx,3
	and eax, ebx

    ;    mov ebx, [Ypl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
    ;    and ebx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
    ;    cmp ebx, 0     ;
    ;    jne end_stop   ;


	 cmp eax, 0
	 je end_stop
	  mov ebx, 0
	  mov [v_mov], ebx

       stop_l:
       cmp  eax, 1
       jne stop_r

	mov ebx, [temp1]
	and ebx,3

    ;    mov eax, [Xpl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
    ;    and eax, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
    ;    cmp eax, 0     ;
    ;    jne end_stop   ;

	 cmp ebx, 0
	 je end_stop
	  mov ebx, 0
	  mov [v_mov], ebx

       stop_r:
       cmp  eax, 4
       jne end_stop

	mov ebx, [temp3]
	and ebx,3

	 cmp ebx, 0
	 je end_stop
	  mov ebx, 0
	  mov [v_mov], ebx

      end_stop:
     ;…ƒ€„›


     ;GRAVITACION
	mov ebx, [Ypl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and ebx, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 

	mov eax, [Xpl] ; â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	and eax, 31    ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
	or eax,ebx ; Œë ç¥âª® ᯮ§¨æ¨®­¨à®¢ ­ë ¯® • ¨ “
	cmp eax, 0
	jne end_grav

	  mov ebx, [temp2]    ;
	  cmp ebx, 0	      ; § ¯à¥â ­  ¯à릪¨ ¢¢¥àå
	  jne end_grav	      ;
	    mov ebx, [v_mov]  ;
	    cmp ebx, 3	      ;
	    jne dalee_gra     ;
	       mov ebx, 0     ;
	 mov [v_mov],ebx      ;
	 mov ebx, 0	      ;
	 mov [v_mov2],ebx     ;

	dalee_gra:
	add eax, [temp5]       ;
	cmp eax, 0	       ; ¯ ¤¥­¨¥ ¢ ¯ãáâ®âã
	 jne dalee_g	       ;
	 mov eax, 2	       ;
	 mov [v_mov],eax       ;
	 mov eax, 0	       ;
	 mov [v_mov2],eax      ;

	 dalee_g:
	cmp eax, 4	       ;
	 jne dalee_g2	       ; ¯ ¤¥­¨¥ ¢ ¢®¤ã
	 mov eax, 2	       ;
	 mov [v_mov],eax       ;
	 mov eax, 0	       ;
	 mov [v_mov2],eax      ;

	 dalee_g2:
	cmp eax, 12		;
	 jne end_grav	       ; ¯ ¤¥­¨¥ ­   «¬ §
	 mov eax, 2	       ;
	 mov [v_mov],eax       ;
	 mov eax, 0	       ;
	 mov [v_mov2],eax      ;

       end_grav:
     ;end GRAVITACION




     ; ˆŽ‘’ ŠŽŽ„ˆ€’ ƒ…ŽŸ
     mov     eax,0		;
     mov     eax,[v_mov]	;
     cmp     eax, 2		;
     je h_down			;
   jmp proverka2		;
    jmp hiro_mov_end		;
	h_down: 		;
	 mov ebx, [Ypl] 	;
	 add ebx, 2		;                             3
	 mov [Ypl], ebx 	;                           1   4
    jmp hiro_mov_end		;
				;
   proverka2:			;
     cmp     eax, 3   ;         ;
     je h_up			;    PRIROST X Y
   jmp proverka3		;
    jmp hiro_mov_end		;
	h_up:			;
	 mov ebx, [Ypl] 	;
	 sbb ebx, 2		;
	 mov [Ypl], ebx 	;
    jmp hiro_mov_end		;
				;
   proverka3:			;
     cmp     eax, 1   ;         ;
     je h_left			;
   jmp proverka4		;
    jmp hiro_mov_end		;
	h_left: 		;
	 mov ebx, [Xpl] 	;
	 sbb ebx, 2		;
	 mov [Xpl], ebx 	;
    jmp hiro_mov_end		;
				;
   proverka4:			;
     cmp     eax, 4		;
     je h_right 		;
   jmp hiro_mov_end		;
    jmp hiro_mov_end		;
	h_right:		;
	 mov ebx, [Xpl] 	;
	 add ebx, 2		;
	 mov [Xpl], ebx 	;
    jmp hiro_mov_end	       ;¯à¨à®áâ
     ; ˆŽ‘’ ŠŽŽ„ˆ€’ ƒ…ŽŸ

    hiro_mov_end:

    ; ¢ëç¨á«ï¥¬ ¯®«®¦¥­¨¥ £¥à®ï ¢ « ¡¨à¨­â¥
    mov eax, 0				  ;
    mov dword eax, [Ypl]			;
    shr eax, 5				  ;
    shl eax, 4				  ;
    mov ebx, 0				  ;
    mov dword ebx, [Xpl]			;
    shr ebx, 5				  ;
    add eax, ebx			  ;
    mov [hiro_lab], eax 		  ;
    ; ¢ëç¨á«ï¥¬ ¯®«®¦¥­¨¥ £¥à®ï ¢ « ¡¨à¨­â¥
ret
;****************
;  end Hiro mov
;****************


;*******************************************
; BULLET
;*******************************************
 bullet_mas:
  mov word [Lab3], 0 ; ¢á¥ ¤¥« âì ¢ WORD ®¤¨­ í«¥¬¥­â ¢ ¬ áᨢ¥ +2 á«¥¤ãî騩 ¢à £ á®®â¢â¥âá⢥­­® 6*2= + 12
 cycle7:
  mov	 word bx, [Lab3]
  mov	 word ax, [Bullet+bx]	 ; ¡¥à¥â ¡ ©â ¨§ Enemy + ᬥ饭¨¥

  cmp  ax, 1   ;   bullet ok
  je go_bullet

  jmp end_bullet
  go_bullet:

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Bullet + bx]
  mov	 word [X_bul], ax

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Bullet + bx]
  mov	 word [Y_bul], ax

    imgtoimg img_bullet, dword [X_bul], dword [Y_bul],canvas
  end_bullet:

    mov     eax, 0
    mov     word ax, [Lab3]

   cmp	   ax, 36		    ;   if eax == 0
   je	   cycle7_end		      ;   jump to cycle_end:

    add     word [Lab3],12

   jmp	   cycle7		     ;

   cycle7_end:
 ret  ; end BULLET
;-------------------------------------------------------------------------------


;*******************************************
; BULLET MOV
;*******************************************
 bullet_mov:
  mov word [Lab3], 0 ; ¢á¥ ¤¥« âì ¢ WORD ®¤¨­ í«¥¬¥­â ¢ ¬ áᨢ¥ +2 á«¥¤ãî騩 ¢à £ á®®â¢â¥âá⢥­­® 6*2= + 12

 cycle8:
  mov	 word bx, [Lab3]
  mov	 word ax, [Bullet+bx]	 ; ¡¥à¥â ¡ ©â ¨§ Enemy + ᬥ饭¨¥

  cmp  ax, 1   ;   bullet ok
  je go_bullet_mov

  jmp end_bullet_mov
  go_bullet_mov:

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Bullet + bx]
  mov	 word [X_bul], ax

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 word ax, [Bullet + bx]
  mov	 word [Y_bul], ax

  add	 word bx, 2 ;
  mov	 word ax, [Bullet + bx]
  mov	 word [mov_bullet], ax

    cmp  ax, 1
    jne bul_muv_left
      mov word ax, [X_bul]
      sbb ax, 2
      mov word bx, [Lab3]
      add word bx, 2
      mov word [Bullet + bx], ax

    jmp end_bullet_mov
    bul_muv_left:
      mov word ax, [X_bul]
      add ax, 2
      mov word bx, [Lab3]
      add word bx, 2
      mov word [Bullet + bx], ax

    end_bullet_mov:

    ; ¢ëç¨á«ï¥¬ ¯®«®¦¥­¨¥ BULLET ¢ « ¡¨à¨­â¥
    mov eax, 0				  ;
    mov eax, [Y_bul]			  ;
    shr eax, 5				  ;
    shl eax, 4				  ;
    mov ebx, 0				  ;
    mov ebx, [X_bul]			  ;
    shr ebx, 5				  ;
    add eax, ebx			  ;
    mov [lab_bullet], ax		   ;
    ; ¢ëç¨á«ï¥¬ ¯®«®¦¥­¨¥ BULLET ¢ « ¡¨à¨­â¥

		mov    word bx,[lab_bullet]
		mov    dx, [Dangeon + bx]
		and   edx,3
		 cmp dx, 0
		 je letit_dalee

		 cmp dx, 2
		 je beton
		   mov	  byte [Dangeon + bx], 3    ; €‡“˜…ˆ… Šˆˆ—…‰
		  beton:
		   mov	  bx, [Lab3]
		   mov	  byte [Bullet + ebx], 0    ; ¡¥à¥â ¡ ©â ¨§ Enemy + ᬥ饭¨¥





    letit_dalee:
    mov     eax, 0
    mov     word ax, [Lab3]

   cmp	   ax, 36		    ;   if eax == 0
   je	   cycle8_end		      ;   jump to cycle_end:

    add     word [Lab3],12

   jmp	   cycle8		     ;

   cycle8_end:


ret  ; end BULLET
;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------
; TABLO  TABLO TABLO  TABLO TABLO TABLO
;*****************************************
 tablo:
    ; WIWOD CIFR
   ;; mov     eax, 13
   ; mov     ebx, 140*65536 + 18
   ; mov     ecx, 10*65536 + 8
   ; mov     edx, 0x00ffffff
   ; int     0x40
   ; outcount [numer_level],140,10,0x224466,3*65536

    ; WIWOD CIFR
   ; mov     eax, 13
   ; mov     ebx, 160*65536 + 18
   ; mov     ecx, 10*65536 + 8
   ; mov     edx, 0x00ffffff
   ; int     0x40
   ; outcount [delta_level],160,10,0x224466,3*65536

    ; WIWOD CIFR
   ; mov     eax, 13
   ; mov     ebx, 180*65536 + 18
   ; mov     ecx, 10*65536 + 8
   ; mov     edx, 0x00ffffff
   ; int     0x40
   ; outcount [delta_level_end],180,10,0x224466,3*65536

 ret
;-------------------------------------------------------------------------------
fire:
  sbb  ah, 121
  mov  [v_fire], ah

  mov	 word bx, 0
  mov  cx, [Bullet + ebx]
  cmp cx, 0
   jne end_fire
       pusha
       mcall 55, eax, , , Music_bah   ; §¢ãª ¢ëáâ५ 
       popa

  mov	 byte [Bullet + ebx], 1

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 ax, [Xpl]
  add	 ax, 8
  mov	 word [Bullet + ebx],ax

  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
  mov	 ax, [Ypl]
  add	 ax, 16
  mov	 word [Bullet + ebx],ax

  add	 word bx, 2 ;
  mov  ax,[v_fire]
  mov	 word [Bullet + ebx],ax

  end_fire:
ret
;-------------------------------------------------------------------------------


;------------------------‡ £à㧪  ã஢­¥©---------------------------------------
load_level:
    imgtoimg img_level,32,32,canvas
  setimg 6,20,canvas

    xor eax,eax
    xor ebx,ebx
    xor edx,edx
    xor ecx,ecx
    mov dword [Bullet], eax
    mov dword [Bullet+2], eax
    mov dword [Bullet+4], eax
    mov dword [Bullet+6], eax
    mov dword [Bullet+8], eax
    mov dword [Bullet+10], eax
    mov byte [Lab], 1
    mov [lab_bullet], eax
    mov [mov_bullet], eax
    mov [X_bul], eax
    mov [Y_bul], eax
    mov [gold], eax
    mov dword [Xpl], 32
    mov dword [Ypl], 448
    mov dword [hiro_lab],0 ; ¯à®¥ªæ¨ï £¥à®ï ¢ « ¡¨à¨­â
    mov dword [v_mov], 0
    mov dword [v_mov2], 0
    mov dword [v_fire], 0

    xor eax,eax
    mov eax, [numer_level]
    shl eax, 8
    mov dword [delta_level], eax
    add eax, 256
    mov dword [delta_level_end], eax

   cycleL:

     xor ebx, ebx
     mov    ebx, [Lab]
     add ebx, [delta_level]
     mov     ax,[Dangeon2 + ebx]    ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥

     sbb ebx, [delta_level]
     mov      [Dangeon + ebx], ax    ; ¡¥à¥â ¡ ©â ¨§ ¤ ­£¥®­ + ᬥ饭¨¥
     add word [Lab],1
     mov     eax, [Lab]


   cmp	   eax, [delta_level_end]		    ;   if eax == 0
   je	   cycleL_end		      ;   jump to cycle_end:
   jmp	   cycleL		     ;
   cycleL_end:

   mov	  eax, 0
   mov	  [Lab],eax

 call enemy_plaz

ret
;-------------------------------------------------------------------------------

;************************************
;GOLD
proverka_gold:
mov eax, [gold]
 cmp ax, 10
  jna net_deneg
   mov eax, [temp2] ; ¤®¡¥¦ âì ¤® ¤¢¥à¨
   cmp ax, 16
    jne net_deneg
       mov ax, [numer_level]  ; 㢥«¨ç¥­¨¥ «¥¢¥« 

       add ax, 1
       mov [numer_level],  ax
       mov [demon_kolvo], ax   ;

     call load_level
     delay 100

  net_deneg:
ret

;-------------------------------------------------------------------------------
; “’Ž
potop:
   mov eax, [temp2] ; ¤®¡¥¦ âì ¤® ¤¢¥à¨
   cmp ax, 4
    jne jiwoy
       mov dword [gold], 0  ; 㢥«¨ç¥­¨¥ «¥¢¥« 

     call load_level
     delay 100
   jiwoy:
ret

;************************************
;¯®«®¦¥­¨¥ ¢à £®¢ ­  ­®¢®¬ ã஢­¥
enemy_plaz:
  mov word [Lab2], 0 ; ¢á¥ ¤¥« âì ¢ WORD ®¤¨­ í«¥¬¥­â ¢ ¬ áᨢ¥ +2 á«¥¤ãî騩 ¢à £ á®®â¢â¥âá⢥­­® 6*2= + 12
  mov ax, [demon_kolvo]
  mov [demon], ax

 cycle55:
  mov	 ebx, 0
  mov	 ecx, 0
  mov	 edx, 0
  mov	 esi, 0

	  mov cx, [demon]
	  cmp cx, 0
	   je end_demon
	  mov	 word bx, [Lab2]		      ;
	  mov	 word [Enemy + bx], 1		     ;
	  sbb cx, 1
	  mov [demon], cx
	  end_demon:

	  random 14, eax
	  add eax, 1
	  shl eax,5
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 2 ; X ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;
						      ;
	  random 12, eax
	  add eax, 1
	  shl eax,5
	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 4 ; Y ª®®à¨¤¨­ â  ¤ ­­®£® ¢à £ 
	  mov	 word [Enemy + bx], ax		      ;

	  mov	 word bx, [Lab2]		      ;
	  add	 word bx, 8 ; ­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï
	  mov	 word [Enemy + bx], 0		     ;
	  add	 word bx, 2 ; ¦¨§­ì
	  mov	 word [Enemy + bx], 500 	      ;


    mov     eax, 0
    mov     word ax, [Lab2]

   cmp	   ax, 96		    ;   if eax == 0
   je	   cycle55_end		       ;   jump to cycle_end:

    add     word [Lab2],12

   jmp	   cycle55		      ;

   cycle55_end:

ret


I_END:	; ª®­¥æ ¯à®£à ¬¬ë



;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  Xpl:	     dd 32  ; ª®®à¤¨­ âë £¥à®ï
  Ypl:	     dd 448
  hiro_lab:  dd 0 ; ¯à®¥ªæ¨ï £¥à®ï ¢ « ¡¨à¨­â
  numer_level: dd 0
  delta_level: dd 0
  delta_level_end: dd 256
  demon: dd 0
  demon_kolvo: dd 1

  gold: dd 0

  X_enemy:    dd 0
  Y_enemy:    dd 0


  X_bul:    dd 0
  Y_bul:    dd 0

  X_anime:    dd 0
  Y_anime:    dd 0

  mov_bullet:	 dw 0
  lab_bullet:	dw 0
  mov_enemy:	dw 0
  lab_enemy:	dw 0
  life_enemy:	 dw 0

  anime : dd 0 ; ¯¥à¥¬¥­­ ï ¤«ï  ­¨¬ æ¨¨ £¥à®ï ¨ ¯à
  anime2 : dd 0 ; ¯¥à¥¬¥­­ ï ¤«ï  ­¨¬ æ¨¨ £¥à®ï ¨ ¯à

  temp1: dd 0
  temp2: dd 0
  temp3: dd 0
  temp4: dd 0
  temp5: dd 0


  v_mov:     dd 0  ; ­ ¯à ¢«¥­¨ï ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
  v_mov2:     dd 0  ; ­ ¯à ¢«¥­¨ï ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
  v_fire:     dd 0  ; ­ ¯à ¢«¥­¨ï ¤¢¨¦¥­¨ï ¯¥àá®­ ¦ 
  Lab:	     dd 0
  Lab2:      dw 0
  Lab3:      dw 0
  perem1:    dd 0
  perem2:    dd 0

  timer1 dd 0 ; â ©¬¥à ¨á¯®«ì§ã¥¬ë© ¤«ï  ­¨¬ æ¨¨ ¢®¤ë, ¢à £®¢   --- ¡¥£ ¥â ®â 0 ¤® 10

;-------------------------------------------------------------------------------
;1 ®¡ëç­ ï á⥭ , 2 ­¥¯à®¡¨¢ ¥¬ ï, 4 ¢®¤ , 8 «¥á­¨æ , 12  «¬ §, 0 ¯ãáâ®â     16 - exit
;-------------------------------------------------------------------------------
Dangeon:
	  db  2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2
	  db  2,1,1,1,1,1,1,0,12,0,0,0,0,0,0,2
	  db  2,0,12,12,0,0,0,8,1,8,1,1,1,0,0,2
	  db  2,8,1,1,1,1,1,8,1,8,0,0,0,0,0,2
	  db  2,8,0,0,0,0,0,8,1,8,2,4,4,2,0,2
	  db  2,8,2,4,4,4,2,8,1,8,2,2,2,2,0,2
	  db  2,0,2,2,2,2,2,8,1,8,0,0,0,0,0,2
	  db  2,0,1,0,0,0,0,8,1,1,1,1,1,1,8,2
	  db  2,0,1,1,8,1,1,1,0,0,0,0,0,0,8,2
	  db  2,12,1,1,8,0,12,0,1,8,1,1,8,1,1,2
	  db  2,0,0,0,8,8,1,8,0,8,0,0,0,0,0,2
	  db  2,12,1,8,1,8,1,1,8,1,1,1,1,1,1,2
	  db  2,0,1,8,12,12,0,0,0,0,0,0,0,0,0,2
	  db  2,0,1,1,1,1,1,8,1,1,1,0,0,0,0,2
	  db  2,0,0,0,12,0,0,8,0,0,0,16,0,12,12,2
	  db  2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2

Dangeon2:
	  db  2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2
	  db  2,1,1,0,1,1,1,0,12,0,0,0,0,0,0,2
	  db  2,0,12,12,0,0,0,8,1,8,1,1,1,0,0,2
	  db  2,8,1,1,1,1,1,8,1,8,0,0,0,0,0,2
	  db  2,8,0,0,0,0,0,8,1,8,2,4,4,2,0,2		      ;0
	  db  2,8,2,4,4,4,2,8,1,8,2,2,2,2,0,2
	  db  2,0,2,2,2,2,2,8,1,8,0,0,0,0,0,2
	  db  2,0,1,0,0,0,0,8,1,1,1,1,1,1,8,2
	  db  2,0,1,1,8,1,1,1,0,0,0,0,0,0,8,2
	  db  2,12,1,1,8,0,12,0,1,8,1,1,8,1,1,2
	  db  2,0,0,0,8,8,1,8,0,8,0,0,0,0,0,2
	  db  2,12,1,8,1,8,1,1,8,1,1,1,1,1,1,2
	  db  2,0,1,8,12,12,0,0,0,0,0,0,0,0,0,2
	  db  2,0,1,1,1,1,1,8,1,1,1,0,0,0,0,2
	  db  2,0,0,0,12,0,0,8,0,0,0,16,0,12,12,2
	  db  2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
	  db  2,0,0,0,0,0,0,0,0,0,0,16,0,0,0,2
	  db  2,12,1,8,1,0,0,0,0,0,0,1,8,0,0,2
	  db  2,0,1,8,1,0,0,0,0,0,0,1,0,8,0,2		      ;1
	  db  2,12,1,8,1,1,0,0,0,0,1,1,0,8,0,2
	  db  2,0,1,8,1,0,12,12,12,12,0,1,8,8,0,2
	  db  2,12,1,8,1,0,1,1,1,1,0,1,8,0,0,2
	  db  2,0,1,8,0,0,0,0,0,0,0,0,8,0,0,2
	  db  2,0,1,1,1,1,8,1,8,1,1,1,1,1,8,2
	  db  2,0,0,0,12,0,8,0,8,0,0,0,12,0,8,2
	  db  2,0,1,1,1,1,1,0,1,8,1,1,8,1,1,2
	  db  2,0,0,0,0,0,0,0,0,8,1,0,8,0,0,2
	  db  2,0,1,1,1,1,1,8,1,1,1,1,1,1,8,2
	  db  2,0,0,12,0,0,0,8,0,0,12,0,0,0,8,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
	  db  2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
	  db  2,0,0,0,0,0,0,0,0,12,0,12,0,0,0,2
	  db  2,0,0,0,0,0,0,8,1,1,1,1,1,1,0,2		     ;2
	  db  2,0,8,0,12,12,0,8,0,0,0,0,0,2,4,2
	  db  2,0,8,1,1,1,1,0,0,0,0,0,0,2,2,2
	  db  2,0,8,0,0,0,0,12,1,1,1,1,0,0,0,2
	  db  2,0,8,1,0,1,0,12,0,0,0,0,0,0,0,2
	  db  2,0,8,0,1,1,12,12,0,0,0,8,1,1,1,2
	  db  2,0,8,0,12,0,0,12,0,0,0,8,0,12,0,2
	  db  2,0,8,0,0,0,8,1,8,0,0,1,8,1,8,2
	  db  2,0,8,0,0,8,1,1,1,8,0,0,8,0,8,2
	  db  2,0,1,1,1,1,1,1,1,1,1,1,1,1,8,2
	  db  2,0,0,0,0,0,0,0,16,0,0,0,0,0,8,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,0,0,0,12,0,0,0,0,0,0,16,0,0,2
	  db  2,0,8,1,1,1,1,1,1,1,1,1,1,1,0,2
	  db  2,0,8,0,0,0,0,0,12,0,0,0,0,0,0,2
	  db  2,0,8,0,0,0,0,1,8,1,0,0,0,0,0,2
	  db  2,0,8,0,0,0,1,1,8,1,1,0,0,0,0,2
	  db  2,0,8,0,12,1,1,1,8,1,1,1,12,0,0,2
	  db  2,0,8,0,1,1,12,1,8,1,12,1,1,0,0,2
	  db  2,0,0,1,1,1,1,1,8,1,1,1,1,0,0,2		       ;3
	  db  2,0,1,0,0,0,0,0,8,1,0,0,0,1,0,2
	  db  2,0,1,0,1,1,1,1,8,1,1,1,0,1,0,2
	  db  2,0,1,1,12,1,12,1,8,1,1,1,0,1,0,2
	  db  2,0,1,1,1,1,1,1,8,1,1,1,0,1,0,2
	  db  2,0,1,1,12,1,12,1,8,1,1,1,12,1,0,2
	  db  2,0,0,0,0,0,0,0,8,0,0,0,0,0,0,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,12,0,0,0,0,0,0,0,0,0,16,0,0,2
	  db  2,0,1,8,1,1,1,1,1,1,8,1,1,1,8,2
	  db  2,0,0,8,0,0,0,0,0,0,8,0,0,0,8,2
	  db  2,0,1,1,1,1,1,8,1,1,1,1,1,1,0,2
	  db  2,0,0,12,0,0,12,8,0,0,12,0,0,0,0,2
	  db  2,12,1,1,1,8,1,1,1,1,8,1,1,1,8,2
	  db  2,0,0,0,0,8,0,0,0,0,8,0,0,0,8,2
	  db  2,8,1,1,1,1,1,1,8,1,1,1,1,1,0,2			 ;4
	  db  2,8,0,0,0,12,0,0,8,0,0,12,0,0,0,2
	  db  2,0,1,8,1,1,1,1,1,1,1,1,8,1,0,2
	  db  2,0,0,8,12,0,0,0,0,12,0,0,8,0,0,2
	  db  2,8,1,1,1,1,1,1,8,1,1,1,1,1,8,2
	  db  2,8,12,0,0,0,0,0,0,0,0,0,0,12,8,2
	  db  2,8,2,4,4,4,4,4,4,4,4,4,4,2,8,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,8,1,8,12,8,1,8,1,8,1,8,1,8,1,2
	  db  2,8,2,8,1,8,1,8,1,8,1,8,12,8,12,2
	  db  2,8,1,8,1,8,2,8,12,8,1,8,1,8,1,2
	  db  2,8,12,8,0,8,0,8,0,8,0,8,0,8,0,2
	  db  2,1,8,1,1,1,1,1,8,1,1,1,1,1,8,2
	  db  2,0,8,0,0,0,0,0,8,0,0,12,0,0,8,2
	  db  2,0,8,12,0,2,12,0,8,1,1,1,1,1,8,2
	  db  2,0,1,1,8,1,1,1,8,0,0,0,0,0,8,2			;5
	  db  2,0,1,0,8,0,0,0,8,0,0,12,0,0,8,2
	  db  2,0,1,0,8,0,0,0,8,1,1,1,1,1,8,2
	  db  2,0,1,12,8,0,0,2,8,0,0,0,0,0,8,2
	  db  2,8,1,1,1,1,8,1,1,1,1,8,1,1,1,2
	  db  2,8,0,0,0,0,8,2,0,0,2,8,0,0,0,2
	  db  2,0,8,0,12,8,8,2,4,4,2,8,0,0,16,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,8,0,8,0,8,0,8,0,0,8,0,8,16,2
	  db  2,1,8,1,8,1,8,1,8,1,1,8,1,8,1,2
	  db  2,0,8,0,8,0,8,0,8,8,0,8,0,8,0,2
	  db  2,1,1,8,1,1,1,1,1,8,1,1,8,1,1,2
	  db  2,0,0,8,8,0,12,8,0,8,8,12,8,8,0,2
	  db  2,1,1,1,8,1,1,8,1,1,8,1,1,8,1,2
	  db  2,0,8,0,8,0,12,8,0,0,8,0,12,8,0,2 		 ;6
	  db  2,1,8,1,1,1,1,1,8,1,1,1,1,1,1,2
	  db  2,0,8,0,12,8,0,0,8,12,0,8,0,0,0,2
	  db  2,1,8,1,1,8,1,1,8,1,1,8,1,1,1,2
	  db  2,0,0,8,0,8,8,0,8,8,0,8,8,0,0,2
	  db  2,1,1,8,1,1,8,1,1,8,1,1,8,1,1,2
	  db  2,0,0,8,12,0,8,0,12,8,0,12,8,12,12,2
	  db  2,8,8,1,1,1,1,1,1,1,1,1,1,1,1,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,12,0,12,0,12,12,0,12,0,12,0,0,0,2
	  db  2,1,1,1,8,1,1,1,1,1,1,8,1,1,1,2
	  db  2,0,0,0,8,0,0,12,0,0,0,8,0,0,0,2
	  db  2,1,1,1,1,1,1,1,8,1,1,1,1,1,1,2
	  db  2,0,0,0,12,0,0,0,8,12,0,0,0,0,0,2
	  db  2,1,1,1,8,1,1,1,1,1,1,8,1,1,1,2
	  db  2,0,0,0,8,0,0,0,0,0,0,8,0,0,0,2			 ; 7
	  db  2,1,1,1,1,1,1,1,1,1,1,1,1,8,1,2
	  db  2,0,0,0,0,0,0,0,0,0,0,0,0,8,0,2
	  db  2,1,1,1,1,1,1,8,1,1,1,1,1,8,1,2
	  db  2,0,0,0,0,0,0,8,0,0,0,0,0,8,0,2
	  db  2,1,1,8,1,8,1,1,8,1,8,1,1,1,1,2
	  db  2,0,0,8,0,8,12,0,8,0,8,12,0,0,16,2
	  db  2,8,1,1,1,1,1,1,1,1,1,1,1,1,1,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,0,12,0,0,0,0,0,0,0,0,0,16,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,8,0,8,0,12,0,0,8,0,8,0,0,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,0,8,12,0,0,8,0,0,8,0,0,0,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,0,0,0,0,0,0,0,8,0,0,0,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,8,0,0,0,8,12,0,0,8,0,8,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,0,8,0,0,0,0,12,8,0,12,8,0,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,0,8,0,8,12,0,0,8,12,0,8,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	  db  2,0,0,16,0,0,0,0,0,16,0,0,0,16,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,8,8,8,8,8,12,8,8,8,8,8,8,8,8,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,8,8,8,12,8,8,8,8,8,8,8,8,0,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,8,8,8,8,8,12,8,8,8,8,8,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,8,0,8,8,8,8,8,12,8,0,12,8,8,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,0,8,8,8,8,12,0,0,8,12,0,8,12,0,2
	  db  2,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2
	  db  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;-------------------------------------------------------------------------------


;-------------------------------------------------------------------------------
Bullet: dw 0,0,0,0,0,0
	dw 0,0,0,0,0,0
	dw 0,0,0,0,0,0
	dw 0,0,0,0,0,0
;-------------------------------------------------------------------------------


Enemy:	dw  1,448,128,0,0,500	;¢à £¨ ª« áá,•,“,¯®«®¦¥­¨¥ ¢ « ¡¨à¨­â¥,­ ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï,¦¨§­ì
	dw  0,32,32,0,0,0
	dw  0,64,32,0,0,0
	dw  0,416,32,0,0,0
	dw  0,256,256,0,0,0
	dw  0,256,224,0,0,0
	dw  0,320,192,0,0,0
	dw  0,32,256,0,0,0
	dw  0,448,448,0,0,0

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

bullet_bmp:
file 'bullet.bmp'
rb 1

level_bmp:
file 'level2.bmp'
rb 1

kirpich:
file 'kirpich.bmp'
rb 1

kirpich3:
file 'kirpich2.bmp'
rb 1

kirpich2:
file 'oldkirpich.bmp'
rb 1

lest_bmp:
file 'lestnica.bmp'
rb 1

water1_bmp:
file 'water1.bmp'
rb 1

water2_bmp:
file 'water2.bmp'
rb 1

door1_bmp:
file 'door1.bmp'
rb 1

door2_bmp:
file 'door2.bmp'
rb 1


img_level:
rb 448*448*3+8

;img_ded1:
;rb 448*448*3+8

img_area:
rb 32*32*3+8

img_area2:
rb 32*32*3+8

img_area3:
rb 32*32*3+8

img_bullet:
rb 4*8*3+8

img_lestniza:
rb 32*32*3+8

img_water1:
rb 32*32*3+8

img_water2:
rb 32*32*3+8

img_door1:
rb 32*32*3+8

img_door2:
rb 32*32*3+8

img_enemy1:
rb 32*32*3+8

img_enemy2:
rb 32*32*3+8


Music_bah:
  db  0x0f, 0x09, 0

Music_mov:
  db  0x00, 0x00, 0

Music_almaz:
  db  0x09, 0x03, 0

entered    rd 1

imgcount  rd 1	     ; ª®«-¢® ¢á¥£® ª ¤à®¢ ¢  ­¨¬ æ¨¨
img_index  rd 1      ; ­®¬¥à ⥪ã饣® ª ¤à 

;hashtable rd 4096    ; à ¡®ç ï ®¡« áâì ¤«ï ¥ ¤ƒˆ” ¯à®æ¥¤ãàë
workarea:
file 'aniall.gif'


;temp rb 0x100000 ; ¬¥áâ® ¤«ï ƒˆ” ä ¨« 
rb 10

canvas:
xs dd 512
ys dd 512
   rb 512*512*3

gif_hash_area:
rd 4096+1

coords:
rd 2

Image: