The Fairchild F8 CPU, the F3850, has 64 scratchpad registers.
The first 12 of these are directly addressable by several instructions. For example, the opcodes
$CX add the contents of scratchpad register
X to the accumulator, for values from
Scratchpad registers 12, 13 and 14 are not addressable this way; the corresponding opcodes instead indirectly accesses the scratchpad register currently addressed by the ISAR (Indirect Scratchpad Addressable Register). For example, opcode
$CC does not add scratchpad 12 to the accumulator, but instead it adds whichever scratchpad register is currently addressed by ISAR.
$CD does the same but post-increments ISAR, and
$CE post-decrements ISAR instead.
So what about opcode
$CF? One would think that it would add scratchpad register 15 to the accumulator, since there are no more special addressing modes for ISAR. This opcode table I found seems to suggest that's the case.
However, the F8 Guide to Programming says otherwise in Appendix D:
This instead suggests that 15 can't be accessed directly like this, implying that
$CF perhaps simply is an illegal opcode.
Note that scratchpad register 15 has an alternate name,
QL, which is used in opcodes
$07 which are
LR A,QL and
LR QL,A respectively. So the effects of
$5F, which would be
LR A,15 and
LR 15,A respectively, are already covered there. So either
$5F are illegal but covered elsewhere, or they have the exact same effect as those other opcodes.
So who is right? Can scratchpad register 15 be directly addressed or not (either undocumented or not)? And if not, do the corresponding opcodes have any effect?