First post, by migry
I recently bought some old PC hardware with the idea of using it to rescue data from old hard disks, 3 +1/2 and 5+1/4 floppy disks. Due to the surprisingly high cost of 286,386 and 486 motherboards, I decided to buy a slot 1 motherboard since I already have a 333MHz Celeron(*) (which I remember buying in early 1999 in Silicon Valley - I really wanted a 300MHz since it apparently overclocked better - but no luck finding one). Anyway I have had lots of issues getting this setup to work. One problem is getting software (including drivers) onto the old hardware. I do have a USB floppy on the main PC, which works for transferring smaller files, but anything over a Mb is a headache. When I saw the XT CF-Lite project it seemed like a possible solution.
I bought a blank XT CF-Lite PCB on Ebay. When it arrived I was able to build it quickly. I had all parts, apart from the 74LS688 (address) comparators, but I ordered them from a local company and they arrived the next day. The XTIDE software fits on a floppy.
Here are the problems.
The XTIDE software is unable to flash the 28C64, just giving an error at the first address. Note: I ensured that the address range of the flash was NOT cached/mirrored in the BIOS. Write enable was on. So I used a stand alone programmer to program the EEPROM. I am selecting the ide_at.bin and configuring it for this 8-bit card.
During boot, there is no indication that the boot ROM code is being executed. Certainly I see no menu or text. I do see the video card BIOS text. In my stand alone programmer, I have confirmed that the 2's complement checksum over the 8k bytes does add up to 0x00.
So I am wondering if my Celeron CPU and Slot 1 motherboard is "too new" for this ISA plug in card and BIOS to work correctly. I did wonder if the bus might be too fast (for the EEPROM), but I guess that the ISA bus gets limited to a lower speed?
As debug, I used Microsoft DEBUG.COM for the very first time. I was able to confirm that the boot rom code was indeed located at d000:0, and was reading correctly. I was able to see the sign on string text. I was also able to disassemble the code at d000:3, which I guessed was the entry point. I also used debug to poke and peek the compact flash I/O addresses and I was able to write to and read back from the expected I/O locations. Not that the compact flash is not a problem yet, as I haven't got that far. If in DEBUG I call d000:3 directly it hangs. If I single step (not 100% sure I am doing it properly), it hangs at a strange opcode (I am no expert w.r.t. this CPU assembly code).
So I am left scratching my head as to what to try next. I did consider writing some very simple assembly to simply write some text, just to find out of the 28C64 boot ROM code was actually being executed, but this could be a deep rabbit hole.
(*) The 333MHz Celeron could run at 500MHz at a push, but needed a big Radio Shack fan, and even them it was unstable. I ended up buying the Japanese heatsink and fan which everyone was raving about at that time.