Ralf Biedermann Ortfeld 3 W-2815 Langwedel Germany Hallo Freunde des 68000'ers, Bei diesem Programm handelt es sich um das bekannte GAME OF LIFE, wobei GAME ( Spiel ) nicht stimmt. Game of Life ist die Simulation einer Zellkultur mit Hilfe eines zellul„ren Automaten. Die einzelnen Zellen k”nnen zwei Zust„nde annehmen, Lebendig oder Tot. Das Verhalten und die Evolution der einzelnen Zellen wird durch die Nachbarn bestimmt. Eine tote Zelle wird Lebendig wenn Sie genau drei lebende Nachbarn hat. Eine lebende Zelle stirbt wenn Sie weniger als zwei oder mehr als drei lebende Nachbarn hat. Die R„nder werden nicht bercksichtigt, d.h. eine Zelle am linken Rand hat auch Nachbarn am rechten Rand ( Torus ). Mit diesen Vorgaben h„lt sich mein Programm streng an das Urlife von Convay. Technische Daten: 1. Feldgr”že:160*96 Zellen 2. Zellengr”že:4*4 Pixel 3. Monitoranforderungen:nur Monochrome (SM 124 oder Multisync) 4. Speicherbedarf:mindestens 1 MByte 5. Sprache:reine Maschinensprache 6. L„nge Source:ca. 30 KByte 7. L„nge Code:ca. 9 KByte 8. Assembler:TurboAss von Sigma-Soft 9. Geschwindigkeit:max. 3000 Generationen pro Sekunde bei einem Rotor Files zu diesem Programm geh”rend: 1. LIFE4.TXT dieser Text 2. LIFE4.S Ascii-Quelltext 3. LIFE4.SRC quelltext fr den Turbo-Assembler 4. LIFE4.PRG ausfhrbare Datei 5. *.FLD Beispielgenerationen Bedienung: Nach dem Start wird zuerst eine Tabelle initialisiert, danach befindet man sich in einer Editorumgebung mit folgenden M”glichkeiten: Das Hauptmenu zeigt folgende Punkte: F1:Set F2:Clear F3:Go F4:Single F5:Random F6:Load F7:Save F10:End TORUS 1. Der Grafikcursor kann entweder durch die Cursortasten oder aber durch die Maus bewegt werden. 2. Den Status der einzelnen Zellen kann durch die Taste F1 oder durch die rechte oder linke Maustaste ver„ndert werden. F1 schaltet immer auf den jeweils anderen Zustand der Zelle um. Die linke Maustaste bewirkt das unter dem Cursor eine lebende Zelle entsteht, w„hrend die rechte Maustaste immer eine tote Zelle bewirkt. 3. Eine permanente Neuberechnung der Generationen kann man durch die Taste F3 oder durch gleichzeitigen Druck auf beide Maustasten starten. Wenn das Programm in diesem permanenten Modus ist kann man durch einen Druck auf eine Taste oder eine Maustaste wieder in das Hauptmenu zurckkommen. Die Reaktionszeit auf einen Tastendruck kann bis zu einer Sekunde betragen, die Tastendrcke werden gepuffert w„hrend man die Maustasten gedrckt halten muž bis eine Wirkung sichtbar wird. W„hrend des Permanentbetriebes werden in der ersten Zeile folgende Informationen eingeblendet:Nummer der Generation, Anzahl der lebenden Zellen, Anzahl der in der letzten Generation neu geborenen Zellen, Anzahl der in der letzten Generation gestorbenen Zellen und die aktuelle Geschwindigkeit in Generationen pro Sekunde. 4. Ein Einzelschrittbetrieb erh„lt man mit der Taste F4. Nach Druck auf die Taste F4 wird die n„chste Generation berechnet und man erh„lt die gleichen Informationen wie unter Punkt 3. Die Informationen bleiben fr einige Sekunden stehen, durch wiederholten Druck auf die Taste F4 erh„lt man die n„chste Generationen, falls das Timeout in der Zwischen- zeit abgelaufen ist wird wieder das Hauptmenu eingeblendet. 5. Mit der Taste F5 kann man eine Zufallsgeneration erzeugen. Es werden solange zuf„llig Zellen erzeugt oder gel”scht bis man eine weitere Taste gedrckt hat. 6. Mit der Taste F6 kann man eine vorher gespeicherte Generation laden. 7. Mit der Taste F7 kann man die angezeigte Generation abspeichern. 8. Mit der Taste F8 kann man die Generation die zuletzt geladen oder gespeichert worden ist wieder auf den Bildschirm bringen. 9. Mit der Taste F10 gibt es sogar eine M”glichkeit dieses sehr gute Programm verlassen. Vor dem endgltigen Ende wird noch ein kleiner Text ausgegeben der aber nach wenigen Sekunden von selbst wieder verschwindet. 10. Wenn man sich im Editmodus befindet hat man die M”glichkeit fnf vor- definierte Formen auf den Bildschirm bringen. Diese Formen sind u.a. - Gleiter - Gleiterkanone - Eigenkreation 11. Mit T schaltet man in den Torusmodus und mit R wird der Rechteckmodus aktiviert. 12. Mit G kann man eine GRID (Gitter) einblenden, dies dient dazu den Weg der Zellen verfolgen zu k”nnen. Hinweise zur Programmierung: Die meiner Meinung nach extrem hohe Geschwindigkeit von diesem Programm beruht im wesentlichen auf drei Tatsachen: 1. Fr jede Zelle wird ein Record eingerichtet mit folgendem Inhalt Bildschirmadresse fr Zelle .L Maske zum l”schen der Zelle .B Z„hler fr neue Generation .B Maske zum setzen der Zelle 2*.B Bildschirmadresse fr Zelle .L Pointer zu Nachbarrecords 8*.L Die Bildschirmadresse fr die Zelle ist in diesem Block zweimal vorhanden um fr setzen und l”schen einer Zelle effektivere Adressierungsarten verwenden zu k”nnen. 2. Alle lebenden Zellen werden in einer Liste notiert um berflssige Rechnungen zu vermeiden. 3. Die Entscheidung welchen Zustand eine Zelle in der neuen Generation hat wird durch eine Sprungtabelle getroffen. Letzte Bemerkungen: 1. Dieses Programm ist FREEWARE, d.h. es darf nur mit allen oben genannten Files kopiert werden. Das Kopieren ist sogar erwnscht. 2. Schnellere Versionen werden gerne entgegengenommen. 3. Kommentare sind immer erwnscht. 4. Falls das Programm gef„llt wrde ich um eine kleine Spende fr einen Tierschutzverein deiner Wahl bitten. 5. Der Quelltext soll nicht dazu anregen „hnlich rabiat die Maus und die Timer zu programmieren, diese Sachen habe ich nur gemacht weil es m”glich war. Vielleicht h”rt man ja noch von einander Ralf Biedermann Erg„nzung zur neuen Version: Das Laden und Speichern der Generationen geschieht jetzt im Format von Georg Z”ller (Autor von LIFE_M90). Bei Georg m”chte ich mich auch fr die zur Verfgung gestellten Startgenerationen bedanken. Um die Anzahl der hbschen Bildchen zu erh”hen wrde ich euch bitten mir bzw. Georg neue Startgenerationen zuzuschicken. Wegen Georg gibt es jetzt auch Torus und Rechteck, sowie die GitterFunktion. Eine Sahe wurde ebenfalls verbessert, die Geschwindigkeit ist etwa 10% h”her als bei meinem ersten Versuch. Diese Version 4 ist kosmetisch ver„ndert, z.B. Fehlermeldungen kommen durch Alert-Boxen. Die Geschwindigkeit wurde im Promillebereich erh”ht. Die wichtigste „nderung betrifft aber einen kleinen Fehler unter Benutzung von 'NVDI'. Durch Benutzung des hervorragenden Turbo-Assembler wurde die Programml„nge verringert. Ach ja schon seit der ersten Version erh„lt man durch drcken der HELP-Taste eine kleine Bedienungsanleitung.