Vinegar

A MaxCoderz Production

Ben Ryves 2006

What is it?

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.

Features

This program lets you run most CHIP-8/SCHIP programs. It makes more sense to list the limitations, rather than the features...

Usage

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
123C
456D
789E
A0BF

TI-83
789×
456-
123+
0.(-)E

The other keys for this program are:

KeyProgram selectionIn-gameSettings
ClearQuitEnd simulationReturn
ModeQuitInvert colours
2ndRunToggle tickbox
EnterRunToggle tickbox
AlphaSettingsSettingsReturn
/Scroll displayChange value
/Change selectionChange selection
DelRestart

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.

Errors

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).

Converting

To convert a "plain" CHIP-8 program to the format suitable for the calculator, go to Convert folder in this package.

  1. Download Brass and copy the EXE file into the Convert folder.
  2. Copy your CHIP-8 program into the Convert folder.
  3. Go to the command prompt, browse to the folder then type "Convert <filename>", where <filename> is the filename of your CHIP-8 program.

It should spit out two files; an 8xp for the TI-83 Plus and an 83p for the TI-83.

Thanks