Dies ist eine alte Version des Dokuments!


CHIP-8

Durch Zufall bin ich auf eine recht alte Programmiersprache namens CHIP-8 gestoßen.

CHIP-8 wurde von Joseph Weisbecker, Mitarbeiter der RCA Laboratories, Princetown, Mitte der 70er-Jahre entwickelt. Ursprünglich wurde die Sprache für Heimcomputer wie den COSMAC VIP oder den TELMAC konzipiert. Ziel war es, eine einfache Sprache zur plattformunabhängigen Entwicklung von Videospielen bereitzustellen.

Der COSMAC VIP ist ein Einplatinenrechner, vergleichbar mit dem LC-80. Ein CDP-1802 8-Bit-Mikrokontroller, 2 KByte RAM, eine Hexadezimaltastatur, 1,76 MHz-Taktfrequenz, ein Kassettenrekorder dient zur Programmspeicherung. Unterschiedlich zum LC-80 ist die Anzeige. Während letzterer nur eine 6-stellige 7-Segment-Anzeige besitzt, hat der COSMAC VIP einen Grafikprozessor zum Anschluss an einen Fernseher. Es konnten 64×32 monochrome Pixel dargestellt werden.
Hergestellt wurde der COSMAC VIP bereits 1977, der LC-80 folgte erst 8 Jahre später!

http://www.chip8.com/cosmacvip/

Merkmal Beschreibung
CPU CDP-1802
ROM 0.5 KByte
RAM 2 KByte
Takt 1,76 MHz
Anzeige TV, 64×32 Pixel, monochrom
Tastatur 16 Tasten (Hex)
Peripherie Kassettenrekorder
Software Programmiersprache CHIP-8

CHIP-8 ist eine Maschinencode-Sprache für einen (theoretischen) 8-Bit-Prozessor. Es gibt nur 31(35) Maschinencode-Befehle; allerdings sind einige darunter, die das Programmieren von Telespielen besonders erleichern, so z.B. eine Sprit-Ausgabe mit Kollionserkennung oder bedingte Sprünge bei nicht-/gedrückter Taste.

Auf dem COSMAC VIP muss ein CHIP-8-Interpreter eingegeben werden. Dieser interpretiert dann den CHIP-8-Programmcode und führt so die Programme aus. Der CHIP-8-Interpreter ist extrem platzsparend programmiert, er belegt nicht einmal 0.5 KByte! Diese Kompaktheit spiegelt sich beispielsweise auch in den Hex-Werten der Maschinencode-Imstruktionen wieder: Die Befehle der F-Gruppe haben einen zweistellige Nummer, diese entspricht der Startadresse der zugehörigen Befehlsinterpreation. Damit sparte man sich die Bytes für eine zusätzliche Sprungtabelle. Auch der Zeichensatz ist clever komprimiert (s. Bild und VIPER 1-01).

Einen guten Einstieg in die Programmierung mit CHIP-8 liefert das Handbuch zum COSMAC VIP (RCA COSMAC VIP CDP18S711 Instrucion Manual; 130 S.). Hier sind auch 20 Spiele abgedruckt, die mit CHIP-8 laufen (PONG, TIC-TAC-TOE, SNAKE, …)

Im VIPER-Magazin 1-01 June 1978 werden zusätzliche Hinweise zur Programmierung mit CHIP-8 gegeben.

Ausgabe VIPER-Magazin 1-02 August 1978 liefert Informationen über die Arbeitsweise des CHIP-8-Interpreters. Es gibt Ablaufpläne und kommentierte Listings.

http://mattmik.com/chip8.html beschreibt ausführlich den CHIP-8-Maschinencode.

Der CHIP-8-Interpreter eignet sich aufgrund seiner einfachen Befehlssatzes ideal als Einstiegsobjekt in das Programmieren von Emulatoren. Es gibt mehrere Seiten im Netz, die das schrittweise vormachen.

  • Listenpunkt

Und es gibt diverse Emulatoren, z.B. den VISION von M.Kogel.

  • Listenpunkt

Beim KC-Club Treffen 2013 habe ich einen Vortrag über die Programmiersprache CHIP-8 und die Implementation eines CHIP-8-Interpreters für den Z9001 gehalten.

  • homecomputer/chip8.1369580934.txt.gz
  • Zuletzt geändert: 2013/05/26 15:08
  • von volkerp