The main uses of NVRAM are: [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/nova-nvram-rtc-for-amstrad-cpc-latest-news-from-pulkotronics/msg199014/#msg199014 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 [[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. UniDOS automatically uses Nova to avoid main memory usage for FatFs and ensure a much better AMSDOS compatibility [https://unidos.cpcscene.net/doku.php?id=en%3Amanuel_n%C5%93uds Source]. It can also help implement [[Albireo]] USB mouse support in old games without having to make space in conventional RAM. <br>
== Ports ==
! rowspan="2" | Address
! colspan="8" | Data
! rowspan="2" | Function
! rowspan="2" | Range (BCD)
|-
! D7 !! D6 !! D5 !! D4 !! D3 !! D2 !! D1 !! D0
|-
| 7FFFh || colspan="4" | 10 Years || colspan="4" | Year || Year || 00-99
|-
| 7FFEh || 0 || 0 || 0 || 10 M. || colspan="4" | Month || Month || 01-12
|-
| 7FFDh || 0 || 0 || colspan="2" | 10 date || colspan="4" | Date || Date || 01-31
|-
| 7FFCh || 0 || FT || CEB || CB || 0 || colspan="3" | Day || Century/<br />day || 00-01/01-07
|-
| 7FFBh || 0 || 0 || colspan="2" | 10 hours || colspan="4" | Hours || Hours || 00-23
|-
| 7FFAh || 0 || colspan="3" | 10 minutes || colspan="4" | Minutes || Minutes || 00-59
|-
| 7FF9h || ST || colspan="3" | 10 seconds || colspan="4" | Seconds || Seconds || 00-59
|-
| 7FF8h || W || R || S || colspan="5" | Calibration || Control ||
|}
*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) <br>
== 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 UniDOS provides an RSX required.command to read or write to the RTC under Basic:
== Links ==[[File:Nova RTC UniDOS RSX.jpg]]
[httpsWithout RSX, accessing the RTC registers can simply be done that way://pulkomandy.github.io/shinra.github.io/nova.html Official website] OUT &FE82,&6B ' Map page 4 at 6000-7FFF POKE &7FF8,&40 ' Put the card in RTC read mode (7FF8-7FFF will stop updating) year = PEEK(&7FFF) month = PEEK(&7FFE) day = PEEK(&7FFD) weekday = PEEK(&7FFC) hour = PEEK(&7FFB) minute = PEEK(&7FFA) second = PEEK(&7FF9) POKE &7FF8,&00 ' Put the card in running mode (7FF8-7FFF start updating every second again) OUT &FE82,&00 <br> == Links ==
*[https://pulkomandy.github.io/shinra.github.io/nova.html Official website]*[[Media:Nova cpc nvram.pdf|SchematicsNova KiCad schematics]]*[https://framagit.org/offset/nova-acepansion Nova ACEpansion] on Framagit*[[Media:M48t35.pdf|Datasheet of the M48T35Y TimeKeeper SRAM chip]]
[[Media:M48t35.pdf|Datasheet of the M48T35 TimeKeeper SRAM chip]]<br>
[[Category:Peripherals]]
[[Category:Hardware]]
[[Category:Memory expansions]]