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