Dokumentations-File zu "STAMM" SSSSSSSSS TTTTTTTTT AAAA MMMM MMM MMMM MMM SS TTTTTTTTT AAAAAA MMMM MMMM MMMM MMMM SS TTT AAA AAA MM MM MM MM MM MM MM MM SSSSSS TT AAAAAAAA MM MMMM MM MM MMMM MM SSSSSS TT AAAAAAAA MM MM MM MM MM MM SS TTT AA AA MM MM MM MM SS TT AA AA MM MM MM MM SSSSSSSS TT AA AA MM MM MM MM Ein Programm zur EVA (Eingabe/Verarbeitung/Ausgabe) von 2er-Stammb„umen aller Art (C) by ONKISOFT 1999 in 4&6/1990, das ist Gero Zahn Bergring 27 D-4953 Petershagen. Das Programam ist PD, sofern es zusammen mit dieser Dokumentation weitergegeben wird (ansonsten weiá hinterher wieder kein Schwein, wozu das Ding berhaupt gut ist und wie man es bedient). Also nochmal: Lieferumfang ist: 1) STAMM.PRG 2) STAMM.TXT Es geschieht nicht oft, daá ich Personen Programme widme. Vor allem nicht solchen, die schon oft genug unter meiner Computer-Leidenschaft zu leiden hatten (was fr eine Verbindung: Leidenschaft - leiden). Doch diesmal muá es sein: Dieses Programm ist meiner Freundin Iris gewidmet, da sie die eigentliche Ursache war, STAMM zu schreiben. Sowohl sie als auch ich verfgen n„mlich ber eine recht groáe Verwandschaft, aus diesem Grunde macht es erstaunlich viel Spaá, Ahnenforschung zu betreiben. Jeder kennt die kleinen Bierdeckel-Skizzen ("Also dies ist mein Opa v„terlicherseits ..."), die allerdings auf die Dauer immer diffuser und konfuser werden ("Ja Moment, erstens hat der hier gar nichts zu suchen, zweitens: Wie male ich das jetzt auf?"). Gnstigenfalls schreibt man alle Namen erstmal unter Bercksichtigung bestimmter Regeln ordentlich auf. Dafr gibt es gewisse Konventionen: Man beginnt mit seinem eigenen Namen. Dieser erh„lt die Nummer 1. Die Eltern (erst der Vater, dann die Mutter) erhalten die Nummern 2 und 3. Die Groáeltern (erst v„terlicherseits Groávater und -mutter, dann mtterlicherseits) erhalten 4,5,6 und 7. Man merkt schon, die Sache wird ein klein wenig unbersichtlich. Doch geht man so weiter vor, versteht man leicht den Sinn dieser Regeln: Geht man von einer Person aus und will das Elternpaar finden, multipliziert man die Nummer mit zwei. Zum Beispiel: Wir nehmen die Mutter, also 3. 3 mal 2 ist 6. Dies ist der Groávater mtterlicherseits, addiert man nochmals 1 erh„lt man die Groámutter mtterlicherseits. Allgemein ergeben sich folgende Regeln: 1. Vater = Kind * 2 2. Mutter = Kind * 2 + 1 Dieses Prinzip der Nummerierung entspricht den Konventionen der offiziellen Ahnen-P„sse. Eine solche Liste ist aber (wie an den obigen Ausfhrungen leicht erkennbar) nicht besonders bersichtlich. Besser sind wirkliche gemalte B„ume; doch dabei geht wieder die Flexiblit„t bei der Erweiterung verlustig. "Was tun?" sprach Zeus. N”tig w„re ein Mittelding aus beidem. Im Zeitalter der EDV lag der Gedanke natrlich nicht fern, ein CAS-Programm zu schreiben (ompter-ided tammbaum). Doch ersthaft: Ein Stammbaum kann reichlich Daten enthalten. Auf Papier wird dies irgendwann unabwendbar unbersichtlich. Daher bietet sich auch auf diesem Gebiet der Computer-Einsatz nahezu an. STAMM verwirklicht einen Kompromiá zwischen beiden angesprochenen M”glichkeiten der Archivierung von Namen und Zusammenh„ngen. Beide Formen (Liste und Baum) k”nnen ausgedruckt werden. Im Editor erscheint eine Person mit Nummer samt beiden Eltern auf dem Schirm. Durch Anklicken kann man Generationsweise im Stammbaum auf und ab wandern. Die Rechnerei, wer nun Vater oder Mutter von wem ist, entf„llt also g„nzlich. Die verschiedenen Operationen ("Vater/Mutter von", "Kind von") werden durch grafische Effekte untersttzt. Zur Bedienung: ============== Anfangs erscheint erstmal ein Titelbild, das zum einen (wie erwartet) den Namen und die M”glichkeiten des Programms sowie den Autor bekanntgibt, sogleich aber auch zeigt, wodurch sich STAMM im besonderen auszeichnet: Ein Dreieck erscheint und fliegt ber den Monitor, der einem Billard-Tisch „hnelt. Dann erscheint (fliegendermaáen) ein Dreieck mit der Aufschrift "Click!". Man sollte sich auch nicht scheuen, dies anzuklicken. Eben dies ist es, was STAMM vom grafischen Aspekt interessant macht: Statt den (weithin bekannten) rechteckigen Formen, die jedes ST-Programm fr Maus-Aktionen benutzt, werden hier Dreiecke verwendet. Hierfr wurden speziell Routinen fr Standort-Test der Maus in dreieckigen Fl„chen und Prozeduren "Growing Triangle" bzw. "Shrinking Triangle" entwickelt. ™fter mal 'was Neues, sage ich da nur. Hat man das Titelbild berlebt, gelangt man direkt in den Editor, in dem man von einem leeren Stammbaum erwartet wird. In der Mitte des Bildschirms befinden sich drei groáe Dreiecke, eines oben, zwei unten. Vom oberen zeigt je ein Pfeil auf die unteren beiden. Das sagt uns: Das Dreieck oben ist das Kind der beiden unteren. Betrachtet man die Nummern, die mit in den Dreiecken stehen, erh„rtet sich der Verdacht: Wir haben hier die Nummern 1 bis 3, also Kind, Vater und Mutter. Die Maus hat soviele Funktionen wie Tasten, n„mlich zwei. Klickt man mit der linken Taste auf eins der unteren Dreiecke, so wird das gew„hlte als neues Kind betrachtet, nach oben verfrachtet und seine Eltern unten dargestellt. Klickt man das obere an, rutscht dies nach unten, der Ehepartner wird gesucht und neben ihm dargestellt, daá gemeinsame Kind wird gesucht und oben dargestellt. Diese beiden Aktionen sind (wie man leicht erkennen kann) komplement„r. Versucht man gleich nach dem Programmstart, das obere Dreieck anzulicken gelingt dies natrlich nicht, da ja oberhalb von Position 1 keine Personen mehr zu finden sind. Dies wird mit einem kurzen Pieps geahndet, wie brigens alle falschen Mausklicks in allen Programm-Punkten. Nun zur rechten Maustaste: Klickt man eines der drei groáen Dreiecke mit rechts an, so kann man fr die Position, deren Nummer das Dreieck tr„gt, einen Namen eingeben bzw. ver„ndern. Leereingaben werden durch "???" also "Unbekannt" ersetzt. Mit diesen Funktionen kann man schon ganz nett einen Stammbaum erstellen und ihn sich ansehen. Doch ist das noch nicht alles: Der gute Beobachter wird bereits das kleinere schwarze Dreieck mit der Aufschrift "Men" links oben entdeckt haben. Mit ebendiesem gelangt man in das Hauptmen von STAMM. Es gibt acht Menpunkte, man schaue und staune: Dreiecke, die angeklickt werden k”nnen: LIST, CONT, CLEAR, LOAD, SAVE, JUMP, QUIT, PRINT. 1) LIST: Eine Liste des benutzten Stammbaumes nach den Ahnenpaá-Konventionen (s. oben) wird auf Bildschirm oder Drucker ausgegeben (sofern Daten im Speicher stehen). Passagen, in denen keine Namen kommen, werden durch drei untereinander stehende Punkte dargestellt anstatt durch Ausgabe von Leerzeilen (Papierspar-Maánahme). Auf dem Bildschirm erfolgt die Ausgabe wie das Anzeigen eines Textfiles unter Rainbow-TOS 1.4: Die Taste "Q" unterbricht in jedem gewnschten Moment. 2) CONT(inue): Das Programm kehrt zum Editor zurck. 3) CLEAR: Der gesamte Speicher wird (nach Rckfrage) gel”scht. 4) LOAD: Eine Fileselect-Box erscheint und verlangt die Wahl eines Files mit der Kennung ".AHN". Nach Rckfrage wird der gesamte Speicher gel”scht und das gew„hlte File in den Speicher geholt. 5) SAVE: Sofern Daten im Speicher stehen, erscheint eine Fileselect-Box, die die Wahl eines Files mit der Kennung ".AHN" verlangt. Wird keine Kennung angegeben, wird ".AHN" erg„nzt. Bei Abspeichern wird (nach M”glichkeit) ein Backup-File mit der Kennung ".BAK" angelegt, sofern das File schon auf der Diskette existierte. Fehler werden so gut es geht abgefangen (z. B. durch Read-Only auf Backup- und/oder Original-File). Ich bernehme aber keine Garantie fr fehlerfreien Disketten-Zugriff. 6) JUMP: Es kann etwas mhselig sein, wenn man sich immer wieder im Editor durch den kompletten Stammbaum k„mpfen muá, wenn man feststellt, daá man irgendwo noch einen Namen vergessen hat. Die herumfliegenden Dreiecke sind zwar ganz niedlich aber (vor allem wenn man man in Eile ist) manchmal etwas nervig. Daher kann man hier eine Position frei w„hlen, an der man (nach CONT) weitereditieren will. CANCEL unterbricht die Funktion, bei FREI kann man eine frei gew„hlte Position durch Festlegung der Nummer eingeben. Sprnge zu Positionen, die auáerhalb des zul„ssigen Bereiches liegen oder Eltern nur noch im unzul„ssigen Bereich h„tten, werden unterbunden. GRAFISCH bietet dem Benutzer noch einmal ein besonderes Bonbon an: Der Stammbaum wird vereinfacht auf dem Bildschirm dargestellt, beginnend mit Position 1. Namen, die bereits eingegeben sind, werden durch dicke Punkte dargestellt, uneingegebene Namen durch dnne Punkte. Nachdem die Menpunkte JUMP, BILD und CANCEL dargestellt worden sind, erscheint ein dnnes Fadenkreuz, das mit der Maus frei beweglich ist. H„lt man die rechte Maustaste gedrckt, wird das Fadenkreuz dicker und ist somit "scharf", d. h. aktiv. Berhrt man mit dem aktiven Fadenkreuz einen Punkt, so wird in der letzten Bildschirmzeile die Nummer und der Name der jeweiligen Person angezeigt, egal ob schon eingegeben oder nicht. Hat man unten eine Nummer stehen, kann man die Maus zu den Mendreiecken bewegen. Gnstigenfalls l„át man die rechte Maustaste los, damit das Fadenkreuz nicht immer wieder neue Nummern und Namen aussucht. BILD l”scht den Bildschirm und baut einen neuen Stammbaum auf, nun ab der Position, die vorher gew„hlt war, zumindest, sofern dies m”glich ist, d. h. sofern noch gengend Generationen fr einen solchen Stammbaum folgen. War die oberste Position vorher berhrt worden (was voreingestellt ist) wird ein "HOME" ausgefhrt, d. h. das Bild wird mit der Wurzel des Stammbaums oben (Position 1) dargestellt, sofern das noch nicht der Fall ist. JUMP setzt den aktuellen Zeiger auf die gew„hlte Position und verzweigt zum Hauptmen. CANCEL geht auch zum Hauptmen, „ndert den aktuellen Zeiger jedoch nicht. šbrigens: Es ist kein Programm-Fehler, daá die unterste Generation links und recht aus dem Bildchirm herausragt, also die ganz linken und rechten Vorfahren (nicht politisch gemeint) auf dem Bildschirm fehlen. Man kann nicht alle Personen anw„hlen, aber im Ernstfall eignet sich die 14. Generation sowieso nicht als aktuelle Position. Daher ist das nicht weiter tragisch. 7) QUIT: Kaum erkl„rungsbedrftig - nach Rckfrage wird das Programm zum Desktop hin verlassen (oder von wo auch immer STAMM aus gestartet sein mag). 8) PRINT: Von der zuletzt editierten/angesprungenen Position aus wird ein Stammbaum ausgedruckt, und zwar wird die aktuelle Position als Kind angenommen. Von dort aus gesehen geht der Ausdruck bis hin zu den acht Urgroáeltern. Wrden Teile des Ausdrucks auáerhalb des zul„ssigen Bereichses liegen, so rutscht der Ausschnitt nach oben. Es ist aber gew„hrleistet, daá der Stammbaum von der aktuellen Position auf dem Papier erscheint. Es werden also immer 15 Personen auf dem Ausdruck erscheinen. Nach dem Ausdruck kann (optional) ein Seitenvorschub gesendet werden oder nicht. Beide Druck-Optionen sind auf einem STAR NL-10 entwickelt worden. Der Drucker sollte also ber einen ST-kompatiblen Zeichensatz verfgen (IBM tut's auch, sofern keine SZ's in den Namen vorkommen, die ja dann als Pt ausgedruckt wrden). Im LIST-Betrieb druckt STAMM 60 Zeilen pro Seite und schickt dann einen Seitenvorschub. Auch am Ende wird ein Vorschub ausgefhrt. Des weiteren wird die Reset-Sequenz ESC-@ verwendet. Fr PRINT ben”tigt STAMM einen Drucker, der schmale Elite drucken kann, also 160 Zeichen pro Zeile. ESC-M schaltet zu Elite, #15 schaltet auf Schmal. Zurck wieder mit ESC-@. Ich weiá, nicht jeder Drucker kann schmale Elite. Doch fr normale DIN-A-4-l„ngs-Drucker gibt's keine andere M”glichleit. DIN-A-4-quer hat ja sowieso keine Probleme. šbrigens: Da ich ber einen automatischen Einzelblatt-Einzug fr meinen NL-10 verfge, habe ich groáen Wert darauf gelegt, daá STAMM damit zusammen arbeitet. Keine Probeleme also mit STAR NL-10 mit SF-10D. Speicher-Bedarf: ================ STAMM kann maximal 14 Generationen (Position 1 entspricht einer Generation) verwalten. Dies sind immerhin 16383 Namen, die in Bezug zueinander gespeichert werden k”nnen. Bei einem Speicherplatz-Bedarf von etwa 40 Byte pro Name kommen wir locker auf 640 KB. Das sollte ein 1040 noch locker schaffen. Bei 15 Generationen w„ren wir aber leider schon bei 32767 Namen und somit bei 1280 KB. Ein Mega ST 4 k”nnte theoretisch 16 Generationen verwalten, das w„ren gut 2.5 MB Daten. 17 Generationen w„ren etwa 5.1 MB, tja, etwas mehr als 1 MB zu viel. Abgesehen davon w„chst bei mehr Generationen der Speicher, der zur Verwaltung n”tig ist. Das bedeutet: H„tte ich STAMM auf 16 Generationen ausgelegt, so h„tte es passieren k”nnen, daá ein 1040 keine 14 mehr geschafft h„tte, da die 640 n”tigen KB schon teilweise zur Verwaltung eines nicht mehr existenten Speichers benutzt worden w„ren. Ergo: STAMM verwaltet 14 Generationen, somit bleibt es ohne Abstriche auf allen Rechnern >=1 MB lauff„hig. Alle 520 ST- 260 ST-Nutzer: Nun mal keine Panik, STAMM l„uft auch bei Euch. Die Datenstruktur ist im Groben und Ganzen dynamisch, daá heiát, erst wenn gr”áere Datenmengen anfallen, bl„st sie sich zu voller Gr”áe auf. Man denke mal nach: 14 Generationen, das ergibt bei einer (hypothetischen) durchschnittlichen Lebenserwartung von 70 Jahren eine Zeitspanne von knapp 1000 Jahren. Die Stammb„ume von mir oder meiner Freundin reichen aber (heute noch ausfindig machbar) maximal 10 Generationen zurck. Nach Adam Riese ben”tigen wir dafr aber knapp 40 KB, und das auch nur, wenn alle Namen eingegeben sind. Prinzipiell stehen einem auch bei 1/2 oder gar 1/4 MB noch Tr und Tor offen, vor allem, wenn die Daten noch unvollst„ndig oder nicht in Erfahrung zu bringen sind. Zur Sicherheit ist im Hauptmen der verfgbare Speicher aufgefhrt. Wenn's knapp wird, sollte man vielleicht besser mal seine Daten abspeichern und sich ein gr”áeres Ger„t anschaffen! Soviel dazu. Ich denke, jeder sollte sich jetzt einfach mal selbst an seine Ahnenforschung machen und ein wenig mit STAMM herumspielen. Wer an dem Programm-Text interessiert ist (zum Beispiel, um die Generations-Anzahl zu erh”hen oder weil ihn die Dreicks-Routinen interessieren) kann diesen gegen einen Unkosten-Beitrag von 10-20 DM und eine formatierte Leer-Diskette bei mir erhalten, das Listing gibt's auf Wunsch (und gegen Aufpreis) auch auf Papier. Auch Updates (sofern erschienen) gibt's zu gleichen Bedingungen bei mir. In diesem Sinne Ciao Gero Zahn (24.6.90) P.S.: In 1/2 Jahr ist Weihnachten ... !