11.28.94 11.28.94 ================================================================================ Anleitung zu »DATAMASTER 64« Mit diesem Anwendungsprogramm können Sie sehr komfortabel alle Arten von Daten verwalten. Das Verwalten von Schallplatten, Adressen, Telefonnummern, Disketten, Kochrezepten und so weiter mit ein und dem selben Programm wird so zum Kinderspiel. Bitte lesen Sie sich diese Anleitung, bevor (!) Sie das Programm das erste Mal laden, wenigstens »Überfliegenderweise« durch; Sie können zwar nicht viel falschmachen, es passiert aber leicht, daß man mal eine falsche Diskette einlegt, und diese dann aus irgend einem Grund gelöscht wird. Bevor wir das Programm genau beschreiben, aber erst noch einige technische Hinweise zum Programm, falls Sie es abtippen wollen. Die Zeilen 10000 mit 10004 können ersatzlos entfallen, sie dienten nur in der Entwicklungsphase der Datenbank dem Abspeichern einer neuen Version. Diese Zeilen werden vom Programm nicht angesprungen. Das selbe gilt für die REM Zeilen ab 40000. Hier ist die Adresse des Autors enthalten, die Sie nicht unbedingt eingeben müssen (tun Sie das aber bitte, wenn Sie das Programm weitergeben !). Anders verhält es sich mit der Zeile 0. Sie muß unbedingt eingegeben werden und darf nicht anders lauten als 0 REM"." (Das zweite Anführungszeichen kann entfallen) In dieser Zeile sind also außer nach der Zeilennummer keine Leerzeichen enthalten! Der Grund: In dieser Zeile steckt codiert die Versionsnummer des Programmes. Der Punkt wird etwa als Versionsnummer 46 gedeutet, dies ist die Nummer der vorliegenden Version. Ansonsten dürfen Sie aber überall im Programm Veränderungen vornehmen. Kontrollieren Sie bitte, ob sich folgende Files auf Ihrer DATAMASTER-Diskette befinden: BOOT Dies ist das Ladeprogramm D Das BASIC Hauptprogramm GARBAGE 64 Hilfsroutine, die die Garbage Collec- tion (s.u.) beschleunigt MCODE $8000 Das Maschinenprogramm Das Programm GARBAGE 64 ist eine verbesserte Version des Utilities von W. Meierhofer in 64'er Ausgabe 2/86. Wie es bedient wird, wird weiter unten beschrieben. Zunächst noch einige Worte zur Grundidee dieses Datenverwaltungsprogrammes. Herkömmliche Programme arbeiten nach der sequentiellen Dateiorganisation, beim Öffnen einer Datei werden alle belegten Datensätze vollständig in den Speicher des Computers eingelesen, wo sie dann bearbeitet werden. Dies hat einige Nachteile. Zum einen wird bei dieser Methode sehr viel Speicherplatz vergeudet, da sich alle Datensätze gleichzeitig im Speicher befinden. Außerdem dauert es sehr lange, alle Sätze von der Diskette einzulesen, und man schleppt sehr viel Ballast mit sich herum, wenn man beipielsweise nur eben die Adresse von Herrn Huber aus Hamburg sucht, und alle anderen Adressen auch einlesen muß. Man spricht hier auch von SAM Dateien (Sequential Access Methode, sequentielle Zugriffsmethode). Viel besser ist da das index-relative Datenformat, das von Datamaster 64 angewendet wird: Nicht alle Felder (Bestandteile, in einer Adressdatei wären zum Beispiel der Vorname, der Nachname, die Telefonnummer und so weiter Felder) jedes Datensatzes befinden sich im Speicher des C64, sondern nur ein Feld jedes Datensatzes, das sogenannte Schlüsselfeld. Bei einer Personendatei wäre das der Nachname. Im Speicher werden die Schlüsselfelder in einer Tabelle abgelegt, in der sich auch ein Verweis findet, an welcher Stelle der Diskette sich der Rest des Datensatzes, der zu diesem Schlüssel gehört, befindet. Bei der Suche nach dem Schlüsselfeld (in einer Adressendatei also etwa bei der Suche nach dem Nachnamen) werden nun schnell alle Schlüsselfelder im Speicher nach dem Suchbegriff durchsucht. Wenn ein Schlüsselfeld gefunden wird, das den Vorstellungen des Benutzers entspricht, wird in der Tabelle nachgesehen, an welcher Stelle der Diskette sich der Datensatz befindet, und dieser kann dann blitzschnell geladen werden. Apropos blitzschnell: Das Programm ist zwar hauptsächlich in BASIC geschrieben, alle zeitkritischen Routinen sind aber in stark optimierter Maschinensprache verfasst. Auf einer Diskette haben drei Dateien Platz. Die ersten beiden dürfen je maximal 147 Datensätze enthalten, die dritte nur 133. Mehr geht unter vertretbarem Rechenaufwand leider nicht auf eine Diskette. Das normale Diskettenformat des 1541 Laufwerkes ist leider überhaupt nicht für diese Art von Dateien geeignet. Daher wird es nötig, spezielle Datendisketten zu »Datamaster« anzulegen. Dies wird vom Programm aber natürlich selbständig erledigt. Wenn Sie sich für das neue Diskettenformat interessieren, bekommen Sie im Textfile »Technische Daten« dataillierte Informationen dazu. Die Datendisketten können übrigens nur unter »DATAMASTER« verwendet werden. Wenn Sie sonst darauf schreiben wollen, meldet das Laufwerk einen 73'er Fehler. Die Disketten sind zum Schutze nämlich softwaremäßig schreibgeschützt. Umgekehrt ist es das selbe: Wenn Sie eine neue Datendisk anlegen, gehen ALLE darauf gespeicherten Informationen ersatzlos verloren. Nun aber zum Programm selbst. Legen Sie die Programmdiskette ein und laden Sie das Programm »BOOT« mit dem Befehl LOAD ":*",8. Dieses komprimierte BASIC Programm wird dann mit RUN gestartet. Sie sehen nun das Titelbild (siehe Bild 1). Nun wird das Maschinenprogramm nachgeladen, dann GARBAGE 64, und schließlich das BASIC Hauptprogramm. Dieses wird automatisch gestartet. Nach einigen Sekunden wird Sie das Programm auffordern, da ja noch die Programmdiskette im Laufwerk ist, entweder eine Datendiskette einzulegen, die also schon angelegt wurde, oder eine schon formatierte Diskette, die aber keine wichtigen Daten enthalten darf. Wenn Sie die Diskette nicht wechseln, und eine Taste drücken, merkt das Programm, daß die Programmdiskette noch im Laufwerk ist, und meckert, daß diese nicht als Datendisk verwendet werden darf. Sie können die Programmdiskette beiseite legen, sie wird nicht mehr benötigt. Nehmen wir einmal an, Sie haben schon mit DATAMASTER gearbeitet. Legen Sie also eine Datendiskette ein und drücken Sie eine Taste. Das Programm erkennt, daß es sich um eine Datendiskette handelt, und fragt als erstes das Passwort dieser Diskette ab. Um Ihre Daten zu schützen, kann jede Datendiskette mit einem von Ihnen festzulegenden Passwort geschützt werden. Wenn Sie das falsche Passwort eingeben, werden Sie zur erneuten Eingabe aufgefordert. Falls Sie die falsche Diskette im Laufwerk haben, kehren Sie durch Eingabe eines Minuszeichens an den Programmanfang zurück. Sonst wird die Datendiskette jetzt geöffnet, das heißt, der Schreibschutz entfernt. Dann kommen Sie ins Menue. Dieses wird weiter unten beschrieben. Ab nun dürfen Sie diese Diskette übrigens auf gar keinen Fall mehr aus dem Laufwerk entfernen, Datenverlust könnte die Folge sein. Zur Kontrolle leuchtet die rote Lampe am Drive. Wenn Sie noch keine Datendiskette haben, müssen Sie eine anlegen. Dazu legen Sie zu Programmbeginn einfach eine (leere) Diskette ein. Da ihr die spezielle Kennung fehlt, wird sie als nicht-DATAMASTER DIskette erkannt. Das Programm fragt nun nach, ob sich sicher keine wertvollen Daten auf der Diskette befinden. Wenn Sie sicher sind, drücken Sie die Taste, sonst . Sie müssen nun etwa 14 Sekunden warten, denn auf der Diskette wird nun das spezielle Format angelegt. Dann müssen Sie noch ein Codewort für die Diskette eingeben. Überlegen Sie sich ein beliebiges, maximal 20 Zeichen umfassendes Wort, das Sie sich leicht merken können. Die Eingabe wird von RETURN abgeschlossen. Auch dann kommen Sie in das Menue. Nun soll das Menue beschrieben werden. Es ist in Bild 2 angedruckt. In der Kopfzeile sehen Sie wie in allen anderen Programmpunkten auch den Programmnamen, die Versionsnummer und einen Copyright-Vermerk. Unter letzterem steht immer der Name des aktuellen Programmpunktes, hier »Hauptmenue«. Auf der linken Seite der zweiten Zeile steht der Name einer Datei, die geöffnet ist. Da das Menue aber eben erst »betreten« wurde, ist dieses Feld noch leer. In den unteren beiden Zeilen steht der Name des Programmierers, und darunter eine (noch) leere zeile. Bei geöffneter Datei steht hier auf der linken Seite die Anzahl der belegten Datensätze, und rechts unten das Wort »MARK«, falls Datensätze markiert sind. Was all dies bedeutet, wird im Verlaufe dieser Anleitung noch klarer werden. Am Beispiel einer Adressendatei soll nun der Aufbau einer Datei erklärt werden. Am besten machen Sie alles wie beschrieben nach, dann kann nichts schiefgehen, und Sie lernen die Bedieunung des Programmes schnell kennen. Die Besprechung der Menuepunkte mag etwas konfus erscheinen, denn sie werden in der Reihenfolge besprochen, in der man sie bei der Arbeit mit dem Programm verwenden wird. *** Neue Datei anlegen {D-Taste} Wählen Sie durch Druck auf die Taste den Menuepunkt »Neue Datei anlegen«. Falls vorher noch eine alte Datei geöffnet war, müssen Sie Ihre Wahl mit der Taste bestätigen. In diesem Fall wird die alte Datei geschlossen, alle Schlüsselfelder werden also auf Diskette zurückgeschrieben. Dieser Vorgang ist unbedingt nötig, um eine Datei aktuell zu halten. Dies ist auch der Grund dafür, daß Sie, wenn die rote Lampe brennt, niemals die Diskette (auch nicht vorübergehend) aus dem Laufwerk entfernen dürfen. Auf dem Bildschirm erscheint nun eine Liste der drei Dateien auf dieser Datendisk. Pro Datendisk dürfen Sie maximal drei Dateien öffnen, mehr paßt nicht auf eine 1541 Diskette. Wenn diese Datendisk eben erst angelegt wurde, sehen Sie überall das Wort {Leer}, und dahinter die Meldung »0 belegte Datensätze«. Wenn Sie jetzt auf die Taste »Pfeil nach links« drücken, brechen Sie diese Funktion ab und kehren ins Hauptmenue zurück. Sonst wählen Sie jetzt, welche der drei Dateien angelegt werden soll. Datei 1 und 2 sind dabei gleichwertig, pro Datei können Sie hier 147 Datensätze anlegen. Bei Datei 3 sind es nur 133 Sätze, da hier Spuren der Diskette verwendet werden, die weniger Sektoren enthalten. Dann geben Sie der neuen Datei einen Namen, der maximal aus 16 Zeichen bestehen darf. Nun müssen Sie eine Eingabemaske eingeben. Was ist das ? DATAMASTER zeichnet sich durch das flexible Datensatzformat aus, das heißt, das Aussehen der Datensätze auf dem Bildschirm kann beliebig gestaltet werden. Ob Sie die Datenfelder nebeneinander oder übereinander anordnen, ob Sie ein Datenfeld (das muß dann das Schlüsselfeld sein) oder zwölf anlegen, liegt allein in Ihrem Ermessen. Es gibt in DATAMASTER vier verschiedene Eingabefeldtypen: Schlüsselfeld: In der Eingabemaske dürfen nicht mehr und nicht weniger als ein Schlüsselfeld vorkommen. Wie sich dieses Feld von den anderen Feldern unter- scheidet, haben Sie schon weiter oben erfahren. In der Maske werden Schlüsselfelder durch ein hohes Raster gekennzeichnet. Eine Besonderheit: Diese Felder dürfen nur 16 Zeichen lang sein ! Textfeld: Das ist der Standardfeldtyp. In ein solches Feld können Sie jedes Zeichen der Tastatur eingeben, und es auch freilassen. Textfelder dürfen bis zu 127 Zeichen lang sein. Sie werden durch eine dünne Linie gekennzeichnet. Zwangseingabefeld: Es gilt das für das Textfeld Gesagte. Einziger Unterschied: Bei der Dateneingabe darf man diese Felder nicht freilassen. Sie werden durch eine dicke Linie markiert. Intern werden auch Schlüs- selfelder als Zwangseingabefelder behandelt. Ziffernfelder: In diese Felder dürfen nur Ziffern und Leerzei- chen eingegeben werden. Bei der Adressdatei wird die Telefonnummer in einem Ziffernfeld verwal- tet. Ziffernfelder dürfen 127 Zeichen lang sein und werden als gerasterte Linie dargestellt. Die Maske wird über den Bildschirmeditor eingegeben. Dieser wird bedient wie der normale BASIC-Editor. Wenn Sie ein Feld einbauen wollen, drücken Sie eine der folgenden Tasten: CBM S für ein Schlüsselfeld CBM F für ein Zwangseingabefeld (F wie Forced) CBM T für ein normales Textfeld CBM Z für ein Zahlenfeld Nach Druck auf die Commodoretaste (CBM) und die T Taste gleichzeitig wird beispielsweise ein Textfeld erzeugt. Über die vier Cursortasten legen Sie nun die Länge fest. Wenn Sie nach links und rechts gehen, wandert der Endpunkt der Linie jeweils um eine Spalte nach links oder rechts. Da Textfelder auch länger als 39 Zeichen (eine Zeile) sein können, wird die Länge der Linie, wenn Sie nach oben oder unten gehen, um 40 vergrößert bzw. vermidert. Es ist nicht möglich, ein Feld zu erzeugen, das länger als erlaubt (normal 127, bei Schlüsseln 16 Zeichen) ist. Wenn ein Feld fertig ist, drücken Sie . Wenn Sie bei der Eingabe der Maske auf die F7 Taste drücken, wird eine Tafel eingeblendet, auf der alle Tasten erklärt sind. Diese Tafel lassen Sie durch Druck auf eine Taste wieder verschwinden. Wenn Sie drücken, wird die Maskeneingabe beendet. Dann wird zunächst geprüft, ob die Eingabe legal ist (genau ein Schlüsselfeld, Felder insgesamt nicht länger als 255 Zeichen), wenn nein, wird eine entsprechende Fehlermeldung angezeigt, und Sie müssen die Maske berichtigen. Wenn sie korrekt ist, wird sie auf Diskette abgespeichert. Eine fertige Maske kann etwa wie in Bild 3 aussehen. Nach der Maskeneingabe kehrt das Programm wieder ins Menue zurück. *** Neuen Datensatz eingeben {G} Sie haben nun eine Datei angelegt. Nun müssen Sie sie noch mit Daten versorgen. Wir gehen wieder von unserer Adressendatei aus. Wählen Sie im Hauptmenue den Punkt . Hier wird zunächst getestet, ob schon eine Datei geöffnet ist. Wenn nicht, erfolgt eine Fehlermeldung. Dann wird geprüft, ob bereits 147 bzw. 133 Datensätze gefüllt sind. Wenn nein, kann ein neuer eingegeben werden. Oben rechts wird die neue Nummer angezeigt. Sie sehen nun wieder die Eingabemaske vor sich, nur sind die Felder diesmal durch reverse Balken dargestellt, unabhängig vom Feldtyp. Im ersten Feld blinkt ein Cursor. Geben Sie nun die Daten ein. Mit der CRSR LEFT/RIGHT Taste bewegen Sie sich im Feld, die INST/DEL Taste hat hier keine Funktion. Mit der Taste CRSR DOWN/UP wird das Feld gewechselt (Nicht mit !). Auch wenn ein Feld also mehrere Zeilen umfasst, müssen Sie solange CRSR LEFT/RIGHT drücken, bis Sie an der gewünschten Stelle sind. Korrigieren können Sie ganz einfach durch Überschreiben. Wenn der Cursor sich in einem Ziffernfeld befindet, können Sie nur die Ziffern von 0 bis 9 sowie Leerzeichen eingeben. Hier könnte man noch Verbesserungen einbauen, etwa die Möglichkeit, auch Bindestriche einzugeben, was bei Telefonnummern mit Durchwahl interessant wird. Hinweise dazu finden Sie im Textfile »Technische Daten« (Routine ab $89E8). Wenn Sie alle Daten eingegeben haben (wie in Bild 4), drücken Sie einfach auf . Dann wird als erstes geprüft, ob Sie ein Schlüsselfeld und/oder ein Zwangseingabefeld nicht ausgefüllt haben; wenn ja, wird der Cursor hier plaziert, und Sie müssen noch etwas eingeben. In unserer Beispielmaske ist für den Nachnamen und in das Schlüsselfeld etwas einzugeben. Wenn alles stimmt, wird der Datensatz codiert und auf der Diskette gespeichert. Ferner wird jetzt die Indextabelle mit den Schlüsselfeldern erweitert. Dann fragt Sie das Programm, ob Sie noch einen Datensatz eingeben wollen. Wenn Sie mit der Taste antworten, erfolgt ein Sprung ins Hauptmenue, ansonsten wird der nächste Datensatz eingegeben. Dies kann dann solange weitergehen, bis die Datei voll ist. Achtung: Wenn Sie im Hauptmenue aus Versehen gewählt haben, können Sie diesen Menuepunkt nicht mehr Verlassen, bevor der Datensatz auf der Diskette gespeichert wurde. Um dies zu »verhüten«, füllen Sie im Falle eines Falles nur die Zwangsfelder (also auch das Schlüsselfeld) aus und drücken . Bevor das Laufwerk loslegt, drücken Sie dann schnell auf die RUN/STOP Taste, wenn Sie Glück haben, können Sie den Menuepunkt noch »per Hand« abbrechen. Geben Sie dann den BASIC Befehl GOTO 1000 ein, dann kommen Sie wieder ins Menue. Dieser kleine Schönheitsfehler war leider nicht anders zu lösen, eine Sicherheitsabfrage hätte hier den normalen Betrieb nur unnötig aufgehalten. *** Datensatz ändern {H} Sie haben nun also alle Ihre Adressen eingegeben. Vielleicht haben Sie irgendwo doch noch einen Fehler gemacht, und ihn erst nach Druck auf bemerkt. Daher soll nun auch noch die Korrekturmöglichkeit vorgestellt werden. Drücken Sie im Hauptmenue auf die Taste. Auch hier wird zunächst geprüft, ob schon eine Datei geöffnet ist, und ob überhaupt ein Datensatz gefüllt ist. Wenn ja, geben Sie bitte die laufende Nummer des zu ändernden Satzes ein. Diese Nummer erfahren Sie entweder über die Funktion »Blättern« oder über eine Suchfunktion. Wenn Sie den Pfeil nach links eingeben, wird die Funktion abgebrochen. Ansonsten wird der gewünschte Satz von der Floppy geladen und angezeigt. Wie schon unter »Daten eingeben« nehmen Sie nun die gewünschten Änderungen vor. Mit wird der Datensatz wieder auf die Diskette geschrieben. Alle Felder, auch das Schlüsselfeld, können geändert werden. *** Blättern {F} Wenn Sie sich in Ihrer Datei umsehen wollen, blättern Sie darin. Dazu dient der Menuepunkt . Sie sehen nun ein Menue (Bild 5). Drücken Sie eine Taste. Der erste Datensatz wird nun geladen und angezeigt. Durch die Tasten <+> und <-> können Sie in der Datei vorwärts und rückwärts blättern. Nach dem letzten Datensatz wird wieder der erste angezeigt, und umgekehrt. Wenn Sie beim Blättern auf die Taste drücken, können Sie die Nummer des nächsten anzuzeigenden Datensatzes eingeben. Illegale Eingaben werden zurückgewiesen. Mit der Taste wird die Funktion verlassen. Wenn Sie die Taste drücken, blinkt der Rahmen kurz auf, ein Zeichen dafür, daß der momentan angezeigte Datensatz jetzt markiert wurde. Was das bedeutet, wird Ihnen beim Menuepunkt »Liste drucken« noch erklärt. Merken Sie sich vorerst nur, daß der Datensatz markiert wurde. Im Hauptmenue erkennen Sie das daran, daß unten rechts das Wort »MARK« erscheint. *** Sortieren {K} Natürlich besteht auch die Möglichkeit, eine Datei alphabetisch zu sortieren. Zugegeben, hier hat das Datenformat einen kleinen Nachteil: Es ist nur möglich, eine Datei nach ihrem Schlüsselfeld zu sortieren. Daher sollte beim Definieren der Maske wirklich darauf geachtet werden, daß als Schlüsselfeld ein Feld verwendet wird, auf das man am öftesten zugreifen will. Dies ist bei einer Adressendatei natürlich der Nachname. Warum existiert in unserer Testdatei dann noch ein zweites »Nachname«nsfeld ? Ganz einfach: Ein Schlüsselfeld darf ja nur 16 Zeichen lang sein. Dies reicht für den Nachnamen aber nicht. Daher wird hier unter »Nachname« der volle Zuname mit allen Titeln, Zusatznamen usw. eingetragen, während unter Schlüssel nur eine Kurzform erscheint. Dies können Sie aber handhaben, wie Sie wollen. Aber zurück zur Sortierfunktion. Nach dem üblichen Test, ob die Datei geöffnet ist und mindestens zwei Datensätze gefüllt sind, werden Sie gefragt, ob Sie das Sortieren wirklich wollen. Antworten Sie wieder mit oder . Bei wie Ja legt die Routine los. Das Sortieren dauert unterschiedlich lang: Der Sortieralgorithmus eignet sich überdurchschnittlich gut dazu, ein neues Element in eine vorsortierte Datei einzufügen. Hier schlägt er sogar »Profialgorithmen« wie Quicksort oder Supersort. Wenn eine völlig unsortierte Liste geordnet werden soll, kann es schon mal länger dauern. Zur Kontrolle sehen Sie einen Countdown, der das Ende der Sortierung anzeigt, wenn er bei Null angelangt ist. Dann ist die Datei sortiert und das Programm kehrt ins Hauptmenue zurück. *** Datensatz drucken {Q} Dies ist der erste der beiden Druckerfunktionen. Wenn wirklich eine Datei geöffnet ist, und diese auch einen Datensatz enthält, wird geprüft, ob der Drucker ansprechbar ist. Wenn nicht, gibt das Programm eine Fehlermeldung aus und kehrt ins Hauptmenue zurück. Sonst geben Sie jetzt wieder die Nummer des zu druckenden Datensatzes ein, oder den Pfeil nach links für »Ende«. Der gewünschte Satz wird dann geladen und gedruckt. Die Druckroutine wurde für einen MPS 803 geschrieben, müßte jedoch, wenn im Dienstmenue die Sekundäradresse entsprechend angepaßt wurde, auf jedem Drucker funktionieren. Wie man diese Änderung vornimmt, wird bei der Erklärung des Dienstmenues beschrieben. Die Druckroutine ist im Prinzip eine Hardcopyroutine, die den Teil des Bildschirms ausdruckt, in dem der Datensatz steht. Für den Ausdruck empfiehlt es sich auf Siebennadeldruckern (wie dem MPS 803), vorher die Darstellungsart der Felder von Revers auf Normal zu schalten. Auch das ist im Dienstmenue möglich. Nach dem Ausdruck erscheint wieder die Frage nach der Datensatznummer. Jetzt können Sie entweder einen neuen Datensatz drucken, oder durch Eingabe des Pfeiles ins Hauptmenue zurückkehren. *** Liste drucken {P} Während Sie mit dem vorherigen Menuepunkt nur jeweils einen Datensatz drucken konnten, und dabei auch an das Layout auf dem Bildschirm gebunden waren, können Sie hier ganze Datensatzlisten erzeugen. Auch das Erstellen von Formbriefen ist leicht möglich. Wenn der Drucker angeschaltet und ansprechbar ist, eine Datei geöffnet ist und mindestens einen Datensatz enthält, kann es losgehen. Definieren Sie als erstes die »Druckermaske«. Hier sagen Sie dem Programm, wie der Ausruck später aussehen soll. Der Editor wird auf die selbe Weise bedient wie der Editor zum Erstellen der Datensatzmaske. Auch hier wird nach Druck auf die »F7« Taste eine Hilfstafel eingeblendet, auf der alle Funktionen erklärt sind. Wenn Sie dann eine Taste drücken, wird die Tafel wieder ausgeblendet. Da die meisten Drucker 80 Zeichen pro Zeile darstellen, beträgt auch die Breite der Druckermaske 80 Zeichen. Diese können Sie auf dem Bildschirm durch horizontales Scrolling ausnutzen: Wenn der Cursor am rechten Bildschirmrand ankommt, wird der Bildschirminhalt nach links weggescrollt und umgekehrt. Die Druckermaske umfaßt maximal 20 Zeilen. Wenn Sie aber nur ein kurzes Adresslabel drucken wollen, besteht die Möglichkeit, die Länge zu verringern. Dazu drücken Sie auf die F2-Taste. Die Linie, die vorher untätig am unteren Bildschirmrand stand, beginnt nun zu blinken und kann mit den CRSR UP/DOWN Tasten auf jede gewünschte Höhe gebracht werden. Durch Druck auf die RETURN-Taste wird die Begrenzung fixiert. Die gesamte Druckermaske kann mit der F4-Taste auf einmal gelöscht werden. Dabei erscheint keine Sicherheitsabfrage, seien Sie also vorsichtig! Mit der F5-Taste wird an der aktuellen Cursorposition eine Leerzeile eingefügt, die unterste Zeile wird dabei aus dem Bildschirm gescrollt. Die umgekehrte Funktion übernimmt die F6-Taste: Sie löscht die momentane Cursorzeile und zieht die restlichen Zeilen nach oben nach. Bisher wissen Sie, wie man eine »statische« Druckermaske erstellt, die immer genau den gleichen Ausruck zur Folge hat. Interessant wird das Ganze aber erst durch die Möglichkeit, im Text Datenfelder aus der momentan geöffneten Maske einzufügen. Dazu wird die CTRL Taste zusammen mit einer der Zifferntasten 1 bis 9 gedrückt. An der aktuellen Position wird dann das entsprechende Datensatzfeld gedruckt. Die Numerierung orientiert sich dabei an der Reihenfolge, in der die Felder in der Datensatzmaske vorkommen. Möchten Sie beispielsweise einen Brief mit der Anrede »Sehr geehrter Herr xxx,« beginnen und anstelle »xxx« den Nachnamen schreiben lassen, geben Sie zunächst den Text bis zum Leerzeichen ein. Der Nachname steht in unserer Adressdatei an dritter Stelle (1. Feld = Schlüssel, 2. Feld = Vorname), drücken Sie also und <3>. Es erscheint jetzt ein Balken von reversen Dreiern, der die Länge des Datenfeldes drei, in unserem Fall 27 Zeichen, hat. Bewegen Sie den Cursor hinter das Ende dieses Balkens, und geben Sie noch das Komma ein. In diesem Fall kann noch etwas unangenehmes passieren: Wenn der Nachname nur zehn Zeichen lang ist, wird vor das Komma beim Ausdruck eine Kette von 17 Leerzeichen eingefügt, um die einheitliche Länge zu wahren. Das sieht hier aber nicht gut aus. Der Editor bietet daher die Möglichkeit, die »Feldlängenautomatik« zu aktivieren. Dazu drücken Sie an einer Stelle im Text, von der an die Datenfelder nicht mehr aufgefüllt werden sollen, die CTRL Taste mit der B Taste. Auf dem Schirm erscheint dann ein reverses Fragezeichen. Alle Datenfelder werden ab diesem Steuerzeichen ab dem ersten Leerzeichen abgeschnitten. Wenn der Inhalt eines Feldes also etwa »von Nostitz« lautet, erscheint hier beim Ausruck nur noch das Wort »von«!. Es gibt auch ein Steuerzeichen zum Abschalten dieser Funktion, es wird mit CTRL A gesetzt und als reverser Haken dargestellt. Ab hier werden alle Datenfelder wieder auf die Länge gebracht, die sie in der Dateimaske haben. Sie können den »Abschneidemodus« jederzeit im Text mit CTRL B ein- und mit CTRL A wieder abschalten, auch mehrmals hintereinander. Am Anfang der Druckermaske ist dieser Modus immer abgeschaltet, um ihn für den Anfang der Maske also einzuschalten, müssen Sie ein CTRL B in die linke obere Ecke setzen. In Bild 9 sehen Sie ein Beispiel für eine fertige Maske. Drei Steuerzeichen kommen vor. Da das Hardcopyprogramm, das die Probeausdrucke gemacht hat, nur den Bildschirminhalt druckt, sehen Sie auf Bild 9 nur den linken Teil der Maske. In Bild 10 sehen Sie die eingeblendete Hilfstafel. Wenn die Maske fertig ist, drücken Sie die F1-Taste. Sie werden nun gefragt, ob der Einzelblattmodus eingeschaltet werden soll. Antworten Sie hier mit »J«, so ist später beim Ausdruck nach jedem Datensatz eine Taste zu drücken. Jetzt wählen Sie, für welche Datensätze der Formbrief gedruckt werden soll. Es gibt mehrere Möglichkeiten: Wenn Sie die »A« Taste drücken, wird nach dem Schlüsselfeld selektiert. So können Sie den Formbrief beispielsweise allen Leuten schicken, deren Name mit »H« anfängt. Als Suchbegriff geben Sie dann »H*« ein. Hinweise zu diesen Abkürzungen finden Sie bei der Besprechung der Option »nach Schlüsselfeld suchen«. Jetzt wird noch der Bereich, in dem im Schlüsselfeld nach dem Suchbegriff gesucht werden soll, festgelegt. Eine andere Möglichkeit: Sie drucken unbedingt alle Datensätze in einem bestimmten Bereich. Dazu dient die Funktion »B«. Hier geben Sie dann nur den Bereich ein. Durch Druck auf die Taste »D« wird dieser Programmteil beendet, es erfolgt ein Sprung in das Hauptmenue. In der Beschreibung der Funktion »Blättern« haben wir darauf hingewiesen, daß man Datensätze markieren kann. Hier nun der Sinn dieser Sache: Wenn Sätze markiert sind (und im Hauptmenue unten rechts der Hinweise »MARK« erscheint), gibt es in dem Menuepunkt »Liste drucken« jetzt noch die Wahlmöglichkeit »C«: Dann wird der Formbrief mit allen markierten Datensätzen gedruckt. Sie können nun beispielsweise in Ihrer Adreßdatei blättern, alle Ihre Freunde in der Kartei markieren, denen Sie eine Einladung schicken wollen, diese Einladung dann als Formbrief gestalten und über die Funktion »C« für alle markierten Sätze ausdrucken. Ist die gewünschte Druckart festgelegt, sucht sich der Computer die gewünschten Datensätze aus, »füllt« die Druckermaske (den Formbrief) »aus« und druckt. Wurde die Einzelblattfunktion gewählt, erfolgt jedesmal nach dem Druck eines Datensatzes die Aufforderung, eine Taste zu drücken. Den in Bild 9 erstellten Forbrief für die Adresse, die in Bild 4 eingegeben wurde, sehen Sie ausgedruckt in Bild 11. Sieht doch professionell aus, oder? Dazu noch ein Hinweis: Da Sie über die CTRL Taste nur die Datenfelder 1 bis 9 ereichen können, ist es nicht möglich, in einen Formbrief Felder mit einer Nummer über 9 einzubauen ! Wenn eine Maske zum Beispiel nur vier Felder enthält, wird bei der Eingabe der Druckermaske keine CTRL Kombination mit einer Zahl über vier akzeptiert. Fehleingaben sind also wie im gesamten Programm vollkommen ausgeschlossen. *** Maske zeigen {M} Sie wollen sich die Maske noch einmal so ansehen, wie sie eingegeben wurde ? Dann wählen Sie im Hauptmenue diese Funktion. Wenn Sie sich die Maske angesehen haben, drücken Sie die F1-Taste. Dann werden noch die internen Daten der Maske errechnet und angezeigt (Bild 8). Hier finden Sie die Nummer und den Namen der Datei, die augenblicklich geöffnet ist. Angezeigt wird auch die maximale Anzahl der Datensätze, die diese Datei aufnehmen kann. Darunter steht die Anzahl der Sätte, die momentan belegt sind. Der Wert, der in unserem Fall 182 beträgt, gibt die Gesamtlänge der 9 Felder an. Daß es neun sind, sehen Sie am Schluß der Liste. Wenn Sie jetzt die RETURN-Taste drücken, springt das Programm wieder ins Hautptmenue, nach Druck auf SPACE wird die Maske erneut angezeigt. *** Datei öffnen {C} Wenn Sie schon mit DATAMASTER gearbeitet haben, und Ihre alte Adressendatei wieder öffnen wollen, drücken Sie im Hauptmenue auf die C-Taste. Falls schon eine Datei geöffnet war, wird diese nach einer Sicherheitsabfrage geschlossen, dann erscheit eine Liste der auf dieser Datendisk gespeicherten Dateien. Falls nur eine Datei existiert, erscheint stattdessen eine JA/NEIN Frage, ob diese geöffnet werden soll. Sonst wählen Sie über die Tasten »1« bis »3« die zu öffnende Datei aus. Das Öffnen geht relativ zugüg, wenn man bedenkt, daß hier alle Schlüssel und die gesamte Indextabelle gelesen werden muß. Das Öffnen einer Datei mit 84 belegten Sätzen dauert beispielsweise etwa 22 Sekunden. Die Nummer des Schlüssels, der momentan gelesen und decodiert wird, sehen Sie auf dem Schirm. *** Suche (nach Schlüssel) {J} Diese wichtige Funktion darf in einer Datenverwaltung natürlich nicht fehlen. Wenn Sie beispielsweise die Adresse von Herrn Huber brauchen, wählen Sie diese Funktion. Es folgt der übliche Test, ob eine Datei geöffnet ist und ob ein Datensatz existiert. Wenn alles in Ordnung ist, werden Sie dazu aufgefordert, den Suchbegriff einzugeben. Hier schreiben Sie entweder den Inhalt des Schlüsselfeldes, das Sie suchen, aus, oder verwenden die von der Floppy bekannten »Joker«: Das Sternchen ersetzt den Rest des Suchbegriffes (HU* findet HU, HUBER, HUND, HUU...), mit dem Fragezeichen wird ein beliebiges Zeichen ersetzt (M?IER findet MAIER, MEIER, MIIER, M IER (Space ist auch ein Zeichen)...). Auch Kombinationen sind möglich. Eingaben, deren Länge die Länge des Schlüsselfeldes der aktuellen Maske überschreiten würde, werden nicht angenommen. Die Eingabe wird mit RETURN abgeschlossen. Die Markierungen der gefundenen Datensätze können manipuliert werden. Es erscheint jetzt die entsprechende Frage. Antworten Sie mit der A-Taste, so wird die Markierung jedes Datensatzes gesetzt, dessen Schlüsselfeld dem Suchbegriff entspricht; Druck auf die B-Taste bewirkt das Löschen der Markierungen aller gefundenen Datensätze (falls sie vorher gesetzt war), und wenn Sie die C-Taste drücken, werden die Markierungen nicht verändert. In jedem Fall beginnt nun die Suche. Da alle Schlüsselfelder im Speicher stehen, geht dies blitzschnell vor sich. Wenn ein Schlüsselfeld gefunden wird, das dem Suchbegriff entspricht, wird der dazugehörige Datensatz von der Diskette geladen und angezeigt. Falls gewünscht, wird dann noch die Markierung gesetzt bzw. gelöscht. Drücken Sie dann bitte eine Taste. Das Programm fragt nun, ob die Suche fortgesetzt werden soll. Wenn Sie mit der N-Taste antworten, erfolgt ein Sprung ins Hauptmenue, sonst wird weitergesucht. *** Suche im gesamten Datensatz {L} Nun kann es aber sein, daß Sie gar nicht nach dem Schlüsselfeld suchen wollen, sondern sich dafür interessieren, in welchen Datensätzen ein Suchbegriff vorkommt. Dafür ist diese Funktion gedacht. Die Warnung, das Suchen könne sehr lange dauern, brauchen Sie nicht ernst zu nehmen, die Geschwindigkeit kann sich sehen lassen, obwohl wirklich jeder Datensatz vollständig eingelesen wird. Beantworten Sie die Sicherheitsabfrage also mit der J-Taste. Jetzt wird wieder der Suchbegriff eingegeben. Als Joker kann diesmal nur das Fragezeichen fungieren. Jetzt gibt es die Auswahl, ob der Computer alle Datensätze anzeigen soll, in denen der Suchbegriff irgendwo (also auch beispielsweise im Schlüsselfeld) im Datensatz vorkommt, oder all jene, in denen der Suchbegriff nirgendwo vorkommt. Antworten Sie je nach Wunsch mit der A oder B-Taste. Wenn Sie beispielsweise alle Leute herausfinden wollen, die in München wohnen, geben Sie als Suchbegriff »MUENCHEN« ein (oder eine Abkürzung davon, z.B. »MUE«) und wählen als Suchart »A«. Wollen Sie alle Datensätze herausfinden, in denen der Buchstabe »e« nicht vorkommt (sehr viele werden das nicht sein!), so lautet der Suchbegriff »e« und die Suchart »B«. Auch hier kann wieder markiert werden. Durch Druck auf die A-Taste veranlassen Sie das Programm, alle Sätze zu markieren, die angezeigt (!) werden. Wenn die Markierung dieser Datensätze gelöscht werden soll, drücken Sie »B«. Die C-Taste bewirkt, daß keine Markierung geändert wird. Die Suche beginnt nun. Auf dem Bildschirm wird angezeigt, welcher Datensatz gerade gelesen wird, welche Suchkriterien aktiv sind, und daß Sie mit »F7« abbrechen können. Wenn Sie diese Taste drücken, kehrt das Programm kurz darauf ins Hauptmenue zurück. Es kann sein, daß Sie die Taste etwas länger drücken müssen, wenn gerade eine Diskettenoperation läuft. Ansonsten werden die gewünschten Datensätze angezeigt und durch Druck auf eine Taste quittiert. Vielleicht vermissen Sie die Möglichkeit, »UND« und »ODER« Filter verwenden zu können. DATAMASTER wäre kein gutes Programm, wenn es nicht auch etwas in dieser Richtung bieten würde. Die Verknüpfungen werden hier mit den Markern realisiert bzw. simuliert. Das läßt sich am besten anhand eines Beispieles erklären: Angenommen, Sie wollen allen Ihren Freunden in Berlin, die nicht Fritz heißen, eine Einladung schreiben. Der erste Schritt ist, daß Sie erst einmal alle Datensätze markieren müssen, in denen zwar das Wort »BERLIN« vorkommt, nicht jedoch das Wort »FRITZ«. Wählen Sie also die Option »Gesamtsuche«, geben Sie als Suchbegriff »BERLIN« ein, Anzeige bei Fund, Markieren bei Fund. Nach der Suche sind alle Datensätze mit »BERLIN« markiert. Allerdings sind auch die »Fritzen« noch drin. Also wählen Sie abermals den Punkt »Gesamtsuche«, geben als Suchbegriff »FRITZ« ein und lassen alle Datensätze anzeigen, in denen der Suchbegriff vorkommt. Hier soll diesmal jedoch die Markierung gelöscht werden. Für alle Datensätze, in denen »FRITZ« vorkommt, wird also die Markierung wieder gelöscht. Das Ergebnis ist das gewünschte: Nur die Datensätze, in denen »BERLIN«, nicht aber »FRITZ« vorkommt, sind markiert. Jetzt geben Sie noch unter »Liste drucken« den Formbrief für die Einladung ein, und lassen ihn für alle markierten Datensätze ausdrucken. Solche Spielereien lassen sich natürlich beliebig verschachteln und verknüpfen. Sie haben nun gelernt, wie man mit »DATAMASTER« Daten verwaltet. Einige Menuepunkte verbleiben noch, die zur Steuerung des Programmes dienen und nicht direkt Daten verwalten. *** Programmende {E} Nach Anwahl erscheint eine Sicherheitsabfrage. Wenn Sie wirklich aufhören wollen, drücken Sie die J-Taste. Falls eine Datei geöffnet war, wird diese nun geschlossen. Dann wird die aktuelle Datendisk geschlossen, das heißt, softwaremäßig schreibgeschützt. Dann wird ein Reset ausgelöst. *** Freier Speicherplatz {O} Falls Sie das Programm erweitern wollen, ist diese Funktion hilfreich. Nach einer kurzen Garbage-Collection wird ausgegeben, wieviele Bytes im Speicher noch frei sind (Bild 6), und wieviel Prozent das sind. *** Hinweise {N} Nach Anwahl dieser Funktion gibt das Programm Ihnen drei Seiten lang Hinweise und Tips zur Bedienung. Nach jeder Seite ist eine Taste zu drücken. *** Datendisk löschen (neu anlegen) {I} Bisher kennen Sie keine Möglichkeit, eine bereits angelegte Datendisk neu anzulegen, etwa, wenn Sie die darauf gespeicherten Dateien nicht mehr brauchen. Denn wenn Sie eine Datendisk direkt nach dem Programmstart einlegen, haben Sie nicht die Chance dazu: Die Disk wird sofort geöffnet. Wenn Sie aber nun im Hauptmenue die I-Taste drücken, können Sie die Datendisk neu anlegen, wobei sie auch vollständig gelöscht wird. Alles, was Sie zu tun haben, ist auf die Sicherheitsabfrage mit der J-Taste zu antworten. Dann geschieht alles weitere wie oben beschrieben. *** Markierungen managen {R} Der Menuepunkt mit dem lustigen Namen führt Sie, soweit bereits etwas markiert ist, in ein weiteres Menue. Hier haben Sie die Auswahl zwischen fünf Funktionen (Siehe Bild 12): - Markierungen anzeigen {A}: Nach Anwahl dieses Untermenuepunktes bekommen Sie eine Liste, in der die Nummern aller markierter Datensätze verzeichnet sind. Danach ist eine Taste zu drücken. - Markierungen löschen {B}: Diese Funktion dient dazu, das Flag zu löschen, daß Markierungen vorgenommen wurden. Mit anderen Worten: Nach Anwahl springt das Programm ins Hauptmenue zurück, und alle Markierungen sind gelöscht. - Markierungen manipulieren {C}: Hier können Sie nach eingener Wahl Markierungen löschen und setzten. Geben Sie die Nummer des Datensatzes ein, dessen Marker Sie verändern wollen. Dessen Zustand wird dann angezeigt, und der neue Zustand wird erfragt. Geben Sie hier nur die Zahlen 1 (gesetzt) oder 0 (gelöscht) ein. Zum Beenden dieser Funktion geben Sie auf die Frage nach der Datensatznummer den Linkspfeil ein. - Markierungen invertieren {D}: Alle Marker, die vor Anwahl dieser Funktion gesetzt waren, sind danach gelöscht, und umgekehrt. - Zum Menue {E}: Dies ist der Ausgang ins Hauptmenue *** Dienst {B} Bei den meisten Programmen werden unter dem Namen »Dienst« Funktionen zusammengefasst, die sonst niergendwo mehr hineingepaßt haben, oder für die man keinen anderen Namen gefunden hat. Ehrlich gesagt: Hier ist es ebenso. Das Dienstmenue (Bild 7) führt acht Unterfunktionen, die Sie durch Eingabe einer der Ziffern von Null bis Sieben wählen können: 1. Steuerung: Garabage Collection. Hier soll nicht genau erläutert werden, was die Garbage Collection genau ist. Es sei nur gesagt, daß sie bei der intensiven Arbeit mit BASIC Programmen gelegentlich auftritt, dann den gesamten Speicher reinigt, was unter Umständen bis zu einer halben Stunde dauern kann. Es gibt aber das Hilfsprogramm »GARBAGE 64« aus der 64'er Ausgabe 2/86, das diese Prozedur auf Sekunden verschnellert. Dieses Hilfsprogramm wurde in DATAMASTER 64 eingebunden und kann über diese Funktion an- und ausgeschaltet werden. Durch Druck auf die SPACE Taste wird umgeschaltet, RETURN führt ins Dienstmenue zurück. Warum sollte man diese hilfreiche Funktion, die das Programm nach dem Start automatisch aktiviert, abschalten? Weil sie nach Angaben des Autors bei zu vielen Texten unzuverlässig wird. In der Testphase des Programmes ist dieser Fall zwar noch nie aufgetreten, aber sicher ist sicher... 2. Maskenformat: Vielleicht stört es Sie, daß beim Anzeigen oder Eingeben eines Datensatzes die Datenfelder revers (invers) unterlegt sind. Dann schalten Sie diese Ausgabeweise doch ab! Dazu dient diese Funktion. Auch hier wird mit SPACE geschaltet und mit RETURN beendet. 3. Paßwort ändern: Diese Funktion hat ausnahmsweise mal einen tieferen Sinn. Wenn Sie aus irgend einem Grunde das Paßwort der Datendisk ändern wollen (etwa, wenn jemand es herausbekommen hat), wählen Sie sie. Das alte Paßwort wird geladen und angezeigt. Geben Sie hierauf das neue Paßwort ein (auch es darf nur 20 Zeichen beinhalten), das nach Druck auf RETURN abgespeichert wird. Falls Sie das Codewort doch nicht ändern wollen, geben Sie entweder noch einmal das alte ein, oder den Linkspfeil. 4. Dateinamen ändern: Wenn Ihnen der Name der momentan geöffneten Datei nicht mehr zusagt, ändern Sie ihn hier. Der alte Name wird angezeigt, ebenso die Filenummer (eins bis drei). Geben Sie nun den neuen, maximal 16 Zeichen umfassenden Namen ein, oder das Minuszeichen, wenn Sie abbrechen wollen. Der neue Name wird dann gespeichert und in die Kopfzeile des Programmes übernommen. 5. Sekundäradresse Drucker: Das Programm ist nach dem Start auf MPS Drucker eingestellt, die zum Druck von Groß/Kleinbuchstaben die Daten unter der Sekundäradresse sieben erwarten. Diese Einstellung kann hier verändert werden. Für viele Drucker muß beispielsweise vier eingestellt werden. 6. Screenblanking: Vielleicht ist Ihnen bei der Arbeit mit dem Programm schon aufgefallen, daß es etwa eine Minute nach dem letzten Tastendruck den Bildschirm schwarzschaltet, das heißt, ausblendet. Dies dient zum Schutz des Monitors, damit sich bei längerer Arbeit das Bild nicht in die Mattscheibe einbrennen kann. Viele professionelle Programme und auch manche Terminals bieten eine solche Funktion ebenfalls. Falls das Ausblenden aber stören sollte, etwa beim Abschreiben eines langen Textes, kann es mit der Dienstfunktion <6> abgeschaltet werden. Dazu drücken Sie die SPACE Taste. Wenn Sie das »Blanking« wieder einschalten wollen, drücken Sie erneut auf SPACE. Der augenblickliche Zustand wird angezeigt. Des weiteren kann hier die Zeit verändert werden. Dazu dienen die Tasten <+> und <->. Das Ändern ist in Schritten von ca. 4 Sekunden möglich, was programmtechnisch bedingt ist (256 sechzigstel Sekunden = 4,267 Sekunden). Durch Druck auf RETURN wird diese Funktion verlassen. 7. Sie sehen es bereits in der Kopfzeile des Programmes: Die Versionsnummer der vorliegenden Version ist P(ublik)/046(=Abspeicherungsnummer). Diese Nummer steht auch auf jeder Datendisk und kann hiermit gelesen und angezeigt werden. Das waren alle Funktionen des Programmes. Wenn Sie die Anleitung stellenweise noch nicht ganz begriffen haben, probieren Sie einfach ein wenig herum. Durch Fehleingaben kann nichts zerstört werden. Ein ganz wichtiger Hinweis allerdings: Da das Programm laufend eine Direktzugriffsdatei auf der Diskette geöffnet hat, darf die Floppy während der Arbeit mit DATAMASTER NIEMALS (!) aus dem Laufwerk genommen werden, wenn die rote Lampe brennt. Sonst führen alle Veränderungen an der Datei ins Chaos. Eine Konsequenz davon ist, daß das Programm NUR über die Funktion »E« verlassen werden darf! Wenn Sie sich außerhalb der Datenverarbeitung das Directory einer Datendisk ansehen, werden Sie darauf hingewiesen, daß Sie diese Diskette nur unter DATAMASTER benutzen dürfen. Schreibversuche werden mit einer Fehlermeldung zurückgewiesen. Um dies zu verhindern, formatieren Sie die Datendisk einfach kalt (mit ID). Da gehen zwar alle Daten verloren, die Disk wird aber wieder »normal«. Vielleicht ist Ihnen aufgefallen, daß es keine Möglichkeit gibt, einen Datensatz zu löschen. Dies ist durch das Diskettenformat bedingt, aber auch nicht unbedingt notwendig. Zum Löschen überschreiben Sie unter »Datensatz ändern« einfach alle Daten mit Leerzeichen! Eine geöffnete Datei wird zwar bei Bedarf (etwa vor dem Öffnen einer neuen Datei oder vor dem Verlassen des Programmes) automatisch geschlossen. Dabei werden alle Schlüssel zurück auf die Diskette geschrieben. Falls Sie dies aus Sicherheitsgründen aber schon vorher tun wollen, wählen Sie die Funktion »Neue Datei anlegen«, beantworten die Sicherheitsfrage mit »J«, geben nach dem Schließen dann aber den Linkspfeil (Abbruch) ein. Im dritten Textfile (»Technische Daten«) finden Sie nähere Hinweise, wenn Sie »hinter die Kulissen« des Programmes sehen wollen, oder Erweiterungen vornehmen wollen. Wir wünschen Ihnen viel Spaß bei der Arbeit mit dieser komfortablen Datenverwaltung! HINWEIS: Ein hervorragendes Programmpaket wie »Datamaster 64« wird auch durch Anregungen von Kunden laufend verbessert und erweitert. Dabei können sich kleine Änderungen im Aufruf von Funktionen ergeben. Die vorliegende Anleitung beschreibt eine ältere Version des Programms. Es ist daher nicht ausgeschlossen, daß bei Ihrer Programmversion zum Beispiel den Hauptmenüfunktionen andere Kennbuchstaben zugeordet sind. Die Namen der Funktionen entsprechen jedoch denen in der Dokumentation. Dadurch, daß alle Programmfunktionen selbsterklärend gestaltet sind, werden Sie bei der Anwendung sicherlich keinerlei Schwierigkeiten haben. So werden im »Textomat Plus« Formbriefe (Rundschreiben) geschrieben und verwendet: Bevor Sie das Textverarbeitungsprogramm starten, müssen Sie erst einmal eine Datei erzeugen, die die Daten im Commodore ASCii Code enthält, die dann in den Text eingebaut, »eingezogen« werden. Der Typ dieser Datei ist egal, es kann sich um eine SEQ, PRG oder sogar USR Datei handeln. Auch der Dateiname ist beliebig, er darf allerdings nicht länger als 15 Zeichen sein, da man ihn im Textomat Plus sonst nicht mehr eingeben kann. Diese Datei enthält in sequentieller Anordnung alle benötigten Datensätze in immer der gleichen Anordnung. Beispielsweise eine Adressdatei, die so aufgebaut sein könnte: - Vorname 1 - Nachname 1 - Straße 1 - Ort 1 - Vorname 2 - Nachname 2 - Straße 2 - Ort 2 - Vorname 3 und so weiter... - Straße 34 - Ort 34 Ende der Datei. Dieses File würde also 34 Datensätze, 34 Adressen enthalten. Wenn Sie jetzt einen Formbrief erstellen, wird dieser 34 mal mit unterschiedlichen Daten gedruckt. Ein besonderes Dateiendekennzeichen ist nicht notwendig, das File hört einfach nach dem letzten Datensatz auf. Auch ist es nicht erforderlich, die Datensätze voneinander zu trennen. Wichtig ist nur, daß die Reihenfolge der Felder in den Datensätzen wie oben dargestellt immer gleich ist, also Vorname, Nachname, Straße und Ort (beispielsweise). Jedes Feld muß mit CR (»RETURN«, ASCii Code 13) abgeschlossen werden. Ein solches File können Sie beispielsweise mit der Datenverwaltung »Datamaster« erstellen, indem Sie den Konverter »MASTER->TEXTO« verwenden. Der erzeugt dann auch gleich das richtige Format. Wenn das Datenfile angelegt ist, kann's losgehen. Sie schreiben im Textomat Plus wie gewohnt den Text. An den Stellen, an denen Daten aus der Datei eingefügt werden sollen, setzen Sie das Sonderzeichen: {CTRL S}, »a«, zweistellige (!) Nummer von 0 bis n wobei n die Anzahl der Felder pro Datensatz minus 1 ist. Im obigen Beispiel wäre n = 4-1 = 3. Das »a« steht für »Adressfeld«. Es wird von einer Zahl gefolgt, die angibt, aus welchem Feld das Datum geholt werden soll. Sie muß zweistellig sein; falls sie kleiner als zehn ist, muß ihr also eine Null vorangestellt werden. Beispiel: Sie wollen eine Briefanrede formulieren, die den Vornamen des Opfers enthält. Als Basis diene wieder die obige Adressdatei, die den Vornamen an erster Stelle enthält. Liebe(r) ~a00, ich wollte Dir nur mal wieder... und so weiter. wobei das Symbol »~« für das inverse S steht, das Sie im Texteditor über die Tastenkombination bekommen (dann merkt der Textomat Plus, daß ein Steuerzeichen folgt). Das ist alles ! Haben Sie's bemerkt ? Der Vorname steht zwar immer an erster Stelle in jedem Datensatz, die Zahl hinter a lautet aber »00«, da eins abgezogen werden muß ! Angenommen, Ihr Text besteht wirklich nur aus der Anrede. Würden Sie diesen Formbrief aber unter Verwendung der oben gezeigten Beispieldatei ausdrucken, käme die böse Überraschung auf dem Papier. Sie bekämen nämlich folgendes Ergebnis: Liebe(r) Klaus, Liebe(r) Metzger, Liebe(r) Beispielstrasse 12a, Liebe(r) 8000 München 12, Liebe(r) Heinz, Liebe(r) Hering, Liebe(r) Fischweg 4, Liebe(r) 5000 Köln, Liebe(r) Michael, und so weiter. Sie sehen also, Textomat Plus nimmt aus jedem Datensatz pro Ausdruck immer nur so viele Daten, wie erforderlich. Wenn im Formbrief nur ein Datenfeld (wie hier) angesprochen wird, nimmt das Programm an, daß jeder Datensatz der Datei auch nur aus einem Feld besteht ! Folgender Formbrief würde die Beispieldatei richtig nutzen (~ steht wieder für das inverse S): Herrn ~a00 ~a01 ~a02 ~a03 Lieber ~a00, ich grüße Dich ! Das war's für diesmal, dein Heiner. Ausgedruckt mit der Beispieldatei sähe das dann so aus: Herrn Klaus Metzger Beispielstrasse 12a 8000 München 12 Lieber Klaus, ich grüße Dich ! Das war's für diesmal, dein Heiner. Herrn Heinz Hering Fischweg 4 5000 Köln Lieber Heinz, ich grüße Dich ! Das war's für diesmal, dein Heiner. und so weiter. Um den Formbrief auszudrucken, wählen Sie im Hauptmenue bitte nicht die Druckfunktion ( ), sondern die Funktion »Rundschreiben« ( ). Hier können Sie die übliche Maske wie gewohnt wieder mit übernehmen. Jetzt werden Sie gefragt, wie die Adressdatei heißt. Geben Sie hier den Namen des Datenfiles ein. Wenn es auf Diskette gefunden wurde, erscheint nun die Frage, ob eine Konvertierung notwendig ist. Im Normalfall können Sie diese Frage mit »N« beantworten. Dann beginnt endlich der Ausdruck. Der Formbrief wird so oft ausgedruck, wie Daten in der Adressdatei vorhanden sind. Wie schon gesagt können Sie als Konverter das auf der Datamaster-Diskette vorhandene Programm verwenden. Ein Datenfile könnten Sie aber auch mit einem Editor für SEQ-Dateien erzeugen. Manche Programme, etwa »DATAMASTER«, bieten auch eine »Export«-funktion, die eine solche Datei anlegt. Diskettenformat (Stand: Version V1/019, seither nicht mehr geändert): Track 1- 7 Sek. 1-21: Datensätze Datei 1 (hat 147 Sätze) Track 8-14 Sek. 1-21: Datensätze Datei 2 (hat 147 Sätze) Track 15-22 (ohne 18) Sek. 1-19: Datensätze Datei 3 (hat 133 Sätze) Track 1-22 Sektor 0 ungenutzt Track 18: Scheindirectory Track 23 (Verwaltungstrack) Sek. 0: Kennung »DATAMASTER (C) NSS Vxxx« Sek. 1: Codewort + »F7« (CHR$(136)) Sek. 2: Name Datei 1 Sek. 3: Name Datei 2 Sek. 4: Name Datei 3 Sek. 5: Anzahl beglegte Datensätze Byte 0: von Datei 1 Byte 1: von Datei 2 Byte 2: von Datei 3 Track 24 Sek. 0 - 10: Schlüsselfelder Datei 1 (je 16 Zeichen) Track 25 Sek. 0 - 10: Schlüsselfelder Datei 2 (je 16 Zeichen) Track 26 Sek. 0 - 10: Schlüsselfelder Datei 3 (je 16 Zeichen) Track 31: Organisation Datei 1: Sektor 1 - 4: Maske (Bildschirmcode) Sektor 5: Index auf Tracks Sektor 6: Index auf Sektoren Track 32: Organisation Datei 2: Sektor 1 - 4: Maske (Bildschirmcode) Sektor 5: Index auf Tracks Sektor 6: Index auf Sektoren Track 33: Organisation Datei 3: Sektor 1 - 4: Maske (Bildschirmcode) Sektor 5: Index auf Tracks Sektor 6: Index auf Sektoren Datenfeldtypen: Code 1 = Schlüssel, BS Code 102, ASCii 166 (CBM S) Code 2 = Zwangseingabe, BS Code 111, ASCii 175 (CBM F) Code 3 = Textfeld, BS Code 100, ASCii 164 (CBM T) Code 4 = Ziffernfeld, BS Code 104, ASCii 168 (CBM Z) wichtige Variablen: T%(I) Index: Track von Datensatz I S%(I) Index: Sektor von Datensatz I S$(I) Schlüssel von Satz I MA$ Name der Datei, wenn nicht vorhanden: Leerstring MZ Maximale Datensatzzahl (147 bzw. 133) ND Nummer der aktuellen Datei (1, 2 oder 3) NB Anzahl belegter Sätze (0 - MZ) Maschinensprache-Einsprünge (SYS, angegeben ist der Name der BASIC Variable, die Adresse und Parameter) ME = 32768 Maske editieren CI = 32771 Bildschirm mit Cursorfarbe einfärben (COLIN) TA = 32774 Wartet auf Taste IN = 32777,X,A$ INFORM (X = maximale Länge, A$ = Ziel) SI = 32780,NR,X,A$ INFORM von File Nr. NR BR = 32783,TR,SE,BY liest Track TR, Sektor Se, Pointer auf Byte BY RR = 32786 rechten Rand darstellen CM = 32789 löscht Maskenbereich am Bildschirm ML = 32792,X Lädt Maske von Datei X (1-3) nach $9400 MS = 32795,X Speichert Maske von Datei X C1 = 32798 Speichert Bildschirm im Latch ($9400) C2 = 32801 Holt BS aus Latch ($9400) AW = 32804 Wertet Maske im Latch aus, erzeugt ERG Tabelle ab $C000 SQ = 32807,SU$,S$(ANF),S$(END),E% Suchroutine (verbesserte Version der 64'er Routine) RV = 32810,ADR,LEN,A$ Speicherinhalt nach Variable CB = 32813 löscht Eingabepuffer ($C600) OB = 32816 gibt Eingabepuffer in Maske aus, Maske bei $9400 EI = 32819 Eingabe, Kontrolle, Codierung, nach $C600 WE = 32822 wertet ERG Tabelle ($C000) aus, erzeugt ERG2 Ta- belle bei 820 = ANZFE, Anzahl Felder 821 = GESALEN, Gesamtlänge aller Felder 822 = Position Schlüsselfeld im Ein- gabepuffer 823 = Länge Schlüsselfeld VR = 32825,ADR,A$ Gegenteil von RV OH = 32828 Färbt die oberen zwei Zeilen schwarz PA = 32831,A A = Flag: Datenfelder revers (1) oder nicht (0) AP = 32834 Holt Zustand dieses Flags nach 2 QS = 32837,A$,B$,T% Ist B$ in A$ ? Wenn ja, T%=Position, sonst 0 FI = 32840,A$,B$ A$ werden alle rechtsbündigen Leerzeichen entzo- gen, Ergebnis nach B$ ED = 32843 Druckermaske ($9800 = DRUMEM) editieren CK = 32846 Druckermaske löschen DD = 32849 Druckt auf Bildschirm befindlichen Satz aus US = 32852 Druckt Eingabepuffer unter Verwendung von DRUMEM aus I1 = 32855 Screenblank IRQ an I2 = 32858 Screenblank IRQ aus I3 = 32861,X Setzt Toleranzzeit I4 = 32864 Holt Toleranzzeit nach 2 Garbage 64: Einschalten: POKE 1,55:SYS 51400 Ausschalten: POKE 1,55 Format der ERG Tabelle ab $C000: 1. Byte: Typ (0 = Tabellenende, sonst die unter »Datenfeldtypen« auf- geführten Typen) 2. Byte: Länge 3. Byte: Zeile 4. Byte: Spalte Dann wiederholt sich das Ganze für das nächste Feld Speicherbelegung: (Endadressen ungenau) $0000-$8000: Zeropage, Bildschirm, BASIC Programm, Variablen, Strings $8000-$93FF: Maschinenprogramm $9400-$97FF: LATCH (Eingabemaske) $9800-$9FFF: DRUMEM (Druckermaske) $A000-$BFFF: RAM wird von GARBAGE 64 belegt $C000-$C5FF: ERG Tabelle $C600-$C6FF: Eingabepuffer $C700-$DFFF: unbenutzt $E000-$FFFF: RAM wird von GARBAGE 64 belegt interessante Speicherzellen: $0002-$0005: temporär $00A6-$00A7: temporär $00B4-$00B5: temporär $02E4-$02FE: Sprite (Balken für Druckermaskeneditor) $0313 : Länge der Druckermaske $0334-$03FF: Puffer, Zwischenspeicher $8000-$8062: Sprungtabelle $8063-$8068: Rucksack für SUCHVAR Routine ($B08B) $8069-$8268: gepacke Texte $8269-$8288: Floppybefehle $8289-$8291: erlaubte CTRL Tastenkombinationen im Editor $8292 : Flag bei Maskeneingabe (normal = 0, bei Feldeingabe ± 0) $8293 : Zeichen $8294 : Speicher für Längen $8295 : Speicher für Zeile bei Hilfefunktion $8296 : Speicher für Spalte bei Hilfefunktion $8297 : Speicher für Farbe bei Hilfefunktion $8298 : Gesamte Länge $829E : Fehlerflag $829F : Letzter eingegebener Feldtyp $82A0-$82A3: »Goofy« - Speicher, für Rotation bei Auswertung (ERG) $82A4-$82A5: Zeiger: letzte zu durchsuchende Feldvariable $82A6-$82A7: Nummer der aktuell durchsuchten Feldvariable $82A8 : Anzahl der zu suchenden Zeichen $82A9 : Jokerflag für Suchroutine $82AA : Speicher für Speicherkonfiguration $82AB : Flag, ob Datenfelder revers ausgegeben werden sollen (1) oder nicht (0) $82AD : Spalte $82AE-$82AF: Speicher für Längen $82B2 : Flag für Feldlängenautomatik (Druckermaske) $82B3 : Flag: Automatik aktiv $82B4 : Flag: Leerzeichen gesperrt $82B5 : Flag: Leerzeichen gefunden $82B6-$82B7: alter IRQ Vektor $82B8 : Toleranzzeit für Screenblanking $82B9-$82CB: erlaubte Sondertasten im Maskeneditor $82CC-$82F1: Adressen der Routinen dieser Sondertasten $82F2-$82F7: erlaubte Sondertasten im Druckermaskeneditor $82F8-$8303: Adressen der Routinen dieser Sondertasten $8304-$8307: BS-Codes der Feldmarkierer für Auswertroutine $8308-$9310: 100% Maschinenprogramm $843D-$844E: Bankswitching Routinen $844F-$84B5: STROUT Text entpacken, decodieren und ausgeben $8635-$8637: JSR 0, selbstmodifizierender JSR Befehl $8670-$8672: JSR 0, selbstmodifizierender JSR Befehl $881D : Neuer IRQ Einsprung $89E8 : Routine, die prüft, ob in ein Ziffernfeld eine Ziffer oder ein Blank eingegeben wurde. Kann für Erweiterungen verwendet werden. Nikolaus Heusler