Short version: […]
Show full quote
Short version:
I got my XT-IDE BIOS working in a 27256 filled with 2x16k images, installed in a 3C509B.
Long version:
OK, here's what I've learned so far.
I have a 3C509B-Combo - the important thing here is that I have a 3C509B not an older 3C509.
I have an old Atmel 27C256R (120ns) EPROM - 32Kx8
The aim of the game was to use XT-IDE to allow me to access a 4.3Gb "mechanical" disc drive.
I also got my hands on the "Etherlink III Parallel Tasking ISA, (blah blah) Adapter Drivers Technical Reference"
available at https://www.janwagemakers.be/PIC18F452_3COM_3 … rnet/3c5x9b.pdf
From the Technical Reference document (and informed by 2764, 27128, 27256 datasheets) I found out the following:
3C509B
Supports all 28 pin ROMs - 2764, 27128, 27256, 27512 (No need for modified EPROMs or NICs)
Can be configured to use "8k, 16k, 32k and 64k" ROMs
If you select a 32k or 64k device, the device has a 16k UMA window, and the NIC uses a "ROM Option" register to allow bank switching in that window.
This means that the A14 and A15 pins on the ROM socket are driven, and are not floating.
3C509
Does not explicitly support 27512
Supports all other 28 pin ROMs - 2764, 27128, 27256
Can be configured to use "8k, 16k, 32k" ROMs
If you select a 32k device, you get a 32k UMA window, which means A14 is determined by the ISA bus, and the whole device is exposed.
It is possible that for 8k and 16k modes the A14 pin (pin 27) is tied to Vcc (this pin is "not program enable" which is usually set to Vcc for read operations)
It is highly likely that the A15 pin (pin 1) is tied to Vcc (this pin is Vpp which is usually set to Vcc for read operations)
From practical experience
If you use an old configuration program, you can only select 8, 16 or 32k devices.
If you use an old configuration program on a 509B, chosing 32k device will result in a 16k window as per the hardware design.
If you do not have a ROM installed in the NIC, the configuration program will give the warning message that others have seen.
(Hint: The program probably looks for the 55 AA signature at the ROM base address, and nothing else)
I did the following:
Target PC configuration
* Installed the 3C509B with no OM onboard
* Booted the system with an old MS-DOS hard drive (540Mb) and ran 3C5X9CFG to select 16k ROM at C8000H
Got the warning message, went ahead anyway.
XTIDE image preparation
* Copied IDE_386L.BIN and XTIDECFG.COM to an MSDOS virtual machine. This created a new IDE_386L.BIN which was 10k in size.
* Copied the new IDE_386L.BIN file to my Linux box, padded it out to 16k (dd if=/dev/zero bs=1 count=6144 >> IDE_386L.BIN )
* I then created a 32k image file (cat IDE_386L.BIN IDE_386L.BIN > IDE_386L_27256.BIN
* I then loaded this into my EPROM programmer and burnt the EPROM.
Testing the EPROM
* Powered off the 486
* Inserted the EPROM in the card
* Got the expected output from the new BIOS extension and Successfully booted off the 540Mb
* If I have any problems from this point, it's down to XT-IDE.
So, to end:
The 3C509B drives the EPROM A14 and A15 lines, no need to modify EPROM or card.
The 3C509 is a little less clear - in 32k mode, A14 gets driven. In other modes, A14 probably gets forced to +5v, and A15 is probably tied permanently to +5v, but it will need to be tested.
For 3C509 and 3C509B, pad out your image to 16k, and duplicate the image to fill the device.
For 3C509B you can use 27256 or 27512 - and you can either select 16k or set the actual device size.
For 3C509 stick to 2764 or 27128 unless you want to do some testing and use a 27256 or 27512 after selecting 16k device.
If you duplicate the image, and you know that the A14/A15 lines are being driven high or low, you can be certain that whatever the card does to the pins, you will always
get a 16k BIOS extension made available to the ISA bus, and you don't need to concern yourself whether each pin is high or low.