Great Hierophant
Veteran Member
It would be possible to design a multi-I/O controller that can work in either an 8 or 16-bit slot (uses a 16-bit ISA connector) and can provide the following features :
IDE 8-bit, 16-bit & 16-to-8-bit translation
2 x Serial (16550 UART)
1 x Parallel (Uni & Bidirectional, ECP/EPP possible?)
1 x Game (w/speed adjust knob)
RTC w/replaceable battery
BIOS Extension Socket
HD Floppy Controller
If you had a board long enough, you could do all this with off the shelf chips. The BIOS extension could provide support for HD floppies, XT-IDE BIOS, RTC, etc. If custom logic were required to replace the glue logic, then you could still use a 765 or 8272 for the FDC and 16550s for the UARTs. Perhaps we could go even further and offer memory expansion as well. Perhaps a pair of 30-pin SIMMs that could be mapped according to the system's needs. So if you had 2MB on the board in an IBM PC, you could map 384KB to conventional and the remainder as EMS. On an IBM AT, 128K could be used to fill the memory to 640KB and the remainder available as extended memory. Obviously, such complex memory mapping, in addition to everything else, could not be done in standard off-the-shelf logic on a single board. How feasible would it be to do this? I assume you would probably need a large, 5V tolerant FPGA to feasibly get it all on one board. At that point, settings should be done via EEPROM, not jumpers or switches.
IDE 8-bit, 16-bit & 16-to-8-bit translation
2 x Serial (16550 UART)
1 x Parallel (Uni & Bidirectional, ECP/EPP possible?)
1 x Game (w/speed adjust knob)
RTC w/replaceable battery
BIOS Extension Socket
HD Floppy Controller
If you had a board long enough, you could do all this with off the shelf chips. The BIOS extension could provide support for HD floppies, XT-IDE BIOS, RTC, etc. If custom logic were required to replace the glue logic, then you could still use a 765 or 8272 for the FDC and 16550s for the UARTs. Perhaps we could go even further and offer memory expansion as well. Perhaps a pair of 30-pin SIMMs that could be mapped according to the system's needs. So if you had 2MB on the board in an IBM PC, you could map 384KB to conventional and the remainder as EMS. On an IBM AT, 128K could be used to fill the memory to 640KB and the remainder available as extended memory. Obviously, such complex memory mapping, in addition to everything else, could not be done in standard off-the-shelf logic on a single board. How feasible would it be to do this? I assume you would probably need a large, 5V tolerant FPGA to feasibly get it all on one board. At that point, settings should be done via EEPROM, not jumpers or switches.