View Single Post
Old 10 October 2017, 16:22   #4
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 3,333
Thanks for that link! Some questions...

In direct_access_status_sector:
What are the power-on defaults for lba_base and number_of_sector?
What happens if a read/write is attempted that would overrun the end of the USB drive?

In direct_access_cmd_sector struct, is cmd_checksum used? I couldn't see where the Amiga selector code sets that.

CMD_SET_LBA: Does parameter_4 do anything on Gotek hardware? What happens if parameter_5 value is not valid?

CMD_SET_TRACK_POS (command 0x02): What is that used for? I guess it's to set the track number at which the hardware responds to "special" commands/access. Does Gotek hardware support emulation of two drives simultaneously, or is that only for HxC hardware?

What is the name of command 0x03? I think there's a typo in the PDF, it has CMD_SET_TRACK_POS twice.


In the examples, to e.g. read sector 0x00100004, you change LBA to 0x00100000 first. Is it required for the base LBA to be a multiple of 8? Or could you instead change LBA to 0x00100004 and read sector#1?


What are the timing limits (min/max) for stepping heads? For support in WinUAE or other emulator it will be best to match what real hardware/firmware requires.

The Amiga selector uses 80us or 8us step delay when checking for presence of floppy emulator in test_drive(). Then jumptotrack() uses 1ms.

test_drive() steps to track 0 with 80us step delay (too small for a real floppy drive). Needs max 260 steps until track0 signal.

Then it steps inward 40 times (source comment says 30 though?) with 8us step delay. Wait 200us then step outward (towards track 0) 40 times (again comment says 30). Need to have track0 signal after the 40th step.


Edit to add: is there any way for the Amiga to determine the USB drive capacity?

Last edited by mark_k; 10 October 2017 at 21:13.
mark_k is online now  
 
Page generated in 0.04534 seconds with 11 queries