PDA

View Full Version : 5160 System ROM Architecture



pearce_jj
June 5th, 2012, 12:03 AM
I designed and ran a short run of very simple 8-bit ROM boards (http://vintage-blog.peacon.co.uk/wiki/8bit-rom-board), which can be configured to 32- or 64KB aligned base address in the top half of memory and run as either 32- or 64KB in size. Being flash based it's in-system re-programmable.

Part of my idea with it was to replace the system BIOS chips in 5150 & 5160 machines to enable different versions to be tested or to test patched BIOS code etc.

With the system BIOS chips both removed:


5160 64-256K board - works in all 8 slots at F000h
5160 256-640K board - works only in slot 8 at F000h


The board lacks any ISA B8 control (it's simply n/c).

Why could this be?

per
June 5th, 2012, 03:49 AM
I designed and ran a short run of very simple 8-bit ROM boards (http://vintage-blog.peacon.co.uk/wiki/8bit-rom-board), which can be configured to 32- or 64KB aligned base address in the top half of memory and run as either 32- or 64KB in size. Being flash based it's in-system re-programmable.

Part of my idea with it was to replace the system BIOS chips in 5150 & 5160 machines to enable different versions to be tested or to test patched BIOS code etc.

With the system BIOS chips both removed:


5160 64-256K board - works in all 8 slots at F000h
5160 256-640K board - works only in slot 8 at F000h


The board lacks any ISA B8 control (it's simply n/c).

Why could this be?

The original ROMs, ISA slot 8 and all onboard devices in the XT are located on the internal system bus, where the 7 regular ISA slots are on the main CPU bus.

These busses are separated by U15, which is a bus transceiver. When memory reads from segment F000 are made, some cirquits on the motherboard will turn the direction of the bus-transceiver between the internal bus and CPU bus so that the internal bus sends data to the CPU bus. In other words, the ISA B8 control is handeled by the motherboard itself, so it isn't needed on the ISA card.

When you place the card in any other ISA slot, a special condition occurs. When you do this and read from segment F000, both the ISA card and the transceiver will be outputting data to the same bus. This basically means that the "strongest" chip wins, so you shouldn't rely on this at all. You will likely get different ressults based on different XT motherboards, no matter what kind.

To disable the BIOS ROM in the XT, you can just place a jumper at E1. This will not only remove the ROM from the memory map, but it will also disable the cirquit that turns the bus-transceiver when segment F000 is read from.

pearce_jj
June 5th, 2012, 04:25 AM
Many thanks for posting such a detailed explanation on that. This gives me an idea for the XT/IDE project too.

pearce_jj
June 6th, 2012, 03:27 AM
Just a quick note, another vc-forum member kindly tested the E1 jumper thing and confirmed exactly as put above - with the jumper in place, the ROM card works in slots 1..7 (and not 8 ) as expected.