Virtual CMOS Device Driver

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:

  • NMI disable

  • CMOS/RTC device address selection.

    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.


    [Back: VBIOS Device Driver]
    [Next: Virtual DMA Device Driver]