VOGONS


First post, by jheronimus

User metadata
Rank Oldbie
Rank
Oldbie

Hi, all

I'd like to add support for an AMD K6-2/400AFR to my Biostar MB-1575PCT (Socket 5 board with Opti 546/547 chipset and PCI/VLB). The BIOS is AWARD 4.50G.

The CPU I'm going to use is part of an Evergreen Spectra 400 kit, so it is physically and electrically compatible and doesn't need any jumpers set. The system just doesn't turn on with it. It does work with an alternative BIOS from the Edom/WinTech MP039, but that BIOS is otherwise not exactly stable on my board with any CPU.

I've heard that Award BIOS is pretty moddable, so I went through a few tools for that, but I've had no success.

BIOS Patcher 4.23, 4.51 and 6.0 alpha all give me the same error:

Found 1Mbit BIOS!
Can`t find "*BBSS*"!
error - cant find start.modul!error!

As far as I understand, that just means my version of Award is just too ancient for BIOS Patcher.

I've also tried CBROM 2.08, here's the output:

CBROM V2.08 (C)Award Software 2000 All Rights Reserved.

******** 1500PCT.BIN BIOS component ********

No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS FFFFFFFFh(-0.00K)10000h(64.00K)ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ≤ÄË

Total compress code space = 10000h(192.00K)
Total compressed code size = 10000h(64.00K)
Remain compress code space = 00000h(0.00K)

** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
00000000 00000000| 00000000 00000000 0000 0000
00000000 00000000 0000 0000 |

Modbin works, but I can't see how I can add any features using it — it primarily just allows me to change existing options.

Are there any other tools I could try?

MR BIOS catalog
Unicore catalog

Reply 2 of 37, by soggi

User metadata
Rank Member
Rank
Member

The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases simply don't have it. The BIOS Patcher doesn't work with such BIOSes.

Just to clarify:

Modbin can be used for changing/(un)hiding options and such stuff.
CBROM can be used for adding/removing BIOS modules.

If you want to add CPU support, you have to dig deeper (like BIOS Patcher does).

kind regards
soggi

Vintage BIOSes, firmware, drivers, tools, manuals and (3dfx) game patches -> soggi's BIOS & Firmware Page

soggi.org on Twitter - talent borrows, genius steals...

Reply 4 of 37, by Nexxen

User metadata
Rank Oldbie
Rank
Oldbie
rmay635703 wrote on 2021-10-24, 18:43:

We should invite someone from wimsbios over here considering how many bios modifications everyone would like to make

If anyone decided to create a BIOS modifier it would sell like crazy.
I'd buy a license immediately.

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

Reply 5 of 37, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
Nexxen wrote on 2021-10-24, 18:49:

If anyone decided to create a BIOS modifier it would sell like crazy.
I'd buy a license immediately.

Your niche and isolated needs don't dictate market trends. The reason why these sort of mods are far, few and in-between is because they are difficult and time consuming, and require an in-depth knowledge of an arcane and long-gone architecture.

No one is going to do that for you, for the $10 license fee he might collect, while you're out at your day job earning a salary for sitting around and fanning yourself.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 6 of 37, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
jheronimus wrote on 2021-10-24, 14:34:

Modbin works, but I can't see how I can add any features using it — it primarily just allows me to change existing options.

Are there any other tools I could try?

IDA disassembler (free version) and AWARD Modular BIOS source code that was leaked years ago.

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 7 of 37, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++
soggi wrote on 2021-10-24, 17:43:
The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases […]
Show full quote

The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases simply don't have it. The BIOS Patcher doesn't work with such BIOSes.

Just to clarify:

Modbin can be used for changing/(un)hiding options and such stuff.
CBROM can be used for adding/removing BIOS modules.

If you want to add CPU support, you have to dig deeper (like BIOS Patcher does).

kind regards
soggi

I'm trying to figure out how I did that with those two tools then. 20 years since I messed with it, so rusty memory problems. I put K6-2 support into BIOSes by copying modules from other BIOSes. Did it only work because board had K6 support in the first place, or that I used a whole chunk from a substantially similar board so the chipset code was right also??

But in this sitch, I'd be planning on starting with the BIOS that worked, not the one that didn't.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 8 of 37, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
BitWrangler wrote on 2021-10-24, 19:52:
soggi wrote on 2021-10-24, 17:43:
The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases […]
Show full quote

The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases simply don't have it. The BIOS Patcher doesn't work with such BIOSes.

Just to clarify:

Modbin can be used for changing/(un)hiding options and such stuff.
CBROM can be used for adding/removing BIOS modules.

If you want to add CPU support, you have to dig deeper (like BIOS Patcher does).

kind regards
soggi

I'm trying to figure out how I did that with those two tools then. 20 years since I messed with it, so rusty memory problems. I put K6-2 support into BIOSes by copying modules from other BIOSes. Did it only work because board had K6 support in the first place, or that I used a whole chunk from a substantially similar board so the chipset code was right also??

But in this sitch, I'd be planning on starting with the BIOS that worked, not the one that didn't.

4.50G is a very old Award BIOS version. I think it's the first version that went from that weird blue-background full screen POST screen to the "Award Modular BIOS, an Energy Star Ally" one. It's quite possible that CPU support was less, well, modular in this older version. I suspect there is a table of known CPUIDs or such in there somewhere, thus the suggestion to see what POST codes it generates. When digging through the code in these BIOSes you can see the POST codes being generated and that's often the best clue to what is going on.

Reply 9 of 37, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
soggi wrote on 2021-10-24, 17:43:
The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases […]
Show full quote

The * BBSS * (Boot Block structure signature) tag is an integral attribute of the BIOS boot block. Older AwardBIOS core releases simply don't have it. The BIOS Patcher doesn't work with such BIOSes.

Just to clarify:

Modbin can be used for changing/(un)hiding options and such stuff.
CBROM can be used for adding/removing BIOS modules.

If you want to add CPU support, you have to dig deeper (like BIOS Patcher does).

kind regards
soggi

Forgive my ignorance but what is 'bios patcher' ? Is that a specific utility?

Reply 10 of 37, by soggi

User metadata
Rank Member
Rank
Member
BitWrangler wrote on 2021-10-24, 19:52:

I'm trying to figure out how I did that with those two tools then. 20 years since I messed with it, so rusty memory problems. I put K6-2 support into BIOSes by copying modules from other BIOSes. Did it only work because board had K6 support in the first place, or that I used a whole chunk from a substantially similar board so the chipset code was right also??

But in this sitch, I'd be planning on starting with the BIOS that worked, not the one that didn't.

Maybe you just had the luck, I can't imagine this works every time - you could be right with your guesses. I've seen BIOSes with a lot of modules and others with just two. But don't take this for granted as I didn't work on something like that for a while (I want to get deeper into all of this, but time is a rare commodity).

maxtherabbit wrote on 2021-10-24, 20:09:

Forgive my ignorance but what is 'bios patcher' ? Is that a specific utility?

BIOS Patcher is a utility provided by https://www.rom.by/ and especially developed by a user named "apple_rom". It is a tool for automated BIOS hacking/optimizing. With this tool you don't need special skills (programming, HEX, BIOS architecture, ...) to do standard work like removing known bugs (i.e. removing 32G or 65G HDD limit), adding CPU support (MMX, SSE, micro codes) and other stuff. A typical BIOS Patcher log looks like this:

BIOS Patcher ver. 6.00.alpha_15. |for Award/Phoenix & AMI bioses|
Attention! Advanced qualification is required!


Found 1Mbit Award BIOS!
Can`t found unpak_sub!

1. New CPU Support : -> fixed.
2. P3-detect error : is not needed to be fixed.
3. New Koeffs Support : -> fixed.
4. 32Gb-problem : -> fixed.
5. Some HDD detect-problem : -> fixed.
6. "MB"/"GB" string search : -> fixed.
7. 65Gb-problem (1-st step) : -> fixed.
8. 65Gb-problem (2-nd step) : -> fixed.
9. Error display Freq>999MHz : is not needed to be fixed.
10.Error display Koefs>9.5x : not found.
11.New Stepping Support : is not needed to be fixed.
12.Tualatin L2-init error : not found.
13.New Freq in Setup open : not found.

14.Set "Y" as default on exit: -> fixed.


Write Allocate addinng: -> fixed.
UDMA66/100/133 on UDMA33_only_MB patch: not found.

Unfortunately, development has stopped many years ago.

kind regards
soggi

Vintage BIOSes, firmware, drivers, tools, manuals and (3dfx) game patches -> soggi's BIOS & Firmware Page

soggi.org on Twitter - talent borrows, genius steals...

Reply 11 of 37, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie
jheronimus wrote on 2021-10-24, 14:34:
Hi, all […]
Show full quote

Hi, all

I'd like to add support for an AMD K6-2/400AFR to my Biostar MB-1575PCT (Socket 5 board with Opti 546/547 chipset and PCI/VLB). The BIOS is AWARD 4.50G.

The CPU I'm going to use is part of an Evergreen Spectra 400 kit, so it is physically and electrically compatible and doesn't need any jumpers set. The system just doesn't turn on with it. It does work with an alternative BIOS from the Edom/WinTech MP039, but that BIOS is otherwise not exactly stable on my board with any CPU.

I've heard that Award BIOS is pretty moddable, so I went through a few tools for that, but I've had no success.

BIOS Patcher 4.23, 4.51 and 6.0 alpha all give me the same error:

Found 1Mbit BIOS!
Can`t find "*BBSS*"!
error - cant find start.modul!error!

As far as I understand, that just means my version of Award is just too ancient for BIOS Patcher.

I've also tried CBROM 2.08, here's the output:

CBROM V2.08 (C)Award Software 2000 All Rights Reserved.

******** 1500PCT.BIN BIOS component ********

No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS FFFFFFFFh(-0.00K)10000h(64.00K)ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ≤ÄË

Total compress code space = 10000h(192.00K)
Total compressed code size = 10000h(64.00K)
Remain compress code space = 00000h(0.00K)

** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
00000000 00000000| 00000000 00000000 0000 0000
00000000 00000000 0000 0000 |

Modbin works, but I can't see how I can add any features using it — it primarily just allows me to change existing options.

Are there any other tools I could try?

This seems strange to me - patcher reports 1 Mbit BIOS (128 kB) and in Cbrom the compressed space size is 192 kB, code 64 kB and free space 0! kB? What kind of EPROM is there?

Reply 12 of 37, by soggi

User metadata
Rank Member
Rank
Member

Maybe an older version of CBROM is needed for AwardBIOS 4.50G images!? Version 2.08 is one of the later ones (latest I know is 2.20).

kind regards
soggi

Vintage BIOSes, firmware, drivers, tools, manuals and (3dfx) game patches -> soggi's BIOS & Firmware Page

soggi.org on Twitter - talent borrows, genius steals...

Reply 13 of 37, by jheronimus

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote:

Do you have a POST card and if so does it show any codes with the K6-2? That could give a hint as to how far into the BIOS the CPU check occurs.

I'll do, actually. I'll have to check that.

Ydee wrote:

This seems strange to me - patcher reports 1 Mbit BIOS (128 kB) and in Cbrom the compressed space size is 192 kB, code 64 kB and free space 0! kB? What kind of EPROM is there?

Not sure what you mean, it's just a pretty standard 128KB ROM file.

soggi wrote:

Maybe an older version of CBROM is needed for AwardBIOS 4.50G images!? Version 2.08 is one of the later ones (latest I know is 2.20).

It does seem to me like cbrom is acting weird with this ROM. Not only it's reporting weird file size like Ydee has mentioned, but it's also reports a bunch of zeroes in regards to the CPU ID part. For a ROM that works with AMD K6 it also reports zeroes, just a bit less of them.

So it's either a wrong version of cbrom, or it just doesn't support such an old version of Award. So far I've tried cbrom 1.10 (the oldest version I could find) and that version works even worse:

CBROM v1.10 Copyright (c) Award Software, Inc. 1995-1997 All Rights Reserved. […]
Show full quote

CBROM v1.10
Copyright (c) Award Software, Inc. 1995-1997 All Rights Reserved.

Total compress code space = 18000h(0.00K)
Total compressed code size = 00000h(0.00K)
Remain compress code space = 08000h(0.00K)

But I guess unless I'm going to suddenly learn how to disassemble stuff, cbrom is my only option here, so I'll try other versions here. 😀

Just to make sure — it is okay that I'm using all these tools under DOSBox and not on a real machine?

MR BIOS catalog
Unicore catalog

Reply 14 of 37, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

It looks like your BIOS lumps all CPUs with a family=5 together. There is also a test whether the vendor is GenuineIntel, but looks like it only sets another bit if so.

There is also a code sequence: mov eax,2; mov ecx,eax; xor edx,edx; wrmsr. It appears MSR 2 is "parity reversal test register"--hardly seems right--on a Pentium, and undefined on a K6-2. Looking at the definition of wrmsr, writing to an undefined register might generate a GPF. I don't know whether this gets executed or not though.

Edit: using my hacked copy of PCem it appears this would indeed happen. I expect you will find the POST card to get stuck at c0.

Reply 15 of 37, by soggi

User metadata
Rank Member
Rank
Member
jheronimus wrote on 2021-10-25, 22:38:
Ydee wrote:

This seems strange to me - patcher reports 1 Mbit BIOS (128 kB) and in Cbrom the compressed space size is 192 kB, code 64 kB and free space 0! kB? What kind of EPROM is there?

Not sure what you mean, it's just a pretty standard 128KB ROM file.

He's talking about these lines:

Total compress code space  = 10000h(192.00K)
Total compressed code size = 10000h(64.00K)
Remain compress code space = 00000h(0.00K)
jheronimus wrote on 2021-10-25, 22:38:

So it's either a wrong version of cbrom, or it just doesn't support such an old version of Award. So far I've tried cbrom 1.10 (the oldest version I could find) and that version works even worse:

Yes, 1.10 is also the earliest version I know and have...

There are also other/older BIOS editing tools, but actually I don't have the time to dig into that and I also don't think they'll work for you. 😒

BTW it seems like @jakethompson1 is the moving registers guy here...sounds more skilled than me. This reminds me of the hardware architecture exercise course at the university - registers on a Z80. 😉

kind regards
soggi

Vintage BIOSes, firmware, drivers, tools, manuals and (3dfx) game patches -> soggi's BIOS & Firmware Page

soggi.org on Twitter - talent borrows, genius steals...

Reply 16 of 37, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie
jheronimus wrote on 2021-10-25, 22:38:
Ydee wrote:

This seems strange to me - patcher reports 1 Mbit BIOS (128 kB) and in Cbrom the compressed space size is 192 kB, code 64 kB and free space 0! kB? What kind of EPROM is there?

Not sure what you mean, it's just a pretty standard 128KB ROM file.

As Soggi writes - Cbrom indicates the compressed space size of BIOS 192kB. How could it fit into a 128kB EPROM chip?
Another oddity: the compressed code occupies 64kB of the 192kB according to Cbrom, yet the remaining available space is 0kB? Why not 128 kB, as it should?
Cbrom, I think, can't work with this BIOS, and it gives incorrect values.

Reply 17 of 37, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

The 1500 PCT-A BIOS image is 128KB but the first 32KB is blank, the 2nd 32KB mentions NCR 53710... is it a SCSI controller BIOS? After that appears to be an oldschool uncompressed 64KB Award BIOS, not the newer modular type. Ripe for disassembly and patching, if somebody knows what needs to change.

Are the requirements for K6-2 initialization code documented publicly? For instance, I guess MTRRs would need to be setup, which don't exist on original Pentiums. If people are gung ho about modifying BIOSs to add something like this, then finding/creating a stock piece of code that performs this initialization, so the code can then be inserted where it is needed, seems like a good place to start.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 18 of 37, by soggi

User metadata
Rank Member
Rank
Member
bakemono wrote on 2021-10-26, 18:05:

…the 2nd 32KB mentions NCR 53710... is it a SCSI controller BIOS?

Yes, NCR is SCSI. Back in the day it was integrated into most BIOSes. It was needed to use the cheaper NCR ISA/PCI controllers which have no own ROM unlike the Adaptec controllers for instance.

kind regards
soggi

Vintage BIOSes, firmware, drivers, tools, manuals and (3dfx) game patches -> soggi's BIOS & Firmware Page

soggi.org on Twitter - talent borrows, genius steals...

Reply 19 of 37, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
bakemono wrote on 2021-10-26, 18:05:

Are the requirements for K6-2 initialization code documented publicly? For instance, I guess MTRRs would need to be setup, which don't exist on original Pentiums. If people are gung ho about modifying BIOSs to add something like this, then finding/creating a stock piece of code that performs this initialization, so the code can then be inserted where it is needed, seems like a good place to start.

I guess It would be easier to find out how BIOS Patcher by "apple_rom" modifies Award BIOSes and then to insert the patches into the targeted BIOS by hands.

P.S. And of course don't forget the best book about BIOS hacking
https://github.com/pinczakko/BIOS-Disassembly … jutsu-Uncovered

P.P.S. What will the Patcher do if the string *BBSS* is added into the BIOS manually ? 😀

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]