Difference between revisions of "Nova"
(→Ports) |
|||
Line 8: | Line 8: | ||
*For UniDOS, the goal is to store the configuration of UniDOS in a single place even if you have many storage devices connected to your CPC. Since the card also provides a realtime clock, UniDOS will be able to set the correct file dates in the filesystem. | *For UniDOS, the goal is to store the configuration of UniDOS in a single place even if you have many storage devices connected to your CPC. Since the card also provides a realtime clock, UniDOS will be able to set the correct file dates in the filesystem. | ||
*For development tools: here the idea is precisely to NOT be [[Standard Memory Expansions|dktronic's compatible]]. You can load some code into the RAM and have it available without interference on the CPC state. Very useful if you want to debug some other code. | *For development tools: here the idea is precisely to NOT be [[Standard Memory Expansions|dktronic's compatible]]. You can load some code into the RAM and have it available without interference on the CPC state. Very useful if you want to debug some other code. | ||
+ | |||
+ | <br> | ||
== Ports == | == Ports == | ||
Line 57: | Line 59: | ||
*R = READ bit (Setting the READ bit to a '1' halts updates to the registers) | *R = READ bit (Setting the READ bit to a '1' halts updates to the registers) | ||
*W = WRITE bit (Setting the WRITE bit to a '1' halts updates to the registers. The user can then load them with the correct day, date, and time data in 24-hour BCD format. Resetting the WRITE bit to a '0' then transfers the values of all registers to the actual counters and allows normal operation to resume) | *W = WRITE bit (Setting the WRITE bit to a '1' halts updates to the registers. The user can then load them with the correct day, date, and time data in 24-hour BCD format. Resetting the WRITE bit to a '0' then transfers the values of all registers to the actual counters and allows normal operation to resume) | ||
+ | |||
+ | <br> | ||
== Software == | == Software == | ||
Line 63: | Line 67: | ||
And it can be accessed directly from BASIC. No RSX required. | And it can be accessed directly from BASIC. No RSX required. | ||
+ | |||
+ | <br> | ||
== Links == | == Links == | ||
Line 71: | Line 77: | ||
[[Media:M48t35.pdf|Datasheet of the M48T35 TimeKeeper SRAM chip]] | [[Media:M48t35.pdf|Datasheet of the M48T35 TimeKeeper SRAM chip]] | ||
+ | |||
+ | <br> | ||
[[Category:Peripherals]] | [[Category:Peripherals]] | ||
[[Category:Hardware]] | [[Category:Hardware]] | ||
[[Category:Memory expansions]] | [[Category:Memory expansions]] |
Revision as of 00:42, 5 April 2025
Non-volatile RAM and Real Time Clock (RTC) for Amstrad CPC. This works like RAM, but the content is not erased when the computer is off.
All Nova cards come with the 32KB chip. Source
The main uses of NVRAM are: Source
- For UniDOS, the goal is to store the configuration of UniDOS in a single place even if you have many storage devices connected to your CPC. Since the card also provides a realtime clock, UniDOS will be able to set the correct file dates in the filesystem.
- For development tools: here the idea is precisely to NOT be dktronic's compatible. You can load some code into the RAM and have it available without interference on the CPC state. Very useful if you want to debug some other code.
Ports
The interface uses only one port (&FE82) to map the NVRAM in and out. It is possible to map it at any address multiple of &2000.
The four higher bits of the byte sent to port &FE82 determine the base address: 0 = &0000, 2 = &2000, 4 = &4000, ..., E = &E000.
The NVRAM, when it is enabled, masks 8K of RAM or ROM and replaces it with its own contents. Four NVRAM pages of 8K are available.
The four lower bits of the byte sent to port &FE82 selects the page: 8 = page0, 9 = page1, A = page2, B = page3, the other values disable the mapping.
In the fourth page, the last 8 bytes are not normal RAM, but can be used to read and write the time from the realtime clock.
Assuming the interface is mapped at 6000-7FFF:
Address | Data | Range (BCD) | |||||||
---|---|---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
7FFFh | 10 Years | Year | 00-99 | ||||||
7FFEh | 0 | 0 | 0 | 10 M. | Month | 01-12 | |||
7FFDh | 0 | 0 | 10 date | Date | 01-31 | ||||
7FFCh | 0 | FT | CEB | CB | 0 | Day | 00-01/01-07 | ||
7FFBh | 0 | 0 | 10 hours | Hours | 00-23 | ||||
7FFAh | 0 | 10 minutes | Minutes | 00-59 | |||||
7FF9h | ST | 10 seconds | Seconds | 00-59 | |||||
7FF8h | W | R | S | Calibration |
Legend:
- CB = CENTURY bit
- CEB = CENTURY ENABLE bit (when CEB is set to '1,' CB will toggle from '0' to '1' or from '1' to '0' at the turn of the century)
- FT = FREQUENCY TEST bit (must be set to '0' for normal operation)
- 0 = Must be set to '0'
- ST = STOP bit ('1' stops the oscillator)
- Calibration (The oscillation rate of any crystal changes with temperature. The accuracy is greatly improved by properly setting the calibration bits)
- S = SIGN bit ('1' indicates positive calibration, '0' indicates negative calibration)
- R = READ bit (Setting the READ bit to a '1' halts updates to the registers)
- W = WRITE bit (Setting the WRITE bit to a '1' halts updates to the registers. The user can then load them with the correct day, date, and time data in 24-hour BCD format. Resetting the WRITE bit to a '0' then transfers the values of all registers to the actual counters and allows normal operation to resume)
Software
The Nova RTC is supported by all the big guns: FutureOS, SymbOS, UniDOS, HDCPM, etc..
And it can be accessed directly from BASIC. No RSX required.
Links
Datasheet of the M48T35 TimeKeeper SRAM chip