This is the documentation about the realtime clock of the SYMBiFACE II expansion card.
Ports
- #FD15 (write only) register select
- #FD14 (read/write) read from or write into selected register
Registers
Number Content Values #00 actual second 00-59 (bcd or binary) #01 alarm second 00-59 (bcd or binary) #02 actual minute 00-59 (bcd or binary) #03 alarm minute 00-59 (bcd or binary) #04 actual hour 00-23 (bcd or binary) #05 alarm hour 00-23 (bcd or binary) #06 day of the week ?? #07 day of the month 01-31 (bcd or binary) #08 month 01-12 (bcd or binary) #09 year 00-99 (bcd or binary) #0A status A see below #0B status B see below #0C status C see below #0D status D see below #32 millenium 19 or 20 (bcd or binary) #?? memory all other registers can be freely used as persistent memory
- Note: Register B, Bit 2 allows to select BCD or Binary mode for registers 0..9 (however, this does - of course - not affect RAM location 32h)
Bugs
- Register 32h is meant to contain the Century (not Millenium)
- Register 32h can be only either bcd or binary (not both)
- Register 32h documentation does not specify whether it shall be BCD or Binary
- Register 32h source code implies it shall be binary (not BCD)
- Register 32h source code supports only two centuries (19 and 20) this is probably due to misunderstanding the RTC chip datasheet (which sorts of suggests the 8bit RAM location can contain only two different values, which is total nonsense)
Status registers
- Status A
bit0-3 [not used] interrupt frequency bit4-6 time frequency (must be 010; if not, set it to this value, otherwise the RTC will not work correctly) bit7 1 = time is being updated at the moment, so don't read it!
- Status B
bit0 1 = take summer time into account bit1 0 = 12 hours time format, 1 = 24 hours time format bit2 0 = all values in BCD format, 1 = all values in binary format bit3 1 = [not used] activate rectangle generator bit4 1 = [not used] generate interrupt after time update bit5 1 = [not used] generate interrupt if alarm bit6 1 = [not used] generate periodic interrupt (see status A, bit0-3) bit7 1 = stop time update; set this, during you update the time and reset it after the update!
- Status C
bit4 1 = [not used] interrupt has been generated because of time update (see status B, bit4) bit5 1 = [not used] interrupt has been generated because of alarm (see status B, bit5) bit6 1 = [not used] interrupt has been generated because of periodic (see status B, bit6)
- Status D
bit7 0 = battery is nearly empty, please charge or replace