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:
- Einsatz normierter Integerzahlen als Ersatz für die Fließkommaarithmetik.
- Dithering zur Simulation von Graustufen auf monochromen Ausgabegeräten.
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.dskScreenshots