CHIP-8

from Wikipedia, the free encyclopedia

CHIP-8 describes both an interpreted programming language , which is based on assembler , and the virtual machine within which the applications are executed. CHIP-8 is platform-independent and can therefore be seen as a predecessor of modern VMs such as Java VM or .NET CLR .

history

CHIP-8 was developed by Joseph Weisbecker in the mid-1970s. The language was originally conceived for home computers such as the COSMAC VIP or the TELMAC . The aim was to provide a simple language for the platform-independent development of video games .

In 1991 Erik Bryntse developed a successor to CHIP-8, the so-called SCHIP (Super CHIP). This expanded CHIP-8 with some additional commands and offers, for example, a higher resolution. The CHIP48 interpreter developed by Bryntse ran on the HP-48 graphical pocket calculator .

Today, CHIP-8 interpreters can be found for a large number of modern systems, such as mobile phones or game consoles . The reason for its widespread use is the comparatively simple implementation of the language, which makes it a popular entry-level project for developers of emulators .

Applications

Screenshot of the game Pong on a CHIP-8 interpreter

Despite the large number of interpreters, there are comparatively few applications. The majority make up simple arcade implementations of games such as Pong , Space Invaders or Tetris . More complex applications are not possible due to the low memory and limited graphics. Many games are freely available on the Internet as public domain .

properties

The programming language is based on the assembly language. Applications are programmed using opcodes . An opcode is a 16-bit value that represents a command and, if applicable, its arguments. The opcodes are executed by the interpreter within a virtual machine. CHIP-8 interpreters are often referred to as emulators . Strictly speaking, however, this is incorrect because CHIP-8 programs are not executable machine code, but bytecode .

Storage

The address range of CHIP-8 goes from 200h to FFFh. A total of 3584 bytes of main memory are available. The beginning of the address space is reserved for the interpreter itself.

register

CHIP-8 offers 16 8-bit registers for data and a 16-bit address register.

Graphics and sound

The resolution is 64 × 32 pixels with 2 colors ( monochrome ). SCHIP offers an improved resolution of 128 × 64 pixels. The only possibility of sound output is a simple signal tone ( beep ).

input

User input is made via a keyboard with 16 keys, which is structured similar to the numeric keypad. The keys are numbered from 0 to F in hexadecimal .

literature

  • RCA COSMAC VIP CDP18S711 Instruction Manual . RCA Solid State Division, Somerville 1978, pp. 13-18, 35-37.
  • Joseph Weisbecker: An Easy Programming System . In: BYTE magazine , December 1978, pp. 108-122.

Web links