;  warble.asm
;                                                    
;                                                Compiled with TASM 3.1
;                 
.model   small
.stack   200h  
.data


.code
               ; put public and extrn declarations here
warble       proc

             in           al,61h
             push         ax
             mov          dx,0bh
main:                                  
             push         dx
             mov          bx,477
             call         warbcom
             mov          cx,0
                                    ; 1,000,000 microseconds = 1 second
             mov          dx,61a8h
             mov          ah,86h
             int          15h
             mov          bx,36
             call         warbcom
             mov          cx,0
             mov          dx,61a8h  ; 25,000 microseconds =  .025 seconds
             mov          ah,86h
             int          15h
             pop          dx
             dec          dx
             jnz          main
             pop          ax
             out          61h,al
             mov          ax,4c00h
             int          21h
             
warble       endp

warbcom      proc

             mov          al,10110110b
             out          43h,al
             mov          ax,bx
             out          42h,al
             mov          al,ah
             out          42h,al
             in           al,61h
             or           al,00000011b
             out          61h,al
             ret

warbcom      endp

end          warble


