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