VOGONS


First post, by NightmareJoker2

User metadata
Rank Newbie
Rank
Newbie

Hello,

Like can be gleaned from the title, I have a TMC PET48PN motherboard with EISA AMIBIOS version 060692.
The board has an OPTi 82C68(1/2/6/7) EISA+VLB chipset.
There are some things that bother me about this BIOS that I would like to patch the BIOS for to make work:

  • No PS/2 mouse support. The board does not have a PS/2 port (obviously), but I have built and installed an adapter, and it does work with the PS2SUPP.COM DOS utility (but only if it's in the autoexec.bat) and the AMIKEY-2 keyboard controller that came with the board, but I really want the BIOS to handle that before OS boot, so it works with any OS without any special tricks and quirks (especially OS/2 Warp 3.0), and I can have COM1 free. It would be good if this was configurable so that I can disable it, should I want to use IRQ 12 for something else temporarily. Trying to use AMIsetup to configure the PS/2 mouse setting, I have found out that the responsible setting bit is set to 1 by default, and that toggling it has no effect. There is this interesting thread about doing this in a PCem emulated BIOS, but that is not real hardware and may have certain gotchas (I know Sound Blaster 16 emulation has serious issues to the point that it breaks under OS/2).
  • No IDE slave support. As is, IDE devices can only be attached as master to IDE channel 0 and IDE channel 1. This is mostly sufficient for one HDD/SD card/Compact Flash card and one 100MB ZIP drive (I am using a Mitsumi CD-ROM attached to a Sound Blaster's Mitsumi interface), but I'd like to have the option of putting two CF cards in the removable hard drive bay I installed.
  • No removable IDE device support (CD-ROM, ZIP, MO, LS-120/240). I would really like if the ZIP drive would work without a driver and that I could boot from it, if I so desired. I haven't tried it yet, but an IDE CD-ROM *may* work, even if the BIOS has no idea, including as a slave device, because Dr. Hardware has no issue detecting slave devices. I have not tried this, because I really want to use the Mitsumi CRMC-LU005 in the system.

I can't attach the BIOS file I dumped from the HT27C512 compatible EPROM it was on, but I have submitted it to The Retro Web, and it can be downloaded from there.

Valid alternative options are:

  • swapping the BIOS for a newer compatible one from 1994 or 1995 that has the functionality built-in. If it's possible to use an AMI WinBIOS, that'd be even better, but I don't recall there were any EISA ones of those.
  • Running the PS/2 initialization code and re-running IDE device detection from a ROM BIOS on an expansion card (like one of the two Intel EtherExpress Flash32s that are in the system, currently without a boot ROM), and then hooking the boot routine again.

I have ordered some Winbond W27C512-45Z EEPROMs and some M27C512-10 EPROMs, because the only EPROMs I have on hand were M27C256B-10F1s, which are obviously too small at half the size. They might work in the Ethernet adapters, but I have not tried, since I have no suitable ROM code to try it with (there were Netware ODi bootroms available, I think). Doing a network boot without a ROM installed just yields "ROM BASIC not found".

If any of the BIOS wizards from here could help me (and anyone else with that board) out there, that'd be great. 🙂

Reply 1 of 7, by kmeaw

User metadata
Rank Member
Rank
Member

I am more familiar with Award BIOS internal structures, not AMIBIOS but I don't think that much of changes can be done in about 100 bytes of free space you have.
I would suggest either looking for a similar board (possibly with another kind of BIOS) that has the same chipset and all the needed features to adapt it to your board's circuitry - that is usually done by changing the auto-configuration tables that specify the register values for the chipset.
Another way is doing everything in option ROM (and there are existing projects such as PLoP and XT-IDE) - that would require a larger ROM chip. Maybe even some minor board change to make another address line available. But it shouldn't require deep knowledge of BIOS internals - just push the oproms to the lower half of the ROM chip, and the new code will run during ROM scan automatically.

Here is a patch that should enable PS/2 mouse support:

8280: 2F -> 3F
DC5B: 74 -> EB

Reply 2 of 7, by NightmareJoker2

User metadata
Rank Newbie
Rank
Newbie
kmeaw wrote on 2024-10-16, 03:29:

Here is a patch that should enable PS/2 mouse support:

8280: 2F -> 3F

This does not work. The system will just hang in a loop after the memory test and before doing the test seek on the floppies and loading the option ROMs before boot.

kmeaw wrote on 2024-10-16, 03:29:

DC5B: 74 -> EB

That just patches the checksum routine to always act like it passed. The more sensible approach would be to update the complement value. It is in the most obvious place, namely, the last two bytes, right after the version string.

Reply 3 of 7, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie
NightmareJoker2 wrote on 2024-10-16, 09:26:

That just patches the checksum routine to always act like it passed. The more sensible approach would be to update the complement value. It is in the most obvious place, namely, the last two bytes, right after the version string.

If this is AMI "color" BIOS, there's a thread on how to manually patch it, calculate and edit checksum: AMI Color BIOS (1993 and earlier) modification in hex editor

The word Idiot refers to a person with many ideas, especially stupid and harmful ideas.
This world goes south since everything's run by financiers and economists.
This isn't voice chat, yet some people overusing online communications talk and hear voices.

Reply 4 of 7, by NightmareJoker2

User metadata
Rank Newbie
Rank
Newbie
analog_programmer wrote on 2024-10-16, 13:19:

If this is AMI "color" BIOS, there's a thread on how to manually patch it, calculate and edit checksum: AMI Color BIOS (1993 and earlier) modification in hex editor

Yes, it was linked in the original post, for being an interesting thread. 😅
Changing 0x2F to 0x3F at position 0x8280 as is described there does however not work. I wish it were that easy.

Reply 5 of 7, by kmeaw

User metadata
Rank Member
Rank
Member
NightmareJoker2 wrote on 2024-10-16, 09:26:

This does not work. The system will just hang in a loop after the memory test and before doing the test seek on the floppies and loading the option ROMs before boot.

Do you have an idea where does it hang? Or maybe you have a sequence of POST codes before and after that change?

Reply 6 of 7, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie
NightmareJoker2 wrote on 2024-10-16, 18:54:

Changing 0x2F to 0x3F at position 0x8280 as is described there does however not work. I wish it were that easy.

It's not just that easy. You have to manually correct BIOS checksum bytes. I gave you the right thread - look at page 2.

The word Idiot refers to a person with many ideas, especially stupid and harmful ideas.
This world goes south since everything's run by financiers and economists.
This isn't voice chat, yet some people overusing online communications talk and hear voices.

Reply 7 of 7, by NightmareJoker2

User metadata
Rank Newbie
Rank
Newbie
analog_programmer wrote on 2024-10-16, 20:07:

It's not just that easy. You have to manually correct BIOS checksum bytes.

Or disable the check. It doesn't work. See the attachment.
If you've got a PET48PN, you can take the BIOS chip out of the socket (, dump its contents so you have a backup), carefully peel the sticker off of the EPROM window, put the chip into one of those cheap Chinese UV erasers and turn on the UV lamp for 10 minutes, and then reprogram it with your favorite EPROM programmer (I used an XGecu TL866II Plus) , and put it back in the socket.

analog_programmer wrote on 2024-10-16, 20:07:

I gave you the right thread - look at page 2.

I have read the entire thing. And I linked to it in the first post... 😔