On 9/16/2020 4:46 PM, John R. Hogerhuis wrote:



    Right now, (since you're listening), most of the TPDD.cs I grok,
    but I am wondering about a few things:

      * In FOrmatDirResponse, 0x1e is for a file larger than $ffff, I
        assumed that's an extension.


Nope. It's real TPDD behavior I reverse engineered long ago. Not saying no one else did, but at least I also did.

Hmm, interesting.  I realize 1e is the number of bytes sent back (differs by 2), so that answers that, but the 'P' seems odd, as I would think it would still be the free numbers of sectors.  During testing, was it always 'P' on various disks with different numbers of sectors free?


      * If the file < ffff, you send 0x9d as the sectors free, but I
        see other guidance saying just send 0x80 back.  Why 0x96d?

Is there a reason you send x09d as opposed to 0x80 here?

      * I assume the 'P', the len >> 24 and the len >> 16 is to send
        the upper 2 bytes of the > ffff size file, but why big endian
        when the original code was small endian?  And, is this part of
        the extension previously defined?

What original code was little endian?

Ah, you're right.  I was looking at seek, which is little endian.


      * In SelectFile, it looks like the select code always tries to
        look for matches in the root dir that of DOS*.CO format.  Is
        there a reason?


Turns out I write very little code without a reason ;-)

It's so that DOS100.CO <http://DOS100.CO> TS-DOS tpdd client (RAM version) can be found even if it's not your current directory based on changing directories using the TS-DOS directory extension.
I figured there was a reason, but it's always good to leave the question open ended.  But, the response doesn't clarify, at least for me.  What is the use case that the read needs to see TS-DOS even when you're not in that directory?

      * Is reference.previous an extension?  Regardless, is there an
        app that uses it (PDDuino doesn't have that functionality, but
        I would like to add and test).

No. It's a real TPDD feature. I added when I found the WP-2 using it. WP-2 traverses the directory backwards if you move the cursor backwards in the file list.

OK... Hmm, don't have one of those to test with, so will have to write some test code

      * Not sure I see why there is an option for a FilteredRead in
        RequestReadBlock.  Is there more docs on this?


Feature... NUL and EOF in .DO files will corrupt a model t's memory file system. So they get filtered out when interacting with a model t.

It looks like you filter them out regardless of platform (Model T, etc.), correct?

Wow, it looks like when the file is opened for reading, you read it fully, counting bad chars, deducting those from the total, using that as the total for the filelength.  Hmmm, that's doable on uCs, but expensive...  I wonder if there's a way to just replace with another non printing char.

Jim


Reply via email to