;*********************************************************
; NAMN		:	SET NOVRAM
; PROGRAMMERARE	:	L-O/IND
; DATUM		:	86-10-14
; MODIFIERAD	:	
;*********************************************************
;
; SYFTE		:	Fylla NOVRAM
;
; ANROPAS FR]N	:	tknkoll
;
; SUBRUTINER
;    EXTERNA	:	PUTCHR	L{gger tkn i tx-buffert
;
;*********************************************************
;
	FORMLN	42
	NAME	SETNOV

	INCLUDE	TMC.H
;
COMND	EQU	'M'		; Kommando = M
;
; LABLAR:
;
	EXTERN	PUTCHR
;
	INTERN	SETNOV
;
	PAGE
;*********************************************************
;
;	Adress = f|rsta i NOVRAM
;	R{knare = 1
;	Skriv r{knare i adress
;	REPEAT "Skriv"
;	    \ka adress
;	    CASE "R{knare"
;	        WHEN r{knare < 15
;	            \ka r{knare
;	        OTHERWISE
;	            R{knare = 1
;	    END "R{knare"
;	    Skriv r{knare i adress
;	END "Skriv" WHEN adress = sista i NOVRAM
;	Kopiera till PROM-delen
;	"PUTCHAR" 'STX'
;	"PUTCHAR" kommando
;
;*********************************************************
;
	RSECT	PROM
;
SETNOV:
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;
	LD	BC,NOVSTA	; F|rsta adr i NOVRAM
	LD	DE,NOVEND	; Sista adr i NOVRAM
;
	LD	A,1		; R{knare
	LD	(BC),A		; Skriv
LOOP:
	INC	BC		; N{sta adr
	CP	15		; R{knare < 15?
	JP	NC,SETCNT	; Nej
;
	INC	A		; Ja, |ka r{knare
	JP	WRITE
SETCNT:
	LD	A,1		; R{knare = 1
WRITE:
	LD	(BC),A		; Skriv
	LD	H,B
	LD	L,C
	SCF
	CCF
	SBC	HL,DE		; Sista adr i NOVRAM?
	JP	NZ,LOOP		; Nej
;
	LD	A,01H
	OUT	(NOVIN),A	; Kopiera till PROM-del
;
	LD	A,STX		; 
	CALL	PUTCHR		; Skicka STX
;
	LD	A,COMND		;
	CALL	PUTCHR		; Skicka kommandot
;
	LD	B,15		; V{nta 15 millisek
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	B
	JR	NZ,OLOOP
;
	POP	HL
	POP	DE
	POP	BC
	POP	AF
;
	RET
;
	END
