;*********************************************************
; NAMN		:	WATCHDOG - TEST
; PROGRAMMERARE	:	L-O/IND
; DATUM		:	86-10-14
; MODIFIERAD	:	
;*********************************************************
;
; SYFTE		:	Kontrollera att Watchdog l|ser ut
;
; ANROPAS FR]N	:	tknkoll
;
; SUBRUTINER
;    EXTERNA	:	PUTNUM	Konverterar testresultatet
;				till HEX-tecken och
;				anropar PUTCHR
;			PUTCHR	L{gger tkn i tx-buffert
;
;*********************************************************
;
	FORMLN	42
	NAME	WDOGTEST

	INCLUDE	TMC.H
;
COMND	EQU	'K'			; Kommando = K
;
; VARIABLER:
;
	EXTERN	STATUS
;
; LABLAR:
;
	EXTERN	WA,EX		; Str{ng
	EXTERN	PUTNUM, PUTCHR
;
	INTERN	WDGTST
;
	PAGE
;*********************************************************
;
; Skriv "WA" i RAM
; REPEAT "Dummyloop"
;
; END "Dummyloop" WHEN ett Watchdog-reset borde ha intr{ffat
; Skriv "EX" i RAM
; "PUTCHAR" 'STX'
; "PUTNUM" felmeddelande
; "PUTCHAR" kommando
;
;*********************************************************
;
	RSECT	PROM
;
WDGTST:
	PUSH	AF
	PUSH	HL
;
	LD	HL,(WA) 
	LD	(STATUS),HL	; Skriv "WA"
;

;				
	LD	BC,25000	; V{nta 25 sek p} watchdogreset
OLOOP:	LD	A,156		; inre loopen ca 1 millisek
ILOOP:	DEC	A		; 4 Tstates = 1,6 uS
	JR	NZ,ILOOP	; 12 Tstates = 4,8 uS
	DEC	BC
	LD	A,C
	OR	B
	JR	NZ,OLOOP

	LD	HL,(EX)
	LD	(STATUS),HL	; Skriv "EX"
;
SNDSTX:
	LD	A,STX		; Watchdog l|ste ej ut
	CALL	PUTCHR		; Skicka STX
;
	LD	A,0FFH		; 
	CALL	PUTNUM		; Skicka felmeddelande
SNDCMD:
	LD	A,COMND		; 
	CALL	PUTCHR		; Skicka kommandot
;
	POP	HL
	POP	AF
;
	RET
;
	END
