MCPOS - Micro Channel POS and LED Display Driver for Windows NT

MCPNT009.ZIP MCPOS, QUMC, and WriteLED Release 00.09 (11 Feb 2003)
WLDN009C.ZIP WriteLED Source code for DOS/NT

Content by Unal Z (original mirrored HERE). Edited by Major Tom.


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 Micro Channel 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.

Release Notes

The 00.09 package is for Windows NT 4.0 systems only. MCPOS Beta 00.08 users should upgrade and update their copies of MCPOS, QUMC and WriteLED.

Package contents:

  • MCPOS Beta 00.09 - Micro Channel POS and LED Display Windows NT driver
  • QUMC Beta 00.13 - identify installed Micro Channel adapters
  • WriteLED Beta 00.09 - write to the LED display output
  • Regini - system registry utility
  • Installation and operating instructions for Windows NT 4.0.
  • Sample sources to demonstrate the MCPOS API for user-mode programs.

Port I/O

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 behavior, try to start a second instance of WriteLED in another window and observe how the second WriteLED instance cannot open the MCPOS device.


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 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:

  1. Open a command-line (console) window and create a directory mcpos. Unpack the self-extract or unzip the package in this directory.
  2. Copy the MCPOS driver file mcaport.sys to the C:\WINNT\system32\drivers directory of your Windows NT installation (replace C with the drive letter of your installation).
  3. Run regini mcaport.ini to manually registrate the driver in the system registry. The MCPOS default settings are for manual driver loading. Once you have registrated the driver, you will not need any more to run regini.
  4. Shutdown and reboot to activate the system registry changes.
  5. Open a command-line (console) window and change to the mcpos directory. On the command line, enter net start mcpos. You should get a system message announcing the start of the driver.
  6. Run QUMC by entering qumcnt on the command line. To be able to see and scroll the QUMC output in its entirety, set aside a DOS window buffer of about 200 lines (click on the icon of the DOS console window and select Properties, then Screen).
  7. Run WriteLED by entering writeled on the command line. Run writeled -h to get a help information about command line options.
  8. If you wish to unload the driver enter net stop mcpos. You can enter the net start / net stop commands from any other window or directory.
  9. When you have verified that MCPOS works correctly on your system, you can copy QUMC and WriteLED to your favorite programs directory.
  10. If you wish that MCPOS be automatically loaded at boot time, select System-Settings-Devices from the Start menu. Scroll down to the mcpos entry in the device list and click on the Start Type button (or similar) in the menu on the right. Check the desired start type.

Known Problems

MCPOS has been tested at this moment only on Micro Channel computers (PS/2 9577, 9595). The behaviour of the driver is yet unknown on non-Micro Channel machines.

  • User-mode programs requesting the POS Query service of MCPOS may fail to identify certain onboard components, when these cannot be identified through the normal POS query procedure. The onboard SCSI controller on IBM PS/2 Model 9577 is an example for such a component.
  • Writing to the LED display of IBM Server 720 fails because of a different display panel handling.

Content created and/or collected by:
Louis F. Ohland, Peter H. Wendt, David L. Beem, William R. Walsh, Tatsuo Sunagawa, Tomáš Slavotínek, Jim Shorney, Tim N. Clarke, Kevin Bowling, and many others.

Ardent Tool of Capitalism is maintained by Tomáš Slavotínek.
Last update: 08 May 2024 - Changelog | About | Legal & Contact