So, I managed to convert both console output and keyboard input to COM interfaces on the Kestrel. However, with only 384 bytes of space for stack, plus RISC-V's boneheaded requirement that stacks remain 16-byte aligned for EVERY nesting level, this means I'm running out of stack just doing something simple like scrolling the screen.
Ouch.
Looks like I'm going to have to abandon COM and go back to using just a single entry-point vector for RAM-resident program linkage.
:/