Časovač má frekvenci 1193181,666 Hz.
Nastavuje se přes porty 0x43 a 0x40, viz dál.
Když vyprší, vyvolá se IRQ 0.
; Set Timer
; IN: dx = number of ticks
h_timer_set:
pushfd
cli
mov al, 30h
out 43h, al
mov al, dl
out 40h, al
mov al, dh
out 40h, al
popfd
ret
; Read Timer
; OUT: ax = number of ticks
h_timer_read:
pushfd
cli
mov al, 0
out 43h, al
in al, 40h
xchg al, ah
in al, 40h
xchg al, ah
popfd
ret
IRQ0:
pushad
; ...
mov al, 20h
out 20h, al
popad
iret