Am I doing this right? (floppy access/control)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
ReKleSS

Am I doing this right? (floppy access/control)

Post by ReKleSS »

Hi everyone,
I'm playing around with this little test OS of mine, but floppy access is getting troublesome. For now, I just want to be able to seek all over the disk, but it isn't happening... Here's what I'm doing, can anyone tell me what's wrong?
send 24 to 0x3f2 (start motor 1)
send the recal command to the FIFO followed by 0
wait for an interrupt
Wait until bit 4 of the Main Status Register is low

Send the seek command, then 0 (top side of disk, drive 0), then the track no.
wait for an interrupt
send the SenseI and get the output

After all this, nothing happens!!! Bochs tells me I'm on cylinder 255, I think the real PC does too. So, what am I doing wrong here??? Anybody???
-ReK
pepito

RE:Am I doing this right? (floppy access/control)

Post by pepito »

I have the same problem!
I know is an old message, but can some body help us?

thank you
knicos

RE:Am I doing this right? (floppy access/control)

Post by knicos »

I have made a floppy driver for my OS and its working.

First, I send 0x1c to port 0x3f2, not 24, to turn motor A on.
Then the seek command, followed by drive/head (0), then track number. Before writing each command to the data port I check if its ready.
Then wait for interrupt.
Then send Sensei command and read all results (important to read ALL results, sometimes more than documented so have function that reads until no more can be read).

Finally, i set up dma and send read/write commands.

Whats recal command, I dont use it anywhere and mine works?

Advice, try without recal command and change 24 to 0x1c.

Cant help any more without code or more information.
knicos

RE:Am I doing this right? (floppy access/control)

Post by knicos »

Stupid, recal = recalibrate, I do do it, but If you do, only do it intially and you will also need to specify step and head load. Easier not to recal as bios should already have done it.
Post Reply