CHIP‑8 Teil 1, in welchem es vor allem erst einmal um 0 und 1 geht

Bei Marco habe ich vom CHIP‑8 gelesen. Das war eine Spezifikation aus dem Jahr 1978 für einen möglichst simplen Computer, mit dem man dennoch Spiele programmieren können sollte. Und zwar solche einfachen Spiele:

Ob es physisch je einen CHIP-8-Computer gegeben hat, weiß ich nicht; aber es gibt etliche virtuelle CHIP-8-Computer – das heißt, dass die in Wirklichkeit ein Programm auf einem beliebigen anderen Rechner sind (zum Beispiel mit Windows darauf), das so tut, als wäre es ein Computer. Auch Java funktioniert so, mit einem virtuellen Java-Rechner – dem Java-Programm ist es egal, ob es in Wirklichkeit unter Windows oder Linux oder IOS läuft; tatsächlich läuft es erst einmal auf einer virtuellen Java-Maschine.

Also habe ich mir mal eine CHIP-8-Maschine für Windows 10 besorgt, und Programme dafür (aber letztlich für jede andere CHIP8-Maschine eben auch, das ist ja der Vorteil). Ich habe mir das kürzeste Programm herausgesucht, und das zeichnet einfach ein zufälliges Labyrinth auf den Bildschirm:

Tatsächlich kannte ich dieses Programm von früher, es werden dabei nur zwei verschiedene Bausteine zufällig wiederholt, was dann ein Bild wie bei einem Labyrinth gibt. Die Programmdatei dazu heißt MAZE, und wenn ich sie mit einem Textbearbeitungsprogramm öffne, sehe ich das:

Wer schon mal eine .exe-Datei unter Windows mit einem Texteditor betrachtet hat, dem kommt das bekannt vor. Solche Dateien sind nicht dazu geeignet, mit einem Texteditor geöffnet zu werden. Der Grund: Jede Datei auf der Festplatte oder anderswo besteht letztlich nur aus einem Haufen von 0ern und 1en. (Auch das ist zwar noch eine Abstraktion: tatsächlich ist das irgendwas fies Physikalisches, mit Schalterchen oder Transistoren oder Spannung, aber für mich sind 0er und 1en tief genug.)

Aus praktischen Gründen betrachtet man meist immer acht dieser bits auf einmal davon. Manche dieser Achter-Kombinationen entsprechen Buchstaben, das ist so eine Konvention, eben um überhaupt mit Text arbeiten zu können. Wenn die Textdatei zum Beispiel mit “Hallo” beginnt, dann werden die ersten zwei Buchstaben vielleicht in Wirklichkeit als “‭0011 0000 ‭0011 1101” gespeichert sein – oder andersherum gesagt: Die Gruppe ‭0011 0000 entspricht einem “H”. Ich sage “vielleicht” deshalb, weil es auch hier verschiedene konkurrierende Codierungen gibt, etwa Windows-1252 und ASCII, bei denen jeweils die gleichen acht bits als unterschiedliche Zeichen interpetiert werden.

Als Folge von 0 und 1 sieht die vollständige MAZE-Programmdatei so aus:

10100010 00011110 11000010 00000001 00110010 00000001 10100010 00011010 11010000 00010100 01110000 00000100 00110000 01000000 00010010 00000000 01100000 00000000 01110001 00000100 00110001 00100000 00010010 00000000 00010010 00011000 10000000 01000000 00100000 00010000 00100000 01000000 10000000 00010000

Diese Kombinationen sind weder dafür gedacht, als ASCII-Codierung verstanden zu werden noch als Windows-1252. Es sind einfach erst einmal nur Zahlen. Wenn ich sie mit Gewalt als Zeichen interpretieren will, kommt so Salat aus wie oben. Manchmal kommt so etwas auch aus dem Drucker, wenn ein Druckauftrag daneben gegangen ist.

Am besten betrachtet und bearbeitet man solche Dateien mit einem Hexeditor. Der zeigt einem quasi die 0er und 1en direkt, und nur am Rande nebenbei als Option eine mögliche Interpretation als Zeichen. Weil diese vielen 0er und 1en aber so unübersichtlich sind, werden jeweils ein Achterblock (ein Byte) zusammengefasst als zweistellige Zahl im Hexadezimalsystem dargestellt. Das ist viel lesbarer und sieht dann so aus:

A2 1E C2 01 32 01 A2 1A D0 14 70 04 30 40 12 00 60 00 71 04 31 20 12 00 12 18 80 40 20 10 20 40 80 10

Man muss sich eigentlich nur merken, dass etwa A2 eine Abkürzung für die Folge 10100010 ist. (Wer neugierig ist, kann sich ja mal Bilddateien vom Format jpg oder bmp in einem Hexeditor anschauen und ausprobieren, was sich ändert, wenn man ein paar Zahlen abwandelt.)

Wie ensteht jetzt aus diesen 34 Hexadezimal-Paaren (oder 34 Byte oder 34 mal 8 Bit) das Labyrinth? Das kommt im nächsten Blogeintrag.

Eine Antwort auf „CHIP‑8 Teil 1, in welchem es vor allem erst einmal um 0 und 1 geht“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.