I read in some forums that some 286 boards support UMBs and thus can load drivers and TSRs into the upper 384 KiB of conventional memory.

What chipsets support this and do I need special drivers?


There are quite a few 286 chipsets which can be programmed to provide shadow RAM in the upper memory area in such a way that it can be re-used as UMBs. The most comprehensive list I know of is the list given in the CHIPSET.DOC file in The Last Byte Memory Manager. This includes the Suntac ST62C202 and ST62C251, which can provide 128 KiB of shadow RAM (at most half of which can realistically be used as UMBs) alongside the 128 KiB used for EMS.

To make use of that memory you will need a device driver of some kind, either a chipset-specific driver, or a memory manager which supports your chipset. You can find some chipset-specific drivers here, including EMS drivers for Suntac chipsets, and UMM drivers for the C & T NEAT chipsets which were perhaps the most popular UMM-capable 286 chipsets, or at least the best-known (but with a NEAT chipset you might as well use QRAM).

  • I will check last byte. If it indeed supports Suntac it might be an option for me. – Arne Sep 30 '18 at 11:07

In order to support UMBs without needing to use processor-based address remapping (which is only available from the 80386 onwards and is used, for example, by EMM386.SYS), you need either a motherboard with integrated support for EMS memory, or an add-on board that provides it.

There were a number of chipsets available that had this feature, e.g. the NEAT CS8221 chipset, as did the popular Suntac HT-286.

A variety of EMS add-on boards are available, e.g. this one.

Drivers were required to make use of this feature, and I believe would have been specific to the board in use. If you have an EMS driver that doesn't support UMBs, you can apparently use a piece of software called "The Last Byte Memory Manager" (already linked in Stephen Kitt's answer) that, if it doesn't have specific capability of working with your hardware, will use your existing EMS driver to provide a UMB (although note that doing so makes EMS unavailable for other applications).

  • Hm, your examples only provide EMS, rather than UMBs, right? – Arne Sep 30 '18 at 8:33
  • They're basically the same thing at a hardware level - EMS provides UMBs and an interface to switch different memory into them. The difference is at a driver level - the driver needs to set up the block and hand it over to DOS to control, rather than holding on to it. – Jules Sep 30 '18 at 8:42
  • Ah, I see. So in theory one could write a driver/hack the existing driver for my Suntac 286 board. It seems that the Suntac driver only provides EMS. – Arne Sep 30 '18 at 8:47
  • Yes, if the hardware is documented. – Jules Sep 30 '18 at 9:00
  • 1
    ... Or, it would seem, by using a driver that talks to the existing EMS driver. See updated answer. – Jules Sep 30 '18 at 17:51

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.