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 !