VOGONS


286 motherboard

Topic actions

Reply 20 of 31, by Lotosdrache

User metadata
Rank Newbie
Rank
Newbie

Thanks a lot, Malvineous!

I mostly play old DOS games on this machine and ran out of conventional memory for some titles especially when I run them out of Windows 3.0
I already tried HT12MM.SYS and EMM286.SYS but they didn't give me access to UMB.
Today I tested UMB_DRVR.SYS (v5.3x) but it didn't initialize as I use DR DOS 5 (hopefully 6 in some days) whereupon it claimed to require MS-DOS 5 (f..k M$ 😠 ).

Maybe megatron-uk can tell us which DOS he has installed and post relevant lines out of his config.sys/autoexec.bat files and give us a link to or send us a copy of the memory manager he uses 😎

Reply 21 of 31, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie

Probably the most reliable way to do this is to install something like the Lo Tech RAM board which can be configured to provide UMBs at all unused memory locations. Allowing for video RAM/ROM at A000 to C800, plus ROM at F000, that leaves you with C800-F000 (160kB) available for UMBs. If you have a 16kB EMS window from the HT12's hardware EMS then that solution will give you up to 144kB of UMBs, plus allow the HT12 hardware EMS to be fully functional as well.

EDIT: Sorry, the Lo-Tech board only provides memory in 64kB blocks, so you can put the HT12 EMS page frame at C800, then place Lo-Tech-provided UMBs at D000 and E000, giving 128kB of UMBs. The driver seems to want 64kB for the EMS page frame, yet it only seems to be 16kB in size - so you might have to do some investigation. If the EMS page frame has to be 64kB in size then the Lo-Tech board would only be able to give you 64kB UMB.

Reply 22 of 31, by Robin4

User metadata
Rank l33t
Rank
l33t
Malvineous wrote:

I also have a HT12 286, but I have not found a UMB driver. HT12MM.SYS will get you hardware EMS. There are other drivers that use the EMS window to give you 64kB of UMB instead, but you lose EMS in that case (so e.g. no digital audio in Monster Bash, which requires EMS.)

As far as I could find, you can't get more than 64kB of UMB with the HT12 chipset, and you get no UMB if you want hardware EMS.

I believe one memory manager provides 64kB UMB then takes 16kB of that to provide "software EMS", leaving you with 48kB of UMB and EMS support, however it's software EMS which is implemented by copying memory so it's a bit slow.

Do you maybe know how the UMB driver file is called? Maybe i can try to look for it when i have some spare time left.

~ At least it can do black and white~

Reply 23 of 31, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie

I have seen references to ht12-umb.lzh but I was not able to find this file.

"The Last Byte" memory manager has HT12 support, making the EMS page frame available as a 64kB UMB. I haven't tested this since I want EMS support, and this solution disables EMS.

UMB_DRVR.SYS (by Christopher Blum) uses XMS to simulate EMS by copying memory around. It also claims in version 5.22 that an upcoming version will support the HT12 chipset to provide a UMB, however I could not find any newer version than this.

Reply 24 of 31, by Lotosdrache

User metadata
Rank Newbie
Rank
Newbie
Malvineous wrote:

UMB_DRVR.SYS (by Christopher Blum) uses XMS to simulate EMS by copying memory around. It also claims in version 5.22 that an upcoming version will support the HT12 chipset to provide a UMB, however I could not find any newer version than this.

Which version number is shown on your screen during initialization of UMB_DRVR.SYS?
My version shows 5.3x. However, documentation coming with it still refers to version 5.22 😕

Reply 26 of 31, by Lotosdrache

User metadata
Rank Newbie
Rank
Newbie

As I wrote, the driver didn't load due to the wrong DOS version 🙄
Can you test it with MS-DOS 5 or higher? I attached it. Don't get confused by the documentation. It refers to the older 5.22 version whereas the driver itself reports to be version 5.3x

Attachments

  • Filename
    umb_drvr.zip
    File size
    36.78 KiB
    Downloads
    203 downloads
    File license
    Fair use/fair dealing exception

Reply 27 of 31, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie

Ah, your version is 5.3x. Have a look at UMB_DRVR.ME2 (it's a text file.) It says that this version is a patched version of 5.22, with the other original 5.22 files. I have the original 5.22 so that would explain that.

I don't think it will work since both versions say HT12 support is coming soon. (Sorry my HT12 machine is unplugged and in pieces at the moment, it might be a little while until it's back together again.)

If you're keen to test, you can get a boot disk online easily enough for the appropriate DOS version, just to test loading the driver.

Reply 28 of 31, by matze79

User metadata
Rank l33t
Rank
l33t
Markk wrote:

In my opinion, anything above 1MB is useless on a 286. A 386sx is going to be a little faster than a 286. But it's going to be easy to build(most boards use simms, and the cpu runs a lot cooler).

A 386SX is slower, Clock for Clock.
my 286 16Mhz has 4Mb Ram and i utilize it full.
Windows 3.1 and a jpeg viewer, or Borland C 3.1 benefit much from that.
Also using a TCP/IP Stack on Windows and FTP Client eats up some RAM.

It also uses the HT12 Chipset.
There is a EMS Driver for it avaible. I never found the "Original" HT12 UMB Driver.
I get UMBs on Caldera OpenDOS, i'm not sure if this works too with MS-Dos.

Don't underestimate the 286 😀

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 29 of 31, by Markk

User metadata
Rank Oldbie
Rank
Oldbie

Well, I don't underestimate the 286. What I meant is that most chances are that you are going to find a 386sx running at 20MHz or higher(I've never seen a 16MHz one). So it's going to be faster than a 286 running up to 16MHz.

Reply 30 of 31, by Lotosdrache

User metadata
Rank Newbie
Rank
Newbie

After getting DR DOS 6.0 installation disks at ebay that were partially defect 🙁 but still able to boot, I managed to repair the boot sector of my old disk set which is also partially defect 🙁 and to install DR DOS 6.0 on my 286 again. Although the system is still not working perfectly, I played around a little bit with different memory managers and BIOS settings. Two nights ago I did the following on my Octek FOX-II Rev 2.0 board (in short):

BIOS - Video BIOS Shadow ENABLED
.......- Main BIOS Shadow ENABLED
.......- Memory Relocation ENABLED (in case of 2x 1 MiB SIMM); DISABLED (in case of 4x 1 MiB SIMM)
...There is no option to configure EMS in my BIOS-Setup!

CONFIG.SYS: added as first line
DEVICE=C:\UMB\HT12MM.SYS /EXTENDED=1024 (in case of 2x 1 MiB SIMM); 3008 (in case of 4x 1 MiB SIMM)

Then, I think (!), the following happened during re-booting the system:
- HT12MM.SYS overwrote memory configuration done by BIOS and started to count up the upper memory in order to search for a 64k EMS window or free addresses.
In case of 2x 1 MiB SIMM, the page frame address started at C800 - because 1024 MiB of Extended memory should be kept as Extended memory - with 32 kiB of free EMS memory. Free EMS could be increased up to 288 kiB or so by disabling either Video BIOS or Main BIOS shadow.
In case of 4x 1 MiB SIMM, I don't know the start address of the page frame. I guess it was in the free 64kiB of extended memory or can anyone out there explain to me why HT12MM.SYS didn't configure any EMS if /EXTENDED was set to 3072 with 4 MiB RAM whereas it did with /EXTENDED=1024 and 2 MiB RAM?
In any case, I only saw a single EMS frame in the upper memory when calling mem.exe but no upload of drivers.

CONFIG.SYS: added CHIPSET option in second line
DEVICE=C:\DRDOS\HIDOS.SYS /CHIPSET=EMSALL /BDOS=FFFF

This tells the system to take all EMS from chipset and use it for own purposes without LIM support (http://www.pcorner.com/list/AOS/DRTIPS.ZIP/1113.TXT/). Now there wasn't any EMS frame in the upper memory anymore when calling mem.exe but the drivers of my soundcard were uploaded to the addresses CC02 and D200 or so. Some system functions were also uploaded.

-- I will continue to correct this posting and add some more memory values here as soon as I have time for it 😊 --

As far as I understood the whole process of getting UMBs after reading many old manuals and driver notes, you have to make two steps on a 286 machine:
At first, you must convert all unused memory in the upper memory area into EMS. This can be done either by BIOS Setup or if there is no option for this like in my case by a memory manager.
At second, you must tell the system to take EMS and convert it into UMBs. This second step is much easier on non-MS-DOS based machines because Microsofts HIMEM.SYS doesn't support the necessary function Request XMS-UMB. So under MS-DOS you have to use a second application that makes XMS-UMBs from EMS. Then HIMEM.SYS can take over all XMS-UMBs (http://www.uwe-sieber.de).
More interesting hints can be found here:
https://en.wikipedia.org/wiki/Upper_memory_area
and there:
https://support.microsoft.com/en-us/kb/77083

If I am completely wrong, please don't kill me 😉

Reply 31 of 31, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie

When you use /EXTENDED=1024, you are asking the driver to leave 1MB of memory available as extended memory, e.g. for HIMEM.SYS to make available as XMS. In a 2MB system, that will leave 1MB behind, 640kB of which will be used for base memory, leaving 384kB available to the driver. This will result in up to 384kB of EMS. If you have shadow RAM enabled, that will come from this 384kB as well, leaving less available for the driver to make accessible as EMS.

On a 4MB system with /EXTENDED=3072 then you should have exactly the same result - only a maximum of 384kB available as EMS. I am not sure why this didn't work for you, I have tried a similar setup (but /EXTENDED=2048 as I wanted 1MB of EMS) and it worked fine for me. I would suggest using the /FULLDISPLAY option so the driver prints out how much EMS is available and what the page frame is, during boot. It might give you some more information to explain what is going on.

HT12MM.SYS does not read the page frame address from the BIOS (not all BIOSes have this option - mine doesn't), and picks the first address starting at segment C800. On my 286 I have the XTIDE BIOS sitting here, so my EMS page frame ends up at segment CC00 instead. You can use the /FRAME option to manually set the page frame, although it doesn't really matter where it is. You'd only ever want to move it if it (for example) sat in the middle of two UMBs, and by moving it you could turn those two small UMBs into one larger UMB. But since the 286 boards in question don't provide native UMBs, moving the page frame is not very useful.

You don't *have* to have two steps to get UMBs on a 286. You can load the EMS driver to get a page frame - a page frame is basically a UMB itself where the contents change in response to EMS commands - and then load a second driver that essentially blocks all EMS commands, and tells the system there is a UMB available where the page frame is. This looks like what you've done.

However in theory you can load a UMB driver that has proper chipset support, and this will just program the chipset to provide memory in the UMB area, and then tell the system that those UMB blocks are available. While there doesn't appear to be a driver that does this with the HT12 chipset, in theory it's better because the EMS page frame can be from 16kB to 64kB, but if you program the chipset directly I believe some of them can go up to 128kB. You might also have a chipset one day that can mark shadow RAM as read/write, which would give you full (up to 224kB with EGA/VGA) UMBs without needing an EMS driver. I realise this doesn't help you, I just wanted to be clear that it's not 286es that require the two step process, it's the chipset you're using and the lack of driver support for it.

I believe XMS-UMB is not an option on a 286, as this works by relocating extended memory back into the UMB area - something which the 286 cannot do unless paired with a chipset that specifically supports it. This is perhaps why this function is missing from HIMEM.SYS - they have EMM386 to do that, and it of course only works on a 386+.