Hacking a retrocomputer that never was
Arduino code to enter all possible combinations from AAA to ZZZ and take a screenshot of each Iteration.
x-zip-compressed - 543.00 bytes - 07/11/2016 at 11:17
That took longer than expected. TIS-100 failed to recognize the backspace presses during the first test. That could be cured with some extra delay after each keystroke.
What turned out to be quite annoying is that TIS-100 is prone to crashing after a few hours on my machine. This is rather annoying since I am running the acquisition of screenshots over night just to find out that instead logging everything from AAA to ZZZ the process stopped working at e.g. FTM.
Furthermore there are some wrong screenshots every so often, probably because a spike in the system load prevented a clean execution of all the keystrokes (I'm looking at you, Windows updater...).
Anyway, the screenshots are acquired. At least hopefully, there might be some irregular entries. I will have to sort that out during the octave analysis.
It is really simple: the game accepts three character long inputs as commands. 15 instructions are documented int the TIS-100 datasheet (the game's manual).
So there are 26*26*26 = 17576 possible combinations which may or may not be a legal command.
The plan is to use an Arduino Leonardo in HID mode to enter all these combinations, a blank right after a combination followed by F12 (the hotkey for screenshots). I allow the game a pause of 200 ms after entering the blank to bring up the error popup that is shown whenever the input is not a known command. And another 500 ms delay to allow the system to take the screenshot and save it.
It should take roughly four hours to complete the cycle.
To avoid having to look though all 17576 screenshots by myself I will use GNU-octave to look through the images and search for the red error message. Every image without this message contains a command. So there should be at least 16 (it is known that there is at lease one undocumented command).