Vinegar is a CHIP-8 and SCHIP 'emulator'/interpreter.
CHIP-8 was a simple language interpreter found on some early home computers, and has a very small instruction set. The machines it ran on had a 64x32 resolution display; they also had a simple hex keypads (a 4x4 grid of keys 0 to F) for input, which might explain the odd key layout this program uses.
CHIP-8 was revisited in the 1990s thanks to an interpeter for the HP48 calculator. The instruction set was extended and the screen resolution doubled to 128x64, but is fully backwards compatible with the original CHIP-8. This is the "SUPER-CHIP" (SCHIP) part of this interpreter.
It is easy to find programs in CHIP-8 or SCHIP, and using the command script file included you can easily convert the files to a format that can be sent to your calculator.
This program lets you run most CHIP-8/SCHIP programs. It makes more sense to list the limitations, rather than the features...
This package comes with 3 binaries; one for TI-83, and two for TI-83 Plus. Send the one that best matches your calculator model and shell to your calculator using your linking program.
You won't be able to use this interpreter without having a few CHIP-8 programs installed. I've included a rather large number of them in the ROMs subfolder of this package. Note that ones with (CHIP-8) in their name are CHIP-8 programs, and that ones with (SCHIP) in their name are SCHIP programs.
If you run the program, you should be able to see the installed program in a list, a bit like Ion's main view. Highlight the program you wish to start, then press 2nd or Enter to run it.
The key layout is a little odd; here is a CHIP-8 keypad and a TI-83 keypad for comparison.
CHIP-8 | |||
---|---|---|---|
1 | 2 | 3 | C |
4 | 5 | 6 | D |
7 | 8 | 9 | E |
A | 0 | B | F |
TI-83 | |||
---|---|---|---|
7 | 8 | 9 | × |
4 | 5 | 6 | - |
1 | 2 | 3 | + |
0 | . | (-) | E |
The other keys for this program are:
Key | Program selection | In-game | Settings |
---|---|---|---|
Clear | Quit | End simulation | Return |
Mode | Quit | Invert colours | |
2nd | Run | Toggle tickbox | |
Enter | Run | Toggle tickbox | |
Alpha | Settings | Settings | Return |
←/→ | Scroll display | Change value | |
↑/↓ | Change selection | Change selection | |
Del | Restart |
The settings screen (Alpha) is very useful when it comes to setting the speed of the simulation.
The various options can be summarised thusly:
More simply, the fastest possible simulation is to have an Instruction delay of 0, a Frame skip of 255, and Always refresh LCD and sound disabled. The slowest is to have a delay of 255, a skip of 0, LCD refreshing and sound on.
CHIP-8 is a high-level low-level language, and as such can potentially muck up whatever it is you are running it on.
Vinegar checks the stack level, data pointer, current instruction and program counter whenever it's about to use them for something potentially dangerous. If it senses that something is wrong, you'll end up with a screen like the following:
The three reported value are program counter, opcode and index register. The different errors are:
You can disable this error screen on the settings page; beware that this will cause some simulated programs to 'crash' (there should be no danger to your calculator).
To convert a "plain" CHIP-8 program to the format suitable for the calculator, go to Convert folder in this package.
It should spit out two files; an 8xp for the TI-83 Plus and an 83p for the TI-83.