First, the good news:
(1) Auto clock set works (though for some reason it now displays a leading zero).
(2) Shift and XShift work just fine. I've got FAV working as Shift, and SET as XShift.
(3) ToadTog works, though it took some figuring out.
(4) Custom names work, mostly. I can't get them to work with the HT key though (it either displays the (standard) device name, e.g., "DVD 1574", or "THEA").
I decided not to mess with LDKP just yet, since (judging from the fora) it seems to be causing the most headaches. I'll leave it in place for now though.
HT mode is used solely for VPT functionality for the VCR and DVD, since these devices have their own functions on the VOL and MUTE keys as well.
The custom names are assigned to Shift-Phantom3 for all individual devices; in addition, there are two other custom names for HT and Shift-HT, assigned to DVD-XShift-Phantom3 and VCR-XShift-Phantom3 respectively. Here's how I had it set up in the macros:
For HT:
DEV_AUD
SET_VOL_KEYS
DEV_DVD
SET_CHAN_KEYS
SET_TRANS_KEYS
SET_PIP_KEYS
SET_MENU_KEYS
SET_OTHER_KEYS
XSHIFT_PHANTOM3
AllBind
For SHIFT-HT, substitute "DEV_VCR" for "DEV_DVD".
I tried moving the "XShift-Phantom3" after the "AllBind", and eliminating the "AllBind". Neither worked.
Except for the special device selection macros, I use global macros as I would in an unextended remote (assigned to the M1, M2, M3 keys, plus their shifted and Xshifted extensions). Macros nested within these are typically implemented as DSMs, placed on their corresponding device's Xshifted number keys.
A typical DSM might look like this, assigned to TV-XShift-0, to be invoked in a global "master power off" macro:
Exit (AV Status-Reset)
2 (Load THX settings for color, tint, etc.)
Xshift-Phantom1 (4 second delay)
Shift-Phantom1 (Discrete off)
Now for the bad news. First, DSMs, when invoked individually (as for debugging), cause the remote to lock up. Hitting its corresponding DEV key sometimes clears this up, though it may take several presses.
Second, because the macros run so fast, I'm having to use the delay function much more extensively (almost always after a power-on command, for example). Worse, the delays themselves are shortened as well: even using $FF results in less than a second's delay. And, to complicate things further, many of the delay commands are in DSMs to prevent buffer overflow.
I've read a recommendation to use the stand-alone delay protocol instead of the one packaged with the extender; I'll try that...
"How shall I answer? A man of my mind can do anything!"--Steely Dan