I kept trying to chip away at my device output program to see if I could get it to handle arbitrary byte numbers. It seems to mostly work, but has some weird edge case behavior. There are some really cool shortcuts you can use when wrangling bytes directly, though these are also what is causing me strange behavior. There's still a lot to learn about, but it's pretty cool how directly you can program the computer.
There's still a lot of not-great error messages in both the compiler and the VM, which becomes more obvious as I do more programming. It would be cool to have a way to set breakpoints in debug mode to make it easier to test problem sections.