Hey! Hope it's OK to bump this, there's a limit to how many niche Channel F programming threads I'm comfortable with creating here.
My project hit a little snag with the timer interrupt stuff, and then the lockdown happened and I was stuck at home with two kids for several weeks, etc etc. Picking up the F8 again now though.
But I realized I never thanked @e5frog for his great reply – sorry. It was indispensable. Still didn't get the timer to work like I want it to, but that's on me and not you. MESS is great. You're quite right, I have experience with other assembly languages/architectures. I do have experience with several of them, though (M6800/6502, 8080/8085, Z80/Game Boy, probably more) and I still think F8 is the strangest. But that's part of the appeal!
When reading up on the F8 I realized there's no traditional (reverse) opcode table on it anywhere, at least that I've found. So I've started making one. It's not done yet, but here's what I have so far: https://tobiasvl.github.io/opcode-tables/f8/classic – any thoughts would be welcome. It's interesting to see how the decoding is laid out (there's also an octal view, selectable up top, since the matrix on the F8 is mostly octal). I plan to add some more clarifying information below the table (especially when it comes to registers and ISAR), perhaps some more tooltip texts to explain operands.
A couple of questions I just had, but which I guess I can find the answer to myself:
Do the three illegal opcodes $2E, $2D and $2F have any effect?
Is 15 a valid scratchpad register operand? The F8 programming manual just says that 0 through 11, and 12/S, 13/I and 14/D are allowed. So I guess not, but there's nothing about that in the table on the VESwiki. So are $4F and $5F illegal opcodes? Of course if they're legal they would be equivalent to $03 and $07, but what about $3F, $CF, $DF, $EF and $FF which all would do different things to register 15? I can probably test this myself in MESS.