Dabei ist Shenzhen I/O kein kompliziertes Spiel: Seine Geschichte ist flott erzählt, sein Inhalt schnell beschrieben. Es spielt in der nahen Zukunft der chinesischen Metropole Shenzhen. Als Angestellter eines Longteng genannten Unternehmens setzt man Schaltkreise aus verschiedenen Bauteilen zusammen und programmiert deren Mikrocontroller so, dass sie verschiedene Eingaben an gewünschte Ausgabegeräte weiterleiten. So entstehen Displays, die auf Knopfdruck einen Betrag addieren oder subtrahieren, sowie Module, die den Klang eingehender Musik verändern.
Land und Leute lernt man durch E-Mails kennen – erfreulich gut geschriebene von erstaunlich greifbaren Charakteren. Auch Aufträge erhält man per Elektropost, wobei man fast immer zwischen verschiedenen Projekten wählen darf. Auf dieser einfachen Benutzeroberfläche entwickelt Shenzhen I/O ein überraschend glaubwürdiges Eigenleben. Mit der
![[GUI_STATICIMAGE(setid=81119,id=92536928)] [GUI_STATICIMAGE(setid=81119,id=92536928)]](https://dev.4p.de/wp-content/uploads/sites/13/2024/04/92536928-vollbild.jpg)
Gruppendynamik eines Rollenspiels hat das natürlich nichts gemein! Weil Inhalt und Darstellung aber sinnvoll zusammenpassen, fühle ich mich stärker als Teil des Longteng-Kollektivs, als ich vor dem ersten Hochfahren des virtuellen Rechners vermutet hatte.
RTFM!
Es ist also ganz einfach: Man zieht ein Bauteil auf die Blaupause, verbindet Schalter, Ausgabegerät sowie Mikrocontroller durch Verbindungskabel und gibt den Befehl „mov p0 x1“ ein. Das transportiert den an p0 eingehenden Wert zu Ausgang x1 – I/O steht für Input/Output, also Eingang/Ausgang. Das Programmieren erinnert an TIS-100, das ebenfalls von Zachary Barth erdacht wurde und für das er eine ganz ähnliche Programmiersprache erfunden hatte.
Aber natürlich reicht hier wie da das Verschieben von Werten selten aus. Sie müssen umgewandelt werden, dürfen ausschließlich unter bestimmten Bedingungen verarbeitet werden, oft sollen verschiedene Signale unterschiedliche Funktionen auslösen usw. Ein profaner Zähler sieht etwa so aus:
![[GUI_STATICIMAGE(setid=81119,id=92536927)] [GUI_STATICIMAGE(setid=81119,id=92536927)]](https://dev.4p.de/wp-content/uploads/sites/13/2024/04/92536927-vollbild.jpg)
tgt p0 0
+ add 1
tgt p1 0
+ sub 2
tlt acc 0
+ mov 0 acc
mov acc x1
slp 1
Schnell werden die Abhängigkeiten zahlreicher, das komplette Design komplexer. In vielen Geräten müssen mehrere Bauteile mit jeweils eigenen, voneinander abhängigen Programmierungen verknüpft werden. Und genau wie in TIS-100 ist das Handbuch dabei die wichtigste Hilfe, weil nur dort sowohl Bauteile als auch die Assembler-ähnliche, frei erfundene Programmiersprache beschrieben sind. Die Oberfläche weist zwar auf Fehler im Code hin, führt aber nicht wie ein interaktiver Lehrer außerhalb des Spiels an dessen Funktionsweise heran. Entweder druckt man sich das Handbuch also aus oder liest das stets im Hauptmenü verfügbare PDF, um sich wie ein echter Elektroniker der Materie zu nähern.