Moderators: simonsunnyboy, Mug UK, Zorro 2, Moderator Team


sqward wrote:I'm not sure how it works at the lowest levels of TOS, but if you're using a modern driver like HDDRIVER or HUSI (not sure about that one thou), you can use XHDI to interface a harddrive to the system, take a look here: http://toshyp.atari.org/010008.htm



Jookie wrote:CopperCAT, I'm not shure what exactly are you doing or what you try to find out - if you would supply more info of what are you trying to achieve, we could supply more info on how to achieve that
If you want to make some sort of hard disk driver and you want that you can access the drive from desktop, you should:
- save the current addresses of mediach, rwabs and getbpb vectors
- replace those vectors with pointers to your device driver
- in that driver you should jump to the original vector when the request for some action arrives and it's not for your device
- modify (add bits) the flags which tell the system which drives are present (A, C, D, ...)
And that's mainly it. If you would like to make your device driver XHDI compatible, you should check the XHDI documentation.
If you are making a device which acts like a ACSI or SCSI drive, then you should just answer to standart SCSI-2 commands over the ACSI interface.
Jookie

CopperCAT wrote:That makes senseIs that also the way the AHDI prg works?
CopperCAT wrote:I had the idea of trying to build a harddrive addon for my Mega.
CopperCAT wrote:On the hardware side, I have some knowledge of FPGA's and the like.
CopperCAT wrote:Is this kind of information in the Profi-buch?

ppera wrote:What knowledge is necessary? Knowing BIOS, XBIOS, GEMDOS functions, system variables, way how HW ports work - ACSI, IDE ports. Plus must know disk Master Boot Record structure, partition tables, partition types as FAT16, BIGDOS, AHDI etc.
There is lot of documentation about mentined on WEB.

ppera wrote:Maybe I should be more specific: need to know some basic things about BIOS, XBIOS, GEMDOS calls - since they are used in almost every program, so in hard disk driver too.
Supporting most of devices is not lot of work - it is loooot of work and looot of money, time required. You can't do working driver by just reading specs. You need to test it on real hardware.
Additional support for DOS partitions is already made in several forms. It stays mostly from recognising partitions from part. table and transferring parameters into BPB tables. Actually, it is nothing harder than doing support for AHDI partitioned disks.

CopperCAT wrote:I'm not so good at deciphering asm so that AHDI code will be a challengeIs this stuff also possible from C?

CopperCAT wrote:...
So if i were only to modify AHDI, other software could take care of the partitioning and formatting side of things?
I'm not so good at deciphering asm so that AHDI code will be a challengeIs this stuff also possible from C?
CopperCAT wrote:Actually i'm searching for some information on how hard disk drivers for the atari work. At this point I don't even have a clue how a "driver" "registers" itself so a storage device can be accessed from z.b. the desktop.
I can't find anything on the web, partly because I don't know which keywords I should be looking for. Also, source code for Atari hardware projects seems to be very sparse. Could someone provide me with some links or clues, or even some example code?


giachi11 wrote:So, if i want to build some kind of stuff that acts as an ACSI hdd I should only make my hardware SCSI-1 compliant?

giachi11 wrote:thanks for the explanation ppera. I've another question: my goal is to build a simple device that acts as an hdd, quite like a "ACSI thumbdrive", with a very simple design (maybe a little flash nand with a PIC uC as controller), not targeted to be a very fast very large storage device, it will be only an experiment. I'm reading the Atari ACSI/DMA integration guide from atariforge. Is that a good reference (AHDI compatibility is ok for me)?


Users browsing this forum: CommonCrawl [Bot] and 0 guests