The virtual CMOS device driver VCMOS.SYS provides support for virtualization of the CMOS battery backed-up RAM, the real time clock (RTC) and the non-maskable interrupt (NMI) disable logic. It provides virtual access to CMOS addresses and data latches through virtual I/O ports.
CMOS Memory Access
The CMOS portion of the CMOS/RTC may be read or written. Virtual CMOS memory is initialized to the contents of the physical CMOS memory upon VDM initialization. Values written to CMOS memory by DOS applications are written in a buffer local to the VDM. Unlike the physical CMOS memory, however, the contents of the virtual CMOS buffer are lost when the VDM is terminated.
I/O Port Support
The virtual CMOS device driver component monitors all accesses to its two VDM I/O ports. The two ports are a write-only address latch and a read/write data latch. The address latch port has two functions:
The data latch is a register for holding a byte being transferred to or from the CMOS/RTC device.
NMI Disable
The NMI-disable portion of the address latch may be set or reset by a DOS application, but changes to enable or disable NMI are otherwise ignored by VCMOS.
Real Time Clock and Interrupt Access
The real time clock consists of a time-of-day clock, an alarm interrupt, and a periodic interrupt. Accesses to the real time clock to change the time of day, the timing mode or to set an alarm or periodic interrupt are disallowed. Thus, the CMOS/RTC registers related to the real time clock are supported for read-only access.
Since interrupts can only be supported through write access to the ports, real time clock interrupts are not supported by VCMOS.