VOGONS


GD5422 BIOS weirdness

Topic actions

First post, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Hi everyone!

I'm having something of a problem I've never seen before and I wonder if it rings a bell to anyone?

I have an old ISA card based on the Cirrus Logic CL-GD5422 chipset. Card is in good condition and works fine, but it has a home programmed EPROM on it with the original 1.00b BIOS that someone has put on. Fine, but why not upgrade it?

The attachment IMG_20220110_140009764.jpg is no longer available

I downloaded a bunch of other BIOS that should be supported by the card but can't get any of them to work. I did find the BIOS as a run and burn .EXE which loads and works great, but none of the BIN files for a more up to date BIOS work with the card: post just beeps like there's no VGA installed.

The EPROM is a 27c256 and works fine, I can erase, program and verify it without issue.

OK, so here's the odd part - when I examine the newer BIN I can read the text in it. CIRRUS LOGIC, etc etc stuff like that. It looks fine (see the pic) but when I pull the BIN out of my current old BIOS chip it looks like a corrupted pile of rubbish. Is it compressed or bit shifted or something?

I've attached a picture to show you what I mean, one looks the part and doesn't work (lower) and the other looks broke and works great (upper)! Lol wut!?

The attachment image-1.png is no longer available

I tested by burning both the good looking bin and the corrupt looking one back to a fresh EPROM, same deal!

I'm sure I've made a daft mistake, but does this ring a bell to anyone who could maybe tell me what I've done wrong?

It would be cool to get this working, as my benchmarks improve with the newer BIOS (loaded from the EXE and I suspect some issues I'm seeing with my TV failing to recognise the signal on VGA might be helped)

Many thanks!!

Chris...

Reply 1 of 32, by SSTV2

User metadata
Rank Oldbie
Rank
Oldbie

The original BIOS image shows that the bytes are only EVEN. Maybe the first half of the BIOS image is composed of just EVEN bytes and the other half from ODD bytes?

Reply 2 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Thanks so much for your reply!

Ah!! So perhaps this board was originally designed to have two EPROMS (odd and even) and later it was squished down to one?

How would I go about formatting my BIN to comply with that standard?

Reply 3 of 32, by Plasma

User metadata
Rank Member
Rank
Member

It looks like the EPROM socket address pins are not wired correctly. Possibly A0 and A14 are swapped. Try putting all the even bytes first, then all the odd bytes.

Reply 4 of 32, by Tiido

User metadata
Rank l33t
Rank
l33t

It is not uncommon for the pin layout to differ from expected on EPROM sockets. This is one reason why software dumps can be problematic, as they'll always see things as if the layout is correct.

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 5 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

In which case for a purely hardware solution I could correct the bad address lines on the card, then allowing me to run the standard ROM?

Some scalpel action and a couple of bodge wires... 🤔

Reply 6 of 32, by Plasma

User metadata
Rank Member
Rank
Member

Probably be easier to tweak the binary. There is a split utility included with the Turbo XT BIOS. You can do something like:

win32/split bios.bin even.bin odd.bin
copy /b even.bin+odd.bin newbios.bin

Reply 7 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Ah ha! Awesome, thanks so much for that!

I'll give it a whizz tomorrow 👍

Reply 8 of 32, by SSTV2

User metadata
Rank Oldbie
Rank
Oldbie
Plasma wrote on 2022-01-11, 22:13:

It looks like the EPROM socket address pins are not wired correctly. Possibly A0 and A14 are swapped. Try putting all the even bytes first, then all the odd bytes.

This has to be it, every odd byte would be read starting from 4000H address in the ROM, which makes sense.

Reply 9 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

So was this by design or do you think the manufacturer made an arse of the PCB that they 'fixed' with this bodge? Maybe it was to combine from an older design with two ROMS?

Reply 10 of 32, by Plasma

User metadata
Rank Member
Rank
Member

The "homemade" EPROM makes me think it was probably a mistake. Maybe an initial run of boards with the error that they salvaged to sell. Usually when it's done intentionally, the data lines are scrambled to better obscure the contents.

Reply 11 of 32, by SSTV2

User metadata
Rank Oldbie
Rank
Oldbie

It's not easy to swap A0 with A14 around just by a mistake either, perhaps they simply didn't want 3rd party to tamper with the BIOS contents and today's post just proves that such tactic was somewhat successful, no? 😁

Reply 12 of 32, by Plasma

User metadata
Rank Member
Rank
Member

Pretty weak for security but IDK. Maybe a cat walked on the keyboard 🤔

Reply 13 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Well I'll let you all know exactly what j discover tomorrow when I give the new BIOS a whizz!!

Reply 14 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Yay great success!

It was exactly as you all theorised, ODD and EVEN lay on top of each other. I used the split command and then combined them back, wrote it to an EPROM and it worked first time. I've attached the new (1.30) BIOS that I made in case anyone stumbles across this thread in the future.

Next thing I'll look to do is pull the 1.41 BIOS out of one of the .EXE bios updates and see if I can burn that in. I'm probably being naive, but I'm hoping it's a cut and paste of the newer code into the BIN file.

Thanks again everyone!!

Last edited by ChrisXF on 2022-01-12, 20:50. Edited 1 time in total.

Reply 15 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Hmmm, I've had no luck getting the 1.41 BIOS out of an EXE and into the ROM for my card today. Many highly musical 'NO VGA' post beeps was the result, 🤣.

Still, got 1.30 working yay!!

Reply 16 of 32, by Plasma

User metadata
Rank Member
Rank
Member

It might need the checksum calculated. Do you have a link?

Reply 17 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Yeah I wondered about that, but a bit outside my experience of hex editing!! I attach the executable that has the 1.41 BIOS in it.

This runs great from DOS and all, but of course I figure better loaded from ROM, and if it's in the ROM it should work for any hard coded BIOS routine calls.

Reply 18 of 32, by Plasma

User metadata
Rank Member
Rank
Member

Oh I thought it was an actual BIOS update for an EEPROM. This is like a TSR. It can be made to work but will require more modification.

Reply 19 of 32, by ChrisXF

User metadata
Rank Newbie
Rank
Newbie

Yeah.... Ah well, not sure it would make a huge difference anyways!

Thanks a lot for taking a look. 😀