The TPDD2 service manual in all of its glory...
https://archive.org/details/tpdd-2-service-manual <https://archive.org/details/tpdd-2-service-manual>

I had previously discovered request formats 0x11 and 0x33 which I just called UNK11 and UNK33, not yet documented anywhere at the time. Both do exactly the same thing, which is return a short string of canned bytes like "UNK23" does (previously "TS-DOS Mystery") but a different set bytes and fewer of them.

The new manual documents 0x23 as Get Version Number,
and 0x33 as Get System Information,
and does not document 0x11

It almost looks like there might be a bitmask going on internally where multiple different values might set the right bits to invoke a given function, but for official use or documentation they want to avoid having request format numbers from the same range as return format numbers, so all the requests come from 0x00-0F and returns start at 0x10, and maybe 0x23 is just an exception. Except there are both requests and returns in the same 0x30-3F range, though no full overlaps like 0x11.

So I'll just consider 0x11 an undocumented synonym for 0x33 and only actually use 0x33 in software now.
That de-mysteries 0x11, 0x23, and 0x33.

A few things that might "do something" or at least respond without crashing, but still not documented in either TPDD1 or TPDD2:
(operation-mode request formats)
#define REQ_SEEK          0x09 // ???
#define REQ_TELL          0x0A // ???
#define REQ_SET_EXT       0x0B // ???
#define REQ_EXT_QUERY     0x0E // ???
#define REQ_COND_LIST     0x0F // ??? - TPDD2 responds RET_CACHE_STD

( RET_CACHE_STD is the documented return format 0x38
  #define RET_CACHE_STD     0x38 // TPDD2 shared return format for: cache_load cache_write cond_list
)

I don't remember where I got those labels from.
I don't have implementations for any of them in either dl2 or pdd.sh so they must just be something I saw somewhere and put in as placeholders to fill in as possible later.

--
bkw

Reply via email to