The Computer programming language CHIP-8 was originally develop by a Design Engineer by the name of Joe Weisbecker at RCA Labs, USA (1975-76). It’s reason for being was simply to allow users of low cost Microcomputers to write there own Video Games without the complication of having to deal with lower level Machine code.
The programmer used a Hexadecimal Keypad to input data. The keypad typically produces Row and Column signal lines that are capable of scan by the Computer to determine which Keys were press. This method of programming was a significant step up from Binary coding which was very tedious to enter, and required a deep understanding of the Microprocessors internal architecture.
The first computer to have CHIP-8 resident was RCA’s COSMAC VIP.
CHIP-8 is an Interpreter base language, and is usually find in ROM (Read Only Memory), within the Processors Memory Map. Because of this it can be termed – the Computers Operating System (CHIPOS).
The Vintage limitations of its use are – a graphics screen of only 64×32 pixel resolution, with a small program addressing space of only 4K bytes. This is due to the 12 bit width of the Memory Pointer – Register I.
Monochrome Graphic display. Color was not initially support.
The Users program resides in RAM (Random Access Memory) starting at address 0200 Hex.
Each programming Statement is two bytes in length (4 Hex digits).
The Instruction Set Consists of 33 Instructions.
There are 16 one byte variables – V0 to VF which can be modified using a variety of arithmetic/logic, and conditional branch instructions.
Worth repeating – The Memory Pointer (Register I) is 12 bits in length, thus giving an addressing range of 4K bytes. A big limitation by today’s standards.
Machine code programs can be call within CHIP-8 programs.
The CHIP-8 Computer Screen is oraganize in X,Y format. X co-ordinates range from 0 to 63, and Y co-ordinates range from 0 to 31. Co-ordinate 0,0 is at the top left side of the Screen.
Here is an example of CHIP-8 code that amplifies the simplicity of how a character can be write to the Screen:
Like all CHIP-8 programs, this program starts at address 0200 Hex –
SHOW 5 @ VA,VB