From 3a9217ff57ce5b6e59777562f98223b7bceca742 Mon Sep 17 00:00:00 2001 From: heavyiron Date: Thu, 17 May 2007 02:22:27 +0000 Subject: [PATCH] *correct pong (the previous one was duplicate of pong3) *small fixes in icon_new *title with fn0 in copyr *fixed chess git-svn-id: svn://kolibrios.org@503 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/fs/copyr/trunk/copyr.asm | 20 +- programs/games/chess/trunk/chess.asm | 8 +- programs/games/chess/trunk/chess.bmp | Bin 0 -> 6790 bytes programs/games/pong/trunk/ascgl.inc | 624 ----------------- programs/games/pong/trunk/ascl.inc | 499 ------------- programs/games/pong/trunk/ball.raw | Bin 0 -> 768 bytes programs/games/pong/trunk/paddle.raw | Bin 0 -> 4608 bytes programs/games/pong/trunk/pong.asm | 730 ++++++++++---------- programs/system/icon_new/trunk/icon.asm | 11 +- programs/system/icon_new/trunk/iconmngr.asm | 48 +- 10 files changed, 417 insertions(+), 1523 deletions(-) create mode 100644 programs/games/chess/trunk/chess.bmp delete mode 100644 programs/games/pong/trunk/ascgl.inc delete mode 100644 programs/games/pong/trunk/ascl.inc create mode 100644 programs/games/pong/trunk/ball.raw create mode 100644 programs/games/pong/trunk/paddle.raw diff --git a/programs/fs/copyr/trunk/copyr.asm b/programs/fs/copyr/trunk/copyr.asm index bbb90f96e6..5a50c82701 100644 --- a/programs/fs/copyr/trunk/copyr.asm +++ b/programs/fs/copyr/trunk/copyr.asm @@ -182,18 +182,12 @@ draw_window: ; DRAW WINDOW xor eax,eax ; function 0 : define and draw window mov ebx,160*65536+415 ; [x start] *65536 + [x size] - mov ecx,160*65536+90 ; [y start] *65536 + [y size] - mov edx,0x03DDDDDD ; color of work area RRGGBB - mcall - - ; WINDOW LABEL - mov eax,4 ; function 4 : write text to window - mov ebx,8*65536+8 ; [x start] *65536 + [y start] - mov ecx,0x10ffffff ; color of text RRGGBB - mov edx,labelt ; pointer to text beginning - mov esi,labellen-labelt ; text length + mov ecx,160*65536+90 ; [y start] *65536 + [y size] + mov edx,0x13DDDDDD ; color of work area RRGGBB + mov edi,labelt ; WINDOW LABEL mcall + mov eax,8 mov ebx,105*65536+290 mov ecx,33*65536+12 @@ -220,8 +214,8 @@ draw_window: xor ecx,ecx mov edx,text mov esi,62 - newline: mov eax,4 + newline: mcall add ebx,16 add edx,62 @@ -248,9 +242,9 @@ text: db ' КУДА: | Павлюшин Евгений, waptap@mail.ru ' db ' ' db 'x' ; <- END MARKER, DONT DELETE + labelt: - db 'КОПИРОВАНИЕ ФАЙЛА' -labellen: + db 'КОПИРОВАНИЕ ФАЙЛА',0 errors: db "файл скопирован успешно " diff --git a/programs/games/chess/trunk/chess.asm b/programs/games/chess/trunk/chess.asm index 19cf228805..381644c362 100644 --- a/programs/games/chess/trunk/chess.asm +++ b/programs/games/chess/trunk/chess.asm @@ -13,8 +13,8 @@ use32 dd 0x01 ; header version dd START ; entry point dd I_END ; image size - dd I_END+0x10000 ; required memory - dd I_END+0x10000 ; esp + dd 0x100000 ; required memory + dd 0x100000 ; esp dd 0x0 , 0x0 ; I_Param , I_Path include 'lang.inc' @@ -31,7 +31,7 @@ file_info: dd 0 dd -1 dd 0x4000 - db '/rd/1/chess.bmp',0 + db '/rd/1/network/chess.bmp',0 pawn_color: @@ -61,9 +61,7 @@ text equ texts+80*32*4 START: ; start of execution -; mov eax,58 mov eax,70 -; mov ebx,file_info mov ebx,file_info mcall diff --git a/programs/games/chess/trunk/chess.bmp b/programs/games/chess/trunk/chess.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2905974048d5cf9495371b230d1bbcdae95a8200 GIT binary patch literal 6790 zcmd^@J+idA5r%cETqPpLkpr*5fmh+&dm%E)ATr9>(ha;2t$;e&DARr3mITbqIlgw4 zGwb^fFt3{a@0P^h{{GKDI~)Jt`WOEG%HN-UaqbuQ2gCo!{J+NfXTW(`o#Ve-*Lvg1 zBY&&=_19mSDE8l#q9^|NCy2}O?Qs7NPp~)+F5^)j^#e9(p1JvX0=LJGFIjjNzHFjw z^g-f%F{#xyqH>_Coj>E;TYAACT1%Oc2kgv^uSa90PGf-(*P2zCxO!=_G-k0Vup z^KcRPvTjkG-?^doZjWH_uqx@tQ5H+FEug6IAx!3V7mH#;a8Sl2xI5v=*g!uUpTmb~ zRWR_9**&j#Ncy|cyhOFqBvh%3;Rjcd(}J=DV@bsi8$RYjhrn`TEIxIZR4dic`PhUL zIW5TibkQfI0!tyhci~PQi>#=Ay>NA`J&Hf>4kr#9Wt_rd4)6LT;;vDnL+@*Pvao55 zvSEwWi8rv_Iz9LMkpG*#Z@1sa(|F+7J}!EmlKfrAg+IQIRKCO4Bjs=KpZNTjaueBS zY4oO#3v5N=sc6?T`90D*)^6E}2Uc;tQ`ww;b4!U7!O5u6Cr?W8!pW%PS~sbhlTpKA zv+qwyZW=Y*lbY1i=B(I}U2(J|*;s$4KrL!C9QKqD0%)%<_+H{;9p>3L3oiP+f2n_x zgLgj4POH~8WA0Akn|tTic%KUvcuEU5i`W zD&FnYy^gni#X(W9d0so4rYD=#0k=`@J@8de@O>|=G21$t8!mcRGF#TJ=7nn+p(TFM z$3Y4WEi4y(Rr6CHrzRinIIRzTTDil2l#YPj_C$jwf(g+}uqEa)w2zIS>JMaKE+S@5 zH~ejVZ;(7f!rSPnE~BjuY&rux&>w~OVSY*N7kG12byvG4@E73x@ju6_CSw#{EGLm|U~V1wsis-s145i8^L>x|v#a?m=7Nh-K4-K2bPBDUOSdVepy*+_Kr&`Qp;DKS5@#>VC~-OTHvKO9YCSm_7V$Y8`wtz@nP7Fl@Z<)<5ovOPjv~s+C$URlf|D74cYFv4Rl9d%!Uj1ZR9SlWOStLat%;OvHC%n5TI36k;ERsY0|8rt z4f#184?2v*wtAFcLGF>C@R8U9l|1K+M0eU8n-M`WMXH8%#Q*!uQX6@Eh%q1?kyJRh%_5Z(7}L*$eg41biq{_U76csc2fk2v2-Gi8F;l`l?aD zM*LBj&jQM4_92?=IGYDned`0-xIkIy=`gvR zj&z#EEcFNEN*&V^1K38%DmyFOago>laIaI2U@P`$4A$K`AB<^jfTrf z7tW_c4l{LV@nSSDv3+a(p|+)lr<+_OZ@Av8W32Frx1Z;&@;`r`5B~w)EUm9x^hCd^ zZW9+yQ?I7J;Z(*C_z(2?dwRz?Vywz=z2yF&k34s?pwTDxs!vPW#;M`1?hkqtJAa)c z3gx0auP;=3+hveHgtLad>2r&F)3wp}aB&}vQIpFvU&FrjXIiYaR^pX0)B*`vo!ulxI`v+w9F?r&3Xtp5*w{sv(xNMQf~ literal 0 HcmV?d00001 diff --git a/programs/games/pong/trunk/ascgl.inc b/programs/games/pong/trunk/ascgl.inc deleted file mode 100644 index 0c7b4d4f8c..0000000000 --- a/programs/games/pong/trunk/ascgl.inc +++ /dev/null @@ -1,624 +0,0 @@ -lang equ ru - -; -; Assembler -; SMALL -; CODE -; Graphics -; Libary -; -; Ver 0.10 By Pavlushin Evgeni (RUSSIA) -; www.waptap@mail.ru - -;InfoList -;0.01 LoadImage -;0.02 SetBmp -;0.03 Bmptoimg, Setimg ~01.03.2004 -;0.04 Bug deleted, copyimg ~03.05.2004 -;0.05 fullimg, collimg ~05.05.2004 -;0.06 getimg ~09.05.2004 -;0.07 convbmp ~13.05.2004 -;0.08 fps ~14.05.2004 -;0.09 drawfbox ~03.06.2004 -;0.10 all macros optimized by halyavin, add at ~07.06.2004 - -;DrawBox -macro drawfbox x,y,xs,ys,color -{ - mov ecx,y - mov ebx,x - shl ebx,16 - add ebx,xs - shl ecx,16 - add ecx,ys - mov edx,color - mov eax,13 - mcall -} - -; FPS - Set Frame Per Second Display -fps_show_frequency=40 -macro fps x,y,color,delcolor -{ -local spdat,savetime,new_time,fps,fps_cntr,out_fps,new_time,ttt -local no_out_fps - jmp spdat -savetime dd 0 -fps_cntr dd 0 -fps dd 0 -ttt dd 0 -spdat: -get_time: - mov eax,3 - mcall - cmp eax,[savetime] - jne new_time - inc [fps_cntr] - cmp dword [ttt],0 - je out_fps - dec dword [ttt] - jmp no_out_fps -new_time: - mov [savetime],eax - mov ebx,[fps_cntr] - mov [fps],ebx - mov [fps_cntr],0 -out_fps: -if ~(delcolor eq ) - mov ebx,x*65536+30 - mov ecx,y*65536+7 - mov edx,delcolor - mov eax,13 - mcall -end if - mov dword [ttt],fps_show_frequency - mov eax,47 - mov ebx,5*65536 -; mov bl,0 - mov edx,x*65536+y - mov esi,color - mov ecx,[fps] - mcall -no_out_fps: -} - - - -; COLLIMG - Collusion image's -_1dbounce_count=0; -macro collimg img1_off,x1,y1,img2_off,x2,y2,otv -{ -local bounce,exit,anot,bc,nbc - mov esi,[img1_off] ;xs1 - mov edi,[img2_off] ;ys2 - mov eax,x1 ; - mov ebx,x2 ; - call _1dbounce - mov edx,ecx - mov esi,[img1_off+4] ;ys1 - mov edi,[img2_off+4] ;ys2 - mov eax,y1 ; - mov ebx,y2 ; - call _1dbounce - add edx,ecx - cmp edx,2 - je bounce - mov otv,0 - jmp exit -_1dbounce_count=_1dbounce_count+1 -if (_1dbounce_count = 1) -_1dbounce: - cmp ebx,eax - jnae anot - add eax,esi - cmp eax,ebx - jna nbc - jmp bc -anot: - add ebx,edi - cmp ebx,eax - jna nbc -bc: - mov ecx,1 - ret -nbc: - mov ecx,0 - ret -end if -bounce: - mov otv,1 -exit: -} - -; SETBMP - Set bmp to window -; (SYNTAX) SETBMP dd xstart ,dd ystart ,BMP_offset,dd soi -; (SAMPLE) SETBMP dword [xt],dword [yt],I_END,dword [tsoi] -; SETBMP 15,10,I_END,dword [tsoi] -; ( NOTE ) SOI - Start of image - -macro setbmp arg1,arg2,arg3,arg4 -{ -local nodi - cmp word [arg3],word 'BM' - jne nodi - mov eax,7 - mov ebx,arg4 ;[soi] - mov ecx,dword [arg3+18] - shl ecx,16 - add ecx,dword [arg3+22] -if (arg1 eqtype 0) & (arg2 eqtype 0) - mov edx,arg1*65536+arg2 -else - mov edx,arg1 - shl edx,16 - add edx,arg2 -end if - mcall - nodi: -} - -macro setimg arg1,arg2,arg3 -{ -local nodi - mov eax,7 - mov ebx,arg3 - add ebx,8 - mov ecx,dword [arg3] - shl ecx,16 - add ecx,dword [arg3+4] -if (arg1 eqtype 0) & (arg2 eqtype 0) - mov edx,arg1*65536+arg2 -else - mov edx,arg1 - shl edx,16 - add edx,arg2 -end if - mcall -} - -;Not optimiz -macro getimg imgsrc,x,y,xs,ys,imgdest -{ -local cyc - mov eax,xs - mov dword [imgdest],eax - mov eax,ys - mov dword [imgdest+4],eax - - mov eax,dword [imgsrc] ;getx size - mov edi,eax - mov ebx,y - mul ebx - add eax,x - mov ebx,3 - mul ebx ;eax=offset on imsrc - - mov ecx,0 - mov ebx,0 - mov ebp,eax - mov esi,0 - - add esi,8 - add ebp,8 - -cyc: - mov al,byte [imgsrc+ebp] - mov [imgdest+esi],al - mov al,byte [imgsrc+ebp+1] - mov [imgdest+esi+1],al - mov al,byte [imgsrc+ebp+2] - mov [imgdest+esi+2],al - add esi,3 - add ebp,3 - inc ecx - cmp ecx,xs - jne cyc - add ebp,edi - add ebp,edi - add ebp,edi - sub ebp,xs - sub ebp,xs - sub ebp,xs - mov ecx,0 - inc ebx - cmp ebx,ys - jne cyc - -} - -; -macro bmptoimg bmp_off,soi,img_off -{ -local nodix,conv - cmp word [bmp_off],word 'BM' - jne nodix - mov eax,dword [bmp_off+18] - mov ebx,dword [bmp_off+22] - mov dword [img_off],eax - mov dword [img_off+4],ebx - mul ebx - lea ecx,[eax+2*eax] - lea edi,[img_off+8] - mov esi,dword [soi] - cld - rep movsb -nodix: -} - -macro copyimg img2_off,img1_off -{ -local cop - mov eax,dword [img1_off] - mov ebx,dword [img1_off+4] - mul ebx - lea ecx,[eax+2*eax] - lea esi,[img1_off+8] - lea edi,[img2_off+8] - cld - rep movsb -} - -macro fullimg img_off,xs,ys,color -{ -local cop - mov eax,xs - mov ebx,ys - mov dword [img_off],eax - mov dword [img_off+4],ebx - mul ebx - lea ebp,[eax+2*eax] - mov esi,color -if color eqtype 0 - mov ecx,color/65536 -else - mov ecx,esi - shr ecx,16 -end if - xor edi,edi -cop: - mov word [img_off+8+edi],si - add edi,2 - mov byte [img_off+8+edi],cl - inc edi - cmp edi,ebp - jne cop -} - - - - -macro convbmp bmp_load_area,bmp_soi -{ -local status,bps,dwps,soi,sop,eop,eos,process,fileinfo,string,end_bmp -local converttable,noaddelem,nextbit,convert1bpp,convert4bpp,convert2 -local nextelem,convertno32,nomorestring,convert1,nextstring,yespicsize -local noaddword -;local qwe,bmpfn - -; convert: - movzx eax,word [bmp_load_area+28] - mul dword [bmp_load_area+18] - mov ebx,32 - div ebx - test edx,edx - je noaddword - inc eax - noaddword: - mov dword [dwps],eax ;dwps-doublewords per string - shl eax,2 - mov dword [bps],eax ;bps-bytes per string - - cmp dword [bmp_load_area+34],0 - jne yespicsize ;if picture size is defined - mul dword [bmp_load_area+22] - mov dword [bmp_load_area+34],eax - - yespicsize: - mov eax,bmp_load_area - mov ebx,eax - add ebx, [bmp_load_area+2];file size - inc ebx - mov dword [bmp_soi],ebx ;soi-start of image area for drawing - add eax, [bmp_load_area+10] - mov dword [sop],eax ;sop-start of picture in file - add eax, [bmp_load_area+34] - mov dword [eop],eax ;eop-end of picture in file - mov eax, [bmp_load_area+18] - lea eax,[eax+2*eax] ;3x pixels in eax - - mov edi,dword [bmp_soi] ;initializing - mov esi,dword [eop] - sub esi,dword [bps] - - - nextstring: - push edi - cmp word [bmp_load_area+28],24 - jne convertno32 - - mov ecx,[dwps] - cld - rep movsd - convert1: - pop edi - sub esi,dword [bps] - sub esi,dword [bps] - cmp esi,dword [sop] - jb end_bmp;nomorestring - add edi,eax - jmp nextstring - -; nomorestring: -; jmp end_bmp - - convertno32: - mov ebx,bmp_load_area - add ebx, [bmp_load_area+14] - add ebx,14 ;start of color table - push esi - add esi,dword [bps] - mov dword [eos],esi - pop esi - nextelem: - push eax - movzx eax,byte [esi] - cmp word [bmp_load_area+28],4 - je convert4bpp - cmp word [bmp_load_area+28],1 - je convert1bpp - call converttable - convert2: - pop eax - inc esi - cmp esi,dword [eos] - jae convert1 - add edi,3 - jmp nextelem - - convert4bpp: - shl ax,4 - shr al,4 - push ax - movzx eax,ah - call converttable - add edi,3 - pop ax - movzx eax,al - call converttable - jmp convert2 - - convert1bpp: - mov ecx,eax - mov edx,7 - nextbit: - xor eax,eax - bt ecx,edx - jnc noaddelem - inc eax - noaddelem: - push edx - call converttable - pop edx - dec edx - cmp edx,0xffffffff - je convert2 - add edi,3 - jmp nextbit - - converttable: - shl eax,2 - add eax,ebx - mov edx, dword [eax] - mov dword [edi],edx - ret - - -; DATA AREA - -;status dd 0 ;bit0=1 if file thread is created -bps dd 0 -dwps dd 0 -;soi dd 0 -sop dd 0 -eop dd 0 -eos dd 0 -;process dd 0 - -end_bmp: -; mov eax,dword [soi] -; mov dword [bmp_soi],eax - -} - - - - -; LOADBMP - Load bmp image from file -; (SYNTAX) LOADBMP 'file_path',temp_area(rb 0x10000),load_area,dd soi -; (SAMPLE) LOADBMP '/rd/1/menuet.bmp',temp_area,I_END,tsoi -; ( NOTE ) Macros create on Base of -; Picture browser by lisovin@26.ru & Ivan Poddubny -; SOI - Start of image - -macro loadbmp bmp_file_name,bmp_temp_area,bmp_load_area,bmp_soi -{ -local status,bps,dwps,soi,sop,eop,eos,process,fileinfo,string,end_bmp -local converttable,noaddelem,nextbit,convert1bpp,convert4bpp,convert2 -local nextelem,convertno32,nomorestring,convert1,nextstring,yespicsize -local noaddword -;local qwe,bmpfn - - mov dword [fileinfo+8],1 ; how many blocks to read (1) - mov eax,58 - mov ebx,fileinfo - mcall - mov eax,[bmp_load_area+2] - shr eax,9 ; поделим на 512 и прибавим 1 - получим число блоков - inc eax - mov dword [fileinfo+8],eax - mov eax,58 - mov ebx,fileinfo - mcall - -; jmp qwe -;bmpfn db bmp_file_name -;qwe: -; mov eax,6 -; mov ebx,bmpfn -; mov ecx,0 -; mov edx,0xFFFFFF -; mov esi,bmp_load_area -; mov edi,0 -; mcall - -; convert: - movzx eax,word [bmp_load_area+28] - mul dword [bmp_load_area+18] - mov ebx,32 - div ebx - test edx,edx - je noaddword - inc eax - noaddword: - mov dword [dwps],eax ;dwps-doublewords per string - shl eax,2 - mov dword [bps],eax ;bps-bytes per string - - cmp dword [bmp_load_area+34],0 - jne yespicsize ;if picture size is defined - mul dword [bmp_load_area+22] - mov dword [bmp_load_area+34],eax - - yespicsize: - mov eax,bmp_load_area - push eax - add eax, [bmp_load_area+2];file size - inc eax - mov dword [soi],eax ;soi-start of image area for drawing - pop eax - add eax, [bmp_load_area+10] - mov dword [sop],eax ;sop-start of picture in file - add eax, [bmp_load_area+34] - mov dword [eop],eax ;eop-end of picture in file - mov eax, [bmp_load_area+18] - mov ebx,3 - mul ebx ;3x pixels in eax - - mov edi,dword [soi] ;initializing - mov esi,dword [eop] - sub esi,dword [bps] - - - nextstring: - push edi - cmp word [bmp_load_area+28],24 - jne convertno32 - - mov ecx,[dwps] - cld - rep movsd - convert1: - pop edi - sub esi,dword [bps] - sub esi,dword [bps] - cmp esi,dword [sop] - jb nomorestring - add edi,eax - jmp nextstring - - nomorestring: - jmp end_bmp - - convertno32: - mov ebx,bmp_load_area - add ebx, [bmp_load_area+14] - add ebx,14 ;start of color table - push esi - add esi,dword [bps] - mov dword [eos],esi - pop esi - nextelem: - push eax - movzx eax,byte [esi] - cmp word [bmp_load_area+28],4 - je convert4bpp - cmp word [bmp_load_area+28],1 - je convert1bpp - call converttable - convert2: - pop eax - inc esi - cmp esi,dword [eos] - jae convert1 - add edi,3 - jmp nextelem - - convert4bpp: - shl ax,4 - shr al,4 - push ax - movzx eax,ah - call converttable - add edi,3 - pop ax - movzx eax,al - call converttable - jmp convert2 - - convert1bpp: - mov ecx,eax - mov edx,7 - nextbit: - xor eax,eax - bt ecx,edx - jnc noaddelem - inc eax - noaddelem: - push edx - call converttable - pop edx - dec edx - cmp edx,0xffffffff - je convert2 - add edi,3 - jmp nextbit - - converttable: - shl eax,2 - add eax,ebx - mov edx, dword [eax] - mov dword [edi],edx - ret - - -; DATA AREA - -;status dd 0 ;bit0=1 if file thread is created -bps dd 0 -dwps dd 0 -soi dd 0 -sop dd 0 -eop dd 0 -eos dd 0 -;process dd 0 - -; DATA AREA -fileinfo: - dd 0 - dd 0 - dd 1 ;number of blocks of 512 bytes - dd bmp_load_area - dd bmp_temp_area -string: - db bmp_file_name,0 - db ' ' - db ' ' - db ' ' - db ' ',0 - - -end_bmp: - mov eax,dword [soi] - mov dword [bmp_soi],eax - -} diff --git a/programs/games/pong/trunk/ascl.inc b/programs/games/pong/trunk/ascl.inc deleted file mode 100644 index 9751d32f12..0000000000 --- a/programs/games/pong/trunk/ascl.inc +++ /dev/null @@ -1,499 +0,0 @@ -lang equ ru ; ru en fr ge fi - -; -; Assembler -; SMALL -; CODE -; Libary -; -; Ver 0.09 By Pavlushin Evgeni (RUSSIA) -; www.waptap@mail.ru - -;InfoList -;0.01 scank,putpix,puttxt -;0.02 label,random,colors -;0.03 window,startwd,endwd,attributes -;0.04 close,delay,scevent ~30.04.2004 -;0.05 small random, ~04.05.2004 -;0.06 wtevent ~09.05.2004 -;0.07 timeevent ~23.05.2004 -;0.08 txtput ~14.06.2004 -;0.09 opendialog,savedialog ~20.06.2004 - -macro opendialog redproc,openoff,erroff,path,testtime -{ -local still, dlg_file, clip_file, redwait -local button, key, red, zzz, still, zzz2, incf, file_is_open, zzz3 - - mov ecx,200 -zzz3: - mov byte [path+ecx-1],0 - loop zzz3 - - dec byte [clip_file+7] -incf: - inc byte [clip_file+7] - mov eax,6 - mov ebx,clip_file - mov ecx,0 - mov edx,-1 - mov esi,path - mcall - cmp byte [clip_file+7],'Z' - je erroff - cmp eax,0xffffffff - jne incf - - mov ecx,200 -zzz2: - mov byte [path+ecx],0 - loop zzz2 - - mov ebx,clip_file - mov ecx,path - mov edx,100 - mov esi,0 - mov eax,33 - mcall - - mov ebx,dlg_file - mov ecx,clip_file - mov eax,19 - mcall - -still: - scevent red,key,button - cmp byte [path],0 - jne file_is_open - cmp dword [redwait],testtime ;20 - jnae zzz - mov eax,6 - mov ebx,clip_file - mov ecx,0 - mov edx,-1 - mov esi,path - mcall - cmp eax,0xffffffff - je erroff ;errexit - mov dword [redwait],0 -zzz: - delay 5 - inc dword [redwait] - jmp still - -file_is_open: - mov eax,32 - mov ebx,clip_file - mcall - jmp openoff - -key: ; key - mcall ; read (eax=2) - jmp still -button: ; button - mov eax,17 ; get id - mcall - cmp ah,1 ; button id=1 ? - jne still - mov eax,-1 ; close this program - mcall - -red: - call redproc - jmp still - -dlg_file db 'SYSXTREE ' -clip_file db 'OPENCLPACLP' - db 'O' ;Dialog type O-open S-save - db 0 ;Marker -redwait dd 0 -} - -macro savedialog redproc,openoff,erroff,path,testtime -{ -local still, dlg_file, clip_file, redwait, zzz3 -local button, key, red, zzz, still, zzz2, incf, file_is_open - - mov ecx,200 -zzz3: - mov byte [path+ecx-1],0 - loop zzz3 - - dec byte [clip_file+7] -incf: - inc byte [clip_file+7] - mov eax,6 - mov ebx,clip_file - mov ecx,0 - mov edx,-1 - mov esi,path - mcall - cmp byte [clip_file+7],'Z' - je erroff - cmp eax,0xffffffff - jne incf - - mov ecx,200 -zzz2: - mov byte [path+ecx],0 - loop zzz2 - - mov ebx,clip_file - mov ecx,path - mov edx,100 - mov esi,0 - mov eax,33 - mcall - - mov ebx,dlg_file - mov ecx,clip_file - mov eax,19 - mcall - -still: - scevent red,key,button - cmp byte [path],0 - jne file_is_open - cmp dword [redwait],testtime ;20 - jnae zzz - mov eax,6 - mov ebx,clip_file - mov ecx,0 - mov edx,-1 - mov esi,path - mcall - cmp eax,0xffffffff - je erroff ;errexit - mov dword [redwait],0 -zzz: - delay 5 - inc dword [redwait] - jmp still - -file_is_open: - mov eax,32 - mov ebx,clip_file - mcall - jmp openoff - -key: ; key - mcall ; read (eax=2) - jmp still -button: ; button - mov eax,17 ; get id - mcall - cmp ah,1 ; button id=1 ? - jne still - mov eax,-1 ; close this program - mcall - -red: - call redproc - jmp still - -dlg_file db 'SYSXTREE ' -clip_file db 'SAVECLPACLP' - db 'S' ;Dialog type O-open S-save - db 0 ;Marker -redwait dd 0 -} - - -; RANDOM - generate random count (small) -; (SYNTAX) RANDOM MaxCount,OutArgument -; (SAMPLE) RANDOM 10000,eax -; ( NOTE ) Maxint<65536 ; use random 65536,eax for more combinations - -randomuse = 0 - -macro random arg1,arg2 -{ -local rxproc -randomuse = randomuse + 1 - - jmp rxproc - -if defined randomuse & randomuse = 1 -randomproc: - jmp rnj -rsx1 dw 0x4321 -rsx2 dw 0x1234 -rnj: -; mov eax,arg1 - push bx - push cx - push dx - push si - push di - mov cx,ax - mov ax,word ptr rsx1 - mov bx,word ptr rsx2 - mov si,ax - mov di,bx - mov dl,ah - mov ah,al - mov al,bh - mov bh,bl - xor bl,bl - rcr dl,1 - rcr ax,1 - rcr bx,1 - add bx,di - adc ax,si - add bx,0x62e9 - adc ax,0x3619 - mov word ptr rsx1,bx - mov word ptr rsx2,ax - xor dx,dx - cmp ax,0 - je nodiv - cmp cx,0 - je nodiv - div cx -nodiv: - mov ax,dx - pop di - pop si - pop dx - pop cx - pop bx -; mov arg2,0 -; mov arg2,eax - ret -end if - -rxproc: - mov eax,arg1 - call randomproc - mov arg2,0 - mov arg2,eax -} - -macro scank -{ - mov eax,10 - mcall -} - -macro putpix x,y,color -{ - mov ebx,x - mov ecx,y - mov edx,color - mov eax,1 - mcall -} - -macro puttxt x,y,offs,size,color -{ - mov ebx,x - shl ebx,16 - add ebx,y - mov ecx,color - mov edx,offs - mov esi,size - mov eax,4 - mcall -} - -;_ equ '____' - -;macro libtest x,y,color -;{ -;if x = as dword -; mov ebx,x -;end if -; mov ecx,y -; mov edx,color -; mov eax,1 -; mcall -;} - - -macro outcount data, x, y, color, numtype -{ - mov ecx,data - mov ebx,numtype - mov bl,0 - mov edx,x*65536+y - mov esi,color - mov eax,47 - mcall -} - -; SCEVENT - Scan event - -macro scevent red,key,but -{ - mov eax,11 - mcall - dec eax - jz red - dec eax - jz key - dec eax - jz but -} - -; WTEVENT - Wait event - -macro wtevent red,key,but -{ - mov eax,10 - mcall - dec eax - jz red - dec eax - jz key - dec eax - jz but -} - -; TIMEEVENT - Wite for event with timeout - -macro timeevent xfps,noevent,red,key,but -{ - mov eax,23 - mov ebx,xfps - mcall - cmp eax,0 - je noevent - dec eax - jz red - dec eax - jz key - dec eax - jz but -} - - -; CLOSE - Close program - -macro close -{ - mov eax,-1 - mcall -} - -; DELAY - Create delay 1/100 sec -; (SYNTAX) Delay time -; (SAMPLE) Delay 100 ;delay 2 sec 1/100*200=2 sec - -macro delay arg1 -{ - mov eax,5 - mov ebx,arg1 - mcall -} - -; WINDOW - Draw window -; (SYNTAX) WINDOW Xstart,Ystart,'Text',Color -; (SAMPLE) WINDOW 10,10,640+8,480+24,window_Skinned - -macro window arg1,arg2,arg3,arg4,arg5 -{ - mov ebx,arg1*65536+arg3 - mov ecx,arg2*65536+arg4 - mov edx,arg5 - mov eax,0 - mcall -} - -macro colorwindow arg1,arg2,arg3,arg4,arg5,arg6,arg7 -{ - mov ebx,arg1*65536+arg3 - mov ecx,arg2*65536+arg4 - mov edx,arg5 - mov esi,arg6 - mov edi,arg7 - mov eax,0 - mcall -} - - -; STARTWD - Start of window draw - -macro startwd -{ - mov eax,12 - mov ebx,1 - mcall -} - -; ENDWD - End window draw - -macro endwd -{ - mov eax,12 - mov ebx,2 - mcall -} - -; LABEL - Put text to frame -; (SYNTAX) LABEL Xstart,Ystart,'Text',Color -; (SAMPLE) LABEL 10,12,'Hello World!',cl_Green+font_Big - -macro label arg1,arg2,arg3,arg4 -{ -local asd,lab - jmp asd -lab db arg3 ;arg label -asd: - mov ebx,arg1 ;arg1=y arg2=x - shl ebx,16 - add ebx,arg2 - mov ecx,arg4 ;arg4 color - mov edx,lab - mov esi,asd-lab ;calc size - mov eax,4 - mcall -} - -;Key's -key_Up equ 178 -key_Down equ 177 -key_Right equ 179 -key_Left equ 176 -key_Esc equ 27 -key_Space equ 32 -key_Enter equ 13 -key_Bspace equ 8 -key_F1 equ 50 -key_F2 equ 51 -key_F3 equ 52 -key_F4 equ 53 -key_F5 equ 54 -key_F6 equ 55 -key_F7 equ 56 -key_F8 equ 57 -key_F9 equ 48 -key_F10 equ 49 -key_F11 equ 68 -key_F12 equ 255 -key_Home equ 180 -key_End equ 181 -key_PgUp equ 184 -key_PgDown equ 183 - -;Attributes - -;Window Attributes -window_Skinned equ 0x03000000 -window_Type2 equ 0x02000000 -window_Type1 equ 0x00000000 -window_Reserve equ 0x01000000 - -;Font Attributes -font_Big equ 0x10000000 - -;Colors -cl_White equ 0x00ffffff -cl_Black equ 0x00000000 -cl_Grey equ 0x00888888 -cl_Red equ 0x00ff0000 -cl_Lime equ 0x0000ff00 -cl_Green equ 0x0000af00 -cl_Blue equ 0x000000ff -cl_Purple equ 0x008080ff -cl_Violet equ 0x008040ff -cl_Cyan equ 0x0040e0ff diff --git a/programs/games/pong/trunk/ball.raw b/programs/games/pong/trunk/ball.raw new file mode 100644 index 0000000000000000000000000000000000000000..5a5b96a27a57eb14176a1fe49ade7259f20a7747 GIT binary patch literal 768 zcmZQzKmcw%A=xSe%{4B1hkW!7_-HJ1l*-ZOROd&ifU%gkSY#{pjV=b6J&H8F6K--f z#OPe0!Et~6Lq1w-UBnaAm^heWY8ilvl_y)7KZ!Db9A)u5#^Pm+#nWh@E~5)U28Vog zwtHxAa+4|4g=>*1(KCAxVg4x6@?D(G*F>A|iPoPIEMLT!-U>539jLd*3uuMrN@vjs zC7=~tngRwV{7r9%0gbi!mSp!Y)$V_)?e7$;5AkLXBY{=`J)*V2Regzr$~0?sc^>IP zUE?buCbz;YUdP(}NV5B%210*RtUe`}J&rWG7_4{DM{A?2`XUFld3K_qifZ%h4NnJ{ z+z7RJ5o7%|5vbDcUyAL|WUKe_W)C8b&Ijr3_Xe52&_Q*EjcmC-kPQqy5WjslL5NBynrFBHs4NVvXw%cspcwY-Cdpr$Nh{i2bgN1 z1adjhSfyTbVP82;MP9WzcEG3yIt-+7lbiNtH|>qCnrmG&mOBAW1}avbV5!(;F5hU( zF3k;$0?}|~^+oo;;8I^`ufD_)gcdu1RL-^qIiue~vC|BQggj*-NrH);Su$M{Bs<+k zb-K06bZgaV)+$r1K*n~PD|Ubsi$y6ju_2NWBO9}Dpn_tT889I!^;szPm;>1mm2!1P pf}XOBY)tU<24}F#@d*3N0|P<6-bk*_P%1}D$Xk|O2IOWq002$2?>Ybg literal 0 HcmV?d00001 diff --git a/programs/games/pong/trunk/paddle.raw b/programs/games/pong/trunk/paddle.raw new file mode 100644 index 0000000000000000000000000000000000000000..60b93a01a0dba3b9b70e9d44a4644db4d44f7b98 GIT binary patch literal 4608 zcmZQzV33j&o7q!+e%HJ+nYuZic^#1iA2+q6{aOA6#Gb8 zYw*g8upe2~eqdqcss^uVDN56lV5*+&%R_&OYxun8=Y7&{|=*dCMsoXI&V{y6Ns5$WHfQ0jC_`m}M zjWHTNXaR!89St9}072u9h7VeRpm9gT2Q5I*xTE2N79eQc(eObF5H#*+_@D&{8h12& z&;kUFI~qP{0fNRI4Ii`sLE{eU@L5nnNq;ckQ&Jb)uiQJYWZR^a#pSlZPBfbL@pFNl z