Intel 80C188XL User Manual

Page 249

Advertising
background image

TIMER/COUNTER UNIT

9-20

Example 9-1. Configuring a Real-Time Clock (Continued)

sti

;enable interrupts

pop

si

;restore saved registers

pop

dx

pop

ax

pop

bp

;restore caller’s bp

ret

_set_time endp

timer_2_interrupt_routine proc far

push

ax

;save registers used

push

dx

cmp

_msec, 99

;has 1 sec passed?

jae

bump_second

;if above or equal...

inc

_msec

jmp

short reset_int_ctl

bump_second:

mov

_msec, 0

;reset millisecond

cmp

_minute, 59

;has 1 minute passed?

jae

bump_minute

inc

_second

jmp

short reset_int_ctl

bump_minute:

mov

_second, 0

;reset second

cmp

_minute, 59

;has 1 hour passed?

jae

bump_hour

inc

_minute

jmp

short reset_int_ctl

bump_hour:

mov

_minute, 0

;reset minute

cmp

_hour, 12

;have 12 hours passed?

jae

reset_hour

inc

_hour

jmp

reset_int_ctl

reset_hour:

mov

_hour, 1

;reset hour

reset_int_ctl:

mov

dx, EOI

mov

ax, 8000h

;non-specific end of interrupt

out

dx, al

pop

dx

pop

ax

iret

timer_2_interrupt_routine endp

lib_80186

ends
end

Advertising
This manual is related to the following products: