CMOS: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
Fix unfinished addition and drop a confusing sentence that conflicts with the first sentence of the page. |
m Bot: Replace deprecated source tag with syntaxhighlight |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 37:
as follows:
* <tt>outb (0x70, (NMI_disable_bit << 7) | (selected CMOS register number));</tt>
Once a register is selected, you either read the value of that register on Port 0x71 (with inb or an equivalent
function), or you write a new value to that register -- also on Port 0x71 (with outb, for example):
* <tt>val_8bit = inb (0x71);</tt>
Note1: Reading or writing Port 0x71 seems to default the "selected register" back to 0xD. So you need to
Line 207:
=== Reading from the CMOS ===
<
ReadFromCMOS (unsigned char array [])
{
Line 229:
}
}
</syntaxhighlight>
=== Writing to the CMOS ===
<
WriteTOCMOS(unsigned char array[])
{
Line 252:
}
}
</syntaxhighlight>
=== Reading All RTC Time and Date Registers ===
<
#define CURRENT_YEAR
int century_register = 0x00; // Set by ACPI table parsing code if possible
Line 364:
}
}
</syntaxhighlight>
== See Also ==
* [[RTC]]
== External Links ==
* [https://web.archive.org/web/20111209041013/http://www-ivs.cs.uni-magdeburg.de/~zbrog/asm/cmos.html Old CMOS Map]
* [http://www.bioscentral.com/misc/cmosmap.htm Better CMOS Map]
Line 372 ⟶ 375:
* [http://web.stanford.edu/class/cs140/projects/pintos/specs/mc146818a.pdf MC146818A REAL-TIME CLOCK PLUS RAM (RTC)]
* [http://www.bitsavers.org/pdf/ibm/pc/ps2/PS2_Model_50_Technical_Reference_May88.pdf IBM PS/2 Technical Reference]
* [https://www.singlix.com/trdos/archive/pdf_archive/real-time-clock-nmi-enable-paper.pdf Intel Application Note: Accessing the Real Time Clock Registers and NMI Enable Bit]
[[Category:X86]]
|