Specifications

Application Examples
TYPE_1 DD ? ; SINGLE STEP (NOT USED)
TYPE_2 DD ? ; NON-MASKABLE INTERRUPT
INT_POINT ENDS
PROCEDURES
CODE SEGMENT PARA
ASSUME CS:CODE, SS:STACK, DS:DATA, ES:DUALPORT
; THE WATCHDOG TIMER GENERATES A NON-MASKABLE INTERRUPT IF ARMED
; AND ALLOWED TO TIME OUT. THE TASKS PERFORMED BY THE SERVICE
; ROUTINE ARE VERY APPLICATION SPECIFIC. THIS EXAMPLE SIMPLY
; SETS A FLAG IN DUAL PORT RAM AND LOOPS UNTIL RESET. SINCE THE
; SERVICE ROUTINE DOES NOT STROBE THE WATCHDOG TIMER, THE
; SECOND STAGE WILL TIME OUT AND GENERATE A LOCAL RESET. THE
; ZT 8832 STARTUP CODE (NOT SHOWN HERE) CAN TEST THE WATCHDOG
; FLAG TO DETERMINE WHETHER OR NOT A WATCHDOG TIMEOUT HAS
; OCCURED, AND CAN THEN TAKE THE NECESSARY ACTION.
;
; INPUTS: NON-MASKABLE INTERRUPT REQUEST
; OUTPUTS: WATCHDOG_FLAG SET
; CALLS: NONE
; DESTROYS: ALL
WATCHDOG_NMI PROC
MOV AX,SEG DATA
MOV DS,AX
MOV SI,OFFSET WATCHDOG_FLAG
MOV AX,SEG DUALPORT
MOV ES,AX
MOV DI,OFFSET WATCHDOG_STAT
CLD
MOV CX,16
REP MOVSB
;LP1: JMP LP1
WATCHDOG_NMI ENDP
; THE FOLLOWING PROCEDURE STROBES THE WATCHDOG TIMER. THIS
; PROCEDURE MUST BE CALLED BY THE MAIN PROCEDURE AT A PERIODIC
; RATE LESS THAN THE STAGE 1 DELAY OF THE WATCHDOG TIMER. THE
; DEFAULT STAGE 1 DELAY IS 60 MILLISECONDS MINIMUM.
;
; INPUTS: ASSUMES THE PARALLEL PORTS ARE ENABLED
; OUTPUTS: STROBES THE WATCHDOG TIMER
; CALLS: NONE
; DESTROYS: FLAGS
WATCHDOG_STB PROC
PUSH AX ; PRESERVE REGISTER STATUS
PUSH DX
MOV DX,PAR_PORT_2 ; WRITE WATCHDOG BIT LOW
IN AL,DX
4-21