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, zumal 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 Berechnungen der Mandelbrotmenge sind Fließkomma-Arithmetik und sie erfordern Zugriff auf die ROM-Routinen. Damit holt man sich die ganze Langsamkeit des Ti-99/4A wieder an Bord. Der erste Anlauf im Ergebnis: Mehrere Tage Rechenzeit für ein Bild und eine sch*-Grafik, weil man selbst im Bitmap-Mode für acht Pixel nur zwei Farben hat. Später habe ich dann gesehen, dass andere Leute das weitaus besser hingekriegt haben (Roland Meiers "fractals").

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). Das Programm ist in den zeitkritischen Teilen 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 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 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 immer 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