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?

IMG_20220110_140009764.jpg
Filename
IMG_20220110_140009764.jpg
File size
1.29 MiB
Views
444 views
File license
Public domain

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!?

image-1.png
Filename
image-1.png
File size
158.97 KiB
Views
444 views
File license
Public domain

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 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 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 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 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 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 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!!

Attachments

  • Filename
    1.30BIOS5422.zip
    File size
    21.26 KiB
    Downloads
    12 downloads
    File license
    Fair use/fair dealing exception
Last edited by ChrisXF on 2022-01-12, 20:50. Edited 1 time in total.

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.

Attachments

  • Filename
    1.41 exec code.zip
    File size
    19.29 KiB
    Downloads
    10 downloads
    File license
    Fair use/fair dealing exception