VOGONS


First post, by Tiido

User metadata
Rank l33t
Rank
l33t

Here's a growing collection of UMB drivers I have been making. Each driver has its own little section and download links of driver and the documentation are in the end of each section.
Next in line are OPTi 82C895 chipset, SiS471 and SiS496. UMC chipsets would be good to do aswell and some 386 chipsets too that I have around here but documenation seems not to exist... It would be great to compile some sort of repository of datasheets and register references of all the chipsets out there.

All these drivers have zero conventional memory footprint and reside entirely in the UMB, and even there they only take less than 200 bytes of memory for themselves.

---
UMBARIES.SYS - UMB driver for Intel 420EX (Aries) chipset
UMBARIESs.JPG
The past few days I worked on making my very own UMB driver, with intent of getting stuff going with some 486 chipsets without introducing EMM386 in the mix. First target is the Intel 420EX (Aries) chipset since there's nothing out there with support for it. After a bunch of hurdles I have something that appears to work (though there's one serious problem) :

i420EX lacks ISA DMA into UMBs, which has implications for floppy access. LOWDMA driver from UMBPCI can help here. Eventually I plan to add such functionality into UMBARIES itself since I'm sure I can use a bit less memory doing things that way.

I also plan to add few non UMB functions too, for example the BIOS on my machine disables IDE controller entirely when there's no HDD connected to it (I use a SATA RAID card to break the HDD limits, since XTIDE didn't work on this machine) and this prevents me from using CD-ROMs on the onboard IDE connector.

LOADHIGH / LH command fails in MS-DOS 7.x, things just freeze, unless you have the lastest BIOS 1.00.08.AY0. DOS 6.22 and FreeDOS work properly always. Link to Final BIOS

Intel 420EX Driver - Documentation
----

UMBALI.SYS - UMB driver for ALi M1489 (FinALi 486) chipset
UMBALIs.JPG
This driver was a continuation of the Aries driver, using same code but with chipset detection and config specific to the ALi chipset.

M1489 does support ISA DMA in UMB region and there's zero headaches around it unlike 420EX chipset, but due to chipset limitations the entire UMB area loses write protection, this means that bad software can overwrite something in BIOS area and cause a crash etc. and unfortunately the BIOSes on these boards are modern types with differing content in shadow and EPROM/Flash so you cannot just disable shadowing either as you could with Video BIOS. It is suggested you do disable video BIOS shadowing to prevent accidental erasure of its contents.

ALi M1489 Driver - Documentation

Last edited by Tiido on 2019-11-30, 06:08. Edited 3 times in total.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 1 of 16, by keropi

User metadata
Rank l33t++
Rank
l33t++

thanks for sharing Tiido - hope the issue gets resolved soon!
now to find an i420 board 🤣

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 2 of 16, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote:

The main issue is that LOADHIGH / LH command fails in MS-DOS 7.x, things just freeze. In MS-DOS 6.22 and FreeDOS everything works perfectly. DEVICEHIGH in CONFIG.SYS works perfectly also. I'm not sure what produces that problem. I could replicate with HIRAM also which can act as UMB provider when UMBs are unlocked by something.

The UMBARIES.SYS still leaves a footprint of 192 bytes. You should go with HIRAM, it leaves 0 memory footprint, every byte counts 🤣 I did the same with HIRAM for other Intel/AMD chipsets of my own that I still use DOS occasionally. Win98SE DOS native DEVICEHIGH / LOADHIGH commands are working. The only issue of HIRAM is that the source code prints are in German.
DOS 7.1 Boot and Memory Problems

Reply 3 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

I'm not sure how can I get the footprint to nothing, you cannot load something high before UMBs are made available and the amount of code that does in my case is the 192 bytes. Perhaps if I copy the driver high manually into the UMB area I unlock, and somehow find information about DOS memory handling and modify the tables involved it could be possible but I lack such info. I do have referenced HIRAM code to see how it did few things and German is definitely not helping me 🤣.
LH fails even with HIRAM in DOS 7.x on the test machine so I'm not sure what is going on, everything works perfectly in 6.22 and FreeDOS though... I am quite out of ideas about this point.

EDIT: Actually I don't need to modify any tables, I can just copy the code and leave it there and exclude it from the memory I report back and hope nothing goes and trashes th code. And I just saw a clue about my memory issue... there's 81920 bytes of upper memory, when FreeDOS and DOS 6.22 report it, but 81936 (!) bytes in DOS 7.1, there's 16 bytes extra that do not exist ! It looks like there's an off by one error in DOS 7.x (memory is available in multiples of 16 byte chucks referred to as "paragraphs").
I'm going to experiment with both of these things and with any luck I fix my issue !

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 4 of 16, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Everything should have been managed by HIRAM, I just add code to enable UMB in the chipset. For my case, it's i910/915GM on ASUS EeePC. My enabled UMB range is D000-E3FF which turns out to be 81,936 reported by DOS MEM, too. I think HIRAM plays some tricks with INT2Fh and uninstalls itself when HIMEM.SYS kicks in.

Reply 5 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

My driver can be initialized so it just enables UMBs and I used this to debug stuff, and HIRAM fails still so I'm quite baffled. I am doing 2F stuff too, though a bit differently. HIRAM uninstalls 2F when all UMBs are allocated, I uninstall 2F as soon as XMS function call address is passed over, both methods work fine.

The off by one error seems not to make a difference, trimming from beginning or end of UMB area the LH command still fails. Right now I'm adding the copying driver to UMB. There's some bugs left to fix on that part for the time being, debugging process is very slow though, joys of floppies and whatnot 🤣

EDIT: The software now loads itself to UMB and has zero conventional memory footprint. The off by one error I noticed is also taken care of by the device driver header left in beginning of the driver, which is neatly 16 bytes in size and can safely be overwritten by whatever without causing problems.

EDIT2 : I have adapted this for ALi M1489 chipset and everything works perfectly there. I can now only suspect some sort of BIOS issue but I have not found any i420EX BIOS that would work on the Intel board I got.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 6 of 16, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie

Thank you Tiido ! Now I have working UMBs for my every retromachine.

1) VLSI SCAMP /286@20 /4M /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
3) i430FX /K6-2@400 /64M /Rage Pro PCI /ES1370+YMF718
4) i440BX /P!!!750 /256M /MX440 /SBLive!
5) iB75 /3470s /4G /HD7750 /HDA

Reply 7 of 16, by alvaro84

User metadata
Rank Member
Rank
Member

Very nice, thanks, Tiido! I hope I'll have time to try the ALI M1489 version on my Am5x86 build!

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 8 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

I have updated the first post with the ALi driver and topic is now no longer specfic to Intel chipset. I will add some more chipsets drivers in coming future ~

zyga64 wrote:

Thank you Tiido ! Now I have working UMBs for my every retromachine.

You're very welcome ! What is the board and OS you are using ? Does it exhibit the LH problem ? Can you provide a BIOS dump ? I would like try it on my board to see if it has an effect on the LH command failure in DOS 7.x. Unfortunately a dump from NSSI or other software will not do since it will not be same as on the physical chip and will not function when used, it must be an actual dump from the EPROM/Flash chip itself...

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 9 of 16, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie

Unfortunately the board is probably the same as yours: Intel Classic PCI Ninja with latest bios 1.00.08.AY0
OS is DOS 6.22 + Windows 3.11.
However I can test what you want. I also have TL866 programmer so no problem to dump ROM content..

1) VLSI SCAMP /286@20 /4M /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
3) i430FX /K6-2@400 /64M /Rage Pro PCI /ES1370+YMF718
4) i440BX /P!!!750 /256M /MX440 /SBLive!
5) iB75 /3470s /4G /HD7750 /HDA

Reply 10 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

Ok, DOS 6.22 works perfectly here too but I don't have the latest BIOS but one step before (07), since I was unable to locate the lastest BIOS anywhere. I went from 05 to 07 but 08 eluded me. Perhaps you have the BIOS update package left somewhere ? The board has soldered flash chip and getting it dumped that way is not straightforward, if you don't have the update file left I will make a little util to extract the BIOS from the motherboard since I can reprogram the chipset in a way that original contents of the chip can be had.
EDIT: Nevermind, I have managed to locate the final BIOS now, from here :
http://cwcyrix.duckdns.org/ftp-archives/downl … p/archive/bios/
it seems to load very slow or not at all, which is probably why I originally didn't manage to get the update...
EDIT2 : LH is fixed with latest BIOS 😁

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 11 of 16, by Charizard700

User metadata
Rank Newbie
Rank
Newbie

Hello.
There is a powerful UMB software in Japan.

"Pseudo UMB driver" EMUMB .
https://www.vector.co.jp/soft/dl/dos/hardware/se010042.html

"tools for DOS5" (5.COM) [Tell DOS where to find UMB] .
https://www.vector.co.jp/soft/dl/dos/hardware/se001726.htmll

EMUMB provides similar functionality to HIRAM.EXE.
5.COM provides similar functionality to URAM's UMB.SYS.
EMUMB.SYS was used for models with shadow RAM open by default.
EMUMBX.SYS or EMUMB386.SYS are useful when used with UMBPCI.

Also, EMUMB and 5.COM will not work unless it is MS-DOS 5.0, so how to cancel the version check
I will write it down. (To make it workable on DOS6 and DOS7)
Change with hex editor

EMUMB.SYS
"30 CD 21 3C 05 74 03"
to
"30 CD 21 3C 05 EB 03"

EMUMBX.SYS and EMUMB386.SYS
"30 CD 21 3C 05 75 77"
to
"30 CD 21 3C 05 EB EB"

5.COM
"30 CD 21 3D 05 00 74 09"
to
"30 CD 21 3D 05 00 EB 09 "

Usage 1.
DEVICE = UMBPCI.SYS /I=D000-D7FF /I=E800-EFFF
DEVICE = EMUMBX.SYS / Ed000-d7ff / Ae800-efff
DEVICEHIGH = HIMEM.SYS

Usage 2.
DEVICE = UMBPCI.SYS /I=C000-D7FF /I=E800-EFFF
DEVICE = 5.COM / L
DEVICEHIGH = HIMEM.SYS

Reply 12 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

It seems not to be very useful software, since it requires UMBs to be available on the chipset etc. already and only merely provides service to make access of the UMBs. I checked the sources and didn't see any sort of chipset interactions anywhere.

On topic, I haven't made any new UMB drivers 🤣. I plan to tackle some SiS chipsets sometime but my hands are quite full with "work" stuff for the time being...

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 14 of 16, by PC Hoarder Patrol

User metadata
Rank l33t
Rank
l33t
maxtherabbit wrote on 2023-12-02, 01:14:

@tiido the download links in the OP for the ALI driver and docs seem broken, can you upload to the forum please?

They're still up on archive.org - https://web.archive.org/web/*/http://www.tmee … o.eu/SOFTWARE/*

Reply 15 of 16, by Tiido

User metadata
Rank l33t
Rank
l33t

I really need to sort out the site access one day. The ISP has local conf interface disabled and it can only be confed through them and internet comes off the neighbors who own the place, a lovely old couple, who may not even know the login to ISP support page (i.e their kids may have set it all up for them) and they're definitely not gonna know the stuff needed to get conf done... so in the end it has been a very low priority 🤣.

Anyway I attached things to this post too.

Attachments

  • Filename
    UMBdrivers.zip
    File size
    268.79 KiB
    Downloads
    20 downloads
    File comment
    UMB drivers for i420EX and M1489
    File license
    Fair use/fair dealing exception

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 16 of 16, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
Tiido wrote on 2023-12-02, 11:51:

I really need to sort out the site access one day. The ISP has local conf interface disabled and it can only be confed through them and internet comes off the neighbors who own the place, a lovely old couple, who may not even know the login to ISP support page (i.e their kids may have set it all up for them) and they're definitely not gonna know the stuff needed to get conf done... so in the end it has been a very low priority 🤣.

Anyway I attached things to this post too.

Thanks!