Difference between revisions of "SYMBiFACE II:Realtime clock"

Phi2x (Talk | contribs)
(See also)
Phi2x (Talk | contribs)
(Software)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
This is the documentation about the '''realtime clock''' of the [[SYMBiFACE II]] expansion card.
 
This is the documentation about the '''realtime clock''' of the [[SYMBiFACE II]] expansion card.
  
My (arnoldemu's) SYMBiFACE II uses a Dallas DS12887A. Documents claim this has 128 bytes RAM. Century register doesn't exist. It's ram inside the device.
+
SYMBiFACE II uses a Dallas DS12887A RTC chip. [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/real-time-clock-board/msg249380/#msg249380 Source]
The picture from the Symbos website shows a DS1287A. This has 50 bytes RAM. Century register doesn't exist.
+
  
Both are [[PC compatible RTC chip]] and are programmed in the same way.
+
This chip is a modernized version of the MC146818, the original RTC chip used in the IBM PC/AT. It includes a built-in battery and crystal. It is a [[PC compatible RTC chip]] and is programmed in the same way.
  
Therefore do not rely on a specific amount of RAM inside the RTC chip.
+
It has 14 bytes of registers and 114 bytes of battery-backed static RAM. Century register doesn't exist on this particular model. The chip also provides time-of-day alarm, three maskable interrupts with a common interrupt output, and a programmable square wave output.
 +
 
 +
It has hardcoded daylight saving adjustment, 24-hour and 12-hour format modes, binary and BCD format modes.
  
 
== Ports ==
 
== Ports ==
Line 16: Line 17:
 
<pre>
 
<pre>
 
Number  Content            Values
 
Number  Content            Values
#00    actual second      00-59 (bcd or binary)
+
#00    actual second      00-59
#01    alarm second        00-59 (bcd or binary)
+
#01    alarm second        00-59
#02    actual minute      00-59 (bcd or binary)
+
#02    actual minute      00-59
#03    alarm minute        00-59 (bcd or binary)
+
#03    alarm minute        00-59
#04    actual hour        00-23 (bcd or binary)
+
#04    actual hour        00-23
#05    alarm hour          00-23 (bcd or binary)
+
#05    alarm hour          00-23
#06    day of the week    ??
+
#06    day of the week    01-07
#07    day of the month    01-31 (bcd or binary)
+
#07    day of the month    01-31
#08    month              01-12 (bcd or binary)
+
#08    month              01-12
#09    year                00-99 (bcd or binary)
+
#09    year                00-99
 
#0A    status A            see below
 
#0A    status A            see below
 
#0B    status B            see below
 
#0B    status B            see below
 
#0C    status C            see below
 
#0C    status C            see below
 
#0D    status D            see below
 
#0D    status D            see below
#32    millennium          19 or 20 (bcd or binary)
+
#??    memory              all other registers from #0E to #7F can be freely used as persistent memory
#??    memory              all other registers can be freely used as persistent memory
+
 
</pre>
 
</pre>
* 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)
+
Note: Register B, Bit 2 allows to select BCD or Binary mode for registers 0..9
 
+
== Bugs ==
+
 
+
* Register 32h is meant to contain the Century (not Millennium)
+
* 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 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)
+
* Whether other RAM locations are reserved for whatever purpose (like info about connected 40/80 track drives) is unknown. See note 1 please.
+
* The RAM capacity is 50 bytes: register 0Eh..3Fh (although SYMBiFACE II is incorrectly advertised to have 128 byte persistent RAM)
+
  
 
Note 1: In the discmag [[Future View IV]] a proposal is given how to use the non volatile RAM of the SYMBiFACE II and the CPC-Booster+.
 
Note 1: In the discmag [[Future View IV]] a proposal is given how to use the non volatile RAM of the SYMBiFACE II and the CPC-Booster+.
Line 80: Line 71:
  
 
== Software ==
 
== Software ==
The RTC of the SYMBiFACE II is supported by
+
The RTC of the SYMBiFACE II is supported by [[FutureOS]], [[SymbOS]], [[HDCPM]].
* [[FutureOS]] (binary and BCD mode)
+
* [[SymbOS]] (binary mode)
+
 
+
  
 
== See also ==
 
== See also ==

Latest revision as of 06:18, 4 April 2025

This is the documentation about the realtime clock of the SYMBiFACE II expansion card.

SYMBiFACE II uses a Dallas DS12887A RTC chip. Source

This chip is a modernized version of the MC146818, the original RTC chip used in the IBM PC/AT. It includes a built-in battery and crystal. It is a PC compatible RTC chip and is programmed in the same way.

It has 14 bytes of registers and 114 bytes of battery-backed static RAM. Century register doesn't exist on this particular model. The chip also provides time-of-day alarm, three maskable interrupts with a common interrupt output, and a programmable square wave output.

It has hardcoded daylight saving adjustment, 24-hour and 12-hour format modes, binary and BCD format modes.

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
#01     alarm second        00-59
#02     actual minute       00-59
#03     alarm minute        00-59
#04     actual hour         00-23
#05     alarm hour          00-23
#06     day of the week     01-07
#07     day of the month    01-31
#08     month               01-12
#09     year                00-99
#0A     status A            see below
#0B     status B            see below
#0C     status C            see below
#0D     status D            see below
#??     memory              all other registers from #0E to #7F can be freely used as persistent memory

Note: Register B, Bit 2 allows to select BCD or Binary mode for registers 0..9

Note 1: In the discmag Future View IV a proposal is given how to use the non volatile RAM of the SYMBiFACE II and the CPC-Booster+.

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

Software

The RTC of the SYMBiFACE II is supported by FutureOS, SymbOS, HDCPM.

See also