|
|
|
@ -83,9 +83,11 @@ RP5RTC_INIT: |
|
|
|
RP5RTC_INIT1: |
|
|
|
; ENSURE DEVICE IS RESET AND NOT IN TEST MODE |
|
|
|
LD A, REG_TEST ; SELECT TEST REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
CALL DLY16 |
|
|
|
XOR A |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A ; TURN OFF ALL TEST MODE BITS |
|
|
|
|
|
|
|
LD B, MODE_ALRMST |
|
|
|
@ -94,8 +96,10 @@ RP5RTC_INIT1: |
|
|
|
CALL RP5RTC_ENTIME |
|
|
|
|
|
|
|
LD A, REG_12_24 ; SET TO 24 HOUR CLOCK |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
LD A, 1 |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A |
|
|
|
|
|
|
|
CALL RP5RTC_RDTIM |
|
|
|
@ -179,7 +183,9 @@ RP5RTC_GETBYT: |
|
|
|
LD B, MODE_RAM0 |
|
|
|
CALL RP5RTC_SETMD |
|
|
|
LD A, C ; SELECT NVRAM INDEX |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
EZ80_IO |
|
|
|
IN A, (RP5RTC_DAT) |
|
|
|
AND $0F ; RETRIEVE UNIT NIBBLE |
|
|
|
LD E, A |
|
|
|
@ -187,7 +193,9 @@ RP5RTC_GETBYT: |
|
|
|
LD B, MODE_RAM1 |
|
|
|
CALL RP5RTC_SETMD |
|
|
|
LD A, C ; SELECT NVRAM INDEX |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
EZ80_IO |
|
|
|
IN A, (RP5RTC_DAT) |
|
|
|
AND $0F ; RETRIEVE UNIT NIBBLE |
|
|
|
RLCA |
|
|
|
@ -218,14 +226,17 @@ RP5RTC_SETBYT: |
|
|
|
LD B, MODE_RAM0 |
|
|
|
CALL RP5RTC_SETMD |
|
|
|
LD A, C ; SELECT NVRAM INDEX |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
LD A, E |
|
|
|
AND $0F |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A |
|
|
|
|
|
|
|
LD B, MODE_RAM1 |
|
|
|
CALL RP5RTC_SETMD |
|
|
|
LD A, C ; SELECT NVRAM INDEX |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
LD A, E |
|
|
|
AND $F0 |
|
|
|
@ -233,6 +244,7 @@ RP5RTC_SETBYT: |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A |
|
|
|
|
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
@ -374,11 +386,14 @@ RP5RTC_RDTIM: |
|
|
|
; MODE IN B (MODE_TIMEST, MODE_ALRMST, MODE_RAM0, MODE_RAM1) |
|
|
|
RP5RTC_SETMD: |
|
|
|
LD A, REG_MODE ; SELECT MODE REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
|
|
|
|
EZ80_IO |
|
|
|
IN A, (RP5RTC_DAT) |
|
|
|
AND MD_TIME | MD_ALRM |
|
|
|
OR B |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A ; ASSIGN MODE |
|
|
|
RET |
|
|
|
|
|
|
|
@ -391,14 +406,18 @@ RP5RTC_ENTIME: |
|
|
|
; REGISTER IN B |
|
|
|
RP5RTC_RDVL: |
|
|
|
LD A, B ; SELECT UNIT REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
EZ80_IO |
|
|
|
IN A, (RP5RTC_DAT) |
|
|
|
AND $0F ; RETRIEVE UNIT NIBBLE |
|
|
|
LD L, A |
|
|
|
|
|
|
|
INC B |
|
|
|
LD A, B ; SELECT TENS REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
EZ80_IO |
|
|
|
IN A, (RP5RTC_DAT) |
|
|
|
AND $0F |
|
|
|
RLCA |
|
|
|
@ -416,13 +435,16 @@ RP5RTC_RDVL: |
|
|
|
RP5RTC_WRVL: |
|
|
|
LD C, A |
|
|
|
LD A, B ; SELECT UNIT REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
|
|
|
|
LD A, C ; WRITE C (ONLY LOW NIBBLE WILL BE USED) |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A |
|
|
|
|
|
|
|
INC B |
|
|
|
LD A, B ; SELECT TENS REGISTER |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_REG), A |
|
|
|
|
|
|
|
LD A, C ; SHIFT TOP NIBBLE TO LOW NIBBLE |
|
|
|
@ -430,6 +452,7 @@ RP5RTC_WRVL: |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
EZ80_IO |
|
|
|
OUT (RP5RTC_DAT), A ; WRITE IT |
|
|
|
|
|
|
|
RET |
|
|
|
|