; ; Phenix Dynamic Game Created by Pavlushin Evgeni for ASCL ; ; 100% Full relase! ; ; www.waptap@mail.ru ; ;****************************************************************************** use32 org 0x0 db 'MENUET01' ; 8 byte id dd 0x01 ; header version dd START ; start of code dd IM_END ; size of image dd I_END ; memory for app dd I_END ; esp dd 0x0 , 0x0 ; I_Param , I_Icon ;****************************************************************************** include 'lang.inc' include '../../../macros.inc' include 'ascl.inc' include 'ascgl.inc' include 'ascml.inc' showmas: cmp [edi+8],dword 0 je noshow cmp [edi+8],dword 1 jne no_gun mov eax,shoot jmp outp no_gun: push edi random 3,ebx pop edi cmp ebx,0 jne no_star mov eax,star jmp outp no_star: cmp ebx,1 jne no_star2 mov eax,star2 jmp outp no_star2: mov eax,star3 outp: aimgtoimg eax,dword [edi],dword [edi+4],canvas,0x0 noshow: ret showobjmas: cmp [edi+8],dword 0 je noshow1 cmp [edi+4],dword 380 jg noshow1 cmp [edi+4],dword 0 jl noshow1 cmp [edi+8],dword 1 jne no_warship1 mov eax,warship1 jmp outws no_warship1: cmp [edi+8],dword 2 jne no_warship2 mov eax,warship2 jmp outws no_warship2: cmp [edi+8],dword 3 jne no_meteor mov eax,meteor jmp outws no_meteor: cmp [edi+8],dword 4 jne no_box mov eax,box jmp outws no_box: outws: aimgtoimg eax,dword [edi],dword [edi+4],canvas,0x0 noshow1: ret moveobjmas: cmp [edi+8],dword 0 je no_ws mov eax,[edi+12] add [edi],eax mov eax,[edi+16] add [edi+4],eax cmp dword [edi],600 jng xok1 sub dword [edi],20 neg dword [edi+12] jmp xok2 xok1: cmp dword [edi],0 jnl xok2 add dword [edi],20 neg dword [edi+12] xok2: cmp dword [edi+4],400 jng yok mov dword [edi+8],0 ret yok: cmp dword [edi+8],2 ;green ship jne no_grs cmp dword [edi+4],100 jna no_grs cmp dword [edi+4],103 jna grs cmp dword [edi+4],200 jna no_grs cmp dword [edi+4],203 jna grs cmp dword [edi+4],300 jna no_grs cmp dword [edi+4],303 ja no_grs grs: neg dword [edi+12] mov [temp],edi findmas massive,findzero ;in edi off to free element jc close_app mov esi,edi mov edi,[temp] mov eax,[edi] mov [esi],eax mov eax,[edi+4] mov [esi+4],eax mov [esi+8],dword 1 mov [esi+12],dword 0 mov [esi+16],dword 10 no_grs: cmp dword [edi+8],1 ;blue ship jne no_bls cmp dword [edi+4],50 jna no_bls cmp dword [edi+4],64 jna bls cmp dword [edi+4],100 jna no_bls cmp dword [edi+4],114 jna bls cmp dword [edi+4],150 jna no_bls cmp dword [edi+4],164 ja no_bls bls: mov [temp],edi findmas massive,findzero jc close_app mov esi,edi mov edi,[temp] mov eax,[edi] mov [esi],eax mov eax,[edi+4] mov [esi+4],eax mov [esi+8],dword 2 mov [esi+12],dword 0 mov [esi+16],dword 5 no_bls: no_ws: ret delfarshoot: cmp [edi+4],dword 40 jb del cmp [edi+4],dword 400 ja del cmp [edi],dword 40 jb del cmp [edi],dword 600 ja del jmp nodel del: mov [edi+8],dword 0 nodel: ret movemas: cmp [edi+8],dword 0 jne no_freeel ret no_freeel: mov eax,[edi+12] add [edi],eax mov eax,[edi+16] add [edi+4],eax ret endshowmas: cmp [edi+8],dword 0 je noshowem mov eax,star2 aimgtoimg eax,dword [edi],dword [edi+4],canvas,0x0 noshowem: ret endmovemas: cmp [edi+8],dword 0 jne no_fr ret no_fr: mov eax,[edi+12] add [edi],eax mov eax,[edi+16] add [edi+4],eax ret findzero: cmp [edi+8],dword 0 je iz_zero xor eax,eax ret iz_zero: mov eax,1 ret compobr: cmp [esi+8],dword 0 je no_crsh cmp [edi+8],dword 0 je no_crsh cmp [esi+16],dword 0 jg no_crsh mov eax,[esi] mov [temp],eax mov eax,[esi+4] mov [temp2],eax mov eax,[edi] mov [temp3],eax mov eax,[edi+4] mov [temp4],eax pushad collimg imgsize,[temp],[temp2],imgsize,[temp3],[temp4],[otv] popad cmp [otv],dword 0 je no_crsh cmp [edi+8],dword 2 jne no_grship inc [gship] add [score],30 jmp setzero no_grship: cmp [edi+8],dword 1 jne no_blship inc [bship] add [score],20 jmp setzero no_blship: cmp [edi+8],dword 3 jne no_metr dec dword [edi+16] cmp dword [edi+16],0 jne mok mov dword [edi+16],1 mok: mov [esi+8],dword 0 ret no_metr: setzero: mov [esi+8],dword 0 mov [edi+8],dword 0 no_crsh: ret shipobjtest: cmp [edi+8],dword 0 je no_obj mov eax,[edi] mov [temp3],eax mov eax,[edi+4] mov [temp4],eax pushad collimg imgsize,[shipx],[shipy],imgsize,[temp3],[temp4],[otv] popad cmp [otv],dword 0 je no_obj cmp [edi+8],dword 4 ;if box jne no_fbox add [energy],5 add [score],50 mov [edi+8],dword 0 inc [boxget] ret no_fbox: sub [energy],16 mov [edi+8],dword 0 no_obj: ret shipguntest: cmp [edi+8],dword 0 je no_gobj cmp [edi+16],dword 0 jl no_gobj mov eax,[edi] mov [temp3],eax mov eax,[edi+4] mov [temp4],eax pushad collimg imgsize,[shipx],[shipy],imgsize,[temp3],[temp4],[otv] popad cmp [otv],dword 0 je no_gobj sub [energy],4 mov [edi+8],dword 0 no_gobj: ret START: ; start of execution massize = 400 elemsize = 20 mov [massive],dword massize mov [massive+4],dword elemsize omassize = 100 oelemsize = 20 mov [objmas],dword omassize mov [objmas+4],dword oelemsize mov eax,66 mov ebx,1 mov ecx,1 mcall mov eax,26 mov ebx,2 mov ecx,1 mov edx,keymap mcall startgame: giftoimg gif_file_area2,canvas giftoimg gif_file_area,img_area getimg img_area,0,0,32,32,ship getimg img_area,32,0,32,32,shoot getimg img_area,64,0,32,32,warship1 getimg img_area,96,0,32,32,warship2 getimg img_area,128,0,32,32,meteor getimg img_area,160,0,32,32,star getimg img_area,192,0,32,32,star2 getimg img_area,224,0,32,32,star3 getimg img_area,0,32,32,32,box main_menu: call draw_logowindow stillm: wtevent redm,keym,buttonm jmp stillm redm: call draw_logowindow jmp stillm keym: mov eax,2 mcall jmp stillm buttonm: mov eax,17 ; get id mcall cmp ah,1 ; button id=1 ? je close_app cmp ah,2 ; button id=1 ? je start_game cmp ah,3 ; button id=1 ? je help cmp ah,4 ; button id=1 ? je close_app jmp stillm draw_logowindow: call draw_window mcall 9,proc_info,-1 test [proc_info+process_information.wnd_state], 0x04 jz @f ret @@: setimg 5,21,canvas drawlbut 300,300,60,14,'START',2,0x990000,cl_Black drawlbut 300,320,60,14,'HELP',3,0x990000,cl_Black drawlbut 300,340,60,14,'EXIT',4,0x990000,cl_Black ret ;*********************** ; Draw help menu ;*********************** help: call draw_helpwindow stillh: wtevent redh,keyh,buttonh jmp stillh redh: call draw_helpwindow jmp stillh keyh: mov eax,2 mcall jmp stillh buttonh: mov eax,17 ; get id mcall cmp ah,1 ; button id=1 ? je close_app cmp ah,2 ; button id=1 ? je start_game cmp ah,3 ; button id=1 ? je help cmp ah,4 ; button id=1 ? je close_app cmp ah,5 ; button id=1 ? je main_menu jmp stillh draw_helpwindow: call draw_window mcall 9,proc_info,-1 test [proc_info+process_information.wnd_state], 0x04 jnz stillh setimg 5,21,canvas drawfbox 40,50,580,380,cl_Grey mov ebp,4*7 mov ebx,180*65536+90 mov edx,helptext mov esi,50 mov ecx,cl_White dec ebp looht: mov eax,4 mcall add edx,esi add ebx,10 dec ebp jnz looht setimg 90,90,ship setimg 90,130,shoot setimg 90,170,star setimg 90,210,warship1 setimg 90,250,warship2 setimg 90,290,meteor setimg 90,330,box drawlbut 500,400,80,14,'<<BACK',5,0x990000,cl_Black jmp stillh helptext: db 'Phenix ' db 'Controls: Num1 move left, Num3 move right ' db ' P-pause (use for screen shooting) ' db ' ' db 'Lazer cannon ' db 'Press Num5 for shoot ' db 'Core fast, speed fast, reload slow ' db ' ' db 'Plazma cannon ' db 'Press Num2 for Plazma Nuke and Num8 for shoot ' db 'Core slow, speed medium, reload fast ' db ' ' db 'Blue warship ' db 'Speed fast ' db 'Attack method: plazma bomb ' db ' ' db 'Green warship ' db 'Speed slow ' db 'Attack method: laser shoot ' db ' ' db 'Meteor ' db 'Dangeros object! ' db 'SuperSheld ' db ' ' db 'Fly Box ' db 'Sheld pack, sheld +5, score +30 ' db 'Get for sheld level up! ' db ' ' start_game: ; jmp end_gm mov [canvas],dword 640 mov [canvas+4],dword 440 call draw_window ;Main loop wait for event with 10msec still: ; scevent red,key,button ;for full speed timeevent 1,no_event,red,key,button no_event: mcall 9,proc_info,-1 test [proc_info+process_information.wnd_state], 0x04 jnz still setimg 5,21,canvas cmp [pause_on],0 jne still cmp [energy],0 jl game_over cmp [ctime],dword 0 je no_dct dec dword [ctime] no_dct: cmp [xtime],dword 0 je no_dxt dec dword [xtime] no_dxt: ; ; Add to level new ships ; inc dword [pathtime] mov ebp,[levelpart] shl ebp,5 add ebp,levels mov eax,[ebp] cmp [pathtime],eax ;500 jne no_nextloc randobjmasx: mov ebp,[levelpart] shl ebp,5 add ebp,levels mov ecx,[ebp+8] mov [shiptype],2 mov [xmoving],9 mov [xaccel],4 mov [ymoving],3 mov [yaccel],2 call add_ships mov ecx,[ebp+12] mov [shiptype],1 mov [xmoving],3 mov [xaccel],1 mov [ymoving],3 mov [yaccel],6 call add_ships mov ecx,[ebp+16] mov [shiptype],3 mov [xmoving],5 mov [xaccel],2 mov [ymoving],5 mov [yaccel],2 call add_ships mov ecx,[ebp+20] mov [shiptype],4 mov [xmoving],4 mov [xaccel],1 mov [ymoving],4 mov [yaccel],1 call add_ships jmp newlocend shiptype dd 0 xmoving dd 0 ymoving dd 0 xaccel dd 0 yaccel dd 0 add_ships: looship: cmp ecx,0 je no_ships push ecx findmas objmas,findzero ;in edi off to free element jc close_app mov ebp,[shiptype] mov dword [edi+8],ebp ;2 ;green ship ; random x push edi random 600,eax pop edi mov [edi],eax ; random y push edi mov ebp,[levelpart] shl ebp,5 add ebp,levels mov esi,[ebp+4] ;get max range random esi,eax neg eax pop edi mov [edi+4],eax ; x moving push edi ;planers random [xmoving],eax sub eax,[xaccel];4 pop edi mov [edi+12],eax ; y moving push edi random [ymoving],eax ;slow add eax,[yaccel] ;2 pop edi mov [edi+16],eax pop ecx dec ecx jnz looship no_ships: ret levelpart dd 0 levels: ;level1 dd 1,800,0,0,5,8,0,0 ;one at start dd 500,2000,4,20,30,0,0,0 dd 500,2000,4,20,0,8,0,0 dd 500,2000,10,0,0,4,0,0 dd 500,4000,0,30,0,0,0,0 dd 400,400,0,0,10,0,0,0 dd 400,400,0,0,10,0,0,0 dd 0,0,0,0,0,0,0,0 ;end of level ;level2 dd 1,16000,0,30,0,0,0,0 ;one at start dd 200,8000,0,20,0,0,0,0 dd 200,2000,0,10,0,8,0,0 dd 200,4000,0,10,0,0,0,0 dd 0,0,0,0,0,0,0,0 ;end of level ;level3 dd 1,4000,0,20,30,8,0,0 ;one at start dd 400,4000,10,10,20,6,0,0 dd 400,4000,0,20,10,2,0,0 dd 400,4000,10,10,20,0,0,0 dd 0,-1,0,0,0,0,0,0 ;end of game newlocend: mov [pathtime],0 inc [levelpart] jmp no_nextloc endgame dd 0 objects dd 0 endtest: cmp dword [edi+8],0 jne no_free ret no_free: mov [endgame],0 inc [objects] ret no_nextloc: mov [objects],0 mov [endgame],1 readmas objmas,endtest cmp [endgame],1 jne no_end_lev ;no_nextloc mov ebp,[levelpart] shl ebp,5 add ebp,levels mov eax,[ebp+4] cmp eax,dword 0 je end_lev ;end of level cmp eax,dword -1 je end_gm ;end of game no_end_lev: cmp [num5],dword 0 je no_addsh cmp [ctime],dword 0 jne no_addsh cmp [lazer],dword 0 je no_addsh findmas massive,findzero ;in edi off to free element jc close_app mov eax,[shipx] mov [edi],eax mov eax,[shipy] mov [edi+4],eax mov [edi+8],dword 1 ;show mov [edi+12],dword 0 mov [edi+16],dword -12 mov [ctime],dword 8 ;wait for cannon dec [lazer] no_addsh: cmp [num8],dword 0 je no_addplx cmp [xtime],dword 256-16 jae no_addplx cmp [plazma],0 je no_addplx findmas massive,findzero ;in edi off to free element jc close_app mov eax,[shipx] mov [edi],eax mov eax,[shipy] mov [edi+4],eax mov [edi+8],dword 2 ;show add [xtime],dword 8 ;wait for cannon cmp [xtime],dword 256 jna okx mov [xtime],256 okx: mov [edi+12],dword 0 ;wait for cannon mov [edi+16],dword -8 ;wait for cannon dec [plazma] no_addplx: cmp [num2],dword 0 je no_addsh2 cmp [xtime],dword 0 jne no_addsh2 cmp [plazma],0 je no_addsh2 mov eax,[shipy] mov [temp3],eax mov [temp2],dword 5 loox2: mov [temp],dword 10 loox: findmas massive,findzero ;in edi off to free element jc close_app random 25,eax mov ebp,eax sub eax,12 add eax,[shipx] mov [edi],eax shr ebp,3 random ebp,eax neg eax add eax,[temp3] ;[shipy] mov [edi+4],eax mov [edi+8],dword 2 ;show hstar random 5,eax sub eax,2 mov [edi+12],eax ;show hstar random 7,eax sub eax,8 mov [edi+16],eax ;show hstar dec [temp] jnz loox sub [temp3],30 dec [temp2] jnz loox2 mov [xtime],dword 256 ;wait for cannon sub [plazma],50 no_addsh2: cmp [num1],dword 0 je no_left sub dword [shipx],6 no_left: cmp [num3],dword 0 je no_right add dword [shipx],6 no_right: ;ship correct cmp [shipx],5 jnl xl_ok mov [shipx],5 xl_ok: cmp [shipx],603 jng xr_ok mov [shipx],603 xr_ok: ;clear scrbuf mov edi,canvas+8 cld mov ecx,640*440*3/4 mov eax,0 rep stosd compmas objmas,massive,compobr readmas objmas,shipobjtest readmas massive,shipguntest readmas objmas,showobjmas readmas objmas,moveobjmas readmas massive,showmas readmas massive,movemas readmas massive,delfarshoot ; findmas massive,findzero ;in edi off to free element ; jc close_app aimgtoimg ship,[shipx],[shipy],canvas,0x0 drawfbox 150,5,64,5,0x000000 mov eax,[xtime] sub eax,256 neg eax shr eax,2 drawfbox 150,5,eax,5,0x0000ff drawfbox 150,12,64,5,0x000000 mov eax,[ctime] sub eax,8 neg eax shl eax,3 drawfbox 150,12,eax,5,0xffff00 drawfbox 220,2,6*5+2 ,9,cl_Grey outcount [plazma],221,3,cl_Blue,5*65536 drawfbox 220,11,6*5+2 ,9,cl_Grey outcount [lazer],221,12,0xffff00,5*65536 drawfbox 280,6,6*5+2 ,9,cl_Grey outcount [gship],281,7,cl_Green,5*65536 drawfbox 320,6,6*5+2 ,9,cl_Grey outcount [bship],321,7,cl_Blue,5*65536 drawfbox 360,6,6*5+2 ,9,cl_Grey outcount [boxget],361,7,0xffaa00,5*65536 drawfbox 400,2,6*5+2 ,9,cl_Grey outcount [objects],401,2,0x00ff00,5*65536 drawfbox 400,11,6*5+2 ,9,cl_Grey outcount [energy],401,12,0xff0000,5*65536 drawfbox 450,11,6*5+2 ,9,cl_Grey outcount [score],451,12,0xffff00,5*65536 jmp still red: call draw_window jmp still key: ; key mov eax,2 mcall ; read (eax=2) shr eax,8 and eax,0xff mov ah,al cmp ah,153 jne no_pause not [pause_on] jmp still no_pause: cmp ah,76 jne no_num5d mov [num5],1 jmp still no_num5d: cmp ah,204 jne no_num5u mov [num5],0 jmp still no_num5u: cmp ah,80 jne no_num2d mov [num2],1 jmp still no_num2d: cmp ah,208 jne no_num2u mov [num2],0 jmp still no_num2u: cmp ah,79 ;key_Space 85 exit jne no_num1d mov [num1],1 jmp still no_num1d: cmp ah,207 ;key_Space 85 exit jne no_num1u mov [num1],0 jmp still no_num1u: cmp ah,81 ;key_Space 85 exit jne no_num3d mov [num3],1 jmp still no_num3d: cmp ah,209 ;key_Space 85 exit jne no_num3u mov [num3],0 jmp still no_num3u: cmp ah,72 ;key_Space 85 exit jne no_num8d mov [num8],1 jmp still no_num8d: cmp ah,200 ;key_Space 85 exit jne no_num8u mov [num8],0 jmp still no_num8u: jmp still ; not testing button: ; button mov eax,17 ; get id mcall cmp ah,1 ; button id=1 ? jne noclose close_app: mov eax,-1 ; close this program mcall noclose: jmp still draw_window: mcall 12,1 ;start window redraw mcall 0, <40, 640+9>, <40, 440+26>, 0x14000000,, wtitle mcall 12,2 ;end window redraw ; setimg 5,22,img_area ret ;********************** ; Game Over process ;********************** game_over: ; close call draw_gowindow stillgo: wtevent redgo,keygo,buttongo jmp stillgo redgo: call draw_gowindow jmp stillgo keygo: mov eax,2 mcall jmp stillgo buttongo: mov eax,17 ; get id mcall cmp ah,1 je close_app cmp ah,4 je close_app cmp ah,5 je main_menu cmp ah,7 je restart_lev jmp stillgo restart_lev: mov [pathtime],0 prevpart: mov ebp,[levelpart] shl ebp,5 add ebp,levels mov eax,[ebp] cmp eax,dword 1 je rest ;end of level dec [levelpart] jmp prevpart rest: ;massives reset - clear massives mov edi,massive+8 cld mov ecx,massize*elemsize/4 mov eax,0 rep stosd mov edi,objmas+8 cld mov ecx,omassize*oelemsize/4 mov eax,0 rep stosd ;counters reset mov [boxget],0 mov [gship],0 mov [bship],0 ;ship reset mov [energy],100 mov [shipx],300 mov [shipy],400 mov [lazer],1000 mov [plazma],500 ; reset keyboard mov [num1],0 mov [num5],0 mov [num3],0 mov [num2],0 mov [num8],0 jmp start_game draw_gowindow: startwd call draw_window mcall 9,proc_info,-1 test [proc_info+process_information.wnd_state], 0x04 jz @f ret @@: drawfbox 170,160,300,120,cl_Grey drawlbut 180,260,80,14,'EXIT',4,0x990000,cl_Black drawlbut 280,260,80,14,'MENU',5,0x990000,cl_Black drawlbut 380,260,80,14,'RESTART',7,0x990000,cl_Black label 280,200,' GAME OVER ',cl_Black endwd ret ;********************** ; End level process ;********************** end_lev: ; close call draw_scorewindow stilleg: wtevent redeg,keyeg,buttoneg jmp stilleg redeg: call draw_scorewindow jmp stilleg keyeg: mov eax,2 mcall jmp stilleg buttoneg: mov eax,17 ; get id mcall cmp ah,1 je close_app cmp ah,2 je next_lev cmp ah,3 je help cmp ah,4 je close_app cmp ah,5 je main_menu jmp stilleg next_lev: mov [pathtime],0 inc [levelpart] ;ship reset mov [energy],100 mov [shipx],300 mov [shipy],400 mov [lazer],1000 mov [plazma],500 ;counters reset mov [boxget],0 mov [gship],0 mov [bship],0 ; reset keyboard mov [num1],0 mov [num5],0 mov [num3],0 mov [num2],0 mov [num8],0 jmp start_game draw_scorewindow: call draw_window mcall 9,proc_info,-1 test [proc_info+process_information.wnd_state], 0x04 jz @f ret @@: startwd drawfbox 170,130,300,190,cl_Grey drawlbut 180,300,80,14,'(X) EXIT',4,0x990000,cl_Black drawlbut 280,300,80,14,'<MENU>',5,0x990000,cl_Black drawlbut 380,300,80,14,'NEXT >>',2,0x990000,cl_Black setimg 180,140,warship1 outcount [bship],241,151,cl_Blue,5*65536 setimg 180,180,warship2 outcount [gship],241,191,cl_Green,5*65536 setimg 180,220,meteor setimg 180,260,box outcount [boxget],241,271,0xbbbb00,5*65536 endwd ret ;********************** ; End of game process ;********************** end_gm: mov [pathtime],0 call draw_window label 200 ,8,'YOU WIN PRESS ANY KEY TO EXIT',cl_White+font_Big stilleg2: ; scevent redeg2,keyeg2,buttoneg2 timeevent 1,no_event2,redeg2,keyeg2,buttoneg2 no_event2: setimg 5,21,canvas ;clear scrbuf mov edi,canvas+8 cld mov ecx,640*440*3/4 mov eax,0 rep stosd aimgtoimg ship,320,220,canvas,0x0 readmas massive,endshowmas readmas massive,endmovemas readmas massive,delfarshoot ; findmas massive,findzero ;in edi off to free element ; jc close_app inc [pathtime] cmp [pathtime],30 jne no_firework mov [pathtime],0 random 400,eax mov [temp3],eax random 600,eax mov [temp2],eax mov [temp],dword 8;10 xloox: findmas massive,findzero ;in edi off to free element jc close_app mov eax,[temp2] ;[shipx] mov [edi],eax mov eax,[temp3] ;[shipy] mov [edi+4],eax mov [edi+8],dword 2 ;show hstar rerand: random 5,eax sub eax,2 cmp eax,0 je rerand mov [edi+12],eax ;show hstar rerand2: random 7,eax sub eax,3 cmp eax,0 je rerand2 mov [edi+16],eax ;show hstar dec [temp] jnz xloox no_firework: jmp stilleg2 redeg2: jmp end_gm ;stilleg2 keyeg2: mov eax,2 mcall jmp main_menu buttoneg2: mov eax,17 ; get id mcall jmp stilleg2 ; DATA AREA IM_END: ;global pause_on dd 0 ;massive shipx dd 300 shipy dd 400 ;guns lazer dd 1000 plazma dd 500 ;keys num1 dd 0 num5 dd 0 num3 dd 0 num2 dd 0 num8 dd 0 ;enemy countres gship dd 0 bship dd 0 boxget dd 0 energy dd 100 score dd 0 ;delay for cannon ctime dd 0 ;delay for nuke gun xtime dd 0 ;path time pathtime dd 0 ; temp dd 0 temp2 dd 0 temp3 dd 0 temp4 dd 0 otv dd 0 ;for collimg imgsize: dd 32 dd 32 ;massive: ;dd 400 ;elements num ;dd 20 ;size of element in bytes ;rb 400*20 keymap: rb 1000 wtitle db 'Phenix for KolibriOS', 0 ;gif_file_area ~21500 gif_file_area2: file 'phenix.gif' gif_file_area: file 'star2.gif';include gif file img_area: rb 256*64*3+8 ship: rb 32*32*3+8 shoot: rb 32*32*3+8 warship1: rb 32*32*3+8 warship2: rb 32*32*3+8 meteor: rb 32*32*3+8 star: rb 32*32*3+8 star2: rb 32*32*3+8 star3: rb 32*32*3+8 box: rb 32*32*3+8 IncludeUGlobals massive: rd massize ;elements num rd elemsize ;size of element in bytes rb massize*elemsize objmas: rd omassize ;elements num rd oelemsize ;size of element in bytes rb omassize*oelemsize canvas: canvas_x: rd 1 canvas_y: rd 1 rb (640*440*3)+2000 proc_info: rb 1024 I_END: