Karl will remember this one.
I don’t know how it started, though I suspect it was with Luke. Maybe he asked a question, or requested assistance from Karl or from me. However it began, it ended with the the three of us solving our way through the OSIX challenges. It actually worked out very well because at least one of us was well-suited for each level.
Level 12, the second last, was my favourite. It was called the Evil Professor, and if I recall it with any accuracy, we were provided with the specs for an instruction set and a binary file that, when executed on the fictional machine built for that instruction set, would print for you the key to complete the challenge.
If you are at all like me, then reading that made you think: wow, we could have so much fun with that and also summarize it using a run-on sentence! If you’re not, you probably thought something a bit different.
But since I am both like myself and half psychic, those thoughts filled my mind, and also I was not wrong.
I decided that not only did I want to fully simulate a machine based on that instruction set, but I also wanted a fancy debug environment. I wanted to see the contents of RAM, each of the registers, the PC, a history of instructions executed (in ASM), and basically just as much as was completely unnecessary. I wanted to be able to step through the code.
And so I set about misusing PHP. There was a lot of converting between binary and hex and decimal and back again.
I’ve only once since made so much use of pack and unpack.
Before its completion, Karl and I were working on it together – he was fixing bugs as I introduced them.
With PHP as well, I wrote an assembler so that we could easily assemble our own ASM files for execution. Maybe no one will agree, but it was pretty cool and also fun.