VOGONS


First post, by Deksor

User metadata
Rank l33t
Rank
l33t

Hello,
since I've started the project UH19, I have been thinking about something kinda crazy which I can't do myself, but that would be interesting for many people in my opinion which involves understanding AMI bioses better (and perhaps other bioses as well, but the 64KB AMI bioses are probably the simplest to mess with and the most common).

What if we tried to document old AMI bioses better ? After comparing many bioses of the same version (050591), I came to the conclusion that even when their target differ (different chipset, different kind of processor), there are many similarities among them.
Actually most of the differences seemed to be caused by some large sections being put in a different place (but containing the same data by the look of it).

So this made me wonder : if we can understand what (some ?) of these sections do, this means that if find something useful to modify into one, we could make a patching program to patch every AMI bios of the same version ?
See where I am going ?

My idea is that if we can understand how old AMI bioses deal with the HDD, then maybe we could replace that code with some XT-IDE code and get rid entirely of the 503MB limit once and for all without the need of any additional hardware !
Another example for 386 motherboards ; we could probably implement support for the L1 cache of the Cyrix 486DLC that later boards had to older boards.
Furthermore, maybe this could let us add some more features such as CD-ROM boot, floppy disk drive swap, etc ?

Maybe we could even try to build BIOSes for motherboards using a different chipset that was only supported by really old (1980's) AMI bioses to implement better features ? This could be handy for some obscure OEM computers that were made with a very limited BIOS (such as one of my 286 which has a nice "NEAT" chipset, but a really bad phoenix bios with a really small selection of HDDs supported and no support for hardware functions such as memory shadowing).

With the growing size of UH19's BIOS database and people dumping their BIOSes in other places, the amount of BIOSes people can easily download and test has never been so large and so diverse. Moreover, we now have emulators such as PCem/86box that are advanced enough for easy testing (without the risk of ruining precious hardware).

What do you think ? Is it too crazy ? Another idea that will be scrapped in a week ? Any of you interested ?

Trying to identify old hardware ? Visit The retro web - Project's thread The Retro Web project - a stason.org/TH99 alternative

Reply 1 of 7, by mR_Slug

User metadata
Rank Member
Rank
Member
Deksor wrote on 2021-10-16, 23:08:

Another example for 386 motherboards ; we could probably implement support for the L1 cache of the Cyrix 486DLC that later boards had to older boards.

What do you think ? Is it too crazy ? Another idea that will be scrapped in a week ? Any of you interested ?

This one may be tricky. As I recall an additional trace needs to be added. I think there is a post on the OS/2 Museum about this.

Don't think its crazy, but I lack the knowledge to be much help. Recall reading somewhere about the low level format being hidden for years after it was 'removed'. May be it was from you though:) Interested, perhaps some disassembly may shed some light, but I find ASM hard. Ideally it would be nice to have a web based patcher on UH19.

The Retro Web | EISA .cfg Archive | Chip set Encyclopedia

Reply 2 of 7, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

One thing I've always wanted is extended CPU support. Functionally I guess it wouldn't add much, but it would still be pretty cool.

There are things that can be done to modify the AMIBIOS, but without the source code it might not be all that easy to expand it. How much unused memory is typically left in the ROM?

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 4 of 7, by weedeewee

User metadata
Rank l33t
Rank
l33t

Maybe... do the same with the MrBioss and possibly swap the setup data that the amis use with the code of the Mrs and vice versa, so instead of an Ami one could have an Mr ! 😁

It's a great idea ! I love it.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 5 of 7, by Deksor

User metadata
Rank l33t
Rank
l33t
mR_Slug wrote on 2021-10-16, 23:41:
Deksor wrote on 2021-10-16, 23:08:

Another example for 386 motherboards ; we could probably implement support for the L1 cache of the Cyrix 486DLC that later boards had to older boards.

What do you think ? Is it too crazy ? Another idea that will be scrapped in a week ? Any of you interested ?

This one may be tricky. As I recall an additional trace needs to be added. I think there is a post on the OS/2 Museum about this.

I don't think it's the case, because DOS apps can do that. And even if it was the case for some reason, if a DOS app can do it, then you can probably implement the thing the DOS app does to the BIOS in some way.

Ideally it would be nice to have a web based patcher on UH19.

Sure it would, what would be really nice would be to have open source tools, maybe even written in a high level language (python ?). Old tools, as nice as they are, are closed source meaning we can't really know what they're doing and they cannot easily be expanded ...

How much unused memory is typically left in the ROM

I can't say precisely, it seems to change from a bios to another, but the sizes I saw were between 7K and 10K (AMI bios rev 050591, it may change for newer versions).
I think some parts could be rewritten almost entirely (such as the HDD detection which could use instead some XTIDE code). This is all theoritical, but maybe the footprint for these would be close to zero (or maybe even negative ?), ending up taking the same room or less room than the old code ? (or maybe it'll take some extra kilobytes ...)

Also as I said earlier, the code is uncompressed, making it easy to modify it ... but this also means we could perhaps implement compression ourselves giving us even more space to work with !

But first to do all of this we need to understand what the code does and document it properly.

Trying to identify old hardware ? Visit The retro web - Project's thread The Retro Web project - a stason.org/TH99 alternative

Reply 6 of 7, by weedeewee

User metadata
Rank l33t
Rank
l33t
Deksor wrote on 2021-10-17, 10:32:

But first to do all of this we need to understand what the code does and document it properly.

Would that be legal?

and if space allows it, would a keyboard shortcut or NMI attached memory hex editor be possible to integrate? 😁

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 7 of 7, by Deksor

User metadata
Rank l33t
Rank
l33t

Well it depends of the country I think. In the us having a team documenting the code and another team rewriting the code from scratch using the documentation is legal (this is how they managed to retro engineer IBM's BIOS afterall).

And I believe this is how mario 64 got retro engineered. Meaning that their code is legal to use/modify. However branding it as mario 64 isn't, so this is why people wanting to play with it need to build their own. However for an AMI BIOS, we don't care if it's named AMI or whatever else, so we could make our own open source bios if we went this way.

However one thing that could be taken into consideration is that AMI doesn't seem to care much about their BIOS being modded by hobbyists or shared, especially very old bioses like this. I mean how legal is it to share ROMs of old motherboards ? That's a gray area.
Having a fully open source AMI bios would be top notch for sure ! But what we truly need is to inject some new code that the community made into existing bioses, and I don't know if this is even illegal to share. This is similar to rloew's windows 98 patches which were sold by him and didn't contain any sort of microsoft's copyrighted code, however it contained the exact code to inject into microsoft's code.

Just like we could have some sort of program named "patchami" for example where you give it a rom, it injects the new code (XTIDE functions for hdds, CD-Rom booting, etc) and creates a new ROM file with the injected code. But again we have to understand how they work before we can do any of this 😒

Trying to identify old hardware ? Visit The retro web - Project's thread The Retro Web project - a stason.org/TH99 alternative