aleodan wrote on 2025-11-23, 10:25:It doesn't really matter. I tried almot 40 combinations, they have no effect. In DOS all IRQs get recognized and work even with […]
Show full quote
myne wrote on 2025-11-23, 07:01:Wouldn't the only consequence be the physical order not matching the list? […]
Show full quote
Chkcpu wrote on 2025-11-18, 16:41:
2.) The second table is the PCI slots table and describes how the PCI slots are wired to the chipset, specifically which slot is connected to which IDsel line. This is usually the table that needs to be changed to match the actual connections on the motherboard. This is the table that is displayed by Modbin6.
Wouldn't the only consequence be the physical order not matching the list?
Ie the physical slots might be
3
1
2
4
In other words, a minor inconvenience during build
It doesn't really matter. I tried almot 40 combinations, they have no effect. In DOS all IRQs get recognized and work even with original BIOS without any mod. In Windows, any PCI card freezes.
I looked into the ACPI tables, disassembled them with "iasl.exe". There are memory range addresses there, maybe they need to be changed. But the ACPI table extracted from AMI bios is not recognized as standard, so I cannot take it as a model.
So I quit. It was too much useless effort. I prefer to loose just the money instead money + time + energy ...
Right now I am on the course of buying a used board witz ZX chipset. This SiS630 board will go to junk if the ZX will work !
Retro computing had becomed a very expensive hobby these days !
Hi aleodan,
I’m sorry to hear that the BIOS porting is still unsuccessful.
But don’t junk the board yet. It is working, so you can always sell it. 😉
About ACPI as possible cause, did you try installing WinXP without ACPI?
On BIOSes from 1999 or 2000, the ACPI support is usually incompatible with the ACPI v2.0 that Win2K requires.
The same goes for WinXP, however XP will install but complains later about the ACPI incompatibility. To avoid these issues, I usually force Win2K/XP to install as Standard PC on all PCs with 2000 or earlier BIOSes to avoid ACPI and IRQ steering problems.
Early during install, you get the option to press F6 for installation of a third party diskdriver. At this point you have to press F5. (That's right, when it tells you to press F6, you press F5). This will allow you to choose "Standard PC" (standard APM only) or "ACPI".
Another way is to press F7 instead of F5 at that point. Win2K/XP will then install as "Standard PC" without further questions.
Works great here on various Socket 7 and Slot 1 PCs, especially if you use PCI cards with IRQ sharing problems like the Hauppauge Win TV card.
Note that WinXP in ACPI mode takes complete control over the IRQ Steering and doesn't allow it to be disabled. On systems with one CPU, WinXP will assign one IRQ to all PCI devices! Microsoft argues that WinXP is designed to control multiple CPUs and PCI- busses and this is the way to do it. And if they keep a tight control on the device driver compatibility for WinXP, this will work without problems. The same goes for Win2000.
To round off our earlier discussion, here are some remarks about your observations.
- The PCISNIF log on the AMI BIOS shows device nbrs 9 and 11 (0Bh) for the two PCI slots. This is the same as programmed in the Award BIOS, so no PCI addressing problem here.
- In the AMI BIOS the PCISNIF log shows the connection of the PCI slot INTA#, INTB#, INTC#, and INTD# pins to the IRQ Router in the chipset as 1,2,3,4 for DEV 9 (PCI slot 1) and 4,1, 2,3 for DEV 11 (PCI slot 2). The Award BIOS however has 2,3,4,1 and 3,4,1,2 for these PCI slots respectively. This may be a problem because this BIOS programming has to match the traces on the board.
To elaborate a bit, this is what I found about the IRQ steering and sharing issue.
In the ISA/VLB days, there were never enough IRQ lines. Because the ISA-bus doesn't support IRQ sharing, there was always a fight over the 4 to 5 available "free" IRQs.
The PCI bus is a big improvement because it supports IRQ sharing. However there are some constraints:
- There are 4 INT lines on the PCI-bus: INTA#, INTB#, INTC#, and INTD#. But a single function PCI card has to connect to INTA# by definition
- The AGP-slot usually connects to INTA# as well, but the other SiS630 integrated devices are nicely distributed on this board. The Audio device connects to INTB#, the Ethernet device to INTC# and the onboard USB Controller uses the INTD# line twice.
- The IRQ Router, that connects the 4 AGP/PCI INT lines to a physical IRQ line, can only select one of the 4 to 5 free IRQs for each INT line.
- All drivers of PCI devices on the same INT line must support IRQ sharing.
The motherboard manufacturers are helping us here by connecting the INTA# pin of each PCI slot to a different INT input of the IRQ Router. But on boards with 5 or 6 AGP+PCI devices and only 4 inputs on the IRQ Router there are bound to be some combinations, as you can see in the below IRQS-FIG picture of the Abit KA7-100 board with 6! PCI slots.
On your SiS630 board, there are only 2 PCI slots but quite a number of PCI devices are integrated in the chipset, so there will be some combinations too.
The attachment irqs-fig.gif is no longer available
About the missing checksum byte in the $PIR table, I found the same when I decompressed the AMI BIOS modules. So you were right that this checksum is calculated and inserted in the table at run-time.
Thanks for sharing all your BIOS porting attempts and findings. I learned a lot of new details about this stuff as well. 😉
Cheers, Jan