Also a language that can shock anyone
with the small size of its runnable output.
I wrote this a very long time ago, in a place
far, far away.
Now, the hard way.
compile this one in tasm, and you'll have a
nice day indeed.
Replace ( with left square bracket
Replace ) with right square bracket
tasm happy_face.asm
tlink /t happy_face.obj
-----------------happy_face.asm--------------------
Ideal
Model Tiny
CodeSeg
P286
Org 256
Proc Program
;--------------------------------------------------------
push 0A004h ;---centered for no extra bytes :)
pop ds
mov cl,169 ;hmm.. dunno if ch is clear
mov al,19
int 10h
mov ah,100
mov dx,2*256 ;this is bad
Curves_Loop: sub dx,6
add ax,dx
pusha
call yo
mov [bx],cl ;lower face
not bx
mov [bx-85],bh ;upper face
shr ah,1
shr cl,1
call yo
mov [bx+19884],cl
;smile (same shape as lower face)
popa
loop Curves_Loop
mov *256],ax
mov *256+50],ax
Keyboard_Wait: mov ah,1
int 16h
jz Keyboard_Wait
mov ax,3
int 10h
;program runs over into yo, hits ret (woohoo!)
;--------yo should be rewritten!!! should be able
;to get smaller--------
yo:
xor bh,bh
mov bl,ah
shl bx,6
add bl,cl
adc bh,ah
ret
EndP Program
End Program