I've now added TPDD2 support to pdd.sh
It can do normal file load/save/delete access, access both banks, format
disk, and read-only sector access.
But sadly no sector write access yet, and I'm not sure the sector read
access is 100% yet either. It's reading all the logical sectors, but
it's not doing the equivalent of the "ID Section" on TPDD1 FDC mode.
The TPDD-2 Sector Access docs we have so far (where the copy on
Bitchin100 is probably the most complete) only mention reading the
nominal 1280 bytes per sector, but I found you con request to read
beyond the end of the 1280 bytes per sector, and the drive happily gives
you data which isn't just data from say the next sector or track. I
haven't analyzed it to decipher what that data is, I can just see that
at least some of it is definitely not data that appears in any other sector.
Along the way I learned a couple details that could be added to the
TPDD2 sector access page on Bitchin100.
http://bitchin100.com/wiki/index.php?title=TPDD-2_Sector_Access_Protocol
Under "Read Fragment Request (RFReq)",
This part:
"Whereas "Load Sector" causes a sector of the disk to be loaded into the
TPDD-2's cache, Read Fragment transfers a fragment of the loaded sector
to the client. The largest read I have seen specified a
/RFReq/Payload/Length of 0x40. I suspect larger reads could be done,
which would presumably speed things up a bit."
You can specify any length from 00-FC (0-252 bytes), and the drive will
return the requested number of bytes. The reason it's 252 instead of 255
is because the response packet also has a single byte for the payload
length field, only the response also includes 3 bytes of metadata before
the actual data. Those 3 bytes come out of the available 255, leaving
only 252 available for data.
Although you can ask for any number from 0-252 inclusive, the most
practical value is 128, because it's the largest legal value that
multiplies evenly up to 1280.
FLOPPY and TS-DOS probably use 64 because that's almost as good, needs
less ram, and fits inside the 100's receive buffer which helps make it
bulletproof.
Next,
Under "Read Fragment Response (RFResp)", under Payload Length:
"/RFReq/Payload/Length 3" should say "/RFReq/Payload/Length + 3"
TPDD2 sector write access will take some investigation by using dlplus
in debug mode or adding a server mode to the script, to capture whatever
the TPDD2 backup program does from the drive's point of view.
HOWEVER!
I just discovered that we've had a way to create working bootable TPDD2
Utility Disks from downloadable files using no special hardware other
than the drive itself since at least 1991!
PDD210.EXE in the M100SIG has a full disk image function, and that
function actually works to make a fully working bootable TPDD2 Utility
Disk, and it works from within dosbox, so you don't need to find an
actual MS-DOS machine to run it.
All you need is a disk image (which I've now generated and made
available), PDD210, ms-dos or dosbox, and a TPDD2 drive.
I wrote down the details for reference http://tandy.wiki/TPDD_client:flopy2
wgethttps://archive.org/download/M100SIG/M100SIG.zip/Lib-09-PERIFERALS/PDD210.ZIP
<https://archive.org/download/M100SIG/M100SIG.zip/Lib-09-PERIFERALS/PDD210.ZIP>
unzip PDD210.ZIP
wgethttp://tandy.wiki/images/1/16/26-3814.ZIP
<http://tandy.wiki/images/1/16/26-3814.ZIP>
unzip 26-3814.ZIP
dosbox -c "serial1 directserial realport:ttyUSB0" .
C:>pdd /FORMAT
C:>pdd /WRITE 26-3814.PDD
PDD210 can't do the same for a TPDD1 util disk though!
It fails when trying to dump a TPDD1 Utility Disk in a TPDD1 drive.
So, no single program does everything, but at least there is a way to do
TPDD1 and a way to do TPDD2
--
bkw
On 9/3/21 4:43 AM, Brian K. White wrote:
On 9/2/21 8:30 PM, Chris Kmiec wrote:
Wow, thanks for the link - I got some reading to do :) This seems
very cool!
I got not one but two cables! And two drives, a TPPD1 with a caked-on
belt (a project in itself), and a mint TPPD2 that has a newer belt
and "worked when used last time few years ago"...
You could use https://github.com/bkw777/pdd.sh to create a TPDD1 disk
after you get a new belt.
I don't know when I'll have TPDD2 support. I think it's doable with
just more of the same straighforward trial & error work, I'm just not
promising to work on it this week or any particular time. But I want
it myself so, probably I'll have it pretty soon.
--
bkw