Specifications
Application Examples
PUT SCU_CMND,SCU_CMND_INIT
; MASK INTERRUPTS
PUT SCU_MASK,SCU_MASK_INIT
; RESTORE REGISTER STATUS
POP DX
POP AX
SCU_INIT ENDP
;
V40 INTERRUPT CONTROLLER PROCEDURE
; THE V40 INTERRUPT CONTROLLER IS USED TO SERVICE ASYNCHRONOUS
; EVENTS SUCH AS A COUNTER/TIMER TIMEOUT, DATA TRANSFERS
; THROUGH A SERIAL LINK, AND DATA TRANSFERS THROUGH DUAL PORT
; RAM. THE EXAMPLE CODE IS A GENERAL PURPOSE INITIALIZATION
; PROCEDURE THAT PROGRAMS THE FOLLOWING:
;
; ICU ENABLED
; BASE ADDRESS OF 0020H
; EDGE TRIGGERED
; BASE VECTOR OF TYPE 8
; NORMAL NESTING
; FI COMMAND
; MASK ALL INPUTS
;
; IN ADDITION TO THE INITIALIZATION PROCEDURE PROVIDED BELOW,
; THE APPLICATION SOFTWARE MUST DEVELOP THE NECESSARY INTERRUPT
; SERVICE ROUTINES, STORE THE ADDRESS OF THE INTERRUPT SERVICE
; ROUTINES AT THE APPROPRIATE TYPE ADDRESS, UNMASK THE SUPPORTED
; REQUESTS THROUGH THE ICU MASK REGISTER, AND ENABLE V40
; INTERRUPTS WITH THE ENABLE INTERRUPT INSTRUCTION. AFTER THESE
; STEPS ARE COMPLETE, THE INTERRUPTING PERIPHERALS WILL BE
; SERVICED ON DEMAND.
;
; INPUTS: NONE
; OUTPUTS: INTERRUPT CONTROLLER INITIALIZED
; CALLS: NONE
; DESTROYS: FLAGS
ICU_INIT PROC
; PRESERVE REGISTER CONTENTS
PUSH AX
PUSH DX
; INITIALIZE V40 CONFIG REGS
PUT OPCN,OPCN_INIT
PUT OPSEL,OPSEL_INIT_I
PUT OPHA,OPHA_INIT
PUT IULA,IULA_INIT
; INITIALIZE PIC
PUT ICU_IIW1,ICU_IIW1_INIT
PUT ICU_IIW2,ICU_IIW2_INIT
PUT ICU_IIW4,ICU_IIW4_INIT
4-14