Hi all,
I want to build 8086 based computer with 16-bit ISA bus, compatible with IBM 5150 or 5160. this is for educational purpose only.
Reason, 8086 is 16-bit computer, so I want it build with 16 bit ROM and SRAM. I hate swapping 8-bit data around.
This make the design straight forward.
QUESTION:
Can I read BIOS from original BIOS chip in IBM 5150 and insert it to 16-bit EEPROM.
I have 2 IBM 5150, one with cassette port and the other doesn't have it.
IF I can't do that, is there some free BIOS which I can program into 16-bit EEPROM.
Thank you in advance
First of all to answer your question, there is the
XT BIOS by Anonymous, which is as far as I can tell is pretty popular for clone XT systems.
I wrote my own BIOS, which is IBM PC compatible, but also supports many features from AT and PS/2 (RTC, AT keyboard, PS/2 mouse, support for HD/ED floppy drives). You can find the source code and binaries
here. Note that this BIOS will not work on the original PC or XT, at least because it requires AT keyboard and doesn't configure DMA to perform DRAM refresh.
Now I would like to question your idea of building 8086 based system
It is completely possible to build a 8086-based system with 16-bit SRAM and ROM. The memory part is the least trouble just use 2 chips to get 16-bit data width. You can also put 8-bit I/O devices without using A0 address line (using A1) instead, and use only even addresses to access them.
But it is impossible to implement an IBM PC compatible system without implementing proper data bus steering logic. That is because in IBM PC compatible systems:
- All the on-board I/O (Keyboard/8255 PPI, 8259 PIC, 8237 DMA, and so on) is using 8-bit data bus and steering logic will be required to access odd I/O addresses.
- ISA cards can have 8-bit memory, and many have 8-bit I/O.
So you have several choices here:
- You can implement a non-IBM PC compatible 8086 system. But in this case I see little reason for using 8086 CPU (unless you happen to have one and really want to put it in use). You could use a 80186 instead, and enjoy multiple peripherals it has on the chip, or use 80286 (or perhaps even 386SX/386EX) and get a more speedy system. The IBM PC compatible BIOS will not work on such system, at least not without serious modifications.
- You can implement an IBM PC compatible system, implementing bus steering logic (which is quite complex). There are a few IBM compatible PCs that have done that: Olivetti M24, ES1840/ES1841, IBM PS/2 models 25 and 30. I think I saw Olivetti M24 schematics on the net - and it is considerably more complicated than IBM PC one.
- You can use 8088 processor, which makes building IBM PC compatible system much easier.
In case you just want to build an x86 computer, you might want to check the following:
-
PC Retro kit. Basically a complete copy of an IBM PC
- My
Xi 8088 project.
-
SBC-188 project. Much more simple than previous two, yet partially IBM PC compatible (as long as the program uses BIOS/DOS API to access the hardware).