Interrupt Handler
This module is the interface between interrupt request, and procedures which rely on the interrupts for timing. There are interrupts for the real time clock and timeout counters, the lcd module, and the UART driver.
Download:
; /////////////////////////////////////////////////////////////
; // Interrupt Handler
; // (c) 1999 Geoff Knagge, Andrew Carr, Mark Lynn
; // last modified : 22/10/1999
; //
; /////////////////////////////////////////////////////////////
ISR_LCD = 62 ; code that LCD sends to reset ISR bit - IR2
INT_PORT = 80; IO address of interrupt controller
initInterrupts:
mvi A,16H
out 080H
mvi A,80H ; base addr 8000H
out 081H
mvi A,11110001# ; - mask lines 0,4-7
out 081H
mvi a,61 ; 0110 0001 reset ISR line 1
out 080
mvi a,62 ; 0110 0010 reset ISR line 2
out 080
mvi a,63 ; 0110 0010 reset ISR line 3
out 080
ret
;/////////////////
intHandler:
push bc
push de
push af
push hl
call KeyInterrupt
call c_update
mvi a,61 ; 0110 0001 reset ISR line 1
out 080
pop hl
pop af
pop de
pop bc
ei
ret
.IMPRT 'clock.asm'
|