Released Februar 2003
MCPOS is a kernel-mode Windows NT driver providing port I/O services for user-mode programs to query the Programmable Option Selects (POS) registers of MicroChannel machines and operate the LED display of IBM PS/2 Server 95.
MCPOS is installed as a Windows NT system device and can be started manually or loaded at system boot time. The driver has been developed and tested under Windows NT 4.0 SP6. No operability statements can be made for earlier NT versions.
• Download MCPOS.
MCPOS has been designed to directly manipulate the system ports, despite the fact that Windows NT provides a device level system call (HAL) to retrieve POS data. The port I/O method has been chosen to allow to retrieve extended POS data since the Windows NT call ignores subaddressing. The port I/O method allows us to read the planar ID as well.
MCPOS synchronizes (serializes) user-mode device requests to eliminate possible interference. Two or more threads cannot write simultaneously to the LED display or attempt to query POS data. To test this behaviour, try to start a second instance of WriteLED in another window and observe how the second WriteLED instance cannot open the MCPOS device.
MCPOS POS API
MCPOS provides a service to retrieve the POS bytes for a given slot. System slots are numbered from 1 to 8. MCPOS assigns a slot number of 0 to the planar. To query a desired slot or the planar ID, it suffices to pass the slot number. MCPOS fills in the output structure with the POS bytes in the range 100h - 107h resp. with more bytes if extended POS bytes have been retrieved.
For example, the generic call QuerySlot(2, POSBytes) will retrieve the POS bytes for slot 2 and place the result in the array POSBytes. The application interprets the returned POS bytes.
MCPOS LED Display API
MCPOS provides a service to write a string to the LED display. The cells of the LED display are logically numbered from 1 to 8, starting with the leftmost cell. At most 8 characters can be written to the display. Writing begins from the indicated LED cell position and continues for the desired number of characters.
For example, a generic call such as WriteToLEDDisplay("Hi Everybody", 3, 6) will produce **Hi Eve* on the display, where * indicates any previous character on the display. Writing begins from cell number 3 and only the first 6 characters of the input string Hi Everybody will be written as indicated by the last argument.
Driver Installation Instructions
MCPOS is installed as a Windows NT system device and can be started manually or loaded at system boot time, depending on the settings in the system registry. The driver has been developed and tested under Windows NT 4.0. At this moment, no operability statements can be made for other Windows NT versions.
Before you proceed with the driver test, you might want to consider performing the tests in an individual hardware profile. Create a new hardware profile by copying your existing profile, then shutdown and reboot with the new test hardware profile.
Follow the steps below for a quick and easy installation:
MCPOS has been tested at this moment only on MicroChannel computers (PS/2 9577, 9595). The behaviour of the driver is yet unknown on non-MicroChannel machines.
Please report any problems or bugs.