On Wed, Sep 16, 2020 at 4:40 PM RETRO Innovations <go4re...@go4retro.com>
wrote:

> 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?
>
>
> No recollection. It was like 2004 or 2005 I think.

Likely the disk was blank though.

I'm not sure it matters much... there are no "sectors" to report on a TPDD
service that isn't over a real floppy.

And I don't know that it is actually referring to free sectors. I always
figured the 'P' and the 'F' were structural components of the message when
dealing with a 64K or greater file size.




>
>
>>
>>    - 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.
>
>
Seek is definitely an extension.

>
>
>>
>>    - 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 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?
>
>
Probably the bootstrap programs that inload the DOS100.CO isn't directory
aware.

It's for compatibility.

I added it for Kurt McCullum I think


>
>
>>
>>    - 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?
>
Maybe. Not in my local copy. Being able to turn it off / on easily is being
changed for CP/M compatibility.


> 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.
>
Yeah, it's complicated but negligible on a desktop.

Other option is just don't filter them. A real TPDD doesn't do it.

I do it because I have come to consider LaddieAlpha a Model 100 to PC file
transfer service, not a disk emulator per se. So conversion filters
particularly for safety are a reasonable feature and weren't to tricky to
add.

The bigger problem has been turning them off.

BTW, the other filtering I do is extension correction for BA versus DO
files. Many BA files around on Club100 are not real, tokenized BA files,
and if you try to inload them with TS-DOS you'll crash your Model 100.

So LaddieAlpha detects them and presents them as DO files if they have DO
content.

I'll warn you a couple of our members don't like the fact that LaddieAlpha
has filters. So if you do implement it you may want to add an option to
turn it on / off.

-- John.

Reply via email to