Mandelzoom - Ein Programm zur Berechnung der Mandelbrotmenge

Einleitung

Vermutlich hat jeder Computer-Enthusiast der achtziger Jahre irgendwann einmal versucht, die Mandelbrotmenge auf den Bildschirm seines Homecomputers zu zaubern. Die beschränkte Rechenleistung damaliger Computer dürfte aber jeden zur Verzweiflung getrieben haben.

Dass die Sache unter BASIC, gar unter TI-BASIC (egal ob normal oder extended) keine Aussicht auf Erfolg hatte, war von vornherein klar. Alleine die Tatsache, dass unter Basic kein Bitmap Mode möglich war, machte den Griff zum Assembler zur Pflicht. Andererseits: Die ganze Berechnung der Mandelbrotmenge ist Fließkomma-Arithmetik und die erfordert Zugriff auf die ROM-Routinen. Damit holt man sich die ganze Langsamkeit des Ti-99/4A wieder an Bord. Das entäuschende Ergebnis des ersten Anlaufs: Mehrere Tage Rechenzeit für ein Bild und eine sch*-Grafik, weil man selbst im Bitmap-Mode für für je acht Pixel nur zwei Farben definieren kann. Später habe ich dann gesehen, dass andere Leute das weitaus besser hingekriegt haben (Roland Meiers "fractals"), aber richtig überwinden kann man die Beschränkungen des 9918A Grafikchips nie.

Zum Glück erschienen irgendwann zwei Artikel in der Zeitschrift c't, die meine zwei Probleme schlagartig lösten:

  1. Einsatz normierter Integerzahlen als Ersatz für die Fließkommaarithmetik.
  2. Dithering zur Simulation von Graustufen auf monochromen Ausgabegeräten.
Das Ergebnis ist MANDELZOOM, das seinerzeit schnellste Programm zur Generierung der Mandelbrotmenge auf dem Ti-99/4A. Oder besser gesagt: Das schnellste Programm, das ich kannte (ich kannte ohnehin kein anderes). Die zeitkritischen Teile sind in Assembler geschrieben, das weniger kritische Drumherum in c99. Ein großer Nachteil ist die begrenzte Rechengenauigkeit. Mit 16 Bit kann man nicht besonders tief in die Mandelbrotmenge eintauchen. Deswegen gab es dann auch noch eine Version 1.1 des Programms, die mit 32 Bit rechnete und entsprechend deutlich langsamer war. Diese Fassung ist jedoch im digitalen Nirwana verschollen (die Diskette war nach dreißig Jahren nicht mehr lesbar). Eine geplante Version 1.2, die die Rechengenauigkeit zum Bildausschnitt passend ausgewählt hätte, hat mein Hirn nicht verlassen und ist gar nicht erst programmiert worden. Deswegen steht hier nur die 16-bittige Version zum Download.

Die berechneten Bilder können auf Diskette gesichert werden. Die Bilder lassen sich mit TI Artist bearbeiten. Da die Bilder ohnehin monochrom sind, wird nur das eigentliche Bitmuster gespeichert. Die TI-Artist typische hzweite Datei mit den Farbinformationen fehlt, um nicht unnötig Speicherplatz auf der Diskette zu vergeuden. Das stellt aber kein Problem dar, weil TI-Artist dann ohne die Farbinformationen einfach von einem einfarbigen Bild ausgeht. Die Parameter des Bildes werden ebenfalls gespeichert, allerdings in einer separaten Datei mit gleichem Basisnamen, aber dem Namenszusatz "_P".

Download

Download des Disk Images: mandelzoom.dsk

Screenshots

Das Hauptmenue des Programms
Auswahl des Bereichs für eine Detailvergößerung
Der vergrößerte Ausschnitt