kolibrios-fun/programs/games/almaz/ALMAZ.ASM
Kirill Lipatov (Leency) 5cfe79a613 Revert 8485, make proper window fix, add translation
git-svn-id: svn://kolibrios.org@8488 a494cfbc-eb01-0410-851d-a64ba20cac60
2020-12-27 22:40:14 +00:00

2188 lines
51 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; Author: RU095@YANDEX.RU
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'
WND_COLOR equ 0x74000000
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
; *********************************************
; ******* Ž<><C5BD>…„…<E280B9>ˆˆ Ž<C5BD>ˆŽŠ€ ŽŠ<C5BD>€ *******
; *********************************************
draw_window:
startwd
mcall 48, 4
mov ecx, 50*65536+516
add ecx, eax
mov ebx, 50*65536+521
mov edx, WND_COLOR
mov edi, title
xor eax, eax
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
;*******************************************
; <E28098>ˆ
;*******************************************
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 ; <20>ˆˆŒ‰, ¯à®§à ç­ë© –‚…’ ˆˆ <20><20>ˆ“…Œ
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 0,0,canvas
call timer
call tablo
ret
;@@@@@@@@@@@@@@@@@@
animashka:
;!!!€†<E282AC>Ž ¯¥à¥¤ ¢ë§®¢®¬ ¯à®æ¥¤ãàë ¤®«¦¥­ ¡ëâì ãáâ ­®¢«¥­ 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 ; <20>ˆˆŒ‰, ¯à®§à ç­ë© –‚…’ ˆˆ <20><20>ˆ“…Œ
; aframetoimg esi,32, 32,canvas,0x00ffffff ; <20>ˆˆŒ‰, ¯à®§à ç­ë© –‚…’ ˆˆ <20><20>ˆ“…Œ
aframetoimg esi,dword [X_anime],dword [Y_anime],canvas,0x00ffffff ; <20>ˆˆŒ‰, ¯à®§à ç­ë© –‚…’ ˆˆ <20><20>ˆ“…Œ
;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:
;<3B>«®ª ¯®¯ ¤ ­¨ï 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:
;<3B>ŽŠ <20><>ˆ<EFBFBD>Ž€ „ˆ†…<E280A0>ˆŸ <>€ƒŽ
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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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 <20>ŽŠ <20><>ˆ<EFBFBD>Ž€ „ˆ†…<E280A0>ˆŸ <>€ƒ
;
; <20> ­¤®¬­ë© ¢ë¡®à ­  «¥á­¨æ¥
mov word bx, [X_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and ebx, 31 ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
cmp bx, 0 ;
jne end_les ;
mov word bx, [Y_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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 <20> ­¤®¬­ë© ¢ë¡®à ­  «¥á­¨æ¥
;ƒà ¢¨â æ¨ï
mov word bx, [X_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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 ;
;¡«®ª à áç¥â  ¯®«®¦¥­¨ï ¢à £  ¢ « ¡¨à¨­â¥
;<3B>ŽŠ ‡<><EFBFBD><E282AC>€ „‚¨¦¥­¨ï
mov word bx, [Y_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and bx, 31 ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
cmp bx, 0 ;
jne end_zapret ;
mov word ax, [X_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and ax, 31 ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
cmp ax, 0 ;
jne end_zapret ;
mov word ax, [mov_enemy] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
cmp ax, 0
jne duma1
; <20> ­¤®¬­ë© ¢ë¡®à ¤¢¨¦¥­¨ï
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 ; Ž<E28099>ŽŠ€ <>€ƒ€
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:
;<3B><>…ƒ<E280A6>€„
; ¢ëç¨á«¥­¨¥ á®á¥¤­¨å ¡«®ª®¢
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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and ecx, 31 ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
mov edx, [Xpl] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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 ; ‡€<E280A1>Š€ !!! ¡¥§ ­¥¥ ¯®ç¥¬ãâ® ®¡­ã«ï¥â ­¥  «¬ §ë   á®á¥¤­¨¥ ¡«®ª¨
mov [Dangeon + bx], ch
sbb ebx, 1 ; ‡€<E280A1>Š€ !!!
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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and ebx, 31 ; X ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
cmp ebx, 0 ;
jne end_tamgna ;
smena2:
mov eax, [v_mov2]
and eax, 7
mov [v_mov], eax
end_tamgna:
;à §à¥è¥­¨¥ ­  ¤¢¨¦¥­¨¥
;“<>ˆ<EFBFBD><EFBFBD>ˆ <20><>…ƒ<E280A6>€„“
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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
; 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] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
; 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:
;<3B><>…ƒ<E280A6>€„
;GRAVITACION
mov ebx, [Ypl] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
and ebx, 31 ; Y ¢ ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
mov eax, [Xpl] ; <20>â® ãá«®¢¨¥ ¯®§¢®«ï¥â ¤®¡¥¦ âì ¤® ¯®§¨æ¨¨ ­ ¯à®â¨¢ ¡«®ª 
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
; <20><>ˆ<EFBFBD>Ž ŠŽŽ<C5BD>ˆ<E2809E> ƒ…<C692>ŽŸ
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 ;¯à¨à®áâ
; <20><>ˆ<EFBFBD>Ž ŠŽŽ<C5BD>ˆ<E2809E> ƒ…<C692>ŽŸ
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 ; <20>€‡<E282AC>˜<CB9C>ˆ… Šˆ<C5A0><CB86>ˆ—…‰
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 0,0,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
;-------------------------------------------------------------------------------
; “Ž<E28099>
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
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if lang eq ru
title db '<27>Ž„‡…Œ…œ… ¤«ï Š®«¨¡à¨Ž‘ <RU095@YANDEX.RU> z/x áâ५ïâì',0
else
title db 'Dungeon for KolibriOS <RU095@YANDEX.RU> z/x - shoot',0
endf
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 ; à ¡®ç ï ®¡« áâì ¤«ï <20>¥ ¤ƒˆ” ¯à®æ¥¤ãàë
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: