Changes

Jump to: navigation, search

SYMBiFACE II:Realtime clock

1,705 bytes added, 14:12, 5 April 2019
/* Bugs */
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.
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.
 
Therefore do not rely on a specific amount of RAM inside the RTC chip.
== Ports ==
* #FD15 (read write only) register select
* #FD14 (read/write) read from or write into selected register
 
== Registers ==
#0C status C see below
#0D status D see below
#32 millenium millennium 19 or 20 (bcd or binary)
#?? memory all other registers can be freely used as persistent memory
</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)
== 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+.
== Status registers ==
* '''Status A'''
 
<pre>
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 beeing being updated at the moment, so don't read it!
</pre>
* '''Status B'''
 
<pre>
bit0 1 = take summer time into account
* '''Status C'''
 
<pre>
bit4 1 = [not used] interrupt has been generated because of time update (see status B, bit4)
* '''Status D'''
 
<pre>
bit7 0 = battery is nearly empty, please charge or replace
</pre>
 
== Software ==
The RTC of the SYMBiFACE II is supported by
* [[FutureOS]] (binary and BCD mode)
* [[SymbOS]] (binary mode)
 
== See also ==
* [[SYMBiFACE II:RTC routines|Routines for using the RTC]]
* [[Programming:SYMBiFACE_II|SYMBiFACE II documentations]]
 
[[Category:FutureOS]]
[[Category:Hardware]]
[[Category:Peripherals]]
[[Category:Programming]]
2,002
edits