• Please review our updated Terms and Rules here

Adding another type of block device to XT IDE Universal BIOS

profdc9

Member
Joined
Jan 7, 2014
Messages
20
Hello,

I have design a 8-bit card for mass storage with SD cards. The schematic is here and based on a design I did for the Apple ][.


The designs for the two cards (ISA and Apple ][ bus) are so similar that this kind of serves as a "Rosetta stone" to compare the two busses.

The card has the ability to use a 28C64 or 28C256 option ROM. However, I have never written an Option ROM before. I was taking a look at the one used with XT IDE, the XT IDE universal BIOS and its source code


I am trying to figure out a starting point for adding a block device to the BIOS. The best I have been able to puzzle out would be to try to take the Serial block device and clone and customize that. The interface to the SD card is through a 82C55 in mode 2 to a ATMEGA328P which runs code to access the SD cards. The PC will largely be sending and receiving sectors to the ATMEGA328P, and so hopefully the code that needs to be included in the XT IDE BIOS is minimal. Since most of the heavy lifting is done by the ATMEGA328P, I am hoping that this addition will not be too difficult.

Since the XT IDE was developed here on the forum, does anyone have any guidance how I might go about this?

Thanks,

Dan
 
Thanks Dan. Do you have a website (besides Github that is) that shows your progress and work? Or a youtube channel with demos of the hardware?
 
Thanks Dan. Do you have a website (besides Github that is) that shows your progress and work? Or a youtube channel with demos of the hardware?

Well I have the Apple ][ version of the hardware working. I don't have a video of that however, but I could make one I suppose. I have just started making the PC version, thinking that the principle would work basically the same for both, with a ATMEGA328P doing the heavy lifting connected by a 82C55 to the ISA bus. I could write an MSDOS config.sys driver at first I suppose, but it would be nice to have an idea of what the BIOS would be like.

For the Apple ][ version, you can look at the Arduino sketch to see how it works from that side, and then the ROM driver is written in 6502 assembly language and is used by the ProDOS operating system. The ROM for ProDOS fits in 256 bytes and needs to only implement the basic operation of check status, read sector, and write sector. It looks like the PC BIOS is somewhat more complicated because it has to be mapped onto a false hard drive geometry.

So perhaps look at the Apple ][ version to get an idea how the PC version might work.

Dan
 
Hi I am working on the CH375 ISA USB board .sys driver and I would like to work on a driver for XTIDE as well.
We can probably combine our efforts.

XTIDE bios is not that simple to read. If only it could be better documented and include a "driver" API...
 
Back
Top