[ amidar @ 23.04.2002. 23:57 ] @
Evo da ove mladje generacije vide shta znachi jezgrovit kod, ali iza koga se ne krije veshtina programiranja, vecc prvenstveno ideja. Da nije bilo nje, ovo ne bi bilo ni priblizhno ovoliko kratko. Kada se zanemari inicijalizacija i par bajtova na kraju za proveru stisnutosti ESC tastera ostaje nekih ako se ne varam 50-ak bajtova za sam program !!! Evo i koda koji je dodushe samo za gledanje (disasemblirani prilozheni com programchicc), tj. za prouchavanje, a u attachement-u sledi i sam programchicc. Preporuchujem da ga pokrenete iz chistog dos-a, ne iz dos-prompt-a, po moguccnosti na monitoru u boji. VGA se podrazumeva. mov bx,es add bh,10 mov es,bx mov ds,bx xor ax,ax mov cx,ax dec cx rep stosb dec ax mov di,a2d0 mov cl,50 rep stosw mov bx,19a0 l011b: mov [bx],ax add bx,0140 ja 011b mov ax,0013 int 10 mov dx,03c8 xor al,al out dx,al inc dx mov cx,0240 rep outsb l0134: out dx,al outsb outsb inc ax cmp al,40 jc l0134 mov ch,a0 mov ds,cx l0140: cmp bh,fa jnc l0167 mov al,[bx] cmp al,c0 jc l0167 dec ax mov [bx+01],al mov [bx-01],al mov [bx+0140],al mov [bx+fec0],al mov si,fd80 test dh,80 jnz l0165 add si,0002 l0165: mov [bx+si],al l0167: mov al,es:[bx] or [bx],al add bx,dx inc dx or bx,bx jnz l0140 in al,[60] cmp al,01 jnz l0140 mov al,03 int 10 ret P.S. O onome shto se dobije na ekranu me ne pitajte nishta, pitajte autora programa (Mike Shirobokov) ! ;-) P.S.2 Da napomenem samo da je ovo jedan od programa koji su konkurisali u kategoriji programa do 128 bajtova na takmichenju u pisanju limited-size programa ! DEMO.DESIGN 128 bytes intro compo (xUSSR, Apr 1996) tol-ko ! |