Hello, I just found out how to read my old TI-99 disks using fdutils. I have 40 tracks, 18 sectors per track, two heads, 256 bytes/track, MFM. setfdprm and dd/cat did not work. I get 8 records in, and then the drive starts seeking tracks. So I use fdrawcmd, feeding in the track/head/sector number. I wrote a script which issues fdrawcmd for each track, reading 18*256 bytes. ./fdrawcmd read $PHEAD $TRACK $LHEAD 0 1 18 0x1b 0xff length=4608 rate=1 track=$((TRACK*2)) >> out.dsk One problem, though: For each track, the drive seems to seek in and out, which heavily slows down loading. That is, instead of stepping to the next track, it seems as it if steps back to track 0 and then forward to the next track. What can I do to prevent this? Michael
Hi Michael,
So I use fdrawcmd, feeding in the track/head/sector number. I wrote a script which issues fdrawcmd for each track, reading 18*256 bytes.
./fdrawcmd read $PHEAD $TRACK $LHEAD 0 1 18 0x1b 0xff length=4608 rate=1 track=$((TRACK*2)) >> out.dsk
One problem, though: For each track, the drive seems to seek in and out, which heavily slows down loading. That is, instead of stepping to the next track, it seems as it if steps back to track 0 and then forward to the next track. What can I do to prevent this?
It's been a long time since I did this, but you're right, it does step from track zero every time. http://inputplus.co.uk/ralph/#adfs covers where you've got to and then goes onto mention LibDsk; perhaps that'll be useful to you. Cheers, Ralph.
Michael Zapf wrote: [...]
./fdrawcmd read $PHEAD $TRACK $LHEAD 0 1 18 0x1b 0xff length=4608 rate=1 track=$((TRACK*2)) >> out.dsk
One problem, though: For each track, the drive seems to seek in and out, which heavily slows down loading. That is, instead of stepping to the next track, it seems as it if steps back to track 0 and then forward to the next track. What can I do to prevent this?
Michael
This is because the drive always recalibrates if the filedescriptor is open after a raw command. In order to avoid this, keep the file descriptor open, and use the drive=n parameter: exec 4<>/dev/fd0 ... ./fdrawcmd read $PHEAD $TRACK $LHEAD 0 1 18 0x1b 0xff length=4608 rate=1 \ track=$((TRACK*2)) drive=4 >> out.dsk The exec line opens filedescriptor 4. The drive=4 then instructs fdrawcmd to use the already open file descriptor 4 to do its thing, rather than opening its own Regards, Alain
participants (3)
-
Alain Knaff -
Michael Zapf -
Ralph Corderoy