;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; HF-9037 TEST
; RTC VT82885
;
;       PC0     CS/
;       PC1     AS
;       PC2     WR/
;       PC3     RD/
;       PC4     RESET/
;       PB0-PB7 AD0-AD7
;
; INICJUJE RTC I LICZY OD 00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

include 'HAVR_INS30.ASM'

RESET		equ	0xED
DESELECT	equ	0xFD
IDLE		equ	0xFC
LATCH_ADR	equ	0xFE
READ		equ	0xF4
WRITE		equ	0xF8


ADR	ENTRY_POINT
	START

INIT:
	LDA	RESET
	WPC
	RPB
	DEL500M
	LDA	DESELECT
	WPC
	LDA	0x0A		; REG A
	LDB	0x20		; START COUNTING
	CALL	WRITE_BYTE
	LDA	0x0B		; REG B
	LDB	0x02		; FORMAT BCD
	CALL	WRITE_BYTE
	LDA	0x04		; HRS
	LDB	0x00		;
	CALL	WRITE_BYTE
	LDA	0x02		; MIN
	LDB	0x00		;
	CALL	WRITE_BYTE
	LDA	0x00		; SEC
	LDB	0x00		;
	CALL	WRITE_BYTE

READ_LOOP:
	LDA	0x0A		; REG A
	CALL	READ_BYTE
	PHB
	PPA
	LDB	0x80		; UIP bit
	AND
	CPBNE	0, READ_LOOP	; UIP
	LDA	0x04		; HRS
	CALL	READ_BYTE
	PHB
	PPA
	DSP
	LDA	0x02		; MIN
	CALL	READ_BYTE
	PHB
	PPA
	DSP
	DEL1
	JMP	READ_LOOP



; WE: A - ADRES, B - DATA
WRITE_BYTE:
	WPB
	LDA	IDLE
	WPC
	LDA	LATCH_ADR
	WPC
	LDA	IDLE
	WPC
	PHB
	PPA
	WPB
	LDA	WRITE	; WR/
	WPC
	LDA	DESELECT
	WPC
	RET


; WE: A - ADRES, WY: B -DATA
READ_BYTE:
	WPB
	LDA	IDLE
	WPC
	LDA	LATCH_ADR
	WPC
	LDA	IDLE
	WPC
	PHB
	PPA
	WPB
	LDA	READ	; RD/
	WPC
	RPB
	PHA
	PPB
	LDA	DESELECT
	WPC
	RET



	INFO_SECTION

ADR	FILE_NAME
	db 'HF9037 TEST',0

	FILE_END

