Tips und Tricks zu Vizawrite 64 (Teil 6)

In dieser Folge wollen wir Ihnen ein Konvertierungsprogramm vorstellen, das einen mit Vizawrite 64 erstellten Programmtext in ein lauffähiges Basic- beziehungsweise assemblierbares Assembler-Programm übersetzt, lösen das Geheimnis um Vizaspell und berichten über Vizastar.

Das Konvertierungsprogramm »VI-CO.cc« (Listing 1) zeichnet sich besonders durch die Möglichkeit der symbolischen Zeilenadressierung, der Bereitstellung aller Vorteile eines komfortablen Editors (Vizawrite 64) für die Programmerstellung in Basic und Assembler sowie seiner Benutzerfreundlichkeit (automatische Zeilennumerierung beim Generieren des Programmes, verschiedene Anwenderoptionen etc.) aus.

PROGRAMM : VI-CO.CC       CC00 CF60
-----------------------------------
CC00 : 68 68 20 D5 CE A9 26 A0   73
CC08 : CF 20 1E AB 20 A1 CD A9   7E
CC10 : 3C A0 03 8D 48 CF 8C 49   D7
CC18 : CF 20 6D CC B0 37 70 35   DD
CC20 : AD 11 D0 29 EF 8D 11 D0   00
CC28 : A9 0A 8D 0F D4 A9 82 A0   01
CC30 : 09 8D 01 D4 8C 05 D4 A9   72
CC38 : 1E 8D 18 D4 AD 02 03 AC   0E
CC40 : 03 03 8D 43 CF 8C 44 CF   A3
CC48 : A9 9C A0 CC 8D 02 03 8C   0F
CC50 : 03 03 4C 80 A4 AA 4C 37   37
CC58 : A4 24 90 70 0F A9 FD 25   C1
CC60 : 90 85 90 20 A5 FF 48 A5   A2
CC68 : 90 4A 4A 68 60 A6 B9 20   1F
CC70 : AF F5 A9 60 85 B9 20 D5   E3
CC78 : F3 A5 BA 20 B4 FF A5 B9   46
CC80 : 20 96 FF 20 59 CC 70 09   BF
CC88 : B0 07 C9 F1 D0 F5 4C D2   00
CC90 : F5 4C 04 F7 C9 5B B0 06   F2
CC98 : C9 20 D0 6D A2 00 20 59   B0
CCA0 : CC 70 7C B0 7A C9 7A D0   5B
CCA8 : EB AC 47 CF D0 03 4C 72   F0
CCB0 : CD AC 46 CF F0 04 A9 3B   AB
CCB8 : D0 4F E0 55 B0 56 B9 21   F9
CCC0 : CF 9D 00 02 E8 C8 C0 05   80
CCC8 : 90 F4 20 59 CC 70 50 B0   F9
CCD0 : 4E C9 7A F0 D4 C9 DC D0   70
CCD8 : 2A 8A F0 C2 A9 00 9D 00   ED
CCE0 : 02 20 B9 CD A0 14 8C 04   FF
CCE8 : D4 C8 8C 04 D4 A2 00 A0   68
CCF0 : 02 86 7A 84 7B 20 79 A5   4E
CCF8 : AD 46 CF D0 03 20 C6 CD   BE
CD00 : 4C A2 A4 C9 5B 90 02 A9   95
CD08 : 20 20 AC CD 9D 00 02 E8   D1
CD10 : E0 59 90 B6 A9 17 48 20   4C
CD18 : 80 CD 68 AA 4C 37 A4 20   40
CD20 : AB FF 20 42 F6 AD 46 CF   B1
CD28 : F0 06 20 80 CD 4C 74 A4   8E
CD30 : A9 5E A0 CD 8D 02 03 8C   F8
CD38 : 03 03 A5 2B A6 2C 85 FB   65
CD40 : 86 FC A0 01 B1 FB D0 03   D1
CD48 : 4C 2A CD 20 3C CE A0 02   E1
CD50 : B1 FB 85 14 C8 B1 FB 85   F8
CD58 : 15 8A A8 4C A2 A4 A0 14   60
CD60 : 8C 04 D4 C8 8C 04 D4 A0   BA
CD68 : 01 B1 FB AA 88 B1 FB 4C   35
CD70 : 3E CD 20 59 CC 70 A8 B0   1C
CD78 : A6 C9 DC D0 F5 4C D9 CC   17
CD80 : 20 A1 CD 20 44 E5 20 AB   33
CD88 : FF 20 42 F6 AD 11 D0 09   BF
CD90 : 10 8D 11 D0 AD 43 CF AC   53
CD98 : 44 CF 8D 02 03 8C 03 03   0E
CDA0 : 60 A0 18 A9 00 99 00 D4   02
CDA8 : 88 10 FA 60 85 D7 29 3F   3D
CDB0 : 06 D7 24 D7 70 02 09 40   62
CDB8 : 60 AD 45 CF 18 65 14 85   42
CDC0 : 14 90 02 E6 15 60 AD 00   85
CDC8 : 02 20 13 B1 90 F7 8C 0E   EC
CDD0 : 03 A8 AD 48 CF AE 49 CF   D3
CDD8 : 85 AC 86 AD 38 E9 EF 8A   B2
CDE0 : E9 07 90 05 A2 10 4C 16   1A
CDE8 : CD 98 A0 00 C0 0E B0 02   6D
CDF0 : 91 AC C8 B9 00 02 C9 30   D8
CDF8 : 90 04 C9 5B 90 EE 88 98   3C
CE00 : AA E8 BD 00 02 C9 20 F0   5F
CE08 : F8 C9 B2 D0 04 AC 0E 03   8F
CE10 : 60 A9 80 11 AC 91 AC C8   23
CE18 : A5 14 91 AC C8 A5 15 91   F2
CE20 : AC 98 38 6D 48 CF 8D 48   9E
CE28 : CF 90 03 EE 49 CF A0 04   7C
CE30 : CA E8 C8 BD 00 02 99 FB   C7
CE38 : 01 D0 F6 60 A0 03 A2 04   20
CE40 : E8 C8 B1 FB 9D FB 01 F0   18
CE48 : F2 20 13 B1 90 F2 20 54   0F
CE50 : CE 38 B0 EC 8C 0E 03 8E   66
CE58 : 0D 03 88 98 65 FB 85 AC   C2
CE60 : A9 00 65 FC 85 AD A9 00   6F
CE68 : 85 D7 A2 3C A0 03 86 AE   A3
CE70 : 84 AF A0 FF C8 B1 AE D1   6C
CE78 : AC F0 F9 29 7F D1 AC D0   1B
CE80 : 2E 84 D7 C8 B1 AE 85 63   6D
CE88 : C8 B1 AE 85 62 A2 90 38   73
CE90 : 20 49 BC 20 DF BD AE 0D   49
CE98 : 03 A0 FF CA E8 C8 B9 00   00
CEA0 : 01 9D FB 01 D0 F6 CA A5   CA
CEA8 : D7 18 6D 0E 03 A8 60 88   B1
CEB0 : C8 B1 AE 10 FB C8 C8 98   59
CEB8 : 38 65 AE 85 AE AA 90 02   86
CEC0 : E6 AF 38 ED 48 CF A5 AF   43
CEC8 : A8 ED 49 CF D0 A0 AE 0D   9A
CED0 : 03 AC 0E 03 60 20 FD AE   6A
CED8 : 20 57 E2 20 FD AE 20 EB   0E
CEE0 : B7 8E 45 CF 8A D0 03 4C   FD
CEE8 : 48 B2 49 FF 38 65 14 85   E6
CEF0 : 14 A9 FF 65 15 85 15 A2   9C
CEF8 : 08 A0 00 20 BA FF A2 00   8B
CF00 : 8E 46 CF 8E 47 CF 20 06   F6
CF08 : E2 20 00 E2 8E 46 CF E0   73
CF10 : 02 B0 D4 20 06 E2 20 00   9B
CF18 : E2 8E 47 CF E0 02 B0 C7   7D
CF20 : 60 3A 52 45 4D 20 56 49   9C
CF28 : 2D 43 4F 20 42 59 20 53   E5
CF30 : 45 50 50 20 48 45 49 44   12
CF38 : 2C 20 54 45 56 45 52 45   95
CF40 : 4E 0D 00 83 A4 0A 01 01   26
CF48 : 3C 03 FF FF 04 14 FF FF   E6
CF50 : 04 04 FF FF 04 14 FF FF   37
CF58 : 04 04 FF FF 00 10 FF FF   DF
Listing 1. Konvertierungsprogramm »VI-CO.cc«. Bitte verwenden Sie zur Eingabe den MSE.

Durch dieses Konvertierungsprogramm wird es möglich, die hervorragenden Editiereigenschaften des Textverarbeitungsprogrammes Vizawrite 64 für die Erstellung von Programmen zu nutzen.

Es lassen sich mit »VI-CO.cc« Programmteile verschieben, kopieren, löschen, finden und austauschen. Das horizontale Scrolling führt kommentierenden Text innerhalb von Programmen seiner eigentlichen Funktion zu: Programme übersichtlich zu gestalten. Der Kommentar steht wie auf einem 80-Zeichen-Monitor neben dem Programmtext und nicht dazwischen. Bereits fertige, auf Diskette gespeicherte Lösungen für Teilfunktionen eines Programms können nicht nur an den Programmtext angehängt, sondern beliebig eingefügt werden. Dies gilt auch für normal editierte Programme, die als sequentielle Dateien geladen werden können.

Die Vorgehensweise bei bereits bestehenden Programmen oder Unterprogrammen ist wie folgt:

Das Programm wird nun als sequentielle Datei auf Diskette geschrieben. Nachdem der Cursor wieder erscheint, geben Sie noch PRINT#1 und CLOSE1 ein, um die Datei ordnungsgemäß zu schließen. In Vizawrite 64 läßt sich dieses Programm mit Merge (CBM-Taste gefolgt von Shift/M) dort in den Text einfügen, wo der Cursor gerade steht. Erscheint in der Befehlszeile »Merge:«, so geben Sie lediglich den Programmnamen ein und schließen die Eingabe mit der Return-Taste ab. Die Frage nach der Anfangsseite beantworten Sie dann in diesem Fall mit »s« und der Return-Taste, bei der Endseite drücken Sie lediglich Return (es wird dann die gesamte Datei geladen). Nach dem Laden des Programmes in den Textspeicher von Vizawrite 64 sind noch die Zeilennummern zu korrigieren. Der erste Schritt besteht darin, alle Befehle, die sich auf Zeilennummern beziehen (zum Beispiel GOTO, GOSUB, THEN), mit dem Replace-Kommando zu berichtigen. Da »VI-CO.cc« die Möglichkeit der symbolischen Zeilenadressierung für Unterprogrammaufrufe und Programmverzweigungen bietet, kann beispielsweise GOSUB 2000 in GOSUB Textausgabe oder etwa GOSUB Unterprogl umgewandelt werden. Durch die symbolische Zeilenadressierung werden Programme übersichtlicher und dokumentieren sich selbst.

»VI-CO.cc« arbeitet mit allen Programmen zusammen, die in Basic 2.0, Simons Basic oder für den Assembler Profi-Ass geschrieben sind.

Kompatibilität

Grundsätzlich ist eine Kompatibilität mit allen Basic- und Assembler-Versionen, die den eingebauten Basic-Editor beziehungsweise seine Sprungvektoren benutzen, vorstellbar. Dabei ist zu beachten, daß »VI-CO.cc«

Diese Bereiche dürfen keine Programmteile beziehungsweise Systemvariablen der entsprechenden Basic- oder Assembler-Version beinhalten, können aber während der Ausführung von Programmen benutzt werden; so wird beispielsweise der Bereich ab $CC00 bei Simons-Basic als Farbspeicher für die HiRes-Bitmap benutzt.

Handhabung

Laden oder erstellen Sie ein Basic- oder Assembler-Programm mit Vizawrite 64; editieren Sie es und speichern das Programm auf Ihren Datenträger. Verlassen Sie danach Vizawrite 64 und nehmen gegebenenfalls Simons Basic oder den Profi-Ass in Betrieb. Laden Sie das Konvertierungsprogramm mit

)) LOAD "VI-CO.cc ",8,1(Return) NEW (Return) ((

Beim nun folgenden Programmaufruf können Sie dem Konverter einige Parameter übergeben, die im folgenden aufgeführt sind.

Programmaufruf

»VI-CO.cc« wird durch SYS (52224), "Filename", Startzeile, Abstand, Modus, Kommentaroption gestartet.

Erläuterung der einzelnen Parameter:

Strings, die nicht interpretiert werden können, werden als symbolische Zeilennummer aufgefaßt. Während des Ladens wird eine Symboltabelle angelegt, in der Strings am Anfang einer Basic-Zeile die hierzu vergebene Zeilennummer zugeordnet wird. Nach dem Laden wird der übrige Text nach diesen symbolischen Zeilennummern durchsucht und durch die wirklichen ersetzt.
1: Assembler-Modus (wahlweise)

Der unter Basic-Modus beschriebene Vorgang wird nicht durchgeführt. Symbole bleiben im Programmtext erhalten.

Alle Zeichen hinter »ö« (erscheint nach dem Drücken der »;«-Taste) werden aus der Textdatei nicht übernommen. Das Programm steht dann ohne Kommentarzeilen im RAM.
1: Kommentarmodus (wahlweise)

Im Basic- (oder Simons Basic-)Modus: »ö« wird als »:REM« ins RAM geschrieben. Der Text hinter »ö« wird übernommen. Es entsteht ein Basic-Programm einschließlich REM- Zeilen.

Bemerkungen

Im Assembler-Modus: »ö« wird als Semikolon (»;«) ins RAM geschrieben. Der Text hinter »ö« wird übernommen. Es entsteht ein Assembler-Programm einschließlich Kommentar im RAM.

Jede Programmzeile in Vizawrite 64 ist durch Drücken der Return-Taste abzuschließen.

Bei Zeilen mit mehr als 88 Zeichen wird eine Fehlermeldung ausgegeben und der Konvertiervorgang abgebrochen.

Bei Verwendung der Zeilensymbole ist folgendes zu beachten:

Beispiele

Möchten Sie beispielsweise ein Assemblerprogramm für den Profi-Ass ohne Kommentarzeilen generieren, geben Sie etwa
SYS (52224), "Name ", 5,5,1
ein. Ein assemblierbares Programm mit Kommentar erhält man durch
SYS(52224),"Name ",10,5,1,1

Nachdem Sie »VI-CO.cc« gestartet haben, erscheint die Systemmeldung und die Text-Datei wird auf der Diskette gesucht. Ist die Suche erfolgreich, wird der Bildschirm abgeschaltet. Nach Einfügen einer Zeile in den Basic-Text erklingt ein Gong. Nachdem sich der C 64 mit »Ready« zurückgemeldet hat, steht der lauffähige (beziehungsweise assemblierbare) Programmcode im Computer-Speicher.

Ein Geheimnis wird gelüftet: Vizaspell

Vizaspell ist ein Rechtschreibzusatzprogramm zum Textverarbeitungsprogramm Vizawrite 64 und ist alleine nicht lauffähig. Die nachfolgende Beschreibung basiert auf der derzeit einzig verfügbaren englischen Version von Viza Software, eine deutsche Fassung dieses Programmes ist jedoch beabsichtigt. Vizaspell umfaßt eine auf Vizawrite 64 aufbauende Rechtschreibüberprüfung, einen Wortschatz von etwa 30 000 englischen Worten sowie Hilfsprogramme zum Generieren und Kopieren der Bibliotheken. Leider verfügt Vizaspell nicht über deutsche Sonderzeichen; mehr noch: stößt Vizaspell auf Umlaute oder »ß«, so werden diese Buchstaben als Trennzeichen interpretiert, wodurch nur der Wortteil vor und/oder nach dem deutschen Sonderzeichen erkannt wird. Abhilfe schafft hier die Schreibweise »ue« für »ü«, »ss« für »ß« etc. Sofern im Vizawrite 64-Text Umlaute oder das »ß« enthalten sind, lassen sie sich auch problemlos durch die Replace-Funktion ersetzen. Da eine eigene Wortbibliothek vom Anwender aufgebaut werden kann, ist der mitgelieferte englische Wortschatz ebenfalls kein Hindernis.

An dieser Stelle muß generell gesagt werden, daß die derzeitige Vizaspell-Version nicht für den deutschen Markt geschrieben wurde. Die Anschaffung dieses Programms lohnt sich nur für den, der Vizawrite 64 etwas professioneller nutzt, da sich das »Dictionary« (das ist die Wortbibliothek, mit dessen Hilfe Vizaspell Texte vergleicht) erst mit jedem neuen Dokument weiter aufbaut. Derjenige, der Vizawrite nur ab und zu für kurze Briefe oder ähnliches nutzt, wird erst nach einiger Zeit eine ausreichende Wortschatzbibliothek erreichen. Für längere Dokumente und bei häufigem Gebrauch ist Vizaspell jedoch eine sehr große Hilfe!

Vizaspell sollte mit den im Lieferumfang befindlichen Hilfsprogrammen auf eine separate Diskette kopiert werden, da die Dictionary im Laufe der Zeit größere Ausmaße annimmt.

Nun zur Bedienung von Vizaspell:

Vizaspell kann nur eine im Textspeicher von Vizawrite vorhandene Textdatei verwenden. Der Text sollte aber, aus Sicherheitsgründen, vorher auf Diskette abgespeichert werden. Auf diese Weise kann man immer auf die Urform des Dokuments zurückgreifen.

Vor dem Aufruf von Vizawrite aus (mit CBM-Shift/Run), muß die Vizaspell-Diskette ins Laufwerk eingelegt werden, da sonst eine "file not found"-Fehlermeldung erfolgt. Nach dem Aufruf und dem Nachladen meldet sich Vizaspell mit dem ersten Menü:
F1 — Spell Check Document
F3 — Alphabetic Word List
F5 — High Usage Word List
F7 — Dictionary Search
F8 — Return to Vizawrite

Unter dem Menü erscheint die Meldung:
Preparing Word Lists…. please wait

Vizaspell sortiert nun alle im Textspeicher befindlichen Wörter alphabetisch und fertigt eine kleine Statistik, die dann anstatt der Meldung unter dem Menü erscheint. Man erkennt daraus sofort, wieviele Wörter (Words) mehrmalig oder einmalig (Unique Words) verwendet wurden. Außerdem werden die Anzahl der Sätze (Sentences), Absätze (Paragraphs) und Seiten (Pages) ausgegeben. Die Geschwindigkeit, mit der dies geschieht, ist erstaunlich. Für eine Datei mit zirka 1600 Wörtern und sieben Seiten benötigt es etwa 30 Sekunden.

Mit den Funktionstasten kann man nun die einzelnen Menüpunkte anwählen, je nachdem, ob man eine alphabetische Wortliste (Alphabetic Word List), eine Aufstellung der oft genutzten Wörter (High Usage Word List) mit Angabe der Häufigkeit braucht, oder in der vorhandenen Rechtschreibbibliothek nach der Schreibweise eines bestimmten Wortes sucht.

Die Fl-Taste ruft dann den Spell-Check auf, das heißt, das Programm vergleicht alle im Speicher vorhandenen Wörter mit der Bibliothek. Wörter, die es nicht kennt, werden auf dem Bildschirm revers hervorgehoben. Nach Abschluß des Spell-Check und Betätigen der Space-Taste meldet sich das zweite Menü:
F1 — Unrecognised Words
F3 — Alphabetic Word List
F5 — High Usage Word List
F7 — Dictionary Search
F8 — Alter Document

Bis auf einen Punkt (F1) sind alle Funktionen des Menüs gleich geblieben, obwohl bei F8 ein anderer Text steht.

Die erste Funktionstaste gibt nun alle dem Programm unbekannten Wörter alphabetisch sortiert aus.

Nach dem Rücksprung ins Vizawrite-Dokument (mit F8), kann man alle vorhandenen Fehler oder die nicht bekannten Wörter editieren (mit CBM-V). Vorher jedoch sollte man an den Anfang des Briefes gehen (erstes vorhandenes Zeichen) und auf 40-Zeichen-Darstellung umgeschaltet werden (CBM-W). Nach dem Kommandoprompt "EDIT, ACCEPT, SKIP OR LEARN THIS WORD?" kann der Text bearbeitet werden. Der Cursor springt auf das erste unbekannte Wort und invertiert es. Mit "E" für EDIT wird korrigiert, wobei der Cursor am Anfang des Wortes steht.

Soll Vizaspell das Wort oder seine Schreibweise nicht beachten, drückt man "A" (für ACCEPT) oder "S" (für SKIP). ACCEPT bedeutet dabei, daß das Wort den ganzen Text über nicht mehr beachtet wird, während SKIP es nur überspringt und beim nächsten Vorkommen wieder meldet. Diese Funktion ist sehr praktisch bei Abkürzungen und dergleichen.

Für Vizaspell unbekannte Wörter ist "L" (LEARN) gedacht, nur sollte darauf geachtet werden, daß die Rechtschreibung stimmt, sonst wird das Wort in der falschen Schreibweise in das Dictionary aufgenommen.

Ist der Vergleich beendet, sollte gleich noch mal mit CBM-Shift/Run Vizaspell geladen werden. Dort meldet sich dann das dritte Menü, wo wiederum nur der erste Punkt (F1) anders ist:
F1 — Add to Dictionary
F3 — Alphabetic Word List
F5 — High Usage Word List
F7 — Dictionary Search
F8 — Return to Vizawrite

Mit F1 muß nun die Rechtschreibbibliothek aktualisiert werden, das heißt, Vizaspell erweitert sie um die neuen, hinzugelernten Wörter.

Nach F8 kann dann das korrigierte Textfile von Vizawrite aus endgültig abgespeichert und ausgedruckt werden.

Soviel als erster Überblick zu Vizaspell. Welche Möglichkeiten in diesem Programm stecken, welche Aufgaben die Hilfsprogramme haben, wie man diese einsetzt und spezielle Tips und Tricks zu Vizaspell sind Bestandteil kommender Ausgaben.

Vizastar

Da die Leistungen von Vizastar sehr umfangreich sind, wird diese Einführung schrittweise von der leicht zugänglichen Nutzung des sogenannten Arbeitsblattes, über das Zusammenspiel verschiedener Datenbestände bis hin zur Beschreibung der Datenbank auf Ihrem C 64 führen.

Vizastar 64 gibt es in zwei Versionen:

Die kleinere heißt XL-4 und beinhaltet schon alle wichtigen Operationen, wie etwa Postenzähler, automatische Neuberechnung von Summen, Durchschnittswerten oder auch Balkengrafik und Datenbank.

Etwas teurer ist die XL-8-Version, die noch über etwas mehr Speicherkapazität im Modul verfügt und umfangreichere Darstellungsmöglichkeiten bietet. Die »explodierende Torte« und perspektivische Balkendiagramme in mehreren Reihen sind die Steigerung des Komforts. Die Entscheidung zwischen den beiden Versionen können Sie aufschieben. Wenn Ihnen die XL-4-Version zu klein wird, bekommen Sie im Tausch gegen Zahlung der Preisdifferenz die XL-8-Version. In jedem Fall erhalten Sie eine Programmdiskette und ein Modul, das auf den Expansionport des C 64 (rechts hinten) paßt.

Neben dem C 64 und dem Bildschirm brauchen Sie ein Commodore 1541-Diskettenlaufwerk. Ein farbiger Bildschirm ist angenehmer, aber nicht unbedingt notwendig. Den pfeilförmig dargestellten Cursor findet man auch gut auf einem Monochrom-Schirm. Wahrscheinlich wollen Sie Ihre Arbeitsergebnisse auch auf Papier sehen. Also ist noch vom Drucker zu sprechen: Hier haben Sie die freie Entscheidung, da selbst Drucker der gehobenen Klasse von Vizastar 64 einwandfrei gesteuert werden. Wenn der Drucker eine Parallel-Schnittstelle hat, hängen Sie ihn mit einem einfachen »Centronics-Kabel« an den User-Port des C 64 (hinten links) und es funktioniert. Für Drucker, die eine serielle Schnittstelle (RS232) haben, bekommen Sie beim Viza-Software-Händler ein passendes Interface, das Interpod. So brauchen Sie sich über die Eigenarten anderer Interfaces keine Gedanken zu machen.

Nun sollte Vizastar endlich geladen werden. Vor dem Einschalten stecken Sie das Vizastar-Modul in den Expansionport. Nach dem Einschalten drücken Sie die Leertaste und Vizastar wird geladen, es gibt also keine »LOAD«-Tipperei. Ihr Bildschirm zeigt nun den linken oberen Ausschnitt des Arbeitsblattes. Dies ist eine Matrix mit 64 Spalten und 1000 Zeilen, also insgesamt 64000 Zellen. Ein Teil davon reicht für jede Aufgabe. Jede Zelle nimmt in diesem Urzustand 8 Zeichen auf, kann schmaler gemacht werden — bis zur Mindestbreite für drei Zeichen, oder breiter — bis zur Höchstbreite für 100 Zeichen. Überschriften oder Texte können über die Zellenbegrenzung hinausgehen. Die Zellenbreite wird den vorgesehenen Zelleninhalten angepaßt. Hier sind jederzeit Korrekturen möglich.

Interessanter wird die Arbeit mit dem Arbeitsblatt, wenn Sie die Möglichkeit nutzen, Zahlen und Rechenbefehle in die Zellen einzugeben. Der Inhalt jeder Zelle hat beim Ausdruck seinen festen Platz auf dem Papier. Am Beispiel einer individuellen Fakturierung wollen wir nun Einzelpreise und die Berechnungsformeln für die Mehrwertsteuer, Skonto und die Multiplikation »Stückzahl mal Einzelpreis« sowie den Befehl zur Addition der Beträge einrichten. Erstellen wir hierfür ein neutrales »Formular«, welches Sie sich für jede Rechnung von der Diskette holen. Diese Einträge im »Formular« können Sie mit Vizastar-Befehlen vor versehentlichem Ändern oder Überschreiben schützen. Für die Berechnungen benutzen Sie den Befehl »auto«. Dann erscheinen automatisch die Ergebnisse in den entsprechenden Zellen »druckreif«. Sie geben in eine Zelle, die für die Stückzahl vorgesehen ist, die Menge ein. Der Preis für diese Menge, die Mehrwertsteuer und ähnliches, bis hin zum Endbetrag werden sofort ausgewiesen. Variieren Sie die Menge in dieser Zeile oder tragen Sie andere Werte in anderen Zellen ein, wird die Berechnung wiederholt. Sie sehen also sofort, welche Auswirkung das Ändern eines Parameters zur Folge hat!

Einfach ist auch die getrennte Erfassung unterschiedlicher Ausgaben. Sie legen die Gliederung an, und legen im Kopf oder am Fuß des Blattes Summenzeilen an. Nach jedem Eintrag erscheint die Summe der Ausgaben einer Art. Bis jetzt haben Sie ein Kontenblatt, welches selbständig addiert. Danach können Sie die Summe aller Ausgaben, die Anzahl aller Einträge (= Anzahl der Belege), Prozentanteile der Ausgaben einer Art an der Summe aller Ausgaben und — sofern Sie wollen — noch deren Durchschnittswerte berechnen. Wenn Sie zum Beispiel wöchentlich »buchen«, sagt Ihnen der Ausdruck, wo Sie finanziell stehen. Der letzte Stand wird auf der Diskette gespeichert und in der nächsten Woche zur anschließenden Buchungsarbeit wieder in den Arbeitsspeicher des Commodore 64 geholt.

Speicherplatz

Die Aufnahmefähigkeit des Speichers darf natürlich nicht außer acht gelassen werden. Aber auch dabei hilft Ihnen Vizastar. Auf dem Bildschirm sehen Sie jederzeit, welcher prozentuale Anteil des Speichers noch zur Verfügung steht. Bei der Eingabe vollständiger Adressen mit Telefonnummern etc. kommt man nach etwa 150 Adressen an die Grenze des Arbeitsspeichers. Wollen Sie mehr Adressen ordnen, speichern Sie die sortierten Adressen der ersten Eingabe ab, erfassen weitere Adressen in einer zweiten Eingabe und speichern diese ebenfalls sortiert ab. Dann laden Sie zum Beispiel aus beiden Eingaben den oberen Teil, vielleicht A - H und lassen wieder sortieren. Nun steht Ihr Adreßverzeichnis für den Bereich A - H. Dieselbe Prozedur für I - Z schließt die Arbeit ab.

Ähnlich verfahren Sie, wenn die Erfassung Ihrer Ausgaben eigentlich einen größeren Arbeitsspeicher erfordert. Nach drei oder sechs Monaten beginnen Sie eine »neue Seite« mit dem anfangs eingerichteten »Formular«, welches sich dann auf der Diskette befindet.

Nachdem Sie nun über Ihre Adressen und Ihre Ausgabenspezifikation, mit der Sie auch beim Finanzamt Anerkennung ernten, einen guten Überblick haben, werden Sie nach und nach Ihr Fahrtenbuch mit Vizastar schreiben oder die Reisekosten-Pauschalen automatisch errechnen und addieren lassen. Danach erstellen Sie sich vielleicht eine Kundenstatistik, Ihre Betriebswirtschaft mit variablen Kosten und Erlösen etc. — wie und wann Sie wollen!

Zudem lassen sich durch den Befehl »Export« CBM-ASCII-Dateien erzeugen, die beispielsweise von Vizawrite 64, anderen Textverarbeitungsprogrammen oder Ihren eigenen Programmen ausgewertet werden können. Entsprechend wird bei »Import« eine CBM-ASCII-Datei eingelesen, die durchaus von einem anderen Programm erstellt sein kann.

Auf diese Weise bleibt der Datenkontakt von und zu anderen Programmen gewahrt. Die Anwendungsmöglichkeiten dehnen sich dementsprechend auf Gebiete wie etwa das Mahnwesen aus (Serienbriefe durch ein Textverarbeitungsprogramm mit individuellen Daten aus Vizastar etc.). Die in der Datenbank von Vizastar gespeicherten Einträge lassen sich so in vielfältiger Weise ohne lästige Neueingabe in anderen Programmen verwerten, zumal die Datenbestände Vizastars auch nach beliebigen Kriterien ausgewählt und im schon erwähnten CBM-AS-CII-Format abgelegt werden können.

Die aufgeführten Beispiele zeigen, daß Sie durch Vizastar Ihren Commodore 64 sehr sinnvoll einsetzen können. Wir wollen Sie hierin auch künftig unterstützen.

Im Anschluß finden Sie das Listing zum Programm »Read Vizawrite« (Listing 2), welches aus Platzgründen im 64’er, Ausgabe 5/86, nicht mehr veröffentlicht werden konnte.

10 print"{clr}{down}{down}    ********************************"
20 print"    *                              *"
30 print"    *       read  vizawrite        *"
40 print"    *                              *"
50 print"    *       von  klaus heck        *"
60 print"    *                              *"
70 print"    ********************************"
80 :
90 rem ------------------------------
100 rem  vizawrite-file oeffnen
110 print"{down}{down}{down} welches vizawrite-file soll eingelesen    werden{down}"
120 inputna$
130 open15,8,15
140 open1,8,5,na$+",p,r"
150 gosub3190
160 print"{down}{down} textausgabe auf bildschirm : 3"
170 print" textausgabe auf seq-datei  : 8{down}"
180 getge$:ifge$=""then180
190 ge=val(ge$)
200 ifge=3thenopen2,ge
210 ifge=8thenopen2,ge,2,"@:seq "+na$+",s,w"
220 gosub3190
230 ifge<>3andge<>8then160
240 :
250 rem ------------------------------
260 rem  umschaltung gross/klein
270 print"{clr}"
280 poke53272,23
290 :
300 rem ------------------------------
310 rem  vorspann einlesen
320 :
330 rem pruefen auf vizawrite  (0-3)
340 get#1,a$:ifa$=""thena$=chr$(0)
350 gosub3190
360 ifasc(a$)<>86then3130
370 get#1,a$:ifa$=""thena$=chr$(0)
380 ifasc(a$)<>255then3130
390 get#1,a$:ifa$=""thena$=chr$(0)
400 ifasc(a$)<>86then3130
410 get#1,a$:ifa$=""thena$=chr$(0)
420 ifasc(a$)<>87then3130
430 :
440 rem anzahl zeichen  (4,5)
450 get#1,lb$:iflb$=""thenlb$=chr$(0)
460 get#1,hb$:ifhb$=""thenhb$=chr$(0)
470 ze=asc(lb$)+asc(hb$)*256
480 print" Anz. Zeichen im Text ";ze
490 :
500 rem anzahl seiten  (6,7)
510 get#1,lb$:iflb$=""thenlb$=chr$(0)
520 get#1,hb$:ifhb$=""thenhb$=chr$(0)
530 se=asc(lb$)+asc(hb$)*256
540 se=se-2
550 print" Anz. Textseiten      ";se
560 :
570 rem dummy  (8-14)
580 forj=8to14
590 get#1,a$:ifa$=""thena$=chr$(0)
600 next
610 :
620 rem dateinamen  (15-31)
630 i=14:aa$=""
640 get#1,a$:ifa$=""thena$=chr$(0)
650 i=i+1
660 ifasc(a$)=96then690
670 aa$=aa$+a$
680 goto640
690 print" Filename              {rvon}";aa$
700 i=i+1:ifi>30then750
710 forj=ito31
720 get#1,a$:ifa$=""thena$=chr$(0)
730 next
740 :
750 rem printer type  (32,33)
760 get#1,a$:ifa$=""thena$=chr$(0)
770 get#1,hb$:ifhb$=""thenhb$=chr$(0)
780 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto800
790 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
800 print" Drucker Typ           ";a$
810 :
820 rem dummy  (34)
830 get#1,a$:ifa$=""thena$=chr$(0)
840 :
850 rem form feed  (35)
860 get#1,a$:ifa$=""thena$=chr$(0)
870 a$=chr$(asc(a$)+64)
880 print" Formular Vorschub     ";a$
890 :
900 rem auto l/feed  (36)
910 get#1,a$:ifa$=""thena$=chr$(0)
920 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto940
930 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
940 print" Auto. Zeilenvorschub  ";a$
950 :
960 rem form length  (37,38)
970 get#1,lb$:iflb$=""thenlb$=chr$(0)
980 get#1,hb$:ifhb$=""thenhb$=chr$(0)
990 d=asc(lb$)+asc(hb$)*256
1000 print" Formularlaenge       ";d
1010 :
1020 rem single  (39)
1030 get#1,a$:ifa$=""thena$=chr$(0)
1040 a$=chr$(asc(a$)+64)
1050 print" Einzelblatt           ";a$
1060 :
1070 rem offset  (40,41)
1080 get#1,lb$:iflb$=""thenlb$=chr$(0)
1090 get#1,hb$:ifhb$=""thenhb$=chr$(0)
1100 d=asc(lb$)+asc(hb$)*256
1110 print" linker Druckrand ab  ";d
1120 :
1130 rem header  (42)
1140 get#1,a$:ifa$=""thena$=chr$(0)
1150 a$=chr$(asc(a$)+64)
1160 print" Kopfzeile             ";a$
1170 :
1180 rem dummy  (43)
1190 get#1,a$:ifa$=""thena$=chr$(0)
1200 :
1210 rem pitch  (44,45)
1220 get#1,lb$:iflb$=""thenlb$=chr$(0)
1230 get#1,hb$:ifhb$=""thenhb$=chr$(0)
1240 d=asc(lb$)+asc(hb$)*256
1250 print" Schriftart           ";d
1260 :
1270 rem lines/inch  (46,47)
1280 get#1,lb$:iflb$=""thenlb$=chr$(0)
1290 get#1,hb$:ifhb$=""thenhb$=chr$(0)
1300 d=asc(lb$)+asc(hb$)*256
1310 print" Zeilen/inch          ";d
1320 :
1330 rem justification  (48)
1340 get#1,a$:ifa$=""thena$=chr$(0)
1350 a$=chr$(asc(a$)+64)
1360 print" Randausgleich         ";a$
1370 :
1380 rem global/fill  (49)
1390 get#1,gf$:ifgf$=""thengf$=chr$(0)
1400 ifasc(gf$)=32then1420
1410 gf$=chr$(asc(gf$)+64)
1420 print" Text anh./einf.       ";gf$
1430 :
1440 rem dateinamen  (50-66)
1450 i=49:na$=""
1460 get#1,a$:ifa$=""thena$=chr$(0)
1470 i=i+1
1480 ifasc(a$)=96then1530
1490 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto1510
1500 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
1510 na$=na$+a$
1520 goto1460
1530 print" naechstes File        ";na$
1540 i=i+1:ifi>65then1580
1550 forj=ito66
1560 get#1,a$:ifa$=""thena$=chr$(0)
1570 next
1580 :
1590 rem text colour  (67)
1600 get#1,a$:ifa$=""thena$=chr$(0)
1610 d=1:gosub2840
1620 print" Farbe Text            ";col$
1630 :
1640 rem border colour  (68)
1650 get#1,a$:ifa$=""thena$=chr$(0)
1660 d=2:gosub2840
1670 print" Farbe Rahmen          ";col$
1680 :
1690 rem background colour  (69)
1700 get#1,a$:ifa$=""thena$=chr$(0)
1710 d=3:gosub2840
1720 print" Farbe Hintergrund     ";col$
1730 :
1740 rem dummy  (70-199)
1750 forj=70to199
1760 get#1,a$:ifa$=""thena$=chr$(0)
1770 next
1780 :
1790 print"{down}{down} weiter ? >j< "
1800 getjn$:ifjn$=""then1800
1810 ifjn$<>"j"then2410
1820 print"{clr}"
1830 :
1840 rem ------------------------------
1850 rem  alle seiten uebernehmen ?
1860 ip=-1:rem seitenzaehler
1870 print"{down}{down}Soll WORK PAGE{$a0}mit uebertragen werden?     >j/n<"
1880 getjn$:ifjn$=""then1880
1890 ifjn$="n"thenwp=0
1900 ifjn$="j"thenwp=1
1910 ifjn$<>"j"andjn$<>"n"then1870
1920 print"{down}{down}Soll HEADER{$a0}PAGE mit uebertragen werden?   >j/n<"
1930 getjn$:ifjn$=""then1930
1940 ifjn$="n"thenhp=0
1950 ifjn$="j"thenhp=1
1960 ifjn$<>"j"andjn$<>"n"then1920
1970 print"{down}{down}Soll FOOTER{$a0}PAGE mit uebertragen werden?   >j/n<"
1980 getjn$:ifjn$=""then1980
1990 ifjn$="n"thenfp=0
2000 ifjn$="j"thenfp=1
2010 ifjn$<>"j"andjn$<>"n"then1970
2020 print"{clr}"
2030 :
2040 rem ------------------------------
2050 rem  text einlesen
2060 ifge=8thenprint"{down}{down}      Bitte warten ich arbeite"
2070 fl=0:rem spaltenzaehler formatzeile
2080 i=0:rem spaltenzaehler textzeile
2090 aa$="":rem textzeile
2100 get#1,a$:ifa$=""thena$=chr$(0)
2110 :
2120 rem ------------------------------
2130 rem  bildschirm-code -> ascii-code
2140 ifasc(a$)=220thenaa$=aa$+a$:goto2270:rem return
2150 ifasc(a$)=230then2730:rem format line
2160 ifasc(a$)=241then2490:rem end page
2170 ifasc(a$)=255then2310:rem end text
2180 ifasc(a$)>=0andasc(a$)<32thena$=chr$(asc(a$)+64):goto2210
2190 ifasc(a$)>=64andasc(a$)<128thena$=chr$(asc(a$)+128):goto2210
2200 :
2210 aa$=aa$+a$:i=i+1:rem zeile zusammenstellen
2220 ifi=flthen2600:rem zeile ohne return abbrechen
2230 goto2100
2240 :
2250 rem ------------------------------
2260 rem textzeile ausgeben
2270 ifwp=1thenprint#2,aa$
2280 goto2080
2290 :
2300 rem ------------------------------
2310 rem programmende
2320 ifgf$<>"g"then2410:rem check global
2330 print"{clr}{down}{down} soll File : {rvon}"na$:print"{down}  angehaengt werden?  >j/n<"
2340 getjn$:ifjn$=""then2340
2350 ifjn$<>"j"then2410
2360 close1
2370 open1,8,5,na$+",p,r"
2380 gosub3190
2390 print"{clr}"
2400 goto310
2410 poke53272,21:rem gross/grafik
2420 close2
2430 close1
2440 close15
2450 end
2460 :
2470 rem ------------------------------
2480 rem  seitenuebernahme schalten
2490 ifwp=1andi<>0thenprint#2,aa$
2500 aa$=a$
2510 ifip=-1andwp=0thenaa$=""
2520 ip=ip+1
2530 wp=1:rem wird als schalter benutzt
2540 ifip=seandhp=0thenwp=0
2550 ifip=se+1andfp=0thenwp=0
2560 goto2270
2570 :
2580 rem ------------------------------
2590 rem  zeilenende bestimmen
2600 fi=fl
2610 ifmid$(aa$,fi,1)=" "ormid$(aa$,fi,1)="-"then2660
2620 fi=fi-1
2630 iffi=1then2650
2640 goto2610
2650 fi=fl
2660 print#2,left$(aa$,fi)
2670 i=fl-fi
2680 aa$=right$(aa$,i)
2690 goto2100
2700 :
2710 rem ------------------------------
2720 rem  laenge der formatzeile best.
2730 fl=1
2740 tab=0:rem ersten tabulator finden
2750 aa$=aa$+a$
2760 get#1,a$:ifa$=""thena$=chr$(0)
2770 aa$=aa$+a$:fl=fl+1
2780 iftab=0andasc(a$)=219thenfl=0:tab=1
2790 ifasc(a$)=220then2270:rem return
2800 goto2760
2810 :
2820 rem ------------------------------
2830 rem  farbe bestimmen
2840 a=asc(a$)
2850 ifd=1then2870
2860 ifd=2thena=a-240
2870 ifa=0thencol$="schwarz"
2880 ifa=1thencol$="weiss"
2890 ifa=2thencol$="rot"
2900 ifa=3thencol$="tuerkis"
2910 ifa=4thencol$="violett"
2920 ifa=5thencol$="gruen"
2930 ifa=6thencol$="blau"
2940 ifa=7thencol$="gelb"
2950 ifa=8thencol$="orange"
2960 ifa=9thencol$="braun"
2970 ifa=10thencol$="hellrot"
2980 ifa=11thencol$="grau 1"
2990 ifa=12thencol$="grau 2"
3000 ifa=13thencol$="hellgruen"
3010 ifa=14thencol$="hellblau"
3020 ifa=15thencol$="grau 3"
3030 ifa=16thencol$="schwarz"
3040 ifa=17thencol$="weiss"
3050 ifa=18thencol$="rot"
3060 ifa=35thencol$="tuerkis"
3070 ifa=36thencol$="violett"
3080 ifa=53thencol$="gruen"
3090 return
3100 :
3110 rem ------------------------------
3120 rem  fehlerbehandlung
3130 print"{down}{down}{down}   fehler !!!"
3140 print"{down}  dies ist kein durch vizawrite            erstellter text"
3150 goto2410
3160 :
3170 rem ------------------------------
3180 rem  fehlerkanal lesen
3190 input#15,fw,fx$,fy,fz
3200 iffw=0thenreturn
3210 print"{down}{down}  fehler: ";fw;fx$
3220 goto2410
Listing 2. Mit »Read Vizawrite« können Sie Vizawrite 64-Texte in sequentielle Dateien umwandeln.
(Josef Heid/Michael Janke/ Jürgen F. Hoffmann/bj)
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →