Commodore CBM 8050 User Manual

CBM
8050
commodore
- Computer
Dieses Handbuch wurde gescannt, bearbeitet und ins PDF-Format konvertiert von
Rüdiger Schuldes
schuldes@itsm.uni-stuttgart.de
(c) 2003
INHALTSÜBERSICHT
I. VORWORTE
1
1.
3.
Typographie
Kommentar zur Einteilung
1
3
der
Information
H. AUSPACKEN, INBETRIEBNAHME,GERÄTEBESCHREIBUNG 7
1.
10.
Auspacken des Gerätes
Technische Daten
7 7
8 8 9
9
9 10 10
11 m. HINWEISE
FÜR DEN
BEDIENER
12
1.
5.10
Einschalten des Systems
lesen
Fehlermeldung abfragen
12
19
2.
2.
3.
4.
5.
6.
7.
8.
9.
2.
3.
4.
5.
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
Vorwort
Verbindungskabel RechneranschluQ Bedien- und Anzeigeelemente Inbetriebnahme des Systems Automatischer Selbsttest Was
Wofür benötigt man ein Floppy Wo
Klappenbehandlung Diskettenbehandlung Datensicherung Anwender-Befehle
Erstes Programm laden und Inhaltsverzeichnis der Diskette Beliebiges Programm laden Programm Neue Diskette anlegen Diskette duplizieren Programm abspeichern Datei kopieren Datei löschen
ist ein 'dual drive floppy disk'
werden die Daten gespeichert
starten
starten
2
12 13 13 14 15 15 16 16 16 17 18 18 18
20
DIE
KOMMUNIKATIONSMÖGLICHKEITEN ZWISCHEN RECHNER
UND
FLOPPY
UND IHRE
PARAMETER
Einführung
20
21
Programm- und Datenbehandlung Kommandoübermittlung / Quittung
21
Übermittlungsmöglichkeiten
21
Einführung Kommando-Übersicht
Kommandos über den Kommandokanal senden
Der
Formatübersicht
24
26
Disk-BASIC-Kommandos
Leerzeichen (Blanks)
27
31
Allgemeine Parameterbeschreibung
Diskettenidentität (ID)
32
35
V. DIE
Kommandokanal Aufbau des Kommandos Kommandozeichen Laufwerk
Dateiname Übermittlung des Kommandostrings hinter PRINT# Übermittlung des Kommandostrings hinter
OPEN
la
, gn ,
15
21
23
24
24 25 25 25 26 26
Übersicht
Formatbeschreibung Logische Adresse Gerätenummer Laufwerknummer Recordlänge Dateiname und Diskname Diskettenidentität Trennzeichen zwischen den Parametern
Einführung Logische Adresse Gerätenummer (gn) Sekundäradresse / Kanalnummer (sa)
Laufwerknummer
Dateiname Joker-Zeichen im Dateinamen Diskettenname
(unit)
(la)
27 27 27 28 29 29 30 30 31
32 32 32 32 33 33 34 35
KOMMANDOS
36 Übersicht
36 1. 2. Disketten-Kommandos
37 HEADER /
New
2.1
2.1.1
2.1.2
Diskette löschen / neu formatieren
HEADER
New
37
39 BACKUP / Duplicate
40
41
2.2
2.2.2
Diskette duplizieren
Duplicate
2.3
2.3.2
Diskette überprüfen und bereinigen
Validate
COLLECT / Validate
42
43
2.4
2.4.2
Inhaltsverzeichnis lesen
Laden des Inhaltsverzeichnisses:
DIRECTORY,CATALOG
/ $ 44
45
LOAD"$..."
2.5 Diskette
initialisieren
46 / I 3.
Datei-Kommandos
47
3.1
3.1.3
Dateien kopieren
Copy
COPY /
Copy
47
49
3.2
3.2.2
Dateien Zusammenhängen
Copy
CONCAT / Copy
50
51
3.3
3.3.2
Dateien umbenennen
Rename
RENAME / Rename
52
53
3.4
3.4.2
Dateien löschen
Scratch
SCRATCH / Scratch
54
55 4. Programm-Behandlung
56
4.1
4.1.3
Programme laden
LOAD"*",8
DLOAD /
LOAD
56
57
4.2
4.2.2
Programme abspeichern
SAVE
DSAVE /
SAVE
58
58
5. Datenverkehr
38
2.2.1
2.3.1
2.4.1
3.1.2
3.2.1
BACKUP
COLLECT
DIRECTORY / CATALOG
COPY
CONCAT
40
42
44
48
50
3.3.1
3.4.1
4.1.1
4.1.2
4.2.1
RENAME
SCRATCH
DLOAD LOAD
DSAVE
52
54
56 57
58
59
5.1
5.1.2
Datenkanal öffnen
OPEN
DOPEN /
OPEN
59
62
5.2
5.2.2
Datei weiter beschreiben
OPEN
APPEND / OPEN
66
66
5.3
5.3.1
Datenkanäle schließen DOLOSE
DOLOSE /
CLOSE
67 69
5.4
5.4.2
Recordzeiger
positionieren
Position
RECORD /
Position
70
72 6. Fehlermeldung und Fehlerbehandlung
73 6.1 Fehlertabelle
73
6.2
6.2.4
Allgemeine Hinweise
zur
Fehlermeldung
4)
Fehlerbehandlung
74
75
6.3
6.3.5
Ursachen und Zusammenhänge
Bedienungsfehler
75
77
5.1.1
DOPEN
59
5.2.1
5.4.1
6.2.1
6.2.2
6.2.3
6.3.1
6.3.2
6.3.3
6.3.4
APPEND
RECORD
Die
Bestandteile der Fehlermeldung
Lesen der Fehlermeldung durch
DS
und
Lesen der Fehlermeldung mit INPUT#
Lesefehler
Schreibfehler Syntaxfehler (Formatfehler)
Fehler
bei
REL-Dateien
66
71
DS$
(BASIC-
74 74
75
75
75 76 77
80
DATEIBEHANDLUNG
UND
DATENVERKEHR
80
Der
Dateibegriff
80
82
Einführung
Der
Direktzugriff
83
Generelle Vorgehensweise
83
83
Datenübertragung
Datei abmelden
84
Serielle Dateien
Einführung Beispielprogramm für SEQ-Dateien
84 84
Der
schreibende Zugriff (Daten erfassen)
Programmbeschreibung
85
85
86
86
Der
lesende Zugriff (Daten lesen)
Programmbeschreibung
Der
schreibende Zugriff für Datei weiter beschreiben
Programmbeschreibung
87
87
88
SEQ - DATEI -
DEMO
Die
'logische' Datei Vorstellung der verschiedenen Datei- bzw. Die
serielle Datei
Sätze, Eelder, Schlüssel, ISAM Die
REL-Datei
Datei anmelden
Einleitung Fehlermöglichkeiten
(SEQ, PRG
und USR)
Zugriffsarten
80 81 81
81 82
83
85
85
Einleitung Fehlermöglichkeiten
Einleitung Fehlermöglichkeiten
86
86
87
87
89
Relative Dateien, Direktzugriff
Einleitung
Beispielprogramm für REL-Dateien
89
90
Einrichten einer REL-Datei
Programmbeschreibung
90
91
Bestehende REL-Datei
lesen und schreiben
Programmbeschreibung
92
92
Abspeicherformat
binären Daten
93
95
Positionieren auf ein Byte eines Satzes REL - DATEI -
DEMO
95 96
97
PRG-Dateien
98 98
DOS-ÜBERSICHT
Floppy-Organisation
DOS
mit Pipeline-Struktur
Verbindungen
Schematische Darstellung der DOS-Verbindungen
98
100
102
Diskettenorganisation
Einteilung in Spur und Sektor
Verwaltung der seriellen Dateien
103
Tabellen für Direktzugriff
Standard-Sprung-T
abeile
USR
Verwaltungs-Block der REL-Datei
103
106
Begriffserklärungen Die
REL-Datei
Einleitung Fehlermöglichkeiten
Einleitung
Fehlermöglichkeiten
Endezeichen beim Lesen Abspeichern von
Endekriterium
89
89
90 90
92 92
93 94
Pufferspeicher Kanalorganisation Gesamtübersicht über das
Blockbelegung BAM Inhaltsverzeichnis
Verteilung der Blöcke über die Spuren Vorspann des Erster BAM-Block Zweiter BAM-Block Struktur der Directory-F Format eines Datei-Eintrags Struktur der Dateitypen Daten-Block der REL-Datei
Inhaltsverzeichnisses
BAM
für eine Spur
ormat
DOS
SEQ, PRG
mit
und
98 99 99
101
101 101 101 102
103 103 104 104 104 105 105 105 105
vin.
DOS-HILFSROUTINEN
107
ï .
Einführung
107
1.1
1.2
Übersicht über die Kommandos Übersicht über die Direkt-Zugriff-Kommandos
107 108
.
2.2
Behandlung des
Direktzugriffs
109
Schreibzugriff auf Diskette Lesezugriff
auf Diskette
109 109 3. Direkt-Zugriff-Kommandos
auf Diskette
110
3.1
3.5
OPEN:
Öffnen eines Puffers
"B-E":
Block ausführen
110
113 4. Direkt-Zugriff-Kommandos in die BAM
114
4.1
4.2
"B-A":
Block belegen
"B-F":
Block freigeben
114 115 5. Direkt-Zugriff-Kommandos in den Puffer
116
5.1
5.5
Puffer-Zeiger setzen
Schreiben und Lesen über denselben Puffer
116
119
6.
Direkt-Zugriff-Kommandos in den DOS-Speicher
120
6.1
6.4
"M-W":
In den Speicher schreiben
"U":
Maschinenroutine über Sprungliste
121
124
2
2.1
3.1.1
3.2
3.3
3.4
5.1.1
5.1.2
5.2
5.3
5.4
Format CLOSE: "B-R": "B-W":
Erklärung des Puffer-Zeigers P": Schreiben in den Puffer Lesen aus dem Puffer Lesen aus dem Puffer
Schließen eines Puffers
Block lesen
Block schreiben
Puffer-Zeiger setzen
PRINT#:
GET#:
INPUT#:
"B-
110 111 111 112
116 117 117 118 118
6.2
6.3
"M-R": Aus "M-E":
dem Speicher lesen
Speicherroutinen ausführen
122 123
I. VORWORTE
1. Hinweise zur
Typographie
Dieses
Handbuch wurde vollständig mit Text-Bearbeitungs-Programmen erstellt, die
auf dem Markt für den
CBM
8032 erhältlich sind und auf einem Typenraddrucker
der gehobenen Klasse ausgedruckt, der über den IEC-Bus ganz regulär
Computers erkennen.
Leider brachte
es
der deutsche Zeichensatz mit sich,
daß
ein Zeichen, das auf
dem
verwendeten Typenrad enthalten
ist.
Doppelkreuz ist das SHIFT-Zeichen der Ziffer
3
und wird für die Kennzeichnung
(Paragraphenzeichen)
zu
Verwechslungen
kommen.
Wir
bitten
Sie um
Verständnis für diese kleine Unannehmlichkeit.
Beachten
Sie
auch folgenden Hinweis
zur
Groß-
und Kleinschreibung:
Alle Kommandobestandteile, die groß geschrieben sind, müssen exakt
so
geschrie-
ben werden,
wie dargestellt.
Aber: Diese Großbuchstaben müssen ohne
SHIFT
eingegeben werden, ganz gleich,
ob
sie dann auf dem Bildschirm groß oder klein dargestellt werden!
Alle klein geschriebenen aktuelle Werte.
Kommandobestandteile
sind Platzhalter
und benötigen
1 2.
8032 angeschlossen ist. Daran können
dem Bildschirm und der Tastatur Ihres Computers vorhanden ist, nicht auf
Sie
die mögliche Leistungsfähigkeit Ihres
an
den CBM
der logischen Adresse verwendet. Dieses Zeichen wird als dargestellt. finden ist, kann
Da
andererseits das Paragraphenzeichen auf dem Computer nicht
es
durch diese 'falsche' Darstellung
zu
#
keinen
Vorwort
Dieses Handbuch soll kein Leitfaden zum Erlernen
von
allgemeinen Dateiverwal-
tungskonzepten sein, sondern ein Nachschlagewerk, in dem alle
wissenswerten
stellt sind.
Lassen
Sie
sich
Nachschlagewerk
von vor
die
der Informationsfülle nicht abschrecken,
Sie
haben ja ein
sich.
Die
Informationen wurden sehr sorgfältig ausgewählt.
Grundlage
war große Erfahrung
des SOFTWAREVERBUND-MICROCOMPUTER
in der Programmierung
von
Commodore-Floppys und die Erfahrung aus vielen
Anwenderseminaren, die
von
den Autoren durchgeführt wurden.
Für
Anfänger wollen wir noch zwei Hinweise geben:
(1) Haben
Sie
Mut
zur
Lücke.
Das
soll heißen,
daß Sie
sich nicht beim ersten
Durchlesen
an
irgendwelchen Einzelheiten verbeißen sollen, die Ihnen unver-
ständlich erscheinen.
Viele Details werden erst im Zusammenhang mit anderen Fakten verständlich, so
Mal
mehr verstehen
zu
können.
Einige Details und auch ganze Anweisungen werden
Sie am
Anfang nicht benötigen,
aber
schmökern
den doch noch den einen oder anderen wertvollen Hinweis.
(2)
Erkundigen
Sie
sich
bei
Ihrem Commodore-Händler nach Schulungskursen. In der
Seminarform
mit dem Floppy anzufreunden, als sofort ins kalte Wasser
zu
springen.
(3) Beachten
Sie
die Hinweise im nachfolgenden Kommentar. Daraus können Sie
ersehen, welche Teile für wen wichtig sind.
Wir
hoffen,
daß
dieses Handbuch
Sie
möglichst effektiv mit den außerordentlich
seiner
Autoren
und ihre Mitarbeiter.
Neu-Isenburg, im Januar 1981
COMMODORE
GmbH
H.
Schießl und
J.
Steiner
2
3. Kommentar zur
Fakten über die Programmierung Ihres
COMMODORE
-
Floppy-Laufwerks zusammenge-
daß Sie
vielleicht auch nie. Merken an, daß Sie Sie
Regel ist
vielfältigen Möglichkeiten Ihr e s Floppys vertraut macht und Programmierung genausoviel Spaß und Befriedigung haben werden wie die
also mindestens einmal alles gelesen haben müssen,
Sie
sich
bei
solchen v ernachlässigten Stellen
sie nicht gelesen oder nicht verstanden haben. Vielleicht
später nochmal alle Stellen durch, die
es
leichter, sich nach oder während einer Einführung in
Sie s o
um
beim nächsten
gekennzeichnet haben und fin-
daß Sie an
Einteilung der Information
Dieses Handbuch ist in
8
Abschnitte unterteilt.
Der
besseren Übersicht wegen
soll erklärt werden, was in diesen Abschnitten besprochen wird, f ür wen wissenswert ist und welche Voraussetzungen beim Lesen gegeben
sein sollten.
dies zu
I. Vorworte:
Inhalt
Vorworte
Für
wen?
Für
Sie
Voraussetzungen
Die
Vorworte noch nicht gelesen haben
zu
II. Auspacken, Inbetriebnahme, Gerätebeschreibung:
Inhalt
Auspacken, Inbetriebnahme und 'warum haben
Sie
ein Floppy
gekauft'
Für
wen?
Für
jeden, der Floppys auspackt und anschließt und wissen will,
warum.
Voraussetzungen
Karton mit Floppy und etwas Neugierde
zu m.
Hinweise für den Bediener:
Inhalt
Die
täglichen Handgriffe und die wichtigsten Kommandos
Für
wen?
Anwender und Bediener, eventuell auch Programmierneulinge, die am Anwendern gleichzusetzen sind.
Anfang
ja mit
Ob S ie
die Punkte
5.x
benötigen, hängt
von
der Software
ab,
die
Sie
verwenden.
Je
besser die Software ist, desto mehr brauchen
Sie
nur Punkt
5.1
verstehen.
Voraussetzungen
Die
Punkte
1. - 4.
sollte jeder Anwender verstehen.
Für
Punkt
5.
sollten Sie
schon die ärgste Angst
vor
dem Computer abgebaut haben
3
zu IV.
Kommunikationsmöglichkeiten und Parameter:
Inhalt
Je
nachdem,
ob Sie
einen Rechner mit BASIC-4 (80XX oder 40XX) verwenden, oder
noch
mit BASIC-3
arbeiten
(30XX),
haben
Sie verschiedene
Möglichkeiten,
Kommandos ans Floppy
zu
übertragen.
Nach einer Einführung in diese Problematik werden in den
2.4.x und
Voreinstellungen
erläutert.
Punkten 2.3.x die
4.
vor
allem
bei
den
Die
prinzipielle Bedeutung aller Parameter und die normalerweise erlaubten Werte
beschrieben.
keiten arbeiten müssen.
Für
wen?
Für
jeden, der Floppy-Kommandos entweder im Direktmodus oder im Programm ver-
Programmierer
müssen ihn lesen.
Voraussetzungen
Grundkenntnisse in BASIC und im Programmieren. Speziell die Befehle
OPEN
und
Strings sollte Ihnen geläufig sein.
zu V.
Kommandos:
Inhalt
Jedes Floppy-Kommando mit Ausnahme der Direktzugriffkommandos ist hier unab-
hängig
von
allen anderen erklärt. Beide Übermittlungsarten
werden
jeweils erläutert.
(soweit vorhanden)
Für
wen?
Einzelne Kommandos können für Anwender interessant sein.
entsprechende Werkzeug
zu
finden.
Der
Programmierer
seine Probleme das
Möglicherweise können die Kommandos COLLECT, I nti ali ze, CONCAT, RENAME
für
manche uninteressant sein.
Bei
'Datenverkehr' kann APPEND und eventuell
RECORD
zurückgestellt werden.
Die
Fehlermeldungen sind zum Nachschlagen
von
Fall
zu
Fall gedacht.
4
Möglichkeiten beschri eben, die BASIC-3 bietet und in Dabei werden auch Unterschiede
werden in Punkt
2.5
gemeinsam für beide Übermittlungstechniken
bei
der Parameterangabe
die
von
BASIC-
Diese zusammengefasste Darstellung kommt jenen entgegen, die mit beiden Möglich-
wenden will. Interessierte Anwender können diesen Abschnitt lesen,
PRINT#
werden benötigt.
Der
Begriff 'String' und die Aneinanderreihung von
sollte alle Kommandos gelesen und verstanden haben,
um
für
Voraussetzungen
Kapitel
IV
sollten
Sie
in etwa verstanden haben und
bei
Bedarf nochmal
nachschlagen, wie die einzelnen Parameter definiert sind.
Für 2, 3,
und
4
benötigen
Sie
relativ wenig Vorkenntnisse (etwa wie für Kapitel
IV).
Für
'Datenverkehr' dürften mittlere bis gute BASIC und allgemeine Programmier-
diese
trifft
aber
Sie
am
Anfang zwischen diesen beiden Kapiteln hin- und herlesen.
zu VI.
Dateibehandlung und Datenverkehr:
Inhalt
Hier wird sowohl generell in Dateikonzepte
die
ihrer Behandlung
erklärt.
eingeführt, wenn auch nur kurz und
beiden hier vorhandenen Dateien
mit
Für
wen?
Für
jeden Programmierer, der serielle oder
ist
ab
diesem Kapitel nichts mehr
zu
holen.
Satz-Dateien benöt igt.
Für
Anwender
Voraussetzungen
Siehe letzten Absatz über das vorhergehende
Kapitel.
zu VII
DOS-Übersicht:
Inhalt
Beschreibung des
DOS
(Disk Operating System) mit guten Worten, Bild und
Tabellen.
Für
wen?
Für
jeden interessierten Programmierer zum 'nur mal reinschauen'.
Voraussetzungen
Wer
diese Information anwenden will, muß maschinennahe Programmierung beherr-
schen oder Assembler-Programmierer sein.
Diese Information ist nur in Zusammenhang
mit Kapitel VIII. sinnvoll.
5
kenntnisse erforderlich sein, weil Anweisungen dies
zu.
zu
benötigen.
Vor
'Datenverkehr' stellt nur das Werkzeug (die Kommandos) nicht
Sie
allem für die Behandlung
Zusammenhänge dar. Dies wird in Kapitel
dann
an
Hand
von
Beispielsprogrammen
erst dann
VI.
gemacht. Möglicherweise sollten
so
weit se in können,
von
REL-Dateien
zu
VIII. DOS-Hilfsroutinen:
Inhalt
Hier werden maschinennahe Routinen des
DOS
beschrieben, die den Aufbau eigener
Dateiverwaltungen erlauben (etwa analog
zu
REL-Dateien).
Für
wen?
Maschinennahe BASIC-Programmierer
oder Assembler-Programmierer.
Voraussetzungen
Kapitel
VII
und gute Nerven.
Wir
hoffen,
daß
diese Übersicht verhindert,
daß Sie
Information
zu
verstehen
versuchen, die Ihnen nur Frustrationen einbringen kann.
Den
ernsten Leser bitten
wir, die letzten Witzeleien dieses Handbuches ihm,
daß es ab
hier nichts mehr
zu
lachen gibt.
zu entschuldigen
und versichern
6
n.
1.
AUSPACKEN, INBETRIEBNAHME, GERÄTEBESCHREIBUNG
Auspacken des Gerätes
Ehe Sie
Ihr Floppy auspacken, sollten
Sie
den Karton auf äußere Beschädigungen
überprüfen. Wenn
Sie
welche feststellen, achten
Sie
beim Auspacken des Gerätes
Sie
bitte sofort die Spedition bzw. Ihren Fachhändler.
Werfen
Sie
die Spezialverpackung nicht weg. Beim Transport durch Spedition
ist
das Gerät nur durch diese Verpackung optimal geschützt.
Der
Karton sollte außer dem Handbuch und dem
CBM
dual drive floppy disk 8050
Fachhändler.
Zusätzlich müssen
Sie
noch das richtige Verbindungskabel für den Rechneranschluß
haben, das nicht im Lieferumfang des Floppys enthalten
ist:
2. Verbindungkabel
Das
Floppy wird mit dem Rechner über die IEEE-488-Schnittstelle verbunden, an
nen.
Durch das Prinzip dieser Schnittstelle können nicht alle Verbindungskabel direkt
Peripheriegerät
mit eingesteckt werden und haben dadurch Verbindung mit dem Rechner.
Diese Verbindung
von
Gerät
zu
Gerät wird durch das 'Huckepack'-Prinzip des
nehmen.
Ob Sie
nun mehrere Geräte ketten- oder sternförmig zusammenschließen,
hängt
von
Ihrer Geräteverteilung
ab.
Elektrisch ist
Belastbarkeit
nicht sehr groß
ist.
die Anschlußart unwichtig. bei
sternförmigem Anschluß
Fs
gibt zwei verschiedene Anschlußkabel:
Vom Rechner zum ersten Peripheriegerät benötigen
Sie
ein Verbindungskabel
Rechner-Peripherie
. Der
flache Stecker des Kabels wird
am
Rechner angesteckt:
Wenn
Sie von
hinten auf den Rechner schauen, müssen
Sie
den Stecker in den
rechten
der beiden
breiten
Anschlüsse
stecken und zwar
so,
daß
der 'COMMODORE'-Schriftzug
nach oben zeigt!
Zwischen den einzelnen Peripheriegeräten
Enden
ehe
aufstecken können.
benötigen
Sie
ein Kabel Peripherie-
Sie
den nächsten Stecker 'huckepack'
Kabel Peripherie-Peripherie
Kabel Computer-Peripherie
7
bitte besonders auf Beschädigungen des Inhalts.
noch eine Gar a nt iekarte enthalten. Wenn nicht, benachric hti g en
die auch andere Peripheriegeräte für den cbm-Rechner angeschlossen werden kön-
am
Rechner eingesteckt werden.
Anschlußsteckers ermöglicht: Jeder Stecker kann einen weiteren Stec ker auf-
Sie
müssen
Bei
Beschädigung benachrichtigen
bei
einem anderen
Sie
bitte Ihren
Beachten
-Peripherie. Dieses hat schrauben müssen angezogen werden,
Sie
aber,
daß
die mechanische
an
beiden
gleiche Stecker.
Die
beiden Rändel-
3. Rechneranschluß
Schließen
Sie
das Floppy mit dem richtigen Verbindungskabel
an
Ihr bestehendes
CBM-System
an.
Achten
Sie
beim Anschluß darauf,
daß
alle Geräte ausgeschaltet sind.
4. Bedien- und Anzeiqeelemente
Der
Netzschalter befindet sich
an
der Rückseite links oben. Daneben ist die
Netzsicherung angeordnet.
Der
Stecker für das Verbindungskabel befindet sich
an
der Rückseite rechts oben.
Von
hinten betrachtet, muß das Kabel nach links vom Stecker Weggehen!
Das
Floppy 8050 enthält zwei Di sk et te nl a ufwerke,
an
denen sich rechts oben je
eine grüne Kontrolle uc hte befindet. Diese Leuchte zeigt
an, ob
das
Betrieb ist, bzw.
ob
eine Datei darauf geöffnet
ist.
Laufwerk in
Eine weitere Kontrollleuchte befindet sich in der Mitte zwischen den Diese Leuchte hat zwei Funktionen:
Laufwerken.
1.
Wenn
das Gerät eingeschaltet wird, leuchtet sie grün und zeigt
so
an,
daß
das Gerät in Betrieb
ist.
2.
Wenn Fehler auftreten, leuchtet sie rot und zeigt damit
an, daß
eine
(siehe Fehlermeldungen)
8
Fehlermeldung ansteht, die vom Rechner abgefragt werden kann.
5. Inbetriebnahme des Systems
Schließen
Sie
die Netzstecker aller Geräte
an
das Stromnetz
an.
Achten Sie
treten,
da
dies die ordnungsgemäße Funktion des Systems
beeinträchtigen kann.
Stellen
Sie
die Verbindungen zwischen den Geräten durch die entsprechenden
Verbindungskabel her.
Beim Einschalten des Sytems müssen immer die Laufwerksklappen geöffnet (oben) sein.
Bei
der ersten Inbetriebnahme sollten
Sie
zuerst das Floppy
des
nochmal beim Einschalten des Rechners beobachten
zu
können.
alleine einschalten,
Floppys und dann
6. Automatischer Selbsttest
Sie
sollten
bei
jedem Einschalten des Floppys die Reaktion
der
Kontrolleuchten
Kontrolleuchten
beobachten.
Das
Gerät führt nämlich beim Einschalten einen
drei
dargestellt.
Die
Lampen leuchten nach dem Einschalten zweimal in folgender Reihenfolge
auf:
1.
die mittlere rot, die äußeren grün
2.
die mittlere grün, die äußeren gehen aus.
Der
letzte Zustand bleibt bestehen, solange das Floppy nicht vom Rechner ange-
sprochen
wird.
Ist das Floppy
an
den Rechner angeschlossen und eingeschaltet,
so
reagiert das
eben
beschrieben.
Falls die Kontrolleuchten nicht in der
versuchen
einwandfrei, sollten
lassen.
beschriebenen Form reagieren, warten Sie
Sie es
vom Commodore-Service überprüfen
7. Was
ist ein 'dual drive floppy disk"?
In Deutschland hat sich die Kurz-Bezeichnung 'Floppy-(Doppel)-Laufwerk
'
einge-
aufnehmen
In
das
Speichermedium als 'Disketten'.
Das CBM
8050 Floppy ist ein 'Massenspeicher', der über den IEEE-488
Bus
mit
einem CBM-Rechner zusammenarbeitet. Durch den Einsatz modernster Micro-Elektro-
nik, viele dazu
wie
z.B.
zweier Microprozessoren, ist das Gerät
so
'intelligent',
daß es
bekommen hat. Dies erspart dem Anwender Leerlaufzeiten, entlastet den
Programmierer und bewirkt hohe Datenübertragungsraten.
9
darauf,
um
Betriebssystemtest durch.
daß
in dem betreffenden Netz keine starken Spannungsschwankungen auf-
die Reaktion der Kontrolleuchten beim Ei nschalten
Ein
Fehler wird dann durch die
Speicher- und
Floppy beim
bitte einige Sekunden und
Ein-
und Ausschalten des Rechners in derselben Weise, wie
es
nochmal. Funktioniert das Gerät dann
immer noch nicht
bürgert. Gemeint i st ein Gerät, das gleichzeitig zwei 'Disketten' kann,
um
auf ih nen Daten abzuspeichern, bzw. Daten
von
ihnen
zu
lesen.
Zukunft werden wir das Gerät nur noch kurz als 'Floppy' bezeichnen und
Funktionen unabhängig vom Rechner durchführen kann, nachdem
es
den Befehl
8.
Wofür benötigt man ein Floppy?
Ein
Floppy wird dazu benutzt, größere Mengen
von
Informationen abzuspeichern.
Anwendungsfälle
zu
unterscheiden:
Abspeichern
von
Information, die über lange Zeit verfügbar sein soll, auch
Programme
oder Daten, die der Anwender später wieder im Zugriff haben
will.
Zwischenspeichern
von
Daten, die der Rechner zeitweise nicht in seinem Arbeits-
Daten
erst in einem anderen Programmteil wieder benötigt werden.
Bestimmte Daten können innerhalb
von
wenigen Sekunden gefunden werden und pro
Sekunde kann das Floppy
etwa zweitausend Zeichen verarbeiten.
9. Wo
werden die Daten gespeichert?
Das
Floppy speichert die Daten auf sogenannten 'Floppy-Disks'
ab. Die
genaue
deutsche
Bezeichnung
dafür könnte
sein: 'flexible Magnetplatte'.
Da diese
Bezeichnung umständl i ch und ungebräuchlich ist, wird in diesem Handbuch das allgemein gebräuchliche Wort 'Diskette' verwendet.
Eine Diskette ist eine sehr dünne flexible Magnetscheibe, die genauso wie ein
wird
siert wird.
Zur besseren Handhabung ist die Platte fest umschlossen
von
einer quadratischen
hat
für
den Sehreib-Lese-Kopf.
Es
gibt Disketten in verschiedenen Größen.
Für
dieses Gerät benötigen
Sie
soge-
nannte 'Mini-Disketten'. Diese sind
13
mal
13 cm
groß
(5 1/4 ")
Beim Kauf sollten
Sie
darauf achten,
daß Sie
nicht Disketten schlechter Qualität
bekommen, die dann meist auch billiger sind. Wenn
Sie
sich nicht mit den
schiedenen Fabrikaten auskennen, sollten
Sie
sich auf jeden Fall beraten lassen.
ver-
10
(Ein 8050 kann auf über eine Millio n Zeic hen zugreifen.) Dabei sind folgende
wenn der Rechner zwischendurch ausgeschaltet worden ist. Dazu gehören
speicher halten kann, weil die Datenmenge im Moment
Tonband mit einer magnetischen Oxidschicht versehen ist.
zu
groß wird und diese
Die
Information
auf die Diskette aufgetragen, indem diese Schicht in bestimmter Weise magneti-
Schutzhülle, in der sie auch während des Betriebes verbleibt. Diese Hülle eine runde Öffnung für den Plattenantrieb in der Mitte und eine lange ovale
10.
Technische Daten
Speicherkapazität
Gesamtkapazität
Relative Dateien
533248
Bytes pro Diskette
Diskette
23
bis 29
Directory-Einträge
Bytes pro Sektor
256
(nutzbar:
254 bei
PRG-,
SEQ-,
REL-Dateien
bzw.
255 bei
Direkt-Zugriff)
Spuren Blöcke
77 2083 (davon 2052 für den Benutzer
verfügbar)
IC's
6505
6522
Microprozessor
I/O,
Timer
Controller
Microprozessor
ROM
Interface
6502
6564 (2)
6114 (8)
4*1K RAM
Gemeinsam
Physikalische Eigenschaften
Stahlgehäuse
Material
Abmessungen Gewicht
18 (H)
*
38 (B)
*
40
(T)
12 kg
Elektrische Eigenschaften
Spannung
Leistungsaufnahme
220 V
50 W
Speichermedium
Mini - Disketten
5 1/4 "
softsektoriert (siehe III.5.5)
11
Serielle Dateien
Sektoren pro Spur
521208
Bytes pro Diskette
464312 bis 517398
abhängig
182880
65535 Sätze
224
6530
6532 (2)
von
der Satzgröße
Bytes pro Datei
pro Datei
pro Diskette
I/O, RAM,
I/O, RAM,
Bytes pro
ROM
Timer
Frequenz
50 or 60
Hz
einseitig, single density
m.
1.
HINWEISE
FÜR DEN
BEDIENER
Einschalten des Systems
Prinzipiell
ist die Reihenfolge,
in der die einzelnen
Geräte
eingeschaltet
werden, beliebig. Beachten
Sie
aber,
daß
mehr als die Hälfte aller Geräte, die
senden.
Anderenfalls wird die Datenübertragung über den
Bus
gestört.
Wenn
Sie
die ganze Computeranlage
an
eine Steckerleiste mit Zentralschalter
anschließen, ersparen
Sie
sich die Arbeit, die einzelnen Geräte einzuschalten.
Wenn allerdings der Rechner kurz nach den Peripheriegeräten eingeschaltet wird, erhalten die Geräte vom Rechner ein 'Rücksetzsignal' (Reset) und machen nochmal
die gleiche Initialisierung durch, wie wenn sie alleine eingeschaltet
die
dungen zwischen Rechner und Peripheriegeräten in Ordnung sind.
werden.
Verbin-
In welcher Reihenfolge
Sie
auch einschalten, achten
Sie
immer darauf,
'nicht
nungsfähig ist' und deshalb möglicherweise Information löschen kann.
daß
die
zurech-
Wegen der automatischen Initialisierung dürfen die Disketten nicht im eingerastet sein!
Schlitten
2. Klappenbehandlunq
Leere Klappe
Wenn keine Diskette im Laufwerk ist, ist die Klappe immer oben. Versuchen Sie nicht, die leere Klappe nach unten
zu
drücken,
da
sie mechanisch gesperrt
ist.
Diskette einlegen
Wenn
Sie
eine Diskette einschieben, achten
Sie
auf mögliche Widerstände durch
ist,
stoßen
Sie
auf Widerstand. Jetzt müssen
Sie
die Diskette gegen diesen Widerstand
ganz ins Laufwerk schieben. Kurz bevor
Sie
mit den
Jetzt
den Schlitten eingerastet.
Fingern
an
der zurückge-
ist die Diskette richtig in
Schlitten senken
Um
die Diskette endgültig in ihre Arbeitsposition zu
geriffelten Klappengriff bis zum Anschlag nach unten.
bringen, drüc k en Sie
Sie
hören,
daß
dabei
den
kurz
Sie
ist
Sie
der Motor anläuft. Dadurch wird die Diskette sauber zentriert. Achten
darauf,
daß
die Klappe
zu
ist, wenn der Motor zu
laufen aufhört, sonst
möglicherweise
die Diskette
nicht
richtig
zentriert.
Andererseits
dürfen
die Klappe nicht ruckartig nach unten ziehen, weil Zeit hat, sich richtig
zu
zentrieren.
sonst die Diskette keine
Schlitten heben
Wenn der Schlitten wieder nach oben kommen soll, drücken
Sie
den Griff nochmals
Die
sitzt
aber nicht mehr auf.
12
am
IEC-Bus hängen, eingeschaltet sind,
ehe Sie
Daten über den
Bus
Dies hat den Vorteil,
Klappen der Laufwerke offen sind,
Verkanten der Diskette. Wenn die Diskette gerade im Laufwerk verschwunden
setzten Wand anstossen, hören
daß Sie an
Sie
dieser Reaktion sehen können,
da
das Floppy
ein Klicken.
bei
einem Reset
ob
nach unten und lassen ihn dann nach oben gleiten (nicht schnappen lassen!).
Diskette ist dann immer noch richtig im Schlitten, der Schreib/Lesekopf
Diskette entnehmen
Zum Entnehmen der Diskette schieben
Sie
den Griff nach oben. Dadurch kommt die
Diskette
so
weit aus dem Schlitten,
daß
sie bequem herausgenommen werden kann.
Eine Diskette darf nur entnommen werden, wenn die Leuchte des entsprechenden Laufwerks erloschen
ist!
3. Diskettenbehandlunq
Disketten sind relativ robuste Datenträger. Dennoch können sie
bei
unsachgemäßer
Behandlung Schaden nehmen. werden:
Hier sollen deshalb einige wichtige Hinweise gegeben
Die
Diskette steckt in einer
ovales Loch. ('Oben' ist die
Schutzhülle. Diese Hülle hat oben und unten je
ein
ist die mit
Seite mit dem Etikett!) Unter
allen Umständen
zu
Da
auf keinen Fall
die Berührung der Diskettenoberfläche durch diese Öffnungen Diskette auf der Unterseite beschrieben wird, darf diese
den Fingern berührt werden und ist auch
vor
Staub
zu
schützen. Staub
kann
oder
nicht nur die Disketten, sondern auch die Schreib-
/
Leseköpfe
zerstören.
angreifen
Um
solchen Berührungen vorzubeugen, sollte man sich angewöhnen,
ohne Tasche herumliegen
zu
lassen. Eine Diskette sollte entweder
Disketten
nicht
in der Schutz-
tasche oder im Laufwerk stecken! Klebeetiketten klebt oder entfernt man
am
be-
sten, während die Diskette in der Tasche
steckt.
Während des
Ein-
oder Ausschaltens des Floppys oder des Rechners sollten die
Klappen geöffnet sein, da mit die aufliegen!
Schreib-
/
Leseköpfe ni cht auf den Disketten
Natürlich dürfen Disketten nicht Sonneneinstrahlung ausgesetzt sein.
starken magnetischen Feldern oder direkter
Vor
dem Einlegen einer Diskette
sollte man sie
von
Hand in ihrer Schutzhülle
zentrieren, wei l sonst
u.U.
der Rand des Mittelloches verbogen wird und dann
die
häufigste Ursache für unbrauchbare Disketten!
4. Datensicherung
Sowohl durch Hardwarefehler (Schmutz usw.), als auch durch Bedienungsfehler im
bzw.
unleserlich werden.
Deshalb gilt
bei
Disketten die gleiche Regel wie
bei
allen Datenträgern:
Jede Datei muß mindestens eine Kopie haben!
Dies kann durch verschiedene Maßnahmen
erreicht werden:
Man kann ganze Disketten duplizieren oder einzelne Dateien kopieren. Dabei
lich, täglich oder wöchentlich?
13
vermeiden!
die Diskette kaum noch
zu
zentrieren ist. Dies ist nach unserer Erfahrung
Softwarebereich kann der Inhalt einer Diskette ganz oder teilweise zerstört
stellt sich die Frage, wann diese Kopien erstellt werden sollen: sofort, stünd-
Vielleicht hilft
bei
der Entscheidung folgende Regel: Man sollte immer davon
ausgehen,
nur
Wiederherstellung
der
Kopie.
Nach der Ersterfassung kann man nach dem Vater
/
Sohn
/
Enkel Prinzip vorgehen:
Wenn in einer Datei Änderungen vorgenommen werden, ist die neue Datei der 'Sohn'
der alten Datei, des 'Vaters'. Wird der 'Sohn' geändert, entsteht
'Enkel'.
Nun
lautet die Regel,
daß
der 'Vater' erst gelöscht werden
daraus ein
wenn
mindestens
der 'Enkel' erfolgreich
gelesen werden
sich
geringfügig sind.
abgespeichert wurde.
Das
bedeutet, er mußte
können. Dadurch hat man immer mindestens zwei 'Versionen'
nur durch Änderungen unterscheiden sollten, die relativ
Je
nachdem, wieviel Platz vorhanden ist, kann man auch mehr als zwei Genera-
auf
es
sinnvoll,
da bei
den meisten Fehlern nicht die ganze
Diskette unleserlich wird.
5. Anwender-Befehle
Auch als Nur-Anwender müssen
Sie
einige wenige BASIC-Befehle beherrschen,
die
wichtigsten Befehle auch hier im
Floppy-Handbuch
nochmal auf.
Eine kurze Übersicht soll Ihnen zeigen, welche Befehle im folgenden
erklärt
werden:
BASIC-4
BASIC-3
SHIFT/RUN
RUN
DIRECTORY
LOAD"*",8 / RUN
erstes Programm laden und
starten
(Sicherungsduplikat)
abfragen
Die
Befehle
sind in der Reihenfolge
erklärt, wie
Sie von
Ihnen
am
wahrschein-
lichsten benötigt werden.
D.h.
die weiter hinten beschriebenen Befehle benötigen
Sie
eventuell
am
Anfang
gar nicht.
Da Sie
eventuell Ihr Floppy 8050
an
einen Rechner der 3000-er Serie angeschlos-
keit ist für BASIC-4, die zweite für BASIC-3.
14
5.1 Erstes Programm laden und
solange auf eine Kopie verzichten, solange der Aufwand für die der Daten nicht wesentlich größer ist, als der Aufwand für die Erstellung
einmal einer Datei, die
daß
jederzeit ein Fehler auftreten kann. Deshalb sollte man
darf,
tionen zulassen. Natürlich ist verschiedenen Disketten liegen. Ab er auch auf der gleichen Diskette ist
sofern
DLOAD
BACKUP HEADER DSAVE COPY SCRATCH
?DS$
Sie
nicht sehr ausgefeilte Software verwenden.
LOAD
RUN
LOAD"$...",8
Duplicate New SAVE Copy Scratch 10
INPUT#15,F,F$
es
gut, wenn die verschiedenen Generationen
Wir
führen deshalb
beliebiges Programm laden
Programm Inhaltsverzeichnis der Diskette lesen Diskette duplizieren Neue Diskette anlegen Programm abspeichern Datei kopieren Datei löschen Fehlermeldung
starten
sen haben, führen wir die Befehle beider BASIC-Versionen
an. Die
erste Möglich-
starten
BASIC-4:
Wenn
Sie
die Tasten
SHIFT
und
RUN
drücken, nachdem
Sie
die Anlage eingeschaltet
haben, wird das erste Programm automatisch gestartet.
der Diskette im rechten Laufwerk geladen und
BASIC-3:
sofort nach dem Einschalten:
LOAD"*",8 RUN
sonst:
LOAD"0:*",8 RUN
Bei
qualitativ hochwertiger
Software ist dieses erste Programm ein sogenannter
Systemstart, der erstens alle benötigten Programme automatisch
ab
In
Programm
Anzahl
von
angebotenen Programmen laden und
starten.
lädt und zweitens
können
aus einer ganzen
5.2 Inhaltsverzeichnis der Diskette lesen
Wenn
Sie
wissen wollen, welche
können
Sie
durch
Programme oder Dateien auf einer Diskette sind,
DIRECTORY LOAD"$",8 und LIST
oder
die Inhaltsverzeichnisse
beider
Disketten
nacheinander auf
den Bildschirm
bringen. Denken
Sie
dabei an
nach links' beim 8032.
die Funkti on der beiden Tasten
':/*'
bzw. 'Pfeil
Durch Anfügen
von 'DO'
oder
'Dl' bei
'DIRECTORY' können
Sie
gezielt das Inhalts-
verzeichnis der rechten oder linken Diskette lesen (BASIC-4)
Dir DO Dir Dl
Wenn
Sie
den dritten Buchstaben
von
DIRECTORY mit
SHIFT
eingeben, versteht dies
ausschreiben.
BASIC-3:
LOAD"$0",8 und LIST LOAD"$l",8 und LIST
Hierbei wird ein im Speicher stehendes BASIC-Programm
überschrieben.
15
Beliebiges Programm laden
sofort mit Ihnen in deutschem Dialog in Verbindung tritt.
Sie
dann durch Drücken einer Taste ein bestimmtes
der Regel
der Rechner als Abkürzung und
Sie
müssen das furchtbar lange Wort nicht immer
5.3
Falls
Sie
unabhängig
von
einem 'Systemstart-Programm' ein bestimmtes Programm
einer Diskette laden wollen, können
Sie
dies durch
DLOAD
"NAME"
LOAD
"OîNAME" , 8
oder
tun. Dieser Befehl lädt das Programm
'READY.'
zurück.
'NAME'
vom rechten Laufwerk in den Arbeits-
durch 'LOADING'
mit und meldet sich mit
Falls das gewünschte Programm auf
der eingelegten Diskette nicht vorhanden
ist
oder irgendein Diskettenfehler
auftritt, wird
FILE NOT FOUND
ERROR
gemeldet. Überprüfen
Sie
in diesem Fall die richtige Schreibweise des Namens und
ob
die richtige Diskette eingelegt
ist.
Wollen
Sie
ein Programm vom linken Laufwerk laden,
so
fügen
Sie an
den oben
beschriebenen Befehl noch durch Komma getrennt
'Dl'
an:
DLOAD "NAME" , Dl
LOAD
"IîNAME"
, 8
oder
5.4 Programm
starten
Ein
Programm, das
Sie
durch (D)LOAD in den Speicher geladen haben, müssen Sie
noch durch
RUN
starten, damit
es
für
Sie
tätig werden kann.
5.5 Neue Diskette anlegen
Fabrikneue
Disketten
müssen
erst durch
einen
speziellen
Befehl
'sektoriert'
werden,
ehe
sie Programme bzw. Daten aufnehmen können.
HEADER "NAME" , IXX , DO OPEN1,8,15,"NO:NAME,XX"
oder
Durch
HEADER
(nicht
bei OPEN)
wird die Frage
ARE YOU
SHURE?
ausgelöst, die sicherstellen soll,
daß
Sie
löschen, die bereits Daten enthält. Diese
nicht aus Versehen eine Diskette
Frage ist mit
'Y'
oder
'YES' zu
beantworten, sonst wird die
HEADER-Anweisung
ignoriert.
'NAME'
ist der Diskettenname, er darf maximal
16
Zeichen lang sein.
Die
beiden
XX hinter
I stehen
stellvertretend
für die
'Identität'
der Diskette. Diese
Kennzeichnung
ist zwei beliebige Zeichen lang.
Lassen
Sie
den Zusatz
'IXX'
weg,
so
wird die Diskette nur gelöscht, aber nicht
sektoriert. Dies geht nur
bei
Disketten, die bereits in Gebrauch
waren.
16
speicher.
Er
teilt den Ladevorgang
Durch die oben angeführte Anweisung wird die Diskette im rechten Laufwerk
sektoriert.
Bei
Angabe
von 'Dl'
statt
'DO'
wird die Diskette im
sektoriert.
oder
wichtig ist nur,
daß
sie jeweils durch Komma getrennt werden.
linken Laufwerk
D
ist unwichtig,
5.6 Diskette duplizieren
Von
Datendisketten kann nicht oft genug ein Sicherungsduplikat
erstellt werden,
um
bösen Überraschungen durch Verlust wertvoller Daten vorzubeugen.
Sie
können
Disketten vollständig duplizieren
mit
BASIC-4:
BACKUP
DO TO Dl
rechte Diskette auf linke übertragen
(BACKUP
Dl TO DO
linke Diskette auf rechte übertragen)
Die
Form des BACKUP
ist:
BACKUP
(dupliziere von) D (Laufwerk)
0 TO
(nach) D (Laufwerk) 1
Links
von 'TO'
steht also das Quellaufwerk, rechts das
Ziellaufwerk.
Wenn
Sie
immer die gleiche Richtung
(DO TO Dl)
verwenden, laufen
Sie
weniger
Gefahr, irgendwann die Richtung
zu
verwechseln.
Die
Diskette in dem
gelöscht!
Laufwerk,
das rechts
von TO
aufgeführt ist, wird völlig
BASIC-2
OPENl,8,15, (
"D1=0" "D0=1"
rechte Diskette auf linke übertragen linke Diskette auf rechte übertragen)
Links
von '='
steht das Ziellaufwerk, rechts das Quelllaufwerk.
Wenn
Sie
immer die gleiche Richtung (1=0) verwenden, laufen
Sie
weniger Gefahr,
irgendwann die Richtung
zu
verwechseln.
Die
Diskette in
gelöscht!
dem Laufwerk, das links
von =
aufgeführt ist, wird völlig
Da
eine falsche
Hinweise genau:
Anwendung dieses Befehls die Vernichtung der Daten
zur
Folge
Sie
eigentlich sichern wollten, beachten
Sie
bitte die folgenden
Schützen
Sie
die 'Quelldiskette' immer mit einem 'Schreibschutzaufkleber'!
Vergewissern
Sie
sich,
daß
die 'Zieldiskette' wirklich leer ist bzw. gelöscht
werden
darf!
17
5.7
Die
Reihenfolge der einzelnen Angaben NAME, I
haben kann, die
Programm abspeichern
Ein
im Arbeitsspeicher stehendes
BASIC-Programm können
Sie
mit
DSAVE
"NAME"
SAVE
"0:NAME" , 8
oder
auf die Diskette im rechten Laufwerk abspeichern. Auch hier kann durch Anfügen von Dl
auf das linke Laufwerk abgespeichert werden.
5.8 Datei kopieren
Einzelne Dateien können
von
einem Laufwerk auf das andere durch
COPY "NAME" , DO TO "NAME" , Dl
oder
OPEN1,8,15,"C1:NAME=0:NAME"
kopiert werden.
Wie
schon
bei
BACKUP steht links
von TO
das Quellaufwerk und
der
Datei.
Sie
können - müssen aber nicht - gleich sein.
Wenn kein Zieldiskette Zieldiskette
Name angegeben wird, werden alle Dateien der Quelldiskette auf
nicht gelöscht wird, sie kann also bereits Dateien enthalten,
die die
zu
denen noch die Dateien der Quelldiskette hinzukopiert werden.
5.9 Datei löschen
Einzelne Dateien können
Sie
durch die Anweisung
SCRATCH "NAME" OPEN1,8,15,"SO:NAME"
oder
löschen. Wenn der Zusatz
'Dl'
fehlt, wird auf dem rechten Laufwerk gelös cht.
Wie bei HEADER
wird
bei
SCRATCH
mit
ARE YOU
SHURE?
nachgefragt,
ob Sie
dies ernst meinen. Antworten
Sie
auch hier durch
'Y'.
Nach
erfolgreichem Löschen wird gemeldet:
01 FILES
SCRATCHED
01 00
Die
zweite Zahl
von
rechts sagt Ihnen,
daß 1
Datei gelöscht wurde.
Eine gelöschte Datei kann nicht wieder zurückgeholt werden, wenden
Sie
diese
Anweisung also ähnlich sorgfältig
an
wie BACKUP und HEADER.
18
rechts das Ziellaufwerk.
Neu
sind die beiden Namen. Auch hier steht links
Name der Datei, die kopiert werden soll und rechts der Name der neuen
kopiert.
Der
Unterschied
zu
BACKUP besteht darin,
daß bei
COPY
5.10
Fehlermeldung abfragen
Wenn die mittlere Kont rolll eu ch te rot brennt, ist ein Fehler auf getreten. Die Fehlermeldung können
Sie
abfragen durch
?DS$
Bei
BASIC-3 ist dies etwas komplizierter,
da Sie
ein kleines Programm
müssen:
schreiben
10
OPENl,8,15 : INPUT#1,F,F$,SP,SE : ?F,F$,SP,SE
Nach
GOTO 10
erhalten
Sie
die Fehlermeldung auf den
Bildschirm gedruckt.
19
IV.
DIE
KOMMUNIKATIONSMÖGLICHKEITEN
ZWISCHEN RECHNER
UND IHRE
PARAMETER
1. Einführung
Das Floppy
8050
ist ein 'hochintelligentes'
Peripheriegerät, das
komplexe
Operationen auf Grund eines einzigen Kommandos vom Rechner selbständig und unabhängig vom Rechner durchführen kann.
Die
meisten Kommandos können entweder unmittelbar über Tastatur und Bildschirm
(Direktmodus) oder
von
einem Programm aus
an
das Floppy
übermittelt werden.
Das
Floppy erwartet die Kommandos des Rechners immer in derselben Art. Dagegen
gibt es im Rechner
verschiedene
Darstellungsmöglichkeiten
für identische
Floppy-Aufträge. Dazu kommt,
daß
abhängig
von
der Darst el lungsart verschiedene
immer
dieselben Daten erhalten muß.
Die
verschiedenen Darstellungsarten gepaart mit den gleichen
erleichtern, haben wir folgenden
Weg
gewählt:
Wir
beschreiben
Parametern in
zu
jeweils zuerst
den Floppy-Auftrag mit seiner grundsätzlichen Wirkung im Floppy und unmittelbar anschließend die verschiedenen Übermittlungsmöglichkeiten des Auftrags.
Ehe
auf Einzelheiten eingegangen
werden kann, wird ein Überblick über
einzelnen Aufträge aus der Sicht des Floppys gegeben:
die Drei verschiedene Tätigkeiten des Floppys sind
zu
unterscheiden:
(1)
Daten vom Rechner übernehmen und auf Diskette schreiben oder Daten
von
Diskette lesen und
an
den Rechner übergeben
(2) Aufträge empfangen und
quittieren
(3) Verwaltungsaufträge unabhängig vom Rechner ausführen
Punkt
1
beschreibt die eigentliche Aufgabe des Floppys:
Datenbehandlung' etwas näher eingehen.
Daten abspeichern
unter 'Programm-
und und Punkt
3
unterscheidet sich
von 1
in zweierlei Hinsicht:
Erstens ist das Floppy
durch solche Verwaltungsaufträge
u.U.
bis
zu
Minuten mit sich selbst beschäf-
sein.
den
Kommandos der Datenbehandlung.
Womit wir
bei
Punkt
2
wären:
Ehe
das Floppy etwas arbeiten kann, muß
es
vom
Rechner
erfahren können,
ob
alles gutgegangen
ist.
Nach diesem groben Überblick aus der Sicht des Floppys wollen wir das Ganze aus
etwas
verfeinern:
20
UND
FLOPPY
Parameter erforderlich sind, bzw. wegfallen können, obwohl das Floppy
verschiedenen Formen wirken auf den ersten Blick verwirrend. Um
später wieder zurückgeben.
Wir
werden darauf gleich
den Zugang
tigt, ohne den Rechner aufzuhalten, aber auch ohne selbst ansprechbar Zweitens unterscheidet sich die Art der Übermittlung solcher Aufträge
zu
von
Rechner erfahren, was.
Und
wenn der Auftrag abgeschlossen ist, muß der
der Sicht des Rechners betrachten und können dabei die Betrachtung
1.1
Programm- und Datenbehandlung
Obwohl für das Floppy die Unterscheidung zwischen Programmen und Daten eigent-
Rechner
von
werden,
andererseits.
Die
Befehle für Programme laden und speichern sind: (D)LOAD, (D)SAVE und
VERIFY.
Für
lesen und abspeichern
von
Daten sind zuständig (D)OPEN, (APPEND), (RECORD),
PRINT#, INPUT#,
GET#
und (D)CLOSE.
Die
eingeklammerten Befehle sind nur
ab
BASIC-4 vorhanden. Alle Funktionen
-BASIC-Befehle ' bieten lediglich mehr Komfort,
vor
allem im Direktmodus.
Die
Programmbehandlung ist we sentli ch einfacher al s die Datenbehandlung, da
immer nur 1 Programm gleichzeitig gelesen oder abgespeichert
wird.
Dagegen gibt
es
zwei grundsätzlich verschiedene Datenstrukturen (SEQ/REL) und
Betrieb)
mehr
Parameter.
1.2 Kommandoübermittlung / Quittung
Die
oben angesprochenen Verwaltungsaufträge
(z.B.
Datei kopieren) werden prinzi-
des
der
dokanal geöffnet, und durch
PRINT#
der Kommandostring übertragen werden.
Die
Quittung des Floppy wi rd
bei
BASIC-4 durch die Variablen-Funktion
DS
oder
DS$
abgefragt,
bei
BASIC-3 etwas umständlicher durch
INPUT#
von
Variablenwerten vom Kommandokanal.
maximal vier
2. übermittlunqsmöqlichkeiten
2.1 Einführung
Die drei
Tabelle 'Kommando-Übersicht' zeigt,
daß es - von
BASIC aus
Arten
von
Kommandos gibt. Diese drei Arten unterscheiden
betrachtet -
sich in den
Übermittlungsmöglichkeiten:
(1) Kommandostring oder
Disk-BASIC
(z.B.
HEADER)
(2) Nur Kommandostring
(z.B.
M-W)
(3) Normales BASIC oder Disk-BASIC
(z.B.
LOAD)
21
lich unwichtig ist, hat sie beim Rechner durchaus ihre Berechtigung:
Der bzw. die BASIC-Befehle unterscheiden zwischen dem Abspeichern und Lesen Programmen einerseits und
können auch mit dem Befehlsvorrat
von
Daten, die i m Programm verarbeitet
von
BASIC-3 abg erufen werden.
Die
'Disk-
erstens Programme eine sehr einfache Übermittlungs-Struktur haben und zweitens
es
können mehrere 'Datenkanäle' oder 'Dateien' gleichzeitig offen (in
sein.
Aus
diesem Grund gibt
es
für diese Aufgabenstellung mehr Befehle und
piell über den sogenannten Kommandokanal übertragen.
Bei
den Disk-Befehlen BASIC-4 geschieht die Übersetzung des BASIC-Kommandos in das Kommandostring­format, sowie d ie Übermittlung ans Floppy automatisch. Dagegen muß anderen Möglichkeit, die
bei
BASIC-3 und
-4
funktioniert, durch
OPEN
der Komman-
bei
Ehe
erklärt wird, welche Übermittlungsmöglichkeit jeweils günstiger ist, soll
kurz der Grund für die verschiedenen Möglichkeiten aufgezeigt werden:
Die
Methode, den Kommandostring direkt im Programm
zu
erzeugen und durch PRINT#
lichen Aufwand, wenngl eich die Disk-BASIC-Befehle weniger Aufwand verursachen.
Aber im Direktmodus ist diese Art der Kommandoübermittlung
modus überhaupt nicht möglich (BASIC-3).
sehr schwerfällig und ist sogar im Direkt-
Deshalb meisten
direkten
wurden
ab
BASIC-4 weitere Befehle implementiert,
die die Eingabe der
Floppy-Befehle
wesentlich
komfortabler gestalten,
als dies
bei der Kommandostring-Methode der Fall ist. Im Direktmodus ist auf jeden
Fall die Verwendung der Disk-BASIC-Befehle
zu
empfehlen.
Dagegen sollten
Sie vor
der Verwendung dieser Befehle innerhalb
von
Programmen
überlegen,
ob
die Programme nur
ab
BASIC-4 aufwärtskompatibel, oder auch für
BASIC-3 gültig sein sollen. Im letzteren Fall müßten Sie Disk-BASIC-Befehle
innerhalb des Programmes verzichten.
auf die Verwendung der
Falls
Sie
aber weder für BASIC-3 schreiben, noch die
maschinennahen Befehle
keine D-BASIC-Befehle
(Direktzugriff,
DOS-Manipulationen)
benötigen,
für die
existieren, können
Sie
in allen Kapiteln die Anmerkungen zum Kommandostring
übergehen.
Um
ein mögliches Mißverständnis auszuschließen, sei noch erwähnt,
daß
die
Kompatibilität
der
Kompatibilität
kein Unterschied, durch
Versio­nen kompatibel Floppy
und
RECORD
mehr
zum
aller
Dateien nicht möglich
(COPY
ohne Namensangabe).
Nach dieser kurzen Übersicht sollen nun zuerst die beiden angesprochenen Über-
zelnen Parameter.
Wenn
Sie
das Format der Übermittlungsmöglichkeit, die
Sie
verwenden wollen,
haben,
Das
Format und die benötigten Parameter ergeben sich dann aus der Wirkung.
22
über den Kommandokanal
vor
allem Nur-Anwendern kaum zumutbar.
zwischen den beiden BASIC-Versionen zwischen den einzelnen
PRINT#
1, 2a
ob es
über den Kommandokanal erhält.
und
Kommandos über den Umweg eines D-BASIC-Befehls oder
2c
(auch als
sind, ist
angeschlossen ist. Allerdings dürfen
nicht verwendet werden,
zu
es bei
übermitteln, verursacht im Programm einen erträg-
Die
Fehlerabfrage
zu
unterscheiden ist
2.1
DOS-Versionen.
und
2.5
Da
bezeichnet) (3040, 4040, 8050) aufwärts-
Für
das Floppy besteht
andererseits die drei DOS-
der Auswahl der BASIC-Befehle unerheblich, welches
da DOS 1
bei DOS 1
einmal geschlossene Dateien nicht
die Befehle APPEND
Schreiben öffnen kann und keine REL-Dateien kennt. Außerdem ist
von
direkt
COPY
mittlungsmöglichkeiten ausführlich behandelt werden und anschließend die ein-
sowie die Bedeutung und Grenzen der einzelnen Parameter verstanden
brauchen
Sie bei
den einzelnen Kommandos nur noch die Wirkung
zu
verstehen.
2.2
Kommando-Übersicht
BASIC-4
BASIC-3
Kommandostring
Bedeutung
Disketten-Kommandos
New
Validate
HEADER
DIRECTORY CATALOG
formatieren
bereinigen
Initialisieren
LOAD"$.. LOAD"$
Initialize
Datei-Kommandos
COPY
SCRATCH
Copy
Rename Scratch
kopieren Zusammenhängen
löschen
Programmbehandlung
DLOAD DSAVE
LOAD
VERIFY
laden abspeichern überprüfen
Datenverkehr einleiten / beenden
DOPEN APPEND DCLOSE
OPEN
CLOSE
Datenkanal öffnen
weiterbescheiben
Datenkanal schließen
Datenverkehr
RECORD
Position
Record-Zeiger
posit.
ein Zeichen einiesen
PRINT#
GET#
Fehlermeldung lesen
DS,
DS$
OPEN /
INPUT#
Direktzugriff,
DOS-Operationen
Block lesen
schreiben ausführen
Block freigeben
B-R
W
B-F Puffer freigeben
B-P
M-W
R
U
Speicher beschreiben
Routine über Sprungleiste
23
BACKUP COLLECT
CONCAT RENAME
SAVE
OPEN
Duplicate
Copy
duplizieren überprüfen, Inhaltsverzeichnis Inhaltsverzeichnis
umbenennen
Datei
INPUT#
B­B-E B-A
M­M-E
Daten schreiben
Daten einiesen
Block Block Block belegen
Speicher lesen Speicher-Routine
ausführen
2.3 Kommandos über den Kommandokanal senden
Jedes der Kommandos
C D I N P R S V
(siehe Kommandozeichen 2.3.3) kann
direkt
durch
PRINT#
über den Kommandokanal übertragen werden.
Im folgenden wird erklärt, was
es
mit dem Kommandokanal auf sich hat, wie das
Wirkung
haben.
2.3.1
Der
Kommandokanal
Bei OPEN
und in den Kapiteln
über Direktzugriff
können
Sie allgemeine
Informationen über die Floppykanäle
finden.
Der
Kommandokanal ist ein spezieller Kanal mit der Nummer
15
(Sekundäradresse).
nur
Kanal,
ob
Fehler
bei
einer Operation aufgetreten sind
(s.
Fehlerbehandlung).
(Die Disk-BASIC-Befehle übertragen die Befehle ans Floppy ebenfalls über den Kommandokanal.)
Der
Kommandokanal wird wie jeder andere Kanal durch
OPEN
geöffnet:
OPEN
15,8,15
(s.
OPEN)
Durch
DOPEN
kann der Kommandokanal nicht geöffnet werden, weil
DOPEN
unbedingt
einen Dateinamen braucht, in diesem Fall aber kein Name angegeben werden kann.
Während
OPEN
nur die Voraussetzung ist,
daß PRINT#
funktionieren kann, hat
Dateien dieses Floppys:
CLOSE
des Kommandokanals schließt alle Dateien (Kanäle) des Floppys
Der
Kommandokanal belegt im Floppy keinen der allgemeinen Puffer, die für die
also
ein
geöffneter Kommandokanal im Rechner eine
von
den zehn möglichen Dateien.
2.3.2
Aufbau des Kommandos
Um
das Verständnis der Kommandosyntax
zu
erleichtern, sollen erst die verschie-
müssen.
mandostring enthalten sind.
Allgemein hat ein Kommando den Aufbau:
kommandozeichen laufwerknummer : dateiname
= laufwerknummer2 : dateiname2
Der Kommandostring
kann
insgesamt
maximal
40 Zeichen
lang
sein,
(wichtig
bei
CONCAT = COPY von
mehreren Dateien!)
24
Format des Kommandostrings generell aussieht und welche Parameter welche
Über diesen Kanal werden keine Daten
zur
Aufzeichnung übertragen, sondern
Kommandos ans Floppy geschickt. Außerdem meldet das Floppy über diesen
CLOSE
anderen Kanäle (Datenkanäle) belegt werden. Vom Floppy aus gesehen ist gleichgültig,
des Kommandokanals eine sehr wichtige Neben-Funktion
ob
der Ko mman doka nal ge öffnet ist oder nicht. Dagegen belegt
- es
schließt alle
es
denen Informationen besprochen werden, die ans Floppy übermittelt werden Die
Erklärung erfolgt dabei in der Reihenfolge, wie die Informationen im Kom-
Bei
Operationen mit Quelle und Ziel können
Sie
sich die Richtung leicht merken,
wenn
Variable,
bei
den Floppy-Kommandos
gilt:
NEU
= ALT
oder
ZIEL
= QUELLE
Wenn
Sie
sich außerdem noch merken,
daß
in der Regel eine Datei erst dann
haben,
daß
also
laufwerk : dateiname
immer eine Einheit bilden, können
Sie
mit dem Format des Kommandostrings keine
Schwierigkeiten mehr haben.
Im Kommandostring dürfen keine Blanks enthalten sein,
es
sei denn, sie sind
Bestandteil eines Dateinamens.
2.3.3 Kommandozeichen
Alle Kommandos sind durch
1
Zeichen eindeutig gekennzeichnet. In einem Kom-
mandostring darf nur 1 Kommandozeichen
enthalten sein.
C -
Datei(en) kopieren
P -
Positionieren auf Record und Byte
2.3.4 Laufwerk
Da
das Floppy zwei Laufwerke hat, muß man ihm mitteilen, auf welchem die Opera-
tion ausgeführt werden soll.
Hinter der Laufwerknummer steht immer ein Doppelpunkt, wenn noch ein Dateiname folgt!
Beim Lesen kann die Angabe des Laufwerks entfallen, weil das Floppy-DOS zuerst
vorhanden
ist und wenn nicht, auf dem anderen Laufwerk sucht.
Beim Schreiben muß allerdings unbedingt das Laufwerk angegeben werden.
2.3.5 Dateiname
Der
Dateiname steht immer nach dem Doppelpunkt der
Laufwerksnummer.
Bei D,
I und V wird kein Dateiname gebraucht.
werden.
Bei N
wird genau ein Name (Diskettenname) angegeben.
25
2.3.6
die den neuen Wert erhält, steht immer links vom 'Gleichheits'Zeichen. Auch
Sie
als Eselsbrücke die normale BASIC-Wertzuweisung nehmen:
Die
eindeutig gekennzeichnet ist, wenn
D -
Diskette duplizieren I - Diskette(n) N -
Diskette löschen / formatieren R -
Datei umbenennen S -
Datei(en) löschen
V -
Serielle Dateien überprüfen / bereinigen
initialisieren
Sie
Laufwerk und Dateinamen angegeben
auf dem zuletzt benutzten Laufwerk nachsieht,
Bei C
und S kann ein oder mehrere Dateinamen angegeben
ob
die gewünschte Datei
Übermittlung des Kommandostrings hinter
PRINT#
Dies setzt voraus,
daß
der Kommandokanal geöffnet
ist.
Der
Aufbau des Kommandostrings hinter
PRINT#
kann sehr verschieden sein. Sie
können also
wie gewohnt
alle Eigenschaften
der String-Verknüpfungsbefehle,
sowie
die speziellen
PRINT#-Eigenschaften
ausnützen.
Einige
Beispiele
sollen
dies zeigen:
OPENkk,8,15
PRINT#kk,"Cl:DATEINEU=0:DATEIALT"
PRINT#kk,K$;Ll$;"DATEI";Dl$;"="L2$;"DATEI";D2$
Beide Anweisungen kopieren die Datei DATEIALT vom Laufwerk
0
auf das Laufwerk 1
einsetzen.
2.3.7
Übermittlung des Kommandostrings hinter
OPEN
la
, gn , 15
Das
Kommando kann direkt als
dn an
das
'OPEN'
des Kommandokanals angehängt
werden.
Zwischen dem Senden des Kommandos direkt
am 'OPEN'
des Kommandokanals bzw.
durch
'PRINT#'
ist folgender Unterschied
zu
beachten:
Bei 'PRINT#'
kehrt der Rechner s ofort in den Direktmodus bzw. ins Programm
zurück und das Floppy bearbeitet unabhängig vom Rechner das Kommando.
Das
gilt
aber nur, wenn das Floppy nicht noch mit schäftigt ist, das vorher gegeben wurde.
der Ausführung eines Kommandos be-
Bei
'OPEN...
'
wartet der Rechner, bis das
dies beim Kopieren einer Diskette bis zu
Floppy den Befehl ausgeführt hat. Da einigen Minuten dauern kann, ist es
ratsam, die Kommandos nicht direkt mit dem
OPEN zu
senden.
2.3.8
Formatübersicht
Im folgenden wird mit name der Ausdruck laufwerknummer : dateiname bezeich-
Zugriff
stehende
wegen
der größeren Übersicht eingestreut und dürfen nicht mit eingegeben werden.
PRINT#
PRINT#
la, la, la, la, la, la, la,
"I "V "D "N "C "R "S
laufwerk" laufwerk" ziellaufwerk
quellaufwerk"
name
name name (,name,...)"
Initialisieren
PRINT#
la, "P sa
rl rh bp"
Record auswählen
26
oder L1$="1":L2$="0":D1$="NEU":D2$="ALT":K$="C"
unter dem neuen Namen DATEINEU.
Sie
können also in gewohnter Weise Variablen
net, weil erst Laufwerknummer und Dateiname zusammen einen eindeutigen zu
einer bestimmten Datei ermöglichen.
Die
in runden Klammern
Bezeichnung kann unter bestimmten Bedingungen entfallen. Blanks sind nur
PRINT# PRINT# PRINT# PRINT#
name = name (,name,...)"
PRINT#
=
(,disk-identität)"
= name"
Bereinigen Duplizieren Formatieren / Löschen Kopieren / Zusammenhängen Umbenennen Löschen
2.4 Disk-BASIC-Kommandos
2.4.1
Übersicht
HEADER
DIRECTORY
COLLECT
Diskette löschen
anzeigen
Diskettenbelegung in Ordnung
bringen
COPY
SCRATCH
Datei(en) kopieren
Zusammenhängen
Datei(en) löschen
DOPEN APPEND
RECORD
Datenkanal zum Floppy
öffnen
Auf
einen Record
positionieren
2.4.2 Formatbeschreibung
Die
Disk-BASIC-Kommandos unterscheiden sich in der Art der Parameterangabe von
die
weitere
Reihenfolge
weggelassen
werden können.
Bei
den Disk-BASIC-Kommandos werden alle Parameter mit Ausnahme
des Dateinamens
durch
Schlüsselzeichen
eingeleitet,
wodurch die
Stellung
(Reihenfolge) unwichtig
ist.
Bezeichnung
Zeichen
Bedeutung Ersatzparameter
Nummer
ID
nicht möglich
möglich
keine ID
Logische Adresse LA
ID
#
U
I Außer der ID
können
alle Parameter
als beliebige
numerische Ausdrücke angegeben
werden. Diese Ausdrücke müssen hinter
dem Schlüsselzeichen in Klammern stehen.
Das
gleiche gilt für Variablen (Sonderfall eines numerischen Ausdrucks). Anders
(Zahlenkonstante).
2.4.3 Logische
Adresse
Die
logische Adresse steht hinter dem Zeichen
'#'
(Doppelkreuz).
Das
entspricht
Adresse auch durch ein führendes
'#'
angegeben
wird.
Bei
den Kommandos 'DOPEN', 'APPEND'und
'DCLOSE'
ist dieser Parameter stellungs-
unabhängig.
27
BACKUP
Diskette duplizieren
Inhaltsverzeich nis auf Bildschirm oder Drucker
CATALOG
CONCAT RENAME
DCLOSE
den anderen BASIC-Kommandos. Parameter stellungsabhängig angegeben. Dies hat den Vorteil, Kennzeichnung erforderlich ist, aber den Nachteil,
wie DIRECTORY
Dateien Datei umbenennen
Datei
ab
Ende
weiterbeschreiben
Datenkanal schließen
Bei
den normalen BASIC-Kommandos
daß
daß
erstens die
genau eingehalten werden muß und zweitens nur nachfolgende Parameter
werden
keine
Gerätenummer GN Laufwerk LW Recordlänge
ON D L
Unit Drive Length
Gerät
Nr. 8 Laufwerk 0 nicht
U
oder
ausgedrückt muß alles in Klammern stehen, was nicht eine einfache Zahl ist
auch den üblichen Konventionen,
da bei
PRINT#,
INPUT#
und
GET#
die logische
Der
Wertebereich
von LA
reicht zwar
von 0
bis 255, sie sollten aber
bei
BASIC-4
in Zusammenhang mit Floppy-Schreib-Dateien grundsätzlich nur Werte kleiner als
128
verwenden!
Bei PRINT
im Rechnerhandbuch ist beschrieben,
daß
sonst
an
jedes
implizit gesendete
CR
ein LF
führt.
angehängt wird, was
zu
Fehlern beim Lesen der Daten
Beispiele:
DOPEN
#1,"DATEINAME"
Öffne Datei mit Logischer Adresse 1
LA=2 DOPEN
#(LA),"DATEINAME"
Öffne Datei mit Logischer Adresse 2
LA=1
DOPEN
#(LA+1),"DATEINAME"
Öffne Datei mit Logischer Adresse 2
Falsch
LA=2 DOPEN
#LA,"DATEINAME"
Die
Variable
LA
muß in Klammern stehen
2.4.4
Gerätenummer
(unit)
Die
Gerätenummer steht hinter
der Zeichenfolge
'ON U', 'ONU'
oder dem
Zeichen
'U'. Bei
allen Disk-BASIC-Befehlen ist die Angabe der Gerätenummer
optional.
Als
Ersatzparameter wird die Gerätenummer 8 genommen.
Die
Gerätenummer kann Werte zwischen
4
und
31
annehmen. Liegt der Wert
diesem Bereich, meldet der Rechner
'ILLEGAL QUANTITY ERROR'.
nicht in
Der
Rechner meldet keinen Fehler, wenn mehrere Parameter
'U'
in einem Befehl
angegeben werden.
Er
nimmt dann den als letzten stehenden. Beachten
Sie
bitte,
daß es
kein Floppy-Kommando gibt, das zwei verschiedene Geräte behandeln
Deshalb ist die Angabe
von
mehr als einer Gerätenummer sowieso
sinnlos.
kann!
Beispiele:
DIRECTORY DIRECTORY
zeige zeige
das Inhaltsverzeichnis das Inhaltsverzeichnis
des des
Geräts Geräts
Nr. Nr.
9 8 U9
GN=8 DIRECTORY
GN U(GN)
zeige
das Inhaltsverzeichnis
des Geräts
(8)
28
2.4.5
Laufwerknummer
Die
Laufwerksnummer muß hinter dem Zeichen
'D'
(drive) stehen. Für
ILLEGAL QUANTITY ERROR.
sie
der
sind die
Rechner
Für
Ersatzparameter gibt
es
folgende Möglichkeiten:
(1)
Wird in einem Befehl nur 1 Dateiname benötigt, ergänzt der Rechner '0'.
(2) Werden in einem Befehl mehrere Dateinamen verwendet, ist
der Ersatz-
parameter für den ersten Namen '0'.
(3) Werden in einem Befehl mehr als ein Dateiname verwendet, und die Lauf-
werksnummer für den ersten Dateinamen angegeben,
ist der Ersatzparameter
für die weiteren Datennamen gleich der letzten angegeben Nummer.
Bitte beachten
Sie
diesen Unterschied der Disk-BASIC-Befehle
zu
den normalen
keine
vorgeschrieben.
Dagegen wäre
es bei
lesenden Zugriffen durchaus möglich, dem Floppy nic ht zu
sagen,
wo
die Datei
zu
finden ist.
Das DOS
sucht dann automatisch auf dem
Service des
DOS
wird also
bei
Disk-BASIC-Befehlen
grundsätzlich verhindert!
ande­Dieser
Beispiele:
DLOAD"PROG",DO
DLOADDO,"PROG" DLOAD"PROG",Dl
Lade Programm
"PROG"
vom Laufwerk 0
Lade Programm
"PROG" von
Laufwerk 1
COPY "DAT1" TO
"DAT2"
Kopiere
"DAT1"
auf Laufwerk 0
nach
"DAT2"
auf Laufwerk 0
COPY
"DAT1",D1
TO "DAT2"
Kopiere
"DAT1"
auf Laufwerk 1
nach
"DAT2"
ebenfalls auf Laufwerk 1
Falsch:
DLOAD"PROG"DO
Zwischen den Parametern muß ein Komma stehen
2.4.6 Recordlänge
Die
Recordlänge einer REL-Datei wird hinter dem Zeichen
'L'
angegeben. Sie
als Konstante oder als numerischer Ausdruck in Klammern angegeben werden.
kann
Zugelassen sind die Werte
2
bis 254. Andere Werte bewirken einen 'ILLEGAL
QUANTITY ERROR'.
Ersatzwert ist 1.
29
Werte
0
und
1
zulässig. Werden andere Werte angegeben, meldet
BASIC-Befehlen, bzw. zum Kommandostring: Auch wenn der Disk-BASIC-Befehl Laufwerksangabe enthält, wird dem Floppy ein bestimmtes Laufwerk
ren Laufwerk, falls
es
auf dem ersten die gewünschte Datei nicht findet.
DLOAD"PROG"
" "
2.4.7
Dateiname und Diskname
Dateiname und Diskname benötigen keine Schlüsselzeichen,
da
sie als Strings
oder String-Variablen bzw. String-Ausdrücke, die in Klammern stehen müssen.
Der
Dateiname und der Diskname darf maximal
16
Zeichen lang sein und muß
mindestens
1
Zeichen lang
LONG
ILLEGAL QUANTITY ERROR.
sein. Ist er länger als
16
Zeichen, meldet der
ERROR,
ist er kürzer als ein Zeichen, meldet
er Beispiele:
DLOAD"PROG"
Lade
"PROG" von
Laufwerk 0
NA$="PROGRAMMNAME" DLOAD(NA$)
Lade "PROGRAMMNAME"
von
Laufwerk 0
NA$="PROGRAMMNAME" DLOAD(NA$+"l")
Lade "PROGRAMMNAME1"
von
Laufwerk 0
Falsch
DLOAD"programmname-nummerl"
Der
Dateiname ist länger als
16
Zeichen
NA$="" DLOAD(NA$)
Der
Dateiname
ist leer
DLOAD
NA$
Variablen müssen in Klammern stehen
2.4.8
Diskettenidentität ID
Die ID
wird durch das führende Zeichen
'I'
gekennzeichnet.
Sie
muß aus
zwei
dem
Zeichen bestehen.
Für
die
ID
sind nur zwei Zeichen erlaubt, die
Zeichen
'I'
ohne Blank stehen müssen.
hinter
Bei
mehr oder weniger Zeichen meldet der Rechner einen
'SYNTAX ERROR'.
Bei
der
ID
sind keine Ausdrücke (Variablen) möglich.
Beispiele:
HEADER
"DISKNAME",Dl,101
Formatiere die Disk im Laufwerk 1 mit der
ID
'01'.
Falsch:
HEADER
"DISKNAME",Dl,IA
Die ID
besteht hier nur aus dem einen
Zeichen
HEADER
"DISKNAME",Dl,I(A$)
keine Variable erlaubt
30
schon eindeutig sind. Möglich sind String-Konstanten in Anführungszeichen
Rechner STRING
TOO
2.4.9
Trennzeichen zwischen den
Parametern
Die
Parameter werden normalerweise durch Komma getrennt. Eine Ausnahme bildet
angegeben
wird. In diesem Fall darf kein Komma davor stehen.
Wird ein Komma eingegeben,
so
muß auch ein Parameter folgen.
Zwischen dem Befehl und dem ersten Parameter darf kein Trennzeichen stehen.
Beispiele:
DLOAD"PROG",Dl,U8 DLOAD"PROG",Dl
ONU8
Lade
"PROG" von
Gerät
8,
Laufwerk 1
Falsch:
DLOAD,"PROG",Dl
Zwischen Befehl und Parameter darf kein Komma
Vor 'ON'
darf kein Komma stehen
DLOAD"PROG",Dl,ONU8
Bei
Befehlen, die mehrere
Dateinamen benötigen, wird die Richtung der Datenüber-
tragung durch
'TO'
angegeben. Dasselbe gilt
bei
Diskettenbefehlen, die ein
Quell-Laufwerk und ein Ziel-Laufwerk angeben.
Beachten
Sie
hier folgenden
-Format:
Unterschied zwischen Disk-BASIC- und Kommandostring
Disk-BASIC-Format: Kommandostring-Format:
Quelle Ziel
TO
Ziel
=
Quelle
Während also
bei
Disk-BASIC
links
vom Trenn'Zeichen'
TO
die Quelle und rechts
das Ziel steht, ist
es
beim Kommandostringformat genau umgekehrt: Links
von ' = '
steht das Ziel, rechts die Quelle.
Beispiele:
COPY
D1,(NA$)
TO
D0,(NA$) Kopiere Datei mit Namen
NA$ von
Laufwerk 1
nach Laufwerk 0
BACKUP
Dl TO DO
Dupliziere Diskette
von
Laufwerk 1 nach 0
Falsch:
BACKUP
Dl,TO DO
Vor
und hinter
'TO'
darf kein Komma stehen
2.4.10 Leerzeichen (Blanks)
Zwischen Befehl und Parameter
und zwischen den Paramatern selbst können beliebig
viele Blanks (begrenzt durch die Zeilenlänge) stehen. Dasselbe gilt zwischen den Schlüsselzeichen und den Angaben.
Eine Ausnahme ist die
ID.
Genau die zwei Zeichen, die hinter dem
'I'
stehen,
werden als
ID
genommen.
31
der Parameter für die Gerätenummer
M
stehen
'U',
wenn er in der Form
'ON U'
2.5 Allgemeine Parameterbeschreibung
2.5.1
Einführung
In diesem Kapitel werden alle Parameter beschrieben, die für mehrere Befehle
nicht
Kapitel
beiden
'Disk-BASIC-Kommandos '.
2.5.2
Logische Adresse
(la)
Durch die Logische Adresse oder Logische Dateinummer wird
bei
jeder
Ein-
oder
sa
angesprochen.
Die
Logische Adresse muß
bei
den Kommandos angegeben werden, die Datenkanäle zum
,
durchführen.
Außerdem wird sie
bei RECORD
benötigt.
Einzelheiten sind im Rechnerhandbuch
bei OPEN
beschrieben. Bitte beachten Sie,
daß Sie
für Schreibdateien (Ausgabe) nur la's kleiner als
128
verwenden
sollten!
2.5.3
Gerätenummer (gn)
Jedes Peripheriegerät im CBM-System hat eine bestimmte Gerätenummer, die
eingestellt
werden kann.
Die
Standardeinstellung für das Floppy ist Gerätenummer
8.
Durch eine Änderung
Dies
werden
sollen.
Generell sind also in Zusammenhang mit dem Floppy nur Gerätenummern zwischen 8 und
15
sinnvoll.
Die
Gerätenummer wird auch Primäradresse, physikalische Adresse oder Geräte-
adresse genannt.
2.5.4
Sekundäradresse / Kanalnummer (sa)
Die
Sekundäradresse wird vom Floppy unbedingt benötigt und muß
bei OPEN
angege-
dung
von DOPEN
zum nächsten Parameter übergehen können.
Die
Sekundäradresse ist die Nummer eines Kanals zum
/
vom Floppy. Insgesamt sind
le Bedeutungen:
0
15
LOAD
(Lesen einer PRG-Datei)
Datei)
Kommando- / Fehlerkanal
Die
verbleibenden Adressen
(2 - 14)
richten Datenkanäle für Dateien ein.
32
gebraucht werden. nocheinmal beschrieben, sondern gelesen haben. Bitte beachten
Bei
den einzelnen Befehlen werden diese Parameter dann
es
wird vorausgesetzt,
Sie
auch die ergänzenden Hinweise in den
daß Sie
dieses
vorausgegangenen Kapiteln 'Kommandos über den Kommandokanal senden' und
Ausgabeoperation ein Gerät mit der Gerätenummer
Floppy öffnen (OPEN, DOPEN) oder schließen (CLOSE, DCLOSE) bzw. GET#)
oder Ausgabeoperationen (PRINT#) über solche Datenkanäle
gn
und der Sekundäradresse
Ein-
(INPUT#
meistens in bestimmten Grenzen durch den Commodore-Service
innerhalb des Gehäuses kann die Adresse zwischen ist erforderlich, wenn mehrere Doppellaufwerke
ben werden.
für
SA
Werte zwischen
DOPEN
verwaltet dagegen die
0
und
15
möglich. Davon haben drei Werte (Kanäle) speziel-
SA
automatisch,
8
und
15
am
Rechner angeschlossen
so daß Sie bei
im Gerät
variiert werden.
Verwen-
1
SAVE
(Schreiben einer PRG-
Hier soll nicht weiter auf den Begriff des Kanals eingegangen werden. Sein
Verständnis ist erst in Zusammenhang mit den Direktzugriffsoperationen erforder-
die
LA
für den Rechner.
Entsprechend darf die gleiche Kanalnummer
(SA)
nur einmal gleichzeitig verwendet
werden.
Von
den
16
möglichen Kanälen dürfen nur
5
gleichzeitig geöffnet sein! Andern-
falls meldet das Floppy
'70 NO
CHANNEL'.
t±>er diese maximal
5
Kanäle
(10
Puffer) wird der Datenverkehr in beiden Rich-
ten Zugriff.
Wenn auch REL-Dateien geöffnet sind, erniedrigt sich diese Zahl. Deshalb muß bei
fragt werden.
Etwas detaillierter
sehen die Zusammenhänge wie folgt aus:
Zu
(logischen)
REL
Dateien sind ebenfalls möglich.
Wichtig ist die
SA 15. Sie
bewirkt,
daß
der angegebenen logischen Adresse der
den
also
geöffnet
ist oder nicht.
2.5.5
Laufwerknummer
Da
das Floppy zwei Laufwerke hat, muß man ihm mitteilen, auf welchem die
Operation
durchgeführt werden soll.
Die
Laufwerknummer
0
spricht das rechte Laufwerk
an
und entsprechend
1
das
'
beschriftet.
2.5.6
Dateiname
Mit Ausnahme
von
Kommandos, die eine ganze Diskette betreffen, muß immer mindes-
tens 1 Dateiname angegeben werden.
Der
Dateiname ist ein String, der maximal
16
Zeichen lang sein darf und
alle
druckbaren Zeichen enthalten:
33
lich.
Es
genügt
sche) Bedeutung hat.
zu
wissen,
Sie
daß
die Kanalnummer nur logische (keine physikali-
erfüllt fürs Floppy etwa die gleiche Funktion, wie
tungen abgewickelt. Dies gilt sowohl für den seriellen, als auch für den direk-
jedem Öffnen eines Kanals (einer Floppy-Datei) die Floppy-Fehlermeldung abge-
Kanälen gehören (physikalische) Puffer im Floppy. Insgesamt stehen für Dateien
(Kanäle) Puffer, jede Dateien oder
sogenannte Kommando- und Fehlerkanal zugeordnet wird. Kommandokanal senden' und 'Fehlerbehandlung' finden heiten. auf mögliche Anzahl Datenkanäle keinen Einfluß,
linke Laufwerk.
10
Puffer
REL
Der
zur
Verfügung. Jede
SEQ
oder
PRG
Datei (Kanal) benötigt 2
Datei dagegen 3 Puffer. Deshalb können maximal 5 SEQ/
3 REL
Dateien gleichzeitig offen sein. Mischungen wie
Kommandokanal hat nichts mit den Datenkanälen
ob
Die
Laufwerke sind durch Aufschriften 'drive
PRG
2 SEQ
Bei
'Kommandos über
Sie
darüber weitere Einzel-
zu
mit 2
tun,
es
der Kommandokanal
0'
und 'drive 1
hat
mindestens ein Zeichen lang sein muß.
Er
darf mit folgenden Ausnahmen
Diese Zeichen haben innerhalb des Kommandostrings folgende Bedeutung:
= , ; und : sind Trennzeichen
im Kommandostring.
(Der Kommandostring wird
bei
Verwendung der Disk-B ASIC-Kommandos nur vom Rechner
intern verwendet.)
2.5.7
Joker-Zeichen im Dateinamen
'?'
und
'*'
sind "Joker"-Zeichen.
Sie
können verwendet werden,
um
Dateien zu
finden, die einem bestimmten Namensmuster entsprechen.
Dies gilt
bei
den Funktionen:
(1) (2) (3) (4)
Öffnen eines Datenkanals zum Lesen einer Datei (nicht zum Schreiben!)
Laden und verifizieren eines Programms (nicht abspeichern!)
Mehrere Dateien mit einem Kommando löschen
Dabei sind zwei Fälle
zu
unterscheiden:
- Bei
den Funktionen
(1)
und
(2)
wird die erste Datei im Inhaltsverzeichnis
genommen, die dem Namensmuster
entspricht.
- Bei
den Funktionen
(3)
und
(4)
werden alle Dateien der Diskette genommen, die
dem Namensmuster entsprechen.
'?'
kann
an
jeder Stelle des Namens für genau 1 Zeichen stehen.
steht
am
Ende des Namens für eine beliebige Anzahl
von
Zeichen.
Beispiele
Angegebenes Muster
zutreffende Dateinamen
nicht zutreffende Dateinamen
1234567890123456
1234567890123456
1234567890123456
"DATEN*"
"DATEN" "DATEN.1"
"DATEN.VIER"
"DATE" "DATUM" ".DATEN"
"DA7EN?"
"DATEN." "DADENS"
"DATEN" "DADENS."
"A???*"
"ABC1" "ABCDE.+" "A "
"BCDE" "BCDEF" "A"
34
2.5.8
Bestimmte Dateinamen im Inhaltsverzeichnis anzeigen
Diskettermame
Der
Diskettenname hat nur (für den Anwender) den Zweck, Disketten durch Namen
Dateinamens sinngemäß.
Für
das
DOS
hat der Diskettenname keinerlei Bedeutung, er wird lediglich in
jedem Inhaltsverzeichnis mit ausgegeben.
2.5.9
Diskettenidentität
(ID)
Die ID
ist eine zusätzliche Kennzeichnung einer Diskette.
Sie
hat für das Floppy
8050 keine Bedeutung
für die Identifizierung der Diskette.
Beim Formatieren einer Diskette gibt die
ID
dem Floppy
an, ob
die Diskette
vollständig ses
gelöscht werden soll. (Siehe HEADER-Befehl)
Die ID
kann aus zwei beliebigen Zeichen bestehen.
Für
Benutzer, die schon mit 3040 Floppy-Versionen gearbeitet haben, soll hier
noch kurz erklärt werden, warum die
ID
keine Bedeutung mehr
hat.
Die
3040/4040 Floppys können einen Diskwechsel nur
an
einem ID-Wechsel fest-
stellen. Dagegen kann das 8050 einen Diskwechsel daran erkennen, daß Diskette aus dem Laufwerk genommen wird.
Das
hat auch
zur
Folge, daß
eine
alle
ge-
offenen Dateien wechselt wird.
auf diesem
Laufwerk
geschlossen
werden,
wenn
die Diskette
35
leicht unterscheiden
neu formatiert wird, oder
zu
können.
Für
den Diskettennamen gelten die Regeln des
ob
nur der Inhalt des Inhaltsverzeichnis-
V. DIE
KOMMANDOS
1. Übersicht
Die
Kommandos sind grob gegliedert in
solche, die
-
-
die ganze
Diskette betreffen
laden
die Fehlermeldung lesen
Bitte lesen
Sie
in diesem Zusammenhang auc h die entsprechenden Teile
Ein-/Ausgabebefehlen
sind.
des
den Das
Format der Kommando-Beschreibungen:
Bei 'Übermittlungsmöglichkeiten' wurde
erklärt,
daß es bei BASIC-4
für die
meisten Floppy-Kommandos zwei Möglichkeiten der Darstellung innerhalb
von
BASIC
gibt bzw.
daß bei
BASIC-3
nur die primitivere Möglichkeit existiert.
Bei
jedem Kommando
Möglichkeit arbeiten,
haben wir deshalb die Formate für beide Arten der Übermitt-
Sie
in der Regel
haben wir uns
entweder mit der einen oder der anderen
beschriebene
immer sofort die gewünschte Information
Format gehalten. Dadurch können Sie
finden, ohne die andere ebenfalls lesen
zu
müssen.
Die
Beschreibung eines Kommandos
teilt sich jeweils in folgende Blöcke auf:
(1)
Beschreibung (Zweck) mit allgemeinen Anmerkungen, die für beide Übermittlungsmöglichkeiten gelten.
(2) Kommando als Disk-BASIC-Befehl
mit Formatbeschreibung
(3)
Floppy-Kommandostring mit Formatbeschreibung oder allgemeingültiger
BASIC-Befehl
(z. B.
LOAD)
Bei der Formatbeschreibung fett gedruckte Teile müssen immer angegeben werden,
nicht fett gedruckte können unter bestimmten Bedingungen wegfallen. Beachten Sie
in diesen Fällen die angegebenen Ersatzwerte.
3 6
einzelne [Dateien betreffen
­Programme abspeichern
­den Datenverkehr
-
abwickeln
/
Rechnerhandbuches nocheinmal durch, falls
lung beschrieben. Da
streng
Sie
an
nicht ganz sattelfest bei
das nachfolgend
2
,
Disketten - Kommandos
2.1 Diskette löschen oder neu formatieren:
HEADER /
New
Jede
Diskette, die noch nicht mit einem Floppy 8050 in Gebrauch war, muß mit
diesem Kommando formatiert werden.
Disketten, die werden, ohne
werden.
schon auf einem 8050-Laufwerk benutzt wurden, können gelöscht
gelöscht. Natürlich können auch solche Disketten neu formatiert
Das
8050 Floppy arbeitet mit 'soft-sectored' Disketten.
erst
auf die Diskette gebracht. Diese Einteilung besteht aus
D.h.
die zum Betrieb
Formatierung
einem
Vor-
und einem
Nachspann
zu
jedem einzelnen Block (Sektor). Dieser Rahmen wird auch als
Angaben,
die er benötigt,
um
jeden Block eindeutig identifizieren
zu
können.
Nach dem Formatieren ist die Diskette für den Benutzer gewissermaßen 'hard -
wie
bei
einer echten 'hard - sectored' Diskette.
Zusätzlich
zu
dieser Blockeinteilung werden noch drei Informationen auf die
'frische' Diskette gebracht:
(1)
Diskettenname
Dieser wird immer neu zugewiesen, wie er im Kommando angegeben ist.
Der
Disket-
tenname muß immer im Kommando stehen.
(2)
Disketten-Identität ID
Wird im Kommando die
ID
angegeben, dann wird die Diskette neu formatiert und
bekommt dabei auch eine neue
ID
zugewiesen.
Wird sie nicht angegeben, wi r d nur das Inhaltver z ei c hni s gelö scht und die ID beibehalten.
(3)
Block-Verfügbarkeits-Tabelle
BAM
(Block-Availability-Map)
Nach dem Formatieren oder Löschen werden immer alle Blöcke der Diskette freige­geben.
Sie
hat dann 2052 freie Blöcke.
Das
Formatieren (mit Angabe der
ID)
benötigt
ca. 180
sec, das Löschen (ohne ID)
ca. 5
sec.
Wichtiger Hinweis
Die
Folgen eines unbeabsichtigten Formatierkommandos sind unangenehm. Beim
Diskette
zurückzugewinnen.
Wer
sofort bemerkt,
daß
der das Kommando doch nicht ausgeführt haben will, kann
-
Diskette
gerettet. Dem Laufwerk wird dadurch kein Schaden zugefügt.
37
neu formatiert
zu
werden. Dann wird nur der Inhalt des Inhalts-
verzeichnisses
notwendige Einteilung in Spuren und Sektoren wird
'header' = 'Kopf' bezeichnet.
sectored',
da
er
an
der Blockeinteilung und Länge genausowenig ändern kann
Er
enthält für den Floppy-Prozessor alle
durch die
Kommando mit Angabe der
ID
gibt
es
keine Möglichkeit, den Inhalt der
sofort die Klappe des betreffenden Laufwerks ausrasten. Falls der Schreib /Lesekopf gerade dabei war,
zur
Spur
1 zu
'rattern', ist damit die
2.1.1
HEADER
(BASIC-4)
Format:
HEADER
"diskname"
, D
lw
, U gn ,
I ii
Parameter:
diskname
ii
Diskettenname
ID,
keine Variablen möglich
Anmerkungen:
Bei
diesem Befehl muß die Laufwerksnummer unbedingt angegeben werden.
Wird dieser Befehl im Direkt-Modus eingegeben, fragt der Rechner nach,
ob
man es
wirklich ernst meint:
ARE YOU
SURE?
Das
Kommando wird nur dann
an
das Floppy geschickt, wenn man hier
'YES'
oder
'Y'
eingibt.
Während der Ausführung wird vom Rechner der Disk-Status abgefragt.
Er
hängt also
in der Abfrage und kann währenddessen nichts anderes machen.
Wenn das Floppy einen Fehler meldet, gi b t der Rechner im Direkt-Modus die
DS$
bzw.
DS
gelesen werden.
Steht der HEADER-Befehl im BASIC-Programm, wird die Fehlermeldung
'BAD
DISK'
lesen und verarbeiten.
HEADER
schließt im Rechner und
Floppys, auch den Kommandokanal!
im Floppy alle Datei e n des entsprechenden
Beispiele:
HEADER
"DISKETTE-NR-1",D1
Lösche Diskette in Laufwerk 1
NA$="DISKETTE-NR-2":LW=0 HEADER
(NA$),D(LW)
Variablen für Diskname und Laufwerk Löschen der
Diskette
HEADER
"DISKNAME1",D1,I01
Formatiere die Diskette in Laufw. 1
Falsch;
LW=1 HEADER
"DISKNAME1",D LW
Variablen müssen in Klammern stehen
ID="02" HEADER
"DISKNAME",Dl,I(ID)
Die ID
kann keine Variable sein
NA$="DISKETTENNAME-NUMMER1" HEADER
(NA$),D1
Diskname darf max.
16
Zeichen lang sein
38
lw gn
Fehlermeldung
'BAD DISK'
nicht ausgegeben.
Laufwerksnummer Gerätenummer
aus.
Die
Das
Programm muß selbst den Floppy-Status aus
Floppy-Fehlermeldung kann aus den Variablen
DS$
bzw. DS
2.1.2
New (Kommandokanal)
Format:
N
laufwerknummer : diskettenname , ID
Beispiele (nach
OPEN
15,8,15):
PRINT#15,"N0:TEXT.1,T1"
Die
Diskette im Laufwerk
0
erhält den Namen 'TEXT.l' und die
ID 'T1'.
Durch
Angabe der
ID
wird die Diskette formatiert, (s.o.!)
PRINT#15,"N1:TEXT.3
Die
Diskette im Laufwerk
1
erhält den Namen 'TEXT.3' und behält ihre
alte ID.
sondern
Weil keine ID nur gelöscht.
angegeben
wurde,
wird die Diskette
nicht
neu formatiert,
39
2.2 Diskette duplizieren:
BACKUP / Duplicate
Beim Duplizieren wird der gesamte Inhalt einer Diskette auf eine zweite Diskette kopiert:
Jeder Block (Sektor) wird auf der Zieldiskette
an
der gleichen Stelle (Spur,
Sektor) abgelegt,
von
der er
von
der Quelldiskette genommen wurde.
Dadurch erhält man zwei Disketten mit identischem Inhalt. Insbesondere werden auch alle Direktzugriff-Sektoren, sowie die
ID
und der Diskettenname
kopiert.
Beide Disketten müssen in gutem Zustand sein,
da
jeder Schreib- oder Lesefehler
diese Operation vorzeitig beendet!
Das
Duplizieren der Disketten funktioniert nur innerhalb eines Gerätes.
Wichtiger Hinweis
Da
eine Verwechslung
von
Quell- und Zieldiskette
zur
Folge hat,
daß
die
Diskette, deren Inhalt man eigentlich kopieren wollte, ratsam,
bei
der Quelldiskette den Schreibschutz
zu
'kleben'.
gelöscht wird, ist es
2.2.1
BACKUP (BASIC-4)
Format:
BACKUP
D
lwl
TO D
lw2
, U gn
Parameter:
lwl lw2
gn
Laufwerk,
von
dem
runterkopiert wird
Gerätenummer
(Quellaufwerk) (Ziellaufwerk)
Die
Diskette in Laufwerk lwl wird auf die Diskette in Laufwerk lw2 dupliziert.
Gibt man zweimal dasselbe Laufwerk
an,
findet das Floppy einen
'30
SYNTAX
ERROR'.
BASIC
bringt keine Fehlermeldung.
BACKUP fragt nicht automatisch den Floppy-Status
ab. Der
Rechner kommt also nach
dem Senden des Kommandos
sofort zurück.
BACKUP schließt alle offenen Dateien auf dieses Gerät, führt also automatisch ein
DCLOSE
durch. Dies hat folgende Wirkungen:
(1) (2) (3)
Der
(eventuell offene) Kommandokanal wird geschlossen.
(kein Stern im Inhaltsverzeichnis).
40
Laufwerk, auf das
Lesedateien werden geschlossen.
dupliziert wird
Schreibdateien werden ordnungsgemäß geschlossen, sind also gültige Dateien
Beispiele:
BACKUP
DO TO Dl
BACKUP
Dl TO DO
Dupliziert Laufwerk 0 nach Laufwerk 1 Dupliziert Laufwerk 1 nach Laufwerk 0
QL=1
Dupliziert Laufwerk, das in
QL
angegeben
BACKUP
D(QL) TO
D(l-QL)
ist, auf das andere Laufwerk
Falsch:
BACKUP
Dl TO Dl
zweimal dasselbe Laufwerk
QL=1 BACKUP
DQL TO
D(l-QL)
Variablen müssen in Klammern stehen
2.2.2 Duplicate
(Kommandostring)
Format:
D
ziellaufwerk =
quellaufwerk
Beispiele (nach
OPEN
15,8,15):
Kopie
von 1
wird auf 0 gebracht
PRINT#15 , "D0=1"
Kopie
von 0
wird auf 1 gebracht
PRINT#15 , "D1=0"
41
2.3
Diskettenbelegung überprüfen und bereinigen:
COLLECT / Validate
Dieses Kommando löscht alle Blöcke
von
der Diskette, die nicht durch serielle
Blöcke in der
BAM
freigegeben, die im Direktzugriff belegt wurden.
Nach 'SCRATCH'
-
Operationen kann
es
Vorkommen,
daß
nicht alle Blöcke freige-
geben.
Da
nach dem Überprüfen der Diskette die neue
BAM
geschrieben wird und evtl.
Schreibschutz
nicht 'geklebt' sein.
Wenn während der Bearbeitung ein Lesefehler auftritt, wird die Operation abge­brochen Diskette geschrieben
wird.
Dateien, aus
Dies gilt
die mit einem im
Inhaltsverzeichnis
gekennzeichnet
sind,
werden
Inhaltsverzeichnis gelöscht und Ihre
nicht für Dateien,
zu
denen noch
Blöcke in der
BAM
freigegeben.
ein offener Kanal existiert,
die also gerade zum Schreiben geöffnet sind.
2.3.1
COLLECT
(BASIC-4)
Format:
COLLECT D lw
, U gn
Parameter:
Iw gn
Laufwerksnummer Gerätenummer
Wird
die Laufwerksnummer nicht angegeben,
wird
das zuletzt benutzte Laufwerk
vom Floppy
ausgewählt.
COLLECT schließt alle offenen Dateien auf dieses Gerät, beinhaltet also Funktion
von
DCLOSE.
Dies hat folgende Wirkungen:
die
(1) (2) (3)
Der
eventuell offene Kommandokanal wird geschlossen.
(haben keinen Stern im Inhaltsverzeichnis).
Beispiele:
COLLECT COLLECT
COLLECT
Dl
D0,U9
Bereinige
Bereinige
Disk
Disk
in in
in
Laufwerk1
Laufwerk
0
auf Gerät 9
42
Dateien
(SEQ, PRG, REL) im
Directory belegt sind. Insbesondere werden alle
geben werden, die eigentlich frei sein müßten. Auch solche Blöcke werden freige-
Änderungen im Inhaltsverzeichnis vorgenommen werden, darf der
und die Diskette bleibt unverändert, weil die neue
BAM
nicht auf die
dem
Lesedateien werden geschlossen. Schreibdateien werden ordnungsgemäß geschlossen und
DO
Bereinige
sind wieder lesbar
Disk
Laufwerk0
2.3.2 Validate
(Kommandostring)
Format:
V
laufwerknummer
Beispiele (nach
OPEN
15,8,15):
PRINT#15,"VO"
Diskette im Laufwerk
überprüfen
PRINT#15,"V1"
Diskette im Laufwerk
überprüfen
43
Inhaltsverzeichnis lesen:
DIRECTORY, CATALOG / $
2.4
Mit diesem Kommando kann man das Inhaltsverzeichnis der Diskette lesen und auf
dem Bildschirm oder auf dem Drucker ausgeben. Diese Ausgabe ermöglicht also
das Drucken einer Liste, der Inhalt des Inhaltsverzeichnisses kann nicht
BASIC-Programmen
ausgewertet werden.
nur
von Format des Inhaltsverzeichnisses auf dem
Bildschirm:
Die
erste Zeile enthält die Laufwerknummer, den Diskettennamen, die
ID
und
DÜS-Version.
die
Die
weiteren Zeilen enthalten jeweils die Anzahl der Blöcke, die die Datei
der Diskette belegt, den Dateinamen und den Typ.
auf In der letzten Zeile wird gemeldet, wieviele Blöcke noch frei sind.
2.4.1
DIRECTORY / CATALOG
(BASIC-4)
Die
Befehle DIRECTORY und CATALOG
wirken genau gleich und haben auch dasselbe
Format.
Format:
DIRECTORY D lw
, U gn
CATALOG D lw
, U gn
Parameter:
Iw gn
Laufwerknummer Gerätenummer
DIRECTORY
bringt das Inhaltsverzeichnis der Diskette auf den Bildschirm. Durch
Umlenken des Standard-Ausgabekanals mit
CMD
kann
es
auch auf den Drucker aus-
gegeben werden.
Mit DIRECTORY
kann man nicht Dateinamen mit einem bestimmten Namensmuster aus-
wählen. Dieses Kommando
bringt immer das gesamte Inhaltsverzeichnis.
Das
Lesen nach einem bestimmten Namensmuster finden
Sie bei
'Laden des Inhalts-
verzeichnisses'.
DIRECTORY
öffnet zum Lesen des Inhaltsverzeichnisses eine Datei mit la=14 und
FILES
bereits
Kommandos
wird die zweite la=14 so fort wi ed er geschlossen.
Beispiele:
DIRECTORY
DO
Drucke Inhaltsverzeichnis des Laufwerks 0 auf Bildschirm
OPEN4,4
DIRECTORY
Drucke beide Inhaltsverzeichnisse auf den Drucker
44
2.4.2
sa=0. Sind ERROR einmal verwendet wurde, entsteht dadurch kein Fehler. Nach Beenden des
CMD4
zu
diesem Zeitpunkt bereits
gemeldet. Wenn weniger als
10
10
Dateien offen, wird
Dateien geöffnet sind und la=14
TOO MANY
Latten ctes Inhaltsverzeichnisses:
LOAD"$...
Durch
LOAD
wird das Inhaltsverzeichnis in den Speicher geladen.
Da
dadurch jedes
BASIC-Programm überschrieben wird, kann der Inhalt des
Inhaltsverzeichnisses
Dieses
ausgegeben
werden.
Der
Vorteil gegenüber DIRECTORY liegt dari n,
daß Sie
Jokerzeichen
können und dadurch eine überschaubarere Liste der Dateinamen
erhalten.
verwenden
Format:
LOAD"$lw:
na
me",gn
Parameter:
Iw
name
Laufwerksnummer
Namensmuster
wobei name nach folgendem Muster angegeben
wird:
name = dateiname =Typ
Für Typ
gibt
es
die Möglichkeiten:
S P R U
SEQ-Dateien
Dateien
USR-Dateien
Beispiele:
LOAD"$0",8 LOAD"$0:DAT*",8
Lade Inhaltsverz.
von
Laufwerk 0
wie vor, aber nur alle Dateien mit
'DAT'
laden
LOAD"$0:DAT*=P",8 wie vor, aber nur alle PRG-Dateien
laden
45
Diskette initialisieren: Initialize
über diesen Zugriff nicht Inhaltsverzeichnis kann mit
von
'LIST'
BASIC-Programmen ausgewertet werden.
auf den Bildschirm oder Drucker
gn
Gerätenummer
PRG­REL-Dateien
2.5
In der
Regel ist beim 8050 die Initialisierung nicht nötig.
Es
gibt aber einen
Bedienerfehler, den man durch explizites Initialisieren korrigieren kann: Wenn
bei
DISK
ID
MISMATCH
Fehler.
Entweder kann man nun durch
PRINT#15, "10" PRINT#15,
"II"
die Diskette initialisieren oder man muß den Bediener auffordern, die ent-
schieben. Dadurch wird die Diskette vom
DOS
automatisch
initialisiert.
Für
Initialisieren existiert kein Disk-BASIC-Befehl, weil
es
normalerweise nicht
nötig ist.
Was
bedeutet
initialisieren?
Auf
der
BAM
ist verzeichnet, welche Blöcke der Diskette frei und welche belegt
Diskette in den DOS-Arbeitsspeicher gelesen.
Das DOS
muß sich darauf verlassen
können,
daß
die
BAM
im Arbeitsspeicher
diese
dem
Dieser Kontakt meldet dem
DOS, daß
eine
auch wirkl ich
zu
der Diskette gehört,
Laufwerk entfernt bzw. eingelegt wird.
neue Diskette eingelegt
wurde,
daß also vor
dem nächsten Zugriff die
BAM
gelesen werden muß.
Nur in dem oben angeführten Sonderfall funktioniert diese Logik
nicht.
46
3. Datei-Kommandos
einem Laufwerk beim Einschalten bereits eine Diskette im Schlitten einge-
rastet ist und diese Diskette dann bearbeitet werden soll, erfolgt ein
sprechende Diskette kurz aus dem Schlitten auszurasten und wieder hineinzu-
sind.
Die BAM
wird nach dem Einlegen einer Diskette beim ersten Zugriff
29
von
der
die gerade im Laufwerk liegt. ein Kontakt,
ob
eine Diskette aus
Um
Zuordnung
zu
gewährleisten, überwacht
3.1 Dateien kopieren:
COPY /
Copy
Mit diesem Kommando können einzelne Dateien (Einzelkopieren) oder alle Dateien
einer Diskette (Sammelkopieren) kopiert werden.
Da
Kopieren ein schreibender Zugriff ist, darf der Schreibschutz
diskette nicht 'geklebt' sein, sonst wird
'26 WRITE
PROTECT
ON'
gemeldet.
auf der Ziel-
Alle Dateitypen können kopiert werden, nicht aber Blöcke, die zugriff belegt wurden, die also keine Verbindung zum Directory haben.
durch Direkt-
Kein Name darf ein Jokerzeichen
enthalten.
Einzelkopieren
Beim Einzelkopieren können Quell- und Zieldatei auf der gleichen schiedenen Disketten liegen.
oder auf ver-
Im Kommando müssen die Dateinamen der Quell- und der Zieldatei stehen, auch wenn
Floppy meldet sonst
'30
SYNTAX ERROR'.
Existiert die Quelldatei nicht, folgt Fehler
'FILE NOT
FOUND'.
Existiert die Zieldatei schon, folgt Fehler
'FILE
EXISTS'.
Sammelkopieren
Werden im Kommando keine Dateinamen angegeben, dann werden alle Dateien der
schon
FILE
EXISTS'
abgebrochen.
Beachten
Sie
die folgenden Unterschiede zwischen Sammelkopieren und BACKUP:
COPY
kann keine Direktzugriff-Sektoren kopieren, bringt also
u.U.
nicht die
ganze
gewünschte Information auf die Zieldiskette.
Die
Diskette wird durch
COPY
unter Umständen reorganisiert:
COPY
nimmt einen
häufige
net. Dies kann erwünscht sein, muß
es
aber nicht!
47
die Namen identisch sind. Beide Namen dürfen keine Jokerzeichen enthalten. Das
Quelldiskette auf die Zieldiskette kopiert. Existiert ein Quell-Dateiname
auf de r Zieldiskette ,
so
wird das Kommando mit der Fehlermeldung
'63
Dateinamen nach dem anderen aus dem Quell-Directory und kopiert die dazugehöri­gen Sektoren. Sollten die Sektoren auf der Quelldiskette also durch Änderungen
'in
alle Winde verstreut' sein, werden sie durch Copy wieder geord-
3.1.2
COPY
(BASIC-4)
Format:
COPY D
Iwl
,
"dateinamel"
TO D
lw2, "dateiname2"
, U gn
Einzelkopieren
COPY D
lwl
TO D
lw2
, U gn
Sammelkopieren
Parameter:
lwl lw2
dateiname2 gn
Quell-Laufwerk
Dateiname
Gerätenummer
lwl und lw2 können identisch sein.
dateinamel und dateiname2 können identisch sein, wenn
lwl und
lw2 verschieden
sind. (Auf einer Diskette können nicht zwei Dateien den gleichen Namen haben.)
gn
darf nur einmal angegeben
möglich
ist!
werden,
da
Kopieren nur innerhalb eines Gerätes
Beispiele:
COPY
D1,"DAT1"
TO
D0,"DAT2"
Kopiere
DAT1
auf Laufwerk
1
nach
DAT2
auf Laufwerk 0
COPY
DO,"DATALT"
TO
"DATNEU"
Kopiere DATALT nach DATNEU auf demselben
Laufwerk
QL=1
COPY
D(QL),(DN$)
Quell-Laufwerk
Kopiere
DATNAME
von 1
nach 0
TO D(1-QL),(DN$)
Falsch:
COPY
D0,"DAT1"
TO
"DAT1"
Die
Zieldatei auf demselben Laufwerk
darf nicht denselben Namen haben.
QL=1
COPY
DQL,DN$
TO
D1-QL,DN$
Quell-Laufwerk
Ausdrücke
müssen in Klammern stehen
48
dateinamel
Ziel-Laufwerk
Quell­Ziel-Dateiname
DN$="DATNAME"
DN$="DATNAME"
Dateiname
Dateiname Variablen und numerische
3.1.3 Copy
(Ko
mmandostring)
Format:
C
lwlrzielname = lw2:quellname
Einzelkopieren
C
lwl = lw2
Sammelkopieren
wobei:
lw2 = Laufwerknummer der Quelldatei
Beispiele (nach
OPEN
15,8,15):
PRINT#15, "C0:DATNEU=1:DATALT"
Eine Kopie der Datei 'DATALT'
vom Laufwerk
dem Laufwerk 0 abgelegt.
1
wird unter dem
Namen
'DATNEU'
auf Wenn DATALT auf 1 nicht existiert, folgt Fehler
62 FILE NOT
FOUND.
Wenn DATNEU auf 0 schon existiert, folgt Fehler
63 FILE
EXISTS.
PRINT#15,
"C0=1"
Alle Dateien
von
Laufwerk 1 auf Laufwerk 0 kopieren.
49
lwl = Laufwerknummer der
Zieldatei
3.2 Dateien Zusammenhängen:
CONCAT / Copy
Mit diesem Kommando können mehrere Dateien des gleichen Typs
zu
einer einzigen
Datei zusammengefaßt werden.
Das
bedeutet aber nicht,
mehreren
von
Kommando
zu
verbinden.
daß
dies eine Möglichkeit ist, BASIC- oder Assembler-
PRG-Dateien ist
es
sinnlos, PRG-Dateien mit diesem
REL-Dateien können
nicht
zusammengehängt werden. Wird
es
versucht,
meldet das
wenn eine
Floppy
'FILE TYPE
MISMATCH'. Diese Fehlermeldung taucht auch auf,
PRG
mit einer
SEQ
Datei verknüpft werden soll.
Kein Dateiname darf Jokerzeichen
enthalten.
Da
der Kommandopuffer des Floppys nur
40
Zeichen fassen kann,
ist
es
nur
möglich, Dateien mit Namen, die kürzer als
16
Zeichen sind, zusammenzuhängen.
Sind beide Dateinamen gleich lang, ist die maximale Länge
10
Zeichen. Bei
längeren Namen meldet ten wird.
das Floppy
'FILE NOT
FOUND',
da
ein Quellname abgeschnit-
Die
Zieldatei, also die
Datei,
an
die eine andere angehängt wird, wird dadurch
Datei existiert dagegen weiterhin zusätzlich in der alten
verändert,
Form.
sie existiert
angehängte
3.2.1 CONCAT
(BASIC-4)
Format:
CONCAT D lwl , "dateinamel"
TO D
lw2 , "dateiname2"
, U gn
Die Datei
"dateinamel"
auf Laufwerk
lwl wird an die Datei
"dateiname2"
auf Laufwerk lw2 angehängt.
Beispiele:
CONCAT D1,"DAT1"
TO
D0,"DAT2"
Die
Datei
DAT1
auf Laufwerk 1 wird an
die Datei
DAT2
auf Laufwerk 0 angehängt.
CONCAT D0,"DAT1"
TO "DAT2" Die
Datei
DAT1
auf Laufwerk 0 wird an
Laufwerk
Falsch:
N$="DATEI-INHALT1234" CONCAT D1,(N$)
TO
D0,(N$)
Dateiname ist
16
Zeichen lang
Die
Dateinamen sind
zu
lang
50
programme aus Zeigers
am
Anfang
mehr. Die
Teilprogrammen zusammensetzen
zu
können! Wegen des
nach dem Kommando in ihrer ursprünglichen Form nicht
die Datei angehängt.
DAT2
auf demselben
3.2.2
Copy
(Kommandostring)
Format:
C
lwl:ziel-name = lw2:quell-namel , Iw3:quell-name2
lwl, lw2, lw3 sind Laufwerknummern der jeweiligen Dateien.
Beispiele (nach
WEN
15,8,15):
PRINT#15, "C0:DATNEU=1:DATALT1,0:DATALT2
Eine Kopie der Dateien 'DATALT1' vom Laufwerk
1
und
Datei 'DATNELT
auf Laufwerk 0 zusammengefaßt.
'DATALT2'
von 0
wird zur
PRINT#15, "C1:DATALT1=1:DATALT1,0:DATALT2
Die
Datei DATALT2
von
Laufwerk
0
wird
an
die Datei
angekoppelt.
Die
alte Datei DATALT1
wird dadurch verändert.
DATALT1
auf Laufwerk
1
51
3.3 Dateien umbenennen:
RENAME / Rename
Mit diesem Kommando kann einer Datei ein neuer Name zugewiesen werden.
Diese Operation bezieht sich nur auf das Inhaltsverzeichnis und ändert
am
Inhalt
der Datei nichts.
Wenn der alte Name nicht existiert, folgt die Meldung
'FILE NOT
FOUND'.
Wenn
der neue Name schon existiert, folgt die Meldung
'FILE
EXISTS'.
Die
Dateinamen dürfen keine Jokerzeichen
enthalten.
Da es
sich
um
einen schreibenden Zugriff auf das Directory handelt, darf
PROTECT
ERROR'
gemeldet.
die
ON 3.3.1 RENAME
(BASIC-4)
Format:
RENAME D Iw , "dateinamel"
TO
"dateiname2"
, U gn
Parameter:
lw
dateiname2 gn
Laufwerksnummer, darf nur einmal angegeben werden
Gerätenummer
Beispiele:
RENAME Dl,"DATALT"
TO
"DATNEU"
Die
Datei DATALT wird in DATNEU
wie vorher
A$="DATALT"
RENAME D(LW),(A$)
TO
(B$)
Falsch:
RENAME D1,"DAT1"
TO
D0,"DAT2"
es
darf nur 1 Laufwerk angegeben
sein
52
Diskette nicht schreibgeschützt sein. Andernfalls wird
dateinamel
Quell-Dateiname Ziel-Dateiname
umbenannt alter Dateiname
B$="DATNEU"
neuer Dateiname
'26 WRITE
3.3.2 Rename
(Kommandostring)
Format:
R
Iwrneuer name = lwralter name
Iw = Laufwerk der Datei
Beide Male muß das gleiche Laufwerk angegeben
werden!
Beispiele (nach
OPEN
15,8,15):
PRINT
15,"R1:NEU.NAM=1:ALT.NAM"
Die
Datei 'ALT.NAM' auf Laufwerk
1
erhält den neuen
Namen
'NEU.NAM'
Falsch:
PRINT#15 "R1:NEU.NAM=0:ALT.NAM"
Beide Male muß das gleiche Laufwerk angegeben
werden!
53
3.4 Dateien löschen:
SCRATCH / Scratch
Mit diesem Kommando werden Dateien
von
der Diskette gelöscht.
Dabei wird der Name der Datei aus dem Inhaltsverzeichnis gelöscht und die von
nicht
gelöscht, er könnte also mit den Mitteln des Direktzugriffs noch gelesen werden.
Der
Platz der Datei im Inhaltsverzeichnis wird freigegeben, aber nicht aufge-
taucht
sie
an
der Stelle des Directory auf,
wo
vorher die gelöschte war.
Beim Löschen können entweder eindeutige Dateinamen angegeben, oder Jokerzeichen benützt werden.
Bei
den Jokerzeichen ist natürlich Vorsicht geboten. Solange man die Wirkung
gerne
noch weiterhin auf der Diskette gehabt
hätte!
Nach dem S-Kommando meldet das Floppy nach
'01 FILES
SCRATCHED'
die Anzahl der gelöschten FILE NOT FOUND'
gemeldet, sondern
'01 FILES
SCRATCHED
00'!
Da
durch
'S'
der Disketteninhalt verändert wird, darf der Schreibschutz nicht
'geklebt' sein.
Es
kann Vorkommen,
daß
beim Löschen nicht alle Blöcke freigegeben werden, die
freigegeben
werden.
Dateien, die mit einem Stern im Inhaltsverzeichnis gekennzeichnet sind, werden wie folgt behandelt:
(1)
Schreibdateien, die noch einen Kanal im Floppy
reservieren, die also
gerade bearbeitet werden, werden nicht gelöscht.
(2) Dateien, die irgendwann nicht richtig geschlossen wurden, werden gelöscht.
3.4.1
SCRATCH
(BASIC-4)
Format:
SCRATCH D lw , "name"
, U gn
Parameter:
lw name gn
Laufwerksnummer
Gerätenummer
mit Jokerzeichen
Wird der Befehl im Direkt-Modus eingegeben, fragt der Rechner nach, ob sicher ist mit:
man
ARE YOU
SURE?
Das
Kommando wird nur dann
an
das Floppy geschickt, wenn hier
'YES'
oder 'Y'
eingegeben
wird.
54
ihr belegten Blöcke i n der
füllt. Löscht man also eine Datei und speichert danach eine andere
BAM
freigegeben.
Der
Inhalt der Datei wird
ab, so
dieser Zeichen nicht völlig verstanden hat, sollte man sie in diesem Zusammen-
da
hang nicht verwenden,
dabei leicht Dateien gelöscht werden, die man
Dateien. Falls die angegebene Datei nicht existierte, wird nicht '62
eigentlich frei sein müßten. Mit
'COLLECT'
können auch diese Blöcke
Dateiname oder Namensmuster
Es
ist möglich,
bei
"name" mehrere Dateinamen durch Komma getrennt anzugeben,
solange der gesamte Dateiname
16
Zeichen nicht überschreitet.
Beispiele:
SCRATCH
Dl,"MISTDATEI"
SCRATCH
Dl,"MIST*"
Lösche MISTDATEI
in Laufwerk 1
MIST
beginnen
Falsch:
NA$="" SCRATCH
D1,(NA$)
Der
Dateiname darf nicht leer sein
LW=0 SCRATCH DLW,"DATEI"
Variablen müssen in Klammern stehen
3.4.2
Scratch (Kommandostring)
Format:
S
lwlrnamel , Iw2:name2
Es
kämen also mehrere Namen angegeben werden. Aber der Kommandostring
seine maximale Länge
von 40
Zeichen nicht überschreiten.
darf lwl, lw2 = Laufwerknummern der Dateien
Beispiele (nach
OPEN
15,8,15):
PRINT#15,"S0:MISTDATEI"
Vom Laufwerk 0 wird die Datei mit dem Namen 'MISTDATEI'
gelöscht.
PRINT#15,"S1:M?ST*"
Vom Laufwerk
1
werden alle Dateien gelöscht, deren Name mit
'M7ST'
beginnt,
wobei
'?'
für jedes beliebige Zeichen
steht.
PRINT#15,"S1:*"
Löscht alle Dateien auf Laufwerk
1.
Dieses Kommando braucht aber
u.U.
länger
als New (HEADER) ohne
ID,
obwohl
es
die gleiche Wirkung
hat.
55
Lösche alle Dateien in Laufwerk
1,
die mit
4. Proqrammbehandlunq
4.1 Programme laden:
DLOAD /
LOAD
Diese
BASIC-Befehle bewirken,
daß
die als Dateiname angegebene PRG-Datei in den
Speicher geladen wird. Diese PRG-Datei ist
bei
normalen Anwendungsfällen ein
BASIC-Programm, das in den BASIC-Speicher geladen wird
und dort ablaufen kann.
Allgemein kann mit
DLOAD/LOAD
ein beliebiger Speicherbereich geladen werden. Die
darauf
folgenden Bytes werden einfach Byte für Byte in den Speicher
kopiert.
Wird das im Dateinamen stehende Programm nicht gefunden oder meldet das Floppy
meldung
FILE NOT FOUND ERROR
aus.
Jokerzeichen
Bei
der Angabe des Namens kann man die Möglichkeiten der Jokerzeichen benutzen.
Werden solche Zeichen verwendet, wird die erste Datei geladen, die mit dem angegebenen Muster
übereinstimmt.
im Inhaltsverzeichnis
Hier ist Voraussetzung,
daß
die erste zutreffende Datei
sonst wird
FILE TYPE
MISMATCH
gemeldet.
eine
PRG
Datei
ist, 4.1.1
DLOAD
(BASIC-4)
Format:
DLOAD
"name"
, D
lw
, U gn
Parameter:
name
gn
Dateiname, muß PRG-Datei
sein
Gerätenummer
Wird
als Dateiname
angegeben,
wird die erste Datei
auf der Diskette
in Laufwerk 0 geladen.
Beispiele:
DLOAD"PROGl" DLOAD"PROG*",Dl
Lade Programm
PROG1 von
Laufwerk 0
das
mit
PROG*
beginnt
N$="PROG*" DLOAD(N$),Dl
wie vor, aber Programmname
in Variable
Falsch:
LW=1 DLOAD"PROG*",DLW
Variablen müssen in Klammern stehen
56
Anfangsadresse steht in den ersten beiden Bytes der PRG-Datei.
einen anderen Fehler
(z.B. FILE TYPE
MISMATCH), gibt der Rechner die Fehler-
Die
lw
Laufwerk
Lade
von
Laufwerk 1 das erste Programm,
Systemstart
Die
Taste SHIFT/RUN lädt das erste Programm der Diskette in Laufwerk
0
und
startet
zu
das
die
er benötigt.
Voraussetzung ist natürlich,
daß
die erste Datei eine PRG-Datei
ist.
4.1.2
LOAD
(normales BASIC)
Format:
LOAD
"name" , gn
name := ( laufwerknummer
:)
programmname
Von
'name' gibt
es
zwei Sonderformen, die unten erklärt sind.
gn
ist die Gerätenummer
Die
Laufwerknumm er einsc hl ießl ich des Doppelpunkts kann e ntfa llen.
Die
ange-
zuletzt
Laufwerk
gesucht.
Für
den Ausdruck 'name' gibt
es
zwei Sonderformen:
(1) (2)
name = * name = $ laufwerknummer
(:
dateiname (= typ ))
Fall 2 ist
bei
DIRECTORY
behandelt.
4.1.3
LOAD , 8
'*'
kann zwei verschiedene Wirkungen haben:
Solange noch keine Datei
von
der Diskette geladen wurde
(z.B.
gleich nach dem
ses
geladen
wird.
Wenn schon ein Programm geladen wurde, wird das Programm geladen, das zuletzt angesprochen wurde.
Wenn zusätzlich zum Stern noch das Laufwerk angegeben wird, wird in jedem Fall die erste Datei geladen:
LOAD "0:*" , 8
57
4.2 Programme abspeichern:
machen. Man muß nur als erstes Programm auf der Diskette ein Programm haben, dem jeweiligen Benutzer erlaubt, alle Programme und Hilfsprogramme
gebene Datei wird dann zuerst auf demjenigen Laufwerk gesucht, auf das zugegriffen wurde. Wird sie dort nicht gefunden, wird auf dem anderen
es
sofort. Dies i st eine komfort abl e Möglichkeit, eine n 'Systemstart'
zu
laden,
Einschalten), bewirkt 'LOAD"*",8',
daß
die erste Datei des Inhaltsverzeichnis-
DSAVE /
SAVE
Mit diesen Kommandos können BASIC-Programme
auf Diskette abgespeichert werden.
Auf
der Diskette, die im angegebenen Laufwerk steckt, darf noch keine Datei
mit
FILE
EXISTS'.
Der
Dateiname darf keine Jokerzeichen enthalten, sonst meldet das Floppy '33
SYNTAX ERROR'.
Zu
beachten ist,
daß
sich der Rechner nach dem Abspeichern immer mit
'READY'
Fehlerlampe
leuchtet.
Da
das Abspeichern ein schreibender Zug riff ist, darf der Schreibschutz
'geklebt' sein.
nicht
4.2.1
DSAVE
(BASIC-4)
Format:
DSAVE
"name"
, D
lw
, U gn
Parameter:
name
gn
Dateiname, darf noch nicht vorhanden sein
Gerätenummer
Beispiele:
DSAVE"PROGNAME" DSAVE"PROGl",Dl
Speichere
PROGNAME
auf Laufwerk 0
Speichere
PROG1
auf Laufwerk 1
N$="PROGl" DSAVE(N$)
Programmname
in Variable
wie vor
Falsch:
LW=1
DSAVE
N$,DLW
Variablen müssen in Klammern stehen
4.2.2
SAVE
(normales BASIC)
Bei 'SAVE'
muß unbedingt die Laufwerknummer angegeben werden. Man beachte diesen
Unterschied
zu
'LOAD'!
Format:
SAVE
"laufwerknummenprogrammname" , gn
Beispiel:
SAVE"0:PROG1",8
BASIC-Programm
"PROG1"
auf Laufwerk 0 abspeichern
58
dem angegebenen Namen existieren, sonst erfolgt die Fehlermeldung
zurückmeldet, auch wenn ein Floppy-Fehler aufgetreten ist, also die
Iw
Laufwerksnummer
'63
N$="PROGl"
5. Datenverkehr
5.1 Datenkanal öffnen:
DOPEN /
OPEN
Mit diesen Kommandos können Datenkanäle zum Floppy geöffnet werden.
Bei
'Allge-
meine Parameterbeschreibung
/
Sekundäradresse' ist kurz erklärt, was
es
mit den
Kanälen auf sich hat.
5.1.1
DOPEN
(BASIC-4)
Format:
Zur besseren Verständlichkeit wird die Format-Beschreibung in drei Fälle aufge-
Funktion des Befehls bestimmt.
(1) Öffnen einer SEQ-Datei zum
Schreiben
DOPEN
#la,"name"
,W , D
Iw
, U gn
Parameter:
#la
W
Logische Adresse
dieses
zum Schreiben Laufwerk Gerätennummer
D Iw U gn
Existiert
die Datei schon auf dem Laufwerk, ergibt sich die Fehlermeldung
'FILE
EXISTS'.
Mit diesem Befehl lassen sichnur SEQ-Dateien zum Schreiben öffnen. Wegen PRG oder
USR
Dateien lesen
Sie
bitte
bei OPEN
nach.
'W'
kann nicht durch eine Variable repräsentiert werden.
Beispiele:
DOPEN #5 ,
"TESTDATEI" , W
auf Laufwerk
0 ,
Gerät 8
DOPEN #5 ,
"TESTDATEI"
, W , Dl , U9
auf Laufwerk
1 ,
Gerät 9
Beide Kommandos öffnen die Datei 'TESTDATEI'
zum Schreiben unter
Adresse 5.
der logischen
59
teilt. Dies ist sinnvoll, weil das Vorhandensein oder Fehlen
name
Dateiname, darf keine Jokerzeichen
Zeichen gibt
geöffnet
an, daß
wird.
eine SEQ-Datei
enthalten
von
Parametern die
(2)
öffnen einer
SEQ-/PRG-
oder USR-Datei zum Lesen
oder
einer bereits vorhandenen REL-Datei zum Schreiben und Lesen
DOPEN
#la,,,name"
, D
Iw
, U gn
Parameter;
#la
gn
Logische Adresse
Gerätennummer
Dieser
Befehl
kann Dateien vom
Typ SEQ,PRG
oder
USR
zum Lesen öffnen.
Der
Typ
muß nicht angegeben werden, die Angabe des Dateinamens
ist eindeutig.
Ist die Datei eine REL-Datei, kann sie gelesen und beschrieben werden.
Sie
muß
allerdings schon vorher eingerichtet worden sein mit der Möglichkeit (3).
Ist die Datei nicht vorhanden, meldet das Floppy
'FILE NOT
FOUND'.
Beispiel:
DOPEN #3 , "NAME" , Dl , U9
Datei
NAME
unter logischer Adresse
3
auf Laufwerk
1 von
Gerät
9
zum Lesen öff-
Typ REL
ist.
(3) öffnen einer REL-Datei
DOPEN
#la,"name"
, L
rl
, D
lw
, U gn
Parameter:
#la name
gn
Logische Adresse
Datei
Gerätennummer
Ist die REL-Datei
noch nicht vorhanden, wird sie mit der angegebenen Recordlänge
eingerichtet.
Die
Recordlänge kann Werte zwischen 2 und
234
haben.
Werden als Recordlänge Werte kleiner als
1
oder größer als
254
angegeben, meldet
der Rechner ILLEGAL QUANTITY ERROR.
Ist die REL-Datei schon vorhanden, wird sie geöffnet und die angegebene Record-
überein,
nicht beim
nächsten Öffnen ein
FILE OPEN ERROR
gemeldet
wird.
60
name Iw
nen, wenn ihr
Dateiname Laufwerk
Typ SEQ, PRG
oder
USR
ist, bzw. zum Lesen und Schreiben, wenn der
Dateiname
rl
lw
Recordlänge dieser REL­Laufwerk
länge mit der Recordlänge der Datei verglichen. Stimmen diese nicht meldet das Floppy geöffnet.
Sie
muß aber im Rechner vom Programm geschlossen werden,
'50 RECORD NOT
PRESENT'.
Die
Datei ist dann im Floppy
da
sonst
Beispiel:
DOPEN #3 ,
"DIR-DATEI"
, L 30
Unter logischer Adresse
3
die neue REL-Datei 'DIR-DATEI' mit Satzlänge
50
zum
Schreiben und Lesen öffnen.
LN=150 DOPEN #3 ,
"name" , L(LN)
Wie
vor, aber Satzlänge
150
Bytes und als Variable angegeben.
Zu
REL-Dateien
Beim Öffnen einer REL-Datei muß nicht angegeben werden,
ob
sie zum Schreiben
gelesen
werden, als auch in die Datei geschrieben werden.
Nach dem Öffnen wird der Record-Zeiger auf den ersten Record der Datei gesetzt. D.h.
die nächste Eingabe
von
dieser Datei bringt den ersten Record.
Wird eine REL-Datei neu eingerichtet und noch nicht beschrieben, werden für sie
Organisation.
Anzahl offener Dateien im Floppy
Jede offene Datei belegt im Floppy eine bestimmte Anzahl
von
Puffern. Die
möglichen
offenen Dateien in einem Floppy.
Eine REL-Datei belegt
3
Puffer, jede andere Datei als
REL
belegt zwei Puffer.
Das
Floppy hat insgesamt
10
Puffer
zur
Verfügung.
Damit ergeben sich die Maximalzahlen
an
geöffneten Dateien zu:
5
SEQ
1 REL
und 3 SEQ
Zur Sekundäradresse
Sie
müssen sich beim Gebrauch
von DOPEN
nicht
um
die Zuweisung der
SA
kümmern,
da
dies der Rechner
bei
der Ausführung des Befehls
selbst macht.
Wenn
Sie
aber noch andere Kanäle zum Floppy öffnen, die nur mit
OPEN
funktio-
nicht
bringen.
DOPEN
beginnt die Zuweisung der
SA bei
SA=2. Jedes weitere
DOPEN
zählt die
SA um
die
nächste freie
SA
verwendet.
61
oder zum Lesen geöffnet wird. Nach dem Öffnen kann sowohl aus der Datei
zwei Blöcke belegt, davon ein Block für Daten und ein Block für die interne
Gesamtanzahl der Puffer begrenzt damit die Anzahl der gleichzeitig
3
REL
2 REL
nieren, sollten
und 2 SEQ
Sie
wissen, welche
SA's
das
DOPEN
vergibt, damit
Sie
dieselben verwenden und damit die Kanalorganisation des Floppys durcheinander-
eins hoch. Ist diese
SA
schon belegt, wird sie nicht verwendet, sondern
5.1.2
OPEN
Wegen der generellen Beschreibung
von OPEN
schlagen
Sie
bitte im Rechnerhandbuch
nach.
Format
OPEN
la,gn,sa,dn
la
sa dn
Logische Adresse
Sekundäradresse/Kanalnummer Dateiname/Kommandostring
s.
AllgemeineParameterbeschreib
" " la, gn
und
sa
müssen angegeben werden.
Die
zulässigen Werte und ihre Bedeutung
sind
bei
'Allgemeine Parameterbeschreibung'
zu
finden.
Dateiname (dn) / Kommandostring
Der
vierte Parameter
enthalten:
des OPEN
ist ein String.
Er
kann verschiedene Informationen
-
-
Eine Dateidefinition
Ein
Kommando
(s.
unten)
(s.
Übermittlung des Kommandostrings)
Die
Möglichkeit, eine
Dateidefinition anzugeben, soll im folgenden behandelt
werden. Durch Angabe eines Dateinamens im
OPEN
eröffnet man eine serielle Datei
zur
Datenverkehr'
zu
finden. Hier soll nur der Inhalt
von dn
erklärt werden.
Format
von dn (4.
OPEN-Parameter)
(laufwerk
:)
name
(,
typ) , Zugriff
(,
länge)
laufwerk
Zugriff
Laufwerknummer
Zugriffsart
0
oder 1
schreiben/lesen)
1 ...
254
länge
Record-Länge
Hinweise
zum Format:
Wird das Laufwerk nicht angegeben, muß auch der Doppelpunkt
entfallen.
Im String dürfen keine Blanks enthalten sein,
es
sei denn, sie gehören
Dateinamen.
zum
Wenn
DN
aus mehreren Strings zusammengesetzt wird, dara uf achten,
daß
die
Kommas
vor Typ,
Zugriff und Länge nicht vergessen
werden!
62
gn
-
Eine Puffernummer
des Typs
Gerätenummer
SEQ
(oder auch
(s.
Direktzugriff)
PRG, USR)
zum Lesen oder Schreiben. Einzelheiten
Behandlung solcher Dateien sind im Abschnitt 'Dateibehandlung und
name typ
Dateiname Typ
s.
Dateiname
oder
P W
(schreiben) oder oder A (Append = anhängen)
U,
Ersatzwert = SEQ
L (REL
=
Laufwerknummer
Beim schreibenden Zugriff muß das Laufwerk angegeben werden, beim Lesen kann es
(einschließlich des Doppelpunktes!) entfal l en. Wird die Laufwerknummer beim
Lesen nicht angegeben, wird die Datei auch auf dem anderen falls sie auf dem ersten nicht gefunden
wird!
Laufwerk gesucht,
Dateityp
In den beiden häufigsten Fällen kann die Angabe des Typs
entfallen:
SEQ:
Wird anstatt des Typs
W
(schreiben) angegeben, wird
SEQ-Datei
eingerichtet:
automatisch
eine OPEN
2,8,2,"1:SCHREIBDATEI,W"
REL:
Wird
anstatt
des Typs
L
(Länge)
angegeben,
wird automatisch
eine REL-Datei
eingerichtet:
OPEN
2,8,2,"1:S/L-DATEI,L,"+CHR$(50)
(Recordlänge
50
Bytes)
Will man eine PRG-Datei öffnen,
kann auch hier auf die Angabe des
Typs
verzichtet werden, wenn Kanalnummer 0 (lesen) oder 1 (schreiben) gewählt wurde:
OPEN
2,8,0,"PROGRAMM"
Kanal
0
('LOAD') stellt automatisch 'lesen' und
'P'
ein, unabhängig davon,
Kanal 1 ('SAVE')
automatisch 'schreiben' und
'P'
ein!
was
stellt
Damit ist die Angabe des Typs überhaupt nur nötig, wenn entweder eine PRG-Datei
Datei
gewünscht
wird.
Beim Lesen
von
Dateien wird der
Typ
automatisch dem Inhaltsverzeichnis entnom-
men.
Zugriffsart
Wird die Zugriffsart nicht angegeben,
so
wird Lesen angenommen.
W
(write) richtet eine
SEQ
(oder
PRG
oder
USR)
Datei zum Schreiben ein.
L
(length=Länge) bewirkt,
daß
erstens eine (neue)
REL
Datei eingerichtet wird
und zweitens der nachfolgende Parameter als Record-Länge
interpretiert wird.
A
(append = anhängen) bewirkt,
daß an
eine schon bestehende Datei weitere Daten
angehängt werden können
(s.
APPEND).
Recordlänge
Nach
L
als Zugriffsart muß durch Komma getrennt ein Byte folgen,
daß
die
Recordlänge
angibt:
OPEN
2,8,2,"1:DATEINAME,L,"+CHR$(50)
(Recordlänge
50
Bytes)
63
als dritter und vierter Parameter
von DN
unbedingt eine Kanalnummer zwischen
angegeben wurde! Entsprechend
2
und
14
haben soll, oder eine USR-
Beispiele
OPEN
LA,8,KA,LW$+":"+NA$+","+TY$+","+LS$
Dieses Beispiel zeigt einen sehr allgemei n en Aufbau, in dem jeder Parameter über eine eigene Variable eingestellt werden kann:
Der
logischen Datei LA
wird (vom Rechner-Betriebssystem)
der Kanal
KA
zugeordnet.
Diesem Kanal wird (vom Fioppy-Betriebssystem)
zugeordnet.
OPEN
LA,8,KA,"0:LESEDATEU,S,R"
OPEN
LA,8,KA,"0:LESEDATEI1"
identische Kurzform
Hier soll die Übergabe
aller
Dateidaten
in einer einzigen
Stringkonstanten
gezeigt werden:
Auf
Laufwerk
0
wird die SEQ
mit
gegriffen werden!
-
Datei 'LESEDATEI1' zum Lesen geöffnet. Auf
'INPUT#' oder
'GET#',
aber nicht mit
'PRINT#'
zu-
OPEN
LA,8,KA,"1:SCHREIBDATEU,P,W"
Auf
Laufwerk
1
wird die Datei SCHREIBDATEI1
als
PRG
-Datei zum Schreiben
angemeldet. Auf
diese Datei
kann
dann nur
mit 'PRINT#', aber nicht
mit 'INPUT#' oder
'GET#'
zugegriffen werden!
OPEN
3,8,2,"1:"+N$+",P,W"
Auf
dem Laufwerk
1
des Floppy
8
wird über den
Schreiben über
'PRINT# 3,..'
angemeldet.
Kanal
2
die
PRG
Datei
N$ zum OPEN
2,8,2,"1:DATEINAME,L,"+CHR$(50)
Die
REL-Datei 'DATEINAME'
wird mit einer Recordlänge
von 30
Bytes eingerichtet.
64
Falsche
auf dem Gerät 8
auf dem Laufwerk LW$
die Datei dem Namen NA$, dem und dem Zugriff LS$
diese Datei kann dann nur
Typ
mit
TY$
OPEN
Statements:
OPEN
A$,B,C,N$
falsch,
weil die ersten
drei Parameter
keine
Strings
sein dürfen! Ergibt
SYNTAX
ERROR (IN
..)
OPEN
l,8,7,"0:'^N$i",S,W"
falsch, weil
es
sich
um
eine Stringverknüpfung
handelt!
Die ';'
müssen durch
'+'
ersetzt werden.
und nicht
um
ein 'PRINT'
OPEN
3,8,2,"1:"+N$+^P,W"
falsch, weil das Komma
vor P
fehlt (falls es
nicht in
N$
enthalten
ist). OPEN
2,8,2,"0:DATEINAME,L,"+"50"
falsch, weil
50
als 1 Byte und nicht als Ziffernstring übergeben werden muß.
65
5.2 Datei weiterbeschreiben
APPEND / OPEN
Dieses Kommando wirkt im Rechner genauso wie ein
DOPEN/OPEN
auf eine serielle
Dateiende
ab
dem Ende
der Datei weiter.
Damit besteht die Möglichkeit, zusätzliche Daten in eine schon geschlossene serielle Datei
(SEQ, PRG, USR) zu
schreiben.
Das
Kommando kann nur auf schon bestehende Dateien angewandt werden, sonst
meldet das Floppy
'63 FILE NOT
FOUND'.
Das
Kommando kann natürlich nur zum Schreiben verwendet werden.
Der
Schreib-
schutz darf deshalb auch nicht geklebt sein.
5.2.1
APPEND
(BASIC-4)
Format:
APPEND
#la ,
"name"
, D
lw
, U gn
Parameter:
la name
gn
Logische Adresse
Gerätenummer
Beispiel:
APPEND
#3 , "DATEI" , Dl
An
die Datei
'DATEI'
mit der logischen Adresse
3
auf Laufwerk
1
sollen weitere
Daten angehängt werden.
5.2.2
OPEN
(normales BASIC)
Format:
OPEN
la
, gn , sa , dn
Alle Par a m eter sind
so
definiert, wie
bei OPEN
beschrieben. Bei m Parameter
'Zugriff' wird A eingetragen (anstatt W oder L).
Beispiel:
OPEN
2,8,2,"1:ANHAENGEN,A"
An
die Datei 'ANHAENGEN' auf Laufwerk
1
können mit PRINT#2 weitere Daten
angehängt werden.
66
Datei zum Schreiben. Im Floppy werden aber die Schreibzeiger auf das gesetzt.
Die
nächste Sc hr eib o per at ion (PRINT#) auf diese Dat ei schreibt
lw
Dateiname Laufwerk
5.3 Datenkanäle schließen:
DCLOSE /
CLOSE
'DCLOSE/CLOSE'
meldet die Datei
ab,
die durch 'DOPEN/OPEN'
der logischen Adresse
la zugeordnet wurde. Man sagt auch, die Datei wird geschlossen. Jedem
Öffnen
fende Datei nicht
mehr gebraucht wird.
'DCLOSE/CLOSE'
wirkt sowohl auf das Rechner-Betriebssystem, als auch auf das
Floppy
DOS.
Im Rechner wird dadurch die betreffende logische Dateinummer wieder
freigegeben. Im Floppy wird der entsprechende Kanal Wirkungen gelten für schreibenden und lesenden
Zugriff.
freigegeben. Diese beiden
Lesender
Zugriff:
Lesedateien werden im Rechner und im Floppy einfach
sich
diese immer zum Schreiben und Lesen geöffnet werden.
geschlossen, wobei an
nicht auf REL-Dateien,
der
da Schreibender
Zugriff:
Beim schreibenden Zugriff auf serielle Dateien sind folgende Wirkungen beachten:
zu
(1) Der
letzte Datenblock wird vom Puffer im Floppy auf die Diskette geschrieben
und als letzter Block der Datei gekennzeichnet.
(2) Die BAM
(Verzeichnis der belegten
/
freien Blöcke der Diskette) wird auf die
auf
der Diskette als belegt gekennzeichnet.
Dateien, die nicht mehr gebraucht werden, sollten so fo rt geschlossen werden. Damit vermeidet man zwei böse Konsequenzen:
(1) Wie bei
'Datenkanal öffnen' erwähnt, dürfen gleichzeitig nicht mehr als 10
Dateien geöffnet sein. Versuchen
Sie,
eine
11
Datei
zu
öffnen, erhalten
Sie
die
Fehlermeldung
TOO MANY
FILES.
(2) Wenn eine serielle Datei beschrieben wurde und nicht irgendwann
vor
Pro-
grammende geschlossen wird, wird diese Datei auf der Diskette nicht geschlossen.
Die
Folgen
von 2
sind:
Solche Dateien können nicht gelesen oder kopiert werden.
Die
betreffende Datei
erscheint
'Bereinigen
nicht
zugriffs gelesen werden!
Es
macht keinen Unterschied,
ob
die Datei durch DOPEN/OPEN oder durch APPEND geöffnet geschlossen wurden, doch noch zerstört werden.
67
REL-Dateien:
einer Datei im Programm muß ein Schließen zugeordnet werden, sobald die betref-
Datei selbst nichts verändert wird. Dies bezieht
Diskette geschrieben. Erst damit sind die
im Inhaltsverzeichnis mit einem der Diskette (COLLECT)' vernichtet. auf die Diskette geschrieben, er könnte also auch nicht mit Methoden des Direkt-
wurde. Mit APPEND können also Dateien, die schon einmal ordnungsgemäß
Der
von
dieser Datei belegten Blöcke
'*'
und wird beim nächsten
letzte angefangene Datenblock wird
REL-Dateien werden schon während der Bearbeitung blockweise auf dem
aktuellen
wieder
der
Datei auf der Diskette in Ordnung
gebracht.
Wird eine REL-Datei nicht geschlossen, wird der letzte zugegriffene Block nicht
auf
alle
die Diskette geschrieben. Damit fehlt auf der Diskette diese Information.
Aber
von
dieser Datei belegten Blöcke sind in der
BAM
als belegt gekennzeichnet.
Dadurch können diese Blöcke nicht mehr überschrieben werden.
Es
ergibt sich also möglicherweise kein großer Verlust, wenn eine REL-Datei
nicht ordnungsgemäß abgeschlossen
wird.
Wichtige Hinweise
Wird der Fehlerkanal (15) geschlossen,
so
schließt das Floppy
DOS
alle anderen
noch
Datenkanäle
nicht
geschlossen werden.
Außerdem schließt das Floppy alle Dateien eines Laufwerks, wenn die Diskette
nicht
also
die Laufwerkleuchte brennt.
Durch
'LOAD'
oder
'RUN'
wird die Zuordnungstabelle
von
logischen Adressen zu
dadurch
'vergessen' wurde, aber kein ordnungsgemäßes
'CLOSE'
durchgeführt wurde.
Dies gilt nicht, wenn
'LOAD'
im BASIC Programm ausgeführt wird (OVERLAY). In
diesem Fall bleiben alle Dateien geöffnet.
Wenn
Sie
Floppy-Dateien trotzdem noch schließen möchten, nachdem sie im Rechner
öffnen
und wieder schließen.
Wenn
Sie
eine Lesedatei geöffnet haben und versuchen, unter dem gleichen Kanal
schließen,
aber
trotzdem beliebig großen Ärger
am
Hals. Wenn
Sie
mit
OPEN
arbeiten, müssen Sie
also streng
darauf
achten,
den gleichen
Kanal
nicht
gleichzeitig
zwei
verschiedenen Dateien zuzuordnen!
Den
Befehl
CLOSE
schlagen
Sie
bitte im Rechnerhandbuch nach.
68
Stand gehalten. Auch die
BAM
wird
bei
jedem Zugriff auf einen neuen Block
aktualisiert. Beim Schließen der REL-Datei wird de r letzte Block zugriff in
Die
Anzahl belegter Blöcke dieser Datei wird ebenfalls nicht aktualisiert.
Kanäle ebe nfall s. offen, wodurch durch
DCLOSE
herausgenommen wird.
Für es zu oder
den Rechner sind d i e entsprechenden Dateien aber
Fehlermeldungen kommen kann.
CLOSE
Sie
geschlossen wurden, darf also der Fehlerkanal
müssen also darauf achten,
Ehe
nicht alle
daß Sie
die Diskette
zum 'Anschauen' herausnehmen dürfen solange Dateien geöffnet sind, solange
Geräten und Sekundäradressen gelöscht. geschlossen. Dies trifft aber nicht für das Floppy
schon geschlossen sind, können
Sie
Für
den Rechner sind alle Dateien
dies tun, indem
zu, da
Sie
den Kommandokanal
eine Schreibdatei anzumelden, ohne di e Lesedatei dur ch erhalten
Sie
weder vom Rechner, noch vom Floppy eine Fehlermeldung, haben
eben nur die Tabelle
CLOSE zu
DCLOSE
(BASIC-4)
5.3.1
Format:
DCLOSE #
la
, U gn
Parameter:
# la U gn
Logische Adresse Gerätenummer
DCLOSE
kann
mehrere Dateien auf einem Gerät mit einem Befehl schliessen.
Folgende Möglichkeiten gibt es:
(1)
Ohne einen Parameter wird für die Gerätenummer der Ersatzparameter
8
genom-
men und alle Dateien auf Gerät 8 geschlossen.
Beispiel:
DCLOSE
Schließe alle Dateien auf dem Gerät
Nr. 8
(2) Wird eine Gerätenummer angegeben, werden alle Dateien auf diesem Gerät
geschlossen.
Beispiel:
DCLOSE U9
Schließe alle Dateien auf dem Gerät
Nr. 9
(3) Bei
Angabe
einer Logischen Adresse wird nur die Datei mit dieser la
geschlossen.
Beispiel:
DCLOSE #3
Schließe die Datei mit der Logischen Adresse 3
(4) Bei
Angabe der Logischen Adresse und Gerätenummer wird die Gerätenummer
ignoriert und nur die Datei mit der angegebenen la geschlossen,
da
die la ein-
deutig
ist.
Beispiel:
DCLOSE
#3,U10 Schließe die Datei mit
der Logischen Adresse 3,
ohne Berücksichtigung, auf welchem Gerät diese
ist.
Die
Angabe
von
la und
gn
ist also sinnlos.
69
5.4 Record-Zeiger positionieren:
RECORD /
Position
Dieses Kommando positioniert den Record-Zeiger einer REL-Datei auf ein Byte im angebenen Record (Datensatz).
Da
REL-Dateien in wahlfreier Reihenfolge gelesen und beschrieben werden können,
muß
Record gesetzt werden.
Record-Zeiger auf neuen Block setzen
Wird
der Record-Zeiger
hinter den
letzten
beschriebenen Record
der Datei
gesetzt, gibt
es
zwei Möglichkeiten:
(1)
Wird für den neu benötigten Record kein neuer Block auf der Diskette benö-
Information
abgespeichert ist.
Es
bringt also auch keine Fehlermeldung.
Eingabe:
Bei
einer nachfolgenden Eingabe mit 'INPUT#' wird ein Zeichen mit dem Code 255
übertragen.
Ausgabe:
Ein 'PRINT#'
auf diesen Record legt die Daten in diesen neuen Record richtig ab.
(2) Wird für den angewählten Record ein neuer Block auf der Diskette benötigt,
meldet das Floppy:
'50, RECORD NOT
PRESENT'.
Eingabe:
Wird danach ein
INPUT#
auf die Datei durchgeführt, bleibt der Rechner in der
Eingabe 'hängen' und ist damit 'gestorben'.
Ein GET#
bringt den Code
13
(CHR$(13)) und den Status 64.
Wichtig:
Vor
einer Eingabe aus einer REL-Datei muß der Record-Zeiger gesetzt und danach
die Floppy-Statusmeldung
abgefragt
werden.
Meldet
diese
'50,RECORD
NOT
PRESENT',
darf die Eingabe
nicht durchgeführt werden!
Ausgabe:
Wird nach '50,RECORD
NOT
PRESENT' mit
PRINT#
auf diesen Block geschrieben, so
zwischen
dem letzten existierenden Record und dem neuen Record benötigt werden.
Es
ist auch möglich, beliebig viele leere Records dadurch einzurichten. Stellt
meldet
es
den Fehler
'52, FILE TOO
LARGE'.
70
vor
jeder
Ein-
oder Ausgabe-Operation der Record-Zeiger auf den gewünschten
tigt, merkt das Floppy nicht,
daß
auf diesem Record noch keine
werden vom Floppy soviele neue Blöcke für diese Datei reserviert, wie
das Floppy fest,
daß
auf der Diskette nicht genügend freie Blöcke sind,
5.4.1
RECORD
(BASIC-4)
Format:
RECORD #
la , r , b
Parameter:
# la r
Logische Adresse der Datei
Werte
von 1
bis 254, Ersatzparameter ist 1
b Die Parameter
in diesem Befehl sind stellungsabhängig.
Sie
müssen also
an
den
angegebenen
Stellen stehen.
Dieser Befehl positioniert den Record-Zeiger der REL-Datei mit der Logischen Adresse la auf das b-te Zeichen im Record r.
Hat
b
einen Wert, der größer ist als die Recordlänge dieser REL-Datei, meldet
das Floppy
'51
OVERFLOW
IN
RECORD'.
Liegen r oder b nicht im erlaubten Bereich, meldet der Rechner
ILLEGAL QUANTITY
ERROR.
Beispiele:
RECORD
#1,200
positioniere Recordzeiger der Datei mit la=l auf 200
LA=1
RECORD
#(LA),RZ
wie vor, mit Variablen
Falsch:
RECORD #1
die Angabe des Recordzeigers
fehlt
RZ
= 300
RECORD
#1,SR,RZ
Recordzeiger 300
die Variablen sind vertauscht (stellungsabhängig!)
71
RZ=200
Record-Nummer in dieser REL-Datei
Werte
Stellung im Record
von 1
bis 65535
SR
= 100
Stellung im Record soll
100
sein
Position (Kommandokanal)
5.4.2
Format:
P sa
rl rh bp
Sekundäradresse für Position (Kanalnummer) + 96
Byte-Position
sa
rl
rh bp
Alle vier Parameter sind Byte-Parameter, müssen also
z.B.
mit Hilfe
von
CHR$
erzeugt werden:
"P"+CHR$(SA)+CHR$(RL)+CHR$(RH)+CHR$(BP)
Sekundäradresse
Bitte beachten entsprechenden
der einzige
über die la!
Sie, daß sa
und
Fall,
daß
auf
die Sekundäradresse, also die Kanalnummer der
Dies
eine Datei über die
sa
zugegriffen wird und nicht
Zum tatsächlichen Wert der
sa
muß
96
addiert werden. Wenn
Sie
also die Datei
durch
OPEN
1,8,2,...
,
also auf sa=2 geöffnet wurde, müssen
Sie
hier
bei sa
Wert
98
angeben.
den Recordnummer
Die
Recordnummer muß in zwei Bytes zerlegt werden,
da
mit einem Byte nur
Werte darstellbar sind, eine
REL-Datei aber mehr als
256
Records haben kann.
256
Wenn r die absolute Recordnummer ist, errechnen sich die beiden Teil-Bytes folgt:
wie
rh =
INT
(r / 256)
rl = r - rh * 256
Byte-Position
Der
Wert für die Byte-Position kann
von 1
bis
254
reichen.
Beispiel (nach
OPEN
15,8,15):
Sie
haben
eine REL-Datei mit
der Kanalnummer
5
offen
und wollen
den Record/Byte-Zeiger auf Record 1000, Byte
15
stellen:
RH = INT
(1000 / 256)
RL
= 1000
- RH
* 256
PRINT#15,"P"+CHR$(5+96)+CHR$(RL)+CHR$(RH)+CHR$(15)
72
6. Fehlermeldung und Fehlerbehandlung
Record-Nummer-Low-Byte Record-Nu mmer-High-Byte
ist
Datei ist
nicht ihre logische Adresse wie
bei RECORD.
6.1 Fehlertabelle
!
DS F ! !
DS$ ! F$ ! Fl F2
Keine Fehler
00 01
OK FILES
SCRATCHED
0 A
0 0
Alles in Ordnung Fl
enthält Anzahl gelöschter Dateien
Lesefehler
20
21
71
READ
ERROR
ERROR ERROR ERROR ERROR ERROR
DIR
ERROR
T T T T T
0
S S S S S
0
Kein Block 'header'
Datenblock
Directory Fehler
Schreibfehler
25 28
WRITE
ERROR
WRITE
ERROR
T T
S S
Schreib-
/
Prüffehler
Datenblock
zu
lang
Syntax Fehler
30
39
SYNTAX ERROR SYNTAX ERROR
SYNTAX ERROR SYNTAX ERROR SYNTAX ERROR SYNTAX ERROR
0
0
Allgemeine Syntax
Kommando
Ungültiges Kommando
0
0 Bedienungsfehler
T T T T
T T
26
66
WRITE
PROTECT ON
PRESENT
DRIVE NOT
READY
S S
S S
0
s
0
s
0
Schreibschutz 'geklebt'
Unerlaubte Spur oder Sektor
67
74
T
T
0
Unerlaubte Spur oder Sektor
Laufwerk enthält keine Diskette
73
6.2 Allgemeine Hinweise
22 23 24 27
READ READ READ READ READ
Kein Synchronisationszeichen Datenblock nicht vorhanden Prüfsummenfehler im Byte wurde falsch dekodiert
T
Prüfsummenfehler im 'header'
S
31 32 33 34
29 50 51 52 60 61 62 63 64 65
70 71 72 73
DISK ID
RECORD NOT
OVERFLOW FILE TOO WRITE FILE FILE NOT FILE NOT FILE FILE TYPE NO
BLOCK ILLEGAL TRACK AND
ILLEGAL NO
CHANNEL DIR DISK CBM
EXISTS
SECTOR
ERROR
FULL
DOS
MISMATCH
IN
RECORD
LARGE
OPEN OPEN FOUND
MISMATCH
SYSTEM T OR S
V2.5
Ungültiges
0
0
Zu
0
0
0
0
0
0
s
T
0
0
0
0
0
0
0
0
0
langes Kommando Ungültiger Dateiname Dateiname
Disk
ID Record ist nicht vorhanden Record ist Recordnummer ist Bereits Datei zum Schreiben geöffnet Datei ist nicht 'offen' Datei wurde nicht gefunden Datei existiert bereits Dateitypendurcheinander Kein Block
fehlt
stimmt nicht überein
zu
kurz für die Daten
zu
hoch
frei
s
s
0
T 0
Kein Kanal BAM
ist defekt
s
Diskette voll Meldung der DOS-Version
0
frei
zur
Fehlermeldung
Bei
der Ausführung
von
Floppy
-
Kommandos kann
es zu
Fehlern kommen. Dabei gibt
PROTECT
wie
etwa der Fehler 25.
Die
Fehler- bzw. Zustandsmeldungen des Floppy können über den Fehlerkanal abge-
fragt werden.
Wenn ein Fehler auftritt, wird dies durch die
Direktmodus interessant sein. Sobald Floppy -
Fehlerlampe zwischen den beiden
Kommandos
von
Programmen aus
gegeben werden, empfehlen wir, grundsätzlich nach dem Kommando die Fehlermeldung einzulesen,
um
den Benutzer möglichst schnell auf Fehler hinweisen
zu
können.
Da
die meisten Fehlermeldungen durch ein neues Kommando gelöscht werden, muß
Dabei sind zwei Möglichkeiten
zu
unterscheiden:
(1) Die
Fehlermeldung wird unmittelbar nach dem jeweiligen Kommando gelesen.
(2) Die
Fehlermeldung wird unmittelbar
vor
dem nächsten Kommando gelesen.
Die
erste Möglichkeit ist im Programm einfacher
zu
realisieren, hat aber den
Kommando
Ende
ist.
Die
zweite Möglichkeit bietet den Vorteil,
daß
der Dialog weiterlaufen kann,
Fehler
als
im ersten Fall.
6.2.1
Die
Bestandteile der Fehlermeldung
Die
Fehlermeldung besteht aus vier Teilen. Zuerst wird
Fehler
diese Angabe sinnvoll
ist.
die Fehlemummer (F)
folgenden
aufgetreten ist, soweit
6.2.2
Lesen der Fehlermeldung durch
DS
und
DS$ (ab
BASIC-4)
Bei
BASIC-4 stehen die beiden
der beiden
dem
wurde.
Variablen-Funktionen
DS
und
DS$ zur
Verfügung.
Fehlermeldung
letzten Aufruf eine Floppy-Operation durchgeführt
DS
enthält die Fehlernummer und
DS$
die gesamte Fehlermeldung (einschließlich
der Fehlernummer).
DS
und
DS$
holen automatisch die Meldung des zuletzt angesprochenen Gerätes
Funktion bearbeiten.
74
es
Fehler, die zwangsläufig und vorhersehbar eintreten, wie etwa
ERROR.
Daneben können aber auch Fehler auf treten, die zufälliger Natur sind,
WRI TE
Laufwerken angezeigt. Dieser Hinweis dürfte
allerdings nur beim Arbeiten im
nach jedem einzelnen Kommando die Fehlermeldung gelesen und ausgewertet werden.
Nachteil, ausgeführt h at.
während das Floppy arbeitet.
daß
der Anwender warten muß, bis das Floppy das betreffende
INPUT#
wartet nämlich, bis die betreffende Operation
Da
das Programm aber dann 'rückwirkend' auf
zu
reagieren muß, wird die Struktur des Dialogteils erheblich anspruchsvoller
gemeldet, dann der zugehörige englische Klartext (F$). Zahlen geben Spur
Jeder Aufruf einer
(Fl)
und Sektor
(F2) an, wo
der
Variablen bewirkt,
daß
Die
beiden
die Floppy-
gelesen wird, sofern seit
ein.
Sie
können damit ohne weiteres mehrere Floppy-Geräte mit die ser einen
6.2.3
Lesen der Fehlermeldung mit
INPUT#
(nicht nötig
ab
BASIC-4)
Bei
BASIC-3 kann die Fehlermeldung nicht im Direktmodus, sondern nur im BASIC
Fehlerkanal (sa=15) durchgeführt wurde.
Der
Klartext
(2.
Meldung) muß in eine Stringvariable gelesen werden, die drei
gebracht
werden:
10 INPUT# 15, F, F$, Fl, F2
Durch
20 PRINT F; F$; Fl; F2
kann die Meldung auf den Bildschirm gebracht werden.
6.2.4
Fehlerbehandlung
Wenn vom Programm die weitere Fehlerbehandlung durchgeführt wird, reicht
es,
nur
Fehlermeldungen
verschiedene Fehlerbehandlungsroutinen verzweigt
werden.
6.3 Ursachen und Zusammenhänge
Im Folgenden sind die einzelnen Fehlermeldung beschrieben.
Die
'Fehlermeldungen' kann man aufteilen in die beiden 'Zustandsmeldungen'
0
und
1,
die Lesefehler, Schreibfehler, Syntaxfehler und Bedienungsfehler.
6.3.1
Lesefehler
Bei
Lesefehlern kann man mehrmals versuchen, die Datei
zu
lesen. Dabei kann
Einlegen sehr vorsichtig vorzugehen.
In jedem Fall sollte
bei
Lesefehlern sofort alles kopiert werden, was wichtig
ist und noch kopiert werden kann!
Wenn beim Einlesen
von
Dateien Lesefehler vom Programm nicht
Floppy gelesen werden.
durch eigene Prü­Fehlermeldung des
6.3.2
Schreibfehler
Der Fehler
25 kann
bei schlechten Disketten
auftreten.
Das Floppy
liest dem einen gerade
aufgezeichneten
Sektor
(Block)
und vergleicht
ihn mit
Inhalt des Puffers im Arbeitsspeicher. Dadurch wird geprüft,
ob
die Aufzeichnung
fehlerfrei und lesbar erfolgt
ist.
Wenn also Fehler
25
gemeldet wird, sollte die betreffende Diskette vermutlich
möglichst umgehend aus dem Verkehr gezogen
werden!
75
Programm durch
INPUT#
gelesen werden.
INPUT#
setzt voraus,
daß
ein
GPEN
anderen Meldungen können sowohl in String- als auch in Zahlenvariable
F zu
lesen. Dann kann über
F z.B.
auf eine Tabelle mit deutschen
zugegriffen werden, oder/und in
auf den
hilfreich sein, die Diskette herauszunehmen,
fungen erkannt werden, sollte nach jedem INPUT oder
von
Hand
GET
zu
zentrieren und beim
die
Da
nur mit dem Inhalt des Floppy-Arbeitsspeichers verglichen wird und
nicht mit
dem des Rechner-Speichers, werden Übertragungsfehler auf dem
Floppy
Aufzeichnungen
sonstigen
Dateien
zu
überprüfen.
6.3.3
Syntaxfehler (Formatfehler)
Die
sechs Syntaxfehlermeldungen geben detailliert Auskunft über die Art des
Fehlers.
30
und
39:
Allgemeine Syntax
Hier wurde gegen die generellen Regeln des Kommandostringaufbaues verstossen. Mögliche Fälle:
-
-
vor ':'
nicht
'0'
oder '1'
Quellnamen Quellnamen
führendes Blank im Kommando
Siehe dazu auch die Beispiele
bei
den jeweiligen Kommandos!
31:
Ungültiges Kommando
Hier wurde ein nicht definiertes Kommandozeichen gefunden.
Die
häufigste Ursache
und
rückt ist.
32: Zu
langes Kommando
Die
Länge des Kommandostrings ist auf
40
Zeichen begrenzt.
33:
Ungültiger Dateiname
Hier wurde gegen die Regeln für den Dateinamen verstoßen. Mögliche Fehler wären z.B.:
-
Länge größer als
16
Zeichen
- Ein
verbotenes Zeichen wurde verwendet
In manchen Fällen wird aber
bei
längeren Namen einfach der hintere Teil abge-
Namen
entweder mißinterpretiert, oder Fehler
30
wird gemeldet.
Es
ist also angebracht, in Programmen eine Syntaxprüfung des Dateinamens selbst
durchzuführen,
um
Überraschungen
zu
vermeiden!
34:
Kein Dateiname angegeben
Bei
den Kommandos
N,
und S muß mindestens 1 Name angegeben werden.
Bei R
müssen
genau
2, bei C
mindestens 2 Namen angegeben werden.
76
durch diesen Test nicht erkannt. durch
-
-
'VERIFY' bei
kein
'='
kein
','
zwischen mehreren
PRG-Dateien oder durch Lesen und Vergleichen
zwischen Ziel- und
Wir
empfehlen deshalb, wi chti ge
Weg
bei
zum
dafür dürfte sein, dadurch die Laufwerknummer oder der Dateiname
daß
vergessen wurde, das Kommandozeichen
an
die Stelle des Kommandos ge-
zu
schreiben
schnitten (beim Lesen und Schreiben). Ebenso werden unerlaubte Zeichen im
6.3.4
Fehler
bei
REL-Dateien
50:
Record
existiert nicht
Nachdem durch
RECORD
bzw.
P
ein (noch) nicht vorhandener Record angesprochen
werden sollte, erscheint diese Fehlermeldung.
Werden dann durch
PRINT#
Daten
zu
diesem Record
und alles ist in Ordnung.
gesandt, wird er eingerichtet
Dagegen darf auf keinen Fall versucht werden, nach aus diesem Record
zu
lesen, der Rechner
'stirbt' daran!
dieser Meldung durch INPUT#
51: Zu
viele Daten für diesen Satz
Zu
einem Satz dürfen nur
so
viele Bytes ohne CR
(CHR$(13)) geschickt werden,
wie die beantragte Satzlänge ist. Ist also Satzlänge
50
vereinbart, können nur
wie
ein Datenbyte,
da es
mit in den Satz geschrieben
wird.
Wenn
51
gemeldet wird, wurden die überzähligen Bytes 'weggeworfen'!
52:
Satznummer
zu
groß
Wenn der verlangte Satz noch eingerichtet werden würde, würde
DISK
FULL
auftreten. Diese Meldung kann ebenso wie
50
nach
RECORD
auftreten.
6.3.5
Bedienungsfehler
Die
folgenden Fehlermeldungen werden als Bedienungsfehler bezeichnet, weil sie
schichte immer eintreten.
Sie
sind als o prinzipiell
kann
Fehlerfall
unmerklich erfolgen.
durch entsprechende Intelligenz des Programmes zu
ankommen
definiert reagieren. Dies kann
u.U.
für den Benutzer
26:
Schreibschutz
Hier wurde versucht, schreibend auf eine schreibgeschützte Diskette zuzu grei f en. Der
Schreibschutz wird
vor
jedem schreibenden
Zugriff überprüft.
Nachdem man den Schreibschutz entfernt hat, kann die Datei beschrieben werden.
29:
Disk
ID
stimmt nicht überein
siehe
'Initialisieren'
77
maximal
im Gegensatz
49
Bytes +
zu
vermeiden. Natürlich lassen' und im
1 CR
in den Satz geschrieben werden.
(einigen) Schreib-
man
es bei
Das CR
/
Lesefehlern
bei
entsprechender Vorge-
manchen Meldungen auch 'drauf
zählt also
60: Die
Datei ist bereits zum Schreiben geöffnet
Auf
eine Datei kann gleichzeitig entweder schreibend oder mehrmals lesend zuge-
griffen werden. Wenn also auf eine bestimmte Datei bereits schreibend zugegrif-
Datei
lesenden
Zugriff ein.
61:
Datei ist nicht geöffnet worden
Es
ist grundsätzlich möglich,
daß
eine Datei zwar im
CBM -
Betriebssytem ange-
'vergessen'
von
Disketten.
62:
Datei wurde nicht gefunden
Dies bedeutet,
daß
auf eine Datei lesend zugegriffen werden sollte, die
haltsverzeichnis (unter dem angegebenen) Namen nicht enthalten
ist.
im In-
Meistens ist ein Schreibfehler beim Dateinamen die Ursache für diese meldung.
Fehler-
63:
Datei existiert bereits
Hier sollte eine Datei unter einem Namen abgelegt werden, (schreibender der bereits im Inhaltsverzeichnis eingetragen
ist.
Zugriff)
Entweder gibt man einen anderen Namen
an,
oder man löscht die vorhandene Datei
oder benennt sie um.
64:
Dateitypen - Durcheinander
Bei
Kommandos mit mehreren Dateinamen müssen sich alle Namen auf Dateien des
gleichen Typs beziehen
(PRG
oder SEQ).
65:
Kein Block
frei
Meldung nach
B-A,
wenn der gewünschte Block nicht frei ist.
Der 3.
und 4.
nächste
freie Block
ist.
70: No
Channel
Mehr als 5 Datenkanäle stehen nicht
zur
Verfügung!
Hier sollte ein
6.
Kanal geöffnet werden.
66
und
67:
Nicht mögliche Spur und Sektor
Bei
einem Direktzugriffkommando wurde eine nicht mögliche Spur-/Sektor-Kombina-
tion angegeben.
78
71: BAM
fen
wird (eine Datei geöffnet ist), kann nicht gleichzeitig eine zweite
unter dem gleichen Namen geöffnet werden. Dies schließt auch einen
meldet ist, aber das Floppy dies durch aufget reten e Fehler wieder hat. Dies ist
z.B.
immer der Fall nach
CLOSE 15
oder nach dem Herausnehmen
Parameter der Meldung enthält einen freien Block, der in der Regel der
zerstört
Die BAM
im
Arbeitsspeicher ist nicht
in Ordnung.
Versuchen
Sie,
durch
Initialisieren nochmal die
BAM
der Diskette in den Arbeitsspeicher
zu
laden.
Wenn der Fehler auch dann noch auftaucht, ist
die Diskette nicht mehr lesbar.
Durch dies e 'Rettungsaktion' werd en die Blöcke offener serieller Schreibdateien wieder freigegeben, diese Datei-Inhalte sind als o verloren.
72:
Diskette voll
Alle Blöcke der Diskette sind bereits belegt, oder
224
Dateinamen sind bereits
im Inhaltsverzeichnis.
73:
Meldung der DOS-Version
Nach dem Einschalten des Floppy (Reset)
steht diese Meldung im Fehlerkanal.
74:
Laufwerk enthält keine Diskette
Wenn entweder die Klappe nicht geschlossen ist, oder eine nicht formatierte
Diskette oder eine nicht diese Meldung abgesetzt.
auf 8050
formatierte
Diskette
enthalten
ist, wird
79
VL
DATEIBEHANDLUNG
UND
DATENVERKEHR
1. Der
Dateibeqriff
1.1 Einführung
Hier soll n icht versucht werden, Datei im Sinne der Informatik
zu
definieren,
sondern nur Begriffe wie 'logische Datei', 'serielle' und 'sequentielle' Datei­verwaltung, 'Direktzugriff', 'Feld' und 'Satz'
erklärt werden.
Eine 'Datei' enthält 'Daten' und Daten sind aus Bytes zusammengesetzt. Statt
können
einen (Daten-)satz
bilden.
Für
die BASIC
-
Ebene reicht
es,
ein Byte als kleinste Einheit des Arbeits-
255
annehmen, also
256
verschiedene Werte oder Zustände
darstellen.
Alle Daten im Rechner sind in einem oder mehreren Bytes dargestellt.
So
steht
String
sind
ebenfalls Byte für Byte im Speicher abgelegt.
Da
der Rechner vollkommen auf der Bytestruktur (des Mikroprozessors) aufbaut,
aufgebaut
ist.
Damit ist das Floppy in der Lage, Bytes vom Rechner
zu
übernehmen und später auf
den
gut 1.000.000
möglichen Bytes die richtigen auszuwählen.
Damit ist ein sehr wichtiges Merkmal de r Datei erwähnt worden. Jede Datei
folge der Daten, manchmal auch ein bestimmtes 'Muster'.
Ehe
auf die beiden speziellen Dateitypen des Floppy eingegangen wird, soll kurz
das Konzept der 'logischen Datei' erläutert werden.
1.2 Die
'logische' Datei
Auf
diese abstrakte Bedeutung wird deshalb eingegangen, weil sie für das tiefere
befehlen
'PRINT# ',
'INPUT#
', 'GET#'
wichtig ist.
'Hinter' diesen drei Befehlen steckt immer eine Datei oder ein Datensatz des
So
auf
Bildschirm, Band, Floppy
oder Drucker geht.
Diesem Umstand wurde Rechnung getragen, indem die
Ein- /
Ausgabebefehle
mit
einer
ordnet.
Dadurch is t das Programm nur noch auf eine logische Dateistruktur festgelegt, und nicht auf ein bestimmtes Peripheriegerät.
80
Daten kann man auch Datenfelder oder kurz Felder sagen. Mehrere Felder
speichers
eine Gleitkommazahl
zu
definieren.
z.B.
Ein
Byte kann dezimal ausgedrückt Werte zwischen
in
5
Bytes, ein Variablenname in
2
Bytes und ein
0
und
braucht soviele Bytes, wie er Zeichen hat. BASIC- oder Assemblerprogramme
liegt
es
nahe,
Anforderung wieder zurückzugeben. Dazu sind natürlich Regeln nötig,
daß
auch ein Massenspeicher wie das Floppy auf der Bytestruktur
um
aus
braucht Regeln, wie sie aufgebaut ist. Diese Regeln bestimmen immer die Reihen-
Verständnis der Zusammenhänge zwischen
OPEN
und den eigentlichen
Ein/
Typs 'seriell'. Wohin, bzw. woher die Daten kommen, ist dabei zweitrangig. besteht schirm, Band oder Floppy. Dabei gilt die Analogie
bei
der Eingabe kein prinzi pieller Untersc hi e d zwischen Tastatur, Bild-
zur
Tastatur für
GET#
Bildschirm für INPUT#. Entsprechend ist für die Ausgabe unwichtig,
'logischen Dateien' über deren Nummern verkehren. Erst durch
'OPEN'
logischen Datei ein physikalisches Gerät mit speziellen Eigenschaften zuge-
Ausgabe-
und zum
ob
sie
wird
1.3 Vorstellung der verschiedenen Datei- bzw.
Zugriffsarten.
1.3.1
Die
serielle Datei
(SEQ, PRG,
USR)
Die
einfachste Dateiform ist die 'Serielle Datei'.
Hier werden einfa c h die Bytes
werden.
genau der gleichen Reihenfolge
genau in der Reihenfolge abgespeichert,
wieder
an
den Rechner zurück.
wie sie
Bytes in
Unter
'serieller
Datei' fassen wir die
drei Dateitypen
SEQ,
PRG
und USR
daß
kurz sein
zusammen.
Sie
sind im Aufbau identisch.
Ihre wichtigsten Eigenschaften
sie durch einen Namen gekennzeichnet sind, (fast) beliebig lang oder können und vollständig
vom Floppy-DOS
verwaltet werden.
Der
Begriff 'serielle Dateiverwaltung' ist nicht
zu
verwechseln mit
der seri-
ellen Datenübertragung zum Floppy.
Der
Datenverkehr erfolgt nämlich immer se-
riell, d.h.,
es
wird ein Byte nach dem anderen übertragen.
Wie
erwähnt, werden
bei
serieller Abspeicherung alle Bytes einfach in ihrer
zeitlichen Reihenfolge abgelegt.
Bei
Programmen (PRG)
anderen Daten
meist nicht.
ist dies sinnvoll,
bei 1.3.2
Sätze, Felder, Schlüssel, ISAM
Bei
den meisten kommerziellen Anwendungen benötigt man
einer endlosen Byte-Kette bestehen, sondern unterteilte
nicht Dateien, die
Dateien.
So
wie
aus
ein
aus ganzer Text in Sätze unterteilt ist, besteht eine derartige Datei ebenfalls
sogenannten Datensätzen. Diese Sätze sind wiederum in Daten-Felder unterteilt. Am
Beispiel einer Adressdatei sollen diese Begriffe erläutert werden:
Eine Adresse bildet einen Datensatz. In den einzelnen Feldern dieses Satzes stehen Angaben
zu
'Name', 'Postleitzahl', 'Wohnort'
usw.
Was
erwartet nun der Anwender
von
einer Adressverwaltung? Zunächst will er
Adressen
Hauptsächlich
(oder
Papier) stehen haben.
Diese 'bestimmte Adresse' will er aber möglichst nicht nur unter einer Nummer,
Kennzeichen,
z.B.
dem Namen des Kunden abrufen können.
Der
Programmierer, der diese A ufgabe l ös en soll, erwartet seinerseits eine
Denkbar
der
festgelegt
werden. Daraus ergibt sich die Länge eines Satzes.
Der
Zugriff auf einen bestimmten Satz erfolgt entweder einfach über die laufende
Schlüssel.
Der
Schlüssel kann
z.B.
der Nachname sein. Alle Nachnamen werden dann in einem
gewünschten
steht,
der
zu
diesem Namen gehört.
81
Entsprechend gibt das Floppy später die
ans Floppy übergeben
sind,
Adressen 'erfassen' (eingeben und abspeichern). Später will er weitere eingeben können oder nicht mehr benötigte Adressen löschen können. will er aber eine bestimmte Adresse möglichst schnell auf dem Bildschirm
z.B.
der Kundennummer, sondern auch unter einem immer verfügbaren
Dateiverwaltung, die seine Daten möglichst ohne Klimmzüge 'schluckt'. wäre folgendes Verfahren:
'Adressen'. Diese Datei sol l Sätze mit jeweils
einzelnen Felder ist frei wählbar, muß aber
Er
'bestellt' beim
DOS
eine Dat ei mit dem Namen
8
Feldern haben.
bei
der 'Bestellung'
Die
Länge
Nummer des Satzes oder über den Inhalt eines bestimmten Feldes, den sogenannten
getrennten Verzeichnis gehalten, das sehr schnell das Auffinden des Namens erlaubt.
Aus
dem Verzeichnis geht dann hervor,
wo
der Daten-Satz
Die
nächste Stufe stellt der Zugriff über mehrere 'Schlüssel' dar.
Z.B.
kann der
Zugriff auf eine Adresse über die Kundennummer, den Namen oder die
Telefonnummer
erfolgen.
Diese Dateiverwaltungsform
wird 'Index-Sequentielle-Verwaltung'
oder
ISAM =
'Index Sequential Access Method'
nicht im
DOS
vorhanden. Aufbauend
genannt. In dieser komplexen Form ist sie
auf der REL-Datei kann aber durch BASIC- oder
Assembler-Ergänzungen die eine oder andere Spielart einer ISAM-Datei
realisiert
werden.
1.3.3
Die
REL-Datei
Die
REL-Datei
ist
Schlüssel.
bietet
nicht
über
einen eingeschränkten ISAM-Zugriff: Löschen und Einfügen
Der
die Satznummer, also nicht über einen alpha-numerischen
Diese Zugriffsart wird auch mit 'Direktzugriff' bezeichnet, weil man über die
Direkt-Zugriff mit wählbarer Satzlänge.
Diese Form der Datei Verwaltung wird deshalb REL-Datei genannt
(REL
= relativ),
Zugriff
relativ
zum Anfang der Datei.
REL-Dateien werden genauso wie serielle Dateien unter einem Namen im Inhalts­verzeichnis der Diskette abgelegt.
1.3.4
Der
Direktzugriff
Der
Direktzugriff des Floppy
DOS
kennt sogenannte Blöcke auf der Diskette,
maximal
Direktzugriff.
Block kann in
0.5 - 2
sec beschrieben oder gelesen werden.
die
Ein
Diese Art des Zugriffs ist in der Regel vom Programmieraufwand her dem REL-
'Direktzugriff' beschrieben.
Hauptnachteile gegenüber
REL
sind:
Feste Blocklänge, was meistens Platzverschwendung
bedeutet.
Keine laufende Satznummer, sondern Spur- und Sektor-Nummer.
Nicht über Namen rufbar, was sehr starre Einteilung der
Diskette bringt.
82
von
Sätzen
möglich, aber Überschreiben und Anhängen ist möglich.
Zugriff erfolgt
Nummer direkt auf einen bestimmten Satz zugreifen kann. Genauer ist
um
sie vom absolut en Direktzugriff
zu
unterscheiden. Relativ ist dieser
es
ein
deshalb, weil die Sätze nur innerhalb der Datei nummeriert sind, also
durch Spur- und Sektornummer adressiert werden. Jeder Block kann
255
Bytes aufnehmen. Eine Diskette bietet maximal 2082 Blöcke für
-Zugriff unterlegen und wird deshalb nur für Sonderanwendungen im Kapitel
2
.
Generelle Vorqehensweise
Ehe
wir im Einzelnen erklären, wie
SEQ
oder
REL
Dateien behandelt werden,
wollen
wir das generelle
Schema,
das immer
gültig
ist, vorstellen.
Die
benötigten Befehle sind im Rechnerhandbuch (PRINT#, INPUT#,
GET#)
beschrieben
bzw. zusätzlich im Floppy-Handbuch:
(D)OPEN, APPEND, (D)CLOSE.
2.1 Datenübertragung
Die
Datenübertragung wi rd durch die Befehle 'PRINT#', 'INPUT#' und
'GET#'
orga­gesendet besorgen
die Datenübertragung in die andere Richtung, sie lesen als o Dat en.
2.2 Datei anmelden
Ehe Sie
aber mit einem dieser drei Befehle auf eine Floppy-Datei zugreifen
folgende Information:
An
den Rechner:
(1)
Die
Logische Adresse, über die sich nachfolgende
'PRINT#', 'INPUT#'
oder
'GET#'
auf diese Datei beziehen.
(2) Die
Gerätenummer, auf der die Datei liegt
oder eingerichtet wird.
(3)
Die
Kanalnummer, die
bei
Verwendung
von 'DOPEN'
intern vom Rechner
verwaltet wird.
An
das Floppy:
(1)
Die
Kanalnummer, die für das Floppy ungefähr dieselbe Funktion
hat wie
die Logische Adresse für den Rechner.
(2) Die
Laufwerksnummer
(3)
Den
Dateinamen und Dateityp der gewünschten Datei. Dieser
wird im
Directory (Inhaltsverzeichnis) auf der Diskette vom
DOS
verwaltet.
(4)
Bei
seriellen Dateien wird dem Floppy
mitgeteilt,
ob
die Datei
beschrieben oder gelesen werden
soll.
2.3 Datei abmelden
Soll die Behandlung einer Datei abgeschlossen werden, muß sie wieder abgemeldet werden. Dies ist nur mit den Befehlen
'DOLOSE'
oder
'CLOSE'
möglich.
83
3. Serielle Dateien
nisiert.
werden können, er bringt also Daten zum Floppy. 'INPUT#' und
können, muß diese sowohl beim Rechner als auch beim Floppy 'angemeldet' werden. Diese Funktion wird durch
'PRINT#'
ist der einzige Befehl, mi t dem Daten vom Rechner
'GET#'
'DOPEN' / 'OPEN'
oder APPEND
ausgeführt.
Sie
übergibt
3.1 Einführung
Die serielle Datei ist dadurch gekennzeichnet,
daß
in ihr die Daten nur in der
Reihenfolge gespeichert werden können, wie sie zum Floppy gesendet werden. Entsprechend können sie nur in derselben Reihenfolge wieder gelesen werden.
Die
Länge einer seriellen Datei ist nach oben nur durch die Kapazität der Dis-
so
könnte diese 2052 *
254 = 521 208
Bytes fassen.
Die
kleinste organisatorische Einheit auf der Diskette ist ein Block mit 254
werden.
belegt
Byte
gültige Information enthält.
Das
Floppy kennt die drei seriellen Dateitypen
SEQ, PRG
und
U5R. Die
wichtig-
ist im
Directory.
3.2 Beispielprogramm für SEQ-Dateien
Das
Beispielprogramm soll Ihnen die Zugri ffsmöglichkeiten auf SEQ-Dateien ver-
deutlichen.
Wir
werden
Sie bei
der Beschreibung im folgenden immer wieder auf
das Beispiel verweisen.
Die
meisten Fehlermöglichkeiten können
Beispiel
Sie
Möglichkeiten nachvollziehen können.
Sie
damit nach-
dann sofort alle
Hinweis:
Bei
den Programmbeschreibungen bedeuten die Nummern
Zeilennummern des Beispiels.
in Klammern die
Das
Beispiel beinhaltet
die Funktionen
im Zeilenbereich
(1) (2) (3)
Daten erfassen
Datei weiter beschreiben
200 -
299
400 -
499
Diese Funktionen werden durch
den Programm-Verteiler (100-180) dem Benutzer
angeboten. Durch Eingabe der davorstehenden Zahl kann die gewünschte Funktion ausgewählt werden.
Bei
Eingabe einer
'0'
wird das Programm beendet.
In jeder Funktion werden
Sie
zuerst nach dem Dateinamen (DN$) und der Lauf-
werksnummer
(LW)
gefragt.
84
kette begrenzt. Hätte man also nur eine einzige Datei auf einer Diskette,
Bytes gültiger Information. Daraus folgt,
daß
eine gültige serielle Datei mindestens einen Block
Es
können also immer nur ganze Blöcke belegt
und der letzte Block der Datei immer ganz belegt wird, auch wenn er nur
sten Typen sind
identisch mit
vollziehen. Deshalb ist
SEQ
für Abspeicherung
SEQ. Der
von
Daten und
PRG
für Programme.
einzige Unterschied liegt in der anderen Bezeichnung
es
wohl sinnvoll, wenn
Sie
das
vor
dem Durch-
arbeiten dieses Kapitels in Ihren Rechner eintippen, damit
1
USR
Daten lesen
300 -
399
3.3 Der
schreibende Zugriff (Daten erfassen)
3.3.1
Einleitung
Bei
'schreibend' wird eine neue Datei unter dem angegebenen Namen eingerichtet.
wird
der
Diskette wieder gelesen werden.
3.3.2
Fehlermöglichkeiten
Wird während der Bearbeitung der Datei die Diskette herausgenommen, schließt
mehr
richtig abgeschlossen werden und bleibt mit einem Stern gekennzeichnet.
Auf
sie
kann
nicht
mehr
zugegriffen
werden.
Bei einem
'Bereinigen'
der Diskette
(COLLECT)
wird sie wieder aus dem Inhaltsverzeichnis gelöscht.
Existiert der angegebene Dateiname schon, erfolgt die Fehlermeldung
63
FILE
EXISTS.
Ist die Datei allerdings mit einem Stern gekennzeichnet, weil sie nicht richtig
Datei wird durch die gültige ersetzt.
Wenn eine Datei zum Schreiben angemeldet
eröffnen,
dung. Allerdings kann das Floppy danach
ist und man
das
die Dateien
versucht unter demselben
nicht mehr auseinander-
halten und damit sind beide nicht mehr
zu
lesen.
Sie
müssen deshalb unbedingt
selbst durch Programmabfrage diese Möglichkeit unterbinden.
Will man eine zum Schreiben angemeldete Datei nochmal zum Lesen öffnen, meldet das Floppy
'60 WRITE FILE
OPEN'.
Ist der Schreibschutz geklebt, wird
'26 WRITE
PROTECT
ON'
gemeldet.
Auf
eine Schreib-Datei kann nur mit
'PRINT#'
zugegriffen werden, nicht mit
'INPUT#' oder
'GET#'.
Sollte dies
der
Schreibdatei
überschreitung beim Lesen.
versucht werden, kommt k eine Fehlermeldung.
weigert
zu
lesen und der Rechner erkennt eine Zeit-
3.3.3
Programmbeschreibung
Nach Eingabe
von
Dateiname und
Laufwerk wird die Datei zum Schreiben geöffnet
(220). Beachten
Sie, daß
im
'DOPEN'
das
'W'
für Schreiben (Write) nicht durch
eine Variable repräsentiert sein kann!
Danach wird
bei
einer Floppy-Fehlermeldung (230) auf den Fehlerausgang (295)
gesprungen.
In
235
bis
260
kann beliebig oft Text eingegeben werden (240), der sofort auf
ST
und
auf
die nächste Eingabe (240) oder auf den Fehlerausgang (295).
85
Diese wird während der Bearbeitung im Inhaltsverzeichnis mit einem Stern gekenn­zeichnet. Erst beim richtigen Abmelden der Datei mit der Stern im Inhaltsverzeichnis gelöscht. Dann erst kann die Datei
'DCLOSE'
oder
'CLOSE'
von
das Floppy alle Kanäle auf diesem Laufwerk. Damit kann die Datei nicht
abgeschlossen wurde, kommt diese Fehlermeldung nicht, sondern die ungültige
Dateinamen eine Schreibdatei
Lediglich im Status
ST
wird
zu
meldet
Fehler mit ST=2 gemeldet.
Floppy keine Fehlermel-
Das
Floppy
sich also, aus einer
die Datei geschrieben wird (260). Nach jedem Schreibzugriff wird der Status abgefragt. Wenn er nicht Null ist, gibt das Programm eine Meld ung aus springt auf den Ausgang. Danach (265) geht
es,
abhängig vom Floppy-Status
Wird als Text
"ENDE"
eingegeben, springt das Programm auf den Ausgang der
Routine (290). Hier wird die Datei geschlossen und wieder zum Programmver-
teiler verzweigt.
Beim Fehlerausgang (295) wird die Floppy-Fehlermeldung ausgedruckt und die
sie
beim
nächsten Öffnen der Datei ein
'FILE OPEN ERROR'
kommen.
3.4 Der
Lesende Zugriff (Daten lesen)
3.4.1
Einleitung
Hier wird eine bestehende Datei zum Lesen geöffnet und die Daten in der Reihen­folge wie beim Schreiben gelesen.
3.4.2
Fehlermöglichkeiten
Ist die angegebene Datei nicht vorhanden, meldet das Floppy
'62 FILE NOT
FOUND'.
Auf
eine Lese-Datei kann nur mit
INPUT#
oder
GET#
zugegriffen werden, nicht
aber mit PRINT#. Wird dies versucht, kommt keine Fehlermeldung. Lediglich im
Status
ST
wird der
zu
beim Schreiben.
Fehler mit ST=-127 gemeldet.
Das
Floppy weigert sich also in
schreiben und der Rechner erkennt eine Zeitüberschreitung
Wird während der
Dateibearbeitun g die Di s ket te herausgenommen, schließt das
Floppy die Datei. Will der Rechner danach weiter
von
dieser Datei lesen, bringt
Rechner erkennt also hi er eine Zeitüberschreitung beim Lesen.
3.4.3
Programmbeschreibung
Nach der Eingabe
von
Dateiname (305) und Laufwerk (310) wird die Datei zum
und
bei
einer Fehlermeldung auf den Fehlerausgang gesprungen werden.
Zur Datenbehandlung
In diesem Beispiel werden die Daten nacheinander aus der Datei gelesen und
mit
in
loren.
Vor
dem Lesen der Daten wird der Zähler (I) auf Eins gesetzt (340).
schleife folgt dann in den Zeilen
350
bis 380.
Die
Lese-
Nach dem Einlesen eines Satzes mit
INPUT#
(350) wird der Status
Variablen
FS
gemerkt. Dies ist notwendig,
da
beim nachfolgenden
ST
in der
Lesen des
Floppy-Status
DS
der Status wieder verändert wird und außerdem
vor
der Behand-
lung des Status
ST
der eingelesene Satz noch behandelt werden muß.
Ist in (360) der Floppy-Status
DS
nicht Null, springt das Programm sofort auf
behandelt
werden muß.
86
Datei geschlossen.
Die
Datei muß im Rechner geschlossen werden, auch wenn
auf der Diskette nicht mehr richtig abgeschlossen werden kann. Sonst würde
eine Lesedatei
das Floppy keine Fehlermeldung. Aber der Status
ST
wird auf ST=2 gesetzt, der
Lesen geöffnet (320). Danach muß sofort der Floppy-Status abgefragt werden
der laufenden Nummmer (I) auf den Bi ldschirm gedruckt.
Sie
werden also nicht
einem Feld gespeichert und si n d nach dem nächsten Floppyzugriff wieder ver-
den Fehlerausgang,
da
dann auch nicht mehr die eingelesene Information
Danach wird
bei
einem Status
ST
ungleich
0
(hier in
FS
gemerkt) aus der Schleife
herausgesprungen.
und
der nächste Satz gelesen.
In Zeile
385
wird ein Status
ST
ungleich Null behandelt.
Bei
Status
ST
=
64
ist
'Fehler-Status' gemeldet wird. Dann wird die Datei ebenfalls geschlossen.
Zusammenfassung
Wichtig beim Lesen ist die richtige Behandlung des Status
ST.
Hier kann ST
zuerst
vom Status
die
werden,
muß sie also ge m erkt werden.
3.5 Der
schreibende Zugriff für Datei weiter beschreiben
3.5.1
Einleitung
Das Hier
Weiterschreiben einer Datei ist ein Sonderfall des schreibenden Zugriffs. wird der Schreibzeiger nicht auf den Beginn ei n er neu angelegten Datei
gesetzt, sondern auf das Ende einer schon bestehenden Datei.
Ab
dieser Stelle
können weitere Daten in die Datei geschrieben werden.
3.5.2
Fehlermöglichkeiten
Ist die angegebene Datei nicht vorhanden, meldet das Floppy
'62 FILE NOT
FOUND'.
Die
anderen Fehlermöglichkeiten sind identisch mit denen des schreibenden
Zugriffs beim Erfassen einer neuen Datei.
Eine Fehlerkonsequenz soll hier noch her au sgestellt werden. Wird die Datei nach
nicht
tierende richtig abgeschlossene Datei nachträglich
zu
zerstören.
3.5.3
Programmbeschreibung
Die
Routine für das Weiterbeschreiben einer Datei steht in
400
bis 495.
Sie
ist bis auf Zeile
420
identisch mit schreibendem Zugriff (200 bis 295). Für
besseres Verständnis wurde sie hier als eigenständige Routine
realisiert.
Nach der Eingabe
von
Dateiname (405) und Laufwerk (410) wird die Datei zum
'APPEND'
'W'
der Modus angegeben werden.
Alles weitere entspricht dem schreibenden Zugriff, wie er oben schon beschrieben­ist.
87
Bei
Status gleich Null wird der Zähler (I)
um 1
erhöht
die Datei gramm-Verteiler. Ist der Status aber nicht
zu
Ende, sie wird geschlossen und das Programm geht wieder zum Pro-
64,
liegt ein Fehler vor, was durch
sowohl 'Ende' der Datei als auch einen Lesefehler anzeigen. Deshalb muß noch die eingelesene Information bearbeitet werden und dann abhängig verzweigt werden. Beachten Variable
ST
verändert wird. Soll sie im Progamm später noch verwendet
Sie
auch,
daß
nach jedem Per ipheri ezugri ff
dem Öffnen zum Weiterbeschreiben nicht richtig abgeschlossen, kann sie mehr gelesen werden. Damit ergibt sich also die Möglichkeit, eine schon exis-
Weiterbeschreiben geöffnet mit dem Befehl 'APPEND'. Beachten eine Sonderform des
'DOPEN'
für Schreiben ist, hier muß also nicht durch
Sie, daß
3.6
SEQ DATEI
DEMO
i 00 PRINT"FROGR AMM-VERTEILER"
120 PRINT”1 -> DATEN ERFASSEN”
130 PRINT"2 -> DATEN LESEN” 140 PRINT"3 ~> DATEI WEITER BESCHREIBEN”
1 y© ONA+16ÛTÜ130,20Ö,380,400 GCiülSO
130 END
200
PRINT" SORTEN ERFASSEN" INPUT"DATEINAME” ; DNf
205 210
INPUT"LAUFWERK” , LW
220
235
DOPEN# 1, (DNf>,D(LW;,W
IFDSG0T0235
> ENDE) "
IFFS064THENPRI NT " FEHLER-STATUS " FS
240
250
262
265
275 230
235
300
305 310
320
330
340
350
360
370
375
490
DüLOSE#!;GOTO100
PRINT"FLOPPV-FEHLER: "DSf: DOLOSE#1 : GOTO136
DCLOSEttl-GOTO 100
435
PRINT”FLOPPV-FEHLER: "DSf:DCLÜSE#1 : GOTO100
READV.
88
110 PR INT "8 -> PROGRAMMENBE"
170 INPUTS
230
PRINT"BITTE TENT EINGEBEN (BEENDEN ­INPUT TEf IFTEf="ENDE"GOTO230
PRINTttl.. TEf
260
IFSTTHENPR INT "FEHLER-STATUS^ "ST:G0T0298
IFDSGOT0235
GOTO240
:
DCLOSEttl PRINT"FLOPPV-FEHLER: "DSf
GOTO100
;
DCLGSE#1:GOT0100 PRINT"SORTEI LESEN" INPUT"DATEINAME",DNf INPUT"LAUFWERK", LW DOPEN#1,(DNf >,D(LW > IFDSGOT0335 1=1 INPUT#1,TEf
FS=ST•IFDSG0T0335
PRINTI,TEf IFFSGOT0385
;
380
1=1+1
GOT0350 385 330 335
PRINT"STATEI WEITER BESCHREIBEN"
400
INPUT"DATEINAME",DNf
405
INPUT"LAUFWERK" ; LW
410
APPEND#1,(DNf),D(LW )
420
IFDSG0T0235
430
PRINT"BITTE TENT EINGEBEN (BEENDEN -> ENDE) "
435
INPUT TEf
440
IFTEf="ENDE"GOT0230
450
PRINTttl,TEf
460
IFSTTHENPRI NT "FEHLER-STATUS: "ST:GÖTO290
462
IFDSG0T0295
465
GOTO240
475
4. Relative Dateien, Direktzuqriff
4.1 Einleitung
4.1.1
Begriffserklärungen
Hier sollen zuerst noch einige Begriffe erklärt werden, die in den folgenden
Beschreibungen verwendet werden.
In den Befehlsbeschreibungen wurde
bei
Relativen Dateien immer über 'Records'
Datei
Feldern
durch
eine Formatvereinbarung schon eindeutig sind.
Die
Felder wiederum bestehen aus Zeichen.
Bei
Textdateien werden die Zeichen
normale druckbare Zeichen, also Text sein. Allgemein kann eine Datei bigen Zeichen des
256
Zeichen umfassenden Zeichensatzes bestehen.
aus belie-
Schema:
Datei
!
I
I
I
Satz
I
Satz
• • • •
!
I
I
I
Feld
!
Zeichen
I
Zeichen Zeichen
I 4.1.2
Die
REL-Datei
REL-Dateien bieten die Möglichkeit, in
wahlfreier Reihenfolge auf
die Sätze
einer Datei zuzugreifen, und zwar kann gl ei ch zeitig in einen Satz geschrieben
zu
müssen.
Durch diese besonderen Möglichkeiten einer REL-Datei ergibt sich die Notwendig-
keit,
daß
die einzelnen Sätze auf der D a tei eine
Erstellen
länge seiner Sätze kennen muß.
feste Satzlänge haben. Das
einer REL-Datei die Maximal-
Die
Satzlänge kann zwischen
1
und
254
Zeichen
liegen. Eine REL-Datei kann
maximal 65535 Sätze haben, wenn diese Anzahl in 182880 Bytes Platz
findet.
Eine REL-Datei kann maximal
720
Blöcke belegen, also 182880 Bytes
beinhalten.
Die
Verwaltung
von
REL-Dateien wird ganz vom Floppy ausgeführt. Beim Neuerstel-
für
1)
Sätze
angelegt.
89
geschrieben.
Zu
einem 'Record' werden wir im folgenden 'Satz' sagen. Eine besteht al so aus ein zel n en Sätzen. Diese Sätze können aus mehreren bestehen, die innerhalb des Satzes durch Trennzeichen getrennt sind oder
Satz
!
Feld Feld
!
und aus dem Satz gelesen werden, ohne dafür zwei getrennte Dateien öffnen
bedeutet für den Anwender,
len der Datei reserviert das
daß
DOS
er
vor
dem
sofort zwei Sektoren. Davon ist ein Sektor Daten und der andere für die Organisation der Datei vorgesehen. länge sind also auch schon
1
(bei Satzlänge 254) bis
254
(bei Satzlänge
Je
nach Satz-
Wird vom Benutzer ein Satz gewünscht, der noch nicht
das
NOT
aus
hier noch keine Information steht. Beim Schreiben wird
eingerichtet ist, meldet
PRESENT'.
Diese Fehler-
da
vom
DOS um
der
die
Datei
Datei
soviele Blöcke (Sektoren auf der Disk) erweitert, wie die
verbleibenden Sätze
bis
zu
diesem neuen Platz benötigen. Außerdem werden eventuell noch neue Blöcke
Platz
auf der Diskette vorhanden ist und meldet
es
gegebenenfalls.
4.1.3
Beispielprogramm für REL-Dateien
Wir
werden
bei
der Beschreibung der Möglichkeiten
von
REL-Dateien
möglichst oft
der
Beispiele das Programm in den Rechner einzutippen.
Bei
den Verweisen auf das Beis pi elprogramm sind die Zeilennummern in Klammern
angegeben.
Das
Programm beinhaltet die Funktionen:
(1)
Neue REL-Datei
einrichten
(2)
Bestehende REL-Datei
lesen und schreiben
Diese Funktionen werden über den Programm-Verteiler (100-180) angeboten und
von '0'
wird das Programm beendet.
4.2 Einrichten einer REL-Datei
4.2.1
Einleitung
Das
auf
Neu-Einrichten einer REL-Datei ist als getrennte Funktion realisiert, weil
hier die Satzlänge der Datei angegeben werden muß. Bei
die REL-Datei kann die Angabe der Satzlänge entfallen,
späteren Zugriffen
nicht.
in dieser Funktion
Deshalb meldet das
DOS
auch keinen
'FILE
EXISTS'-Fehler,
wenn
eine bestehende REL-Datei
ausgewählt wird.
Bei
der Datenerfassung wird zuerst die Satznummer abgefragt und dann der Text,
der in diesen Satz geschrieben werden
soll.
4.2.2
Fehlermöglichkeiten
Beim Anmelden der REL-Datei mit
'DOPEN'
sind folgende Fehler möglich:
Besteht auf der Diskette schon eine Datei mit demselben Namen, die aber keine REL-Datei ist, meldet das Floppy
'64 FILE TYPE
MISMATCH'.
Besteht schon eine REL-Datei mit dem Namen, vergleicht das Floppy die ange-
überein,
damit
zwei Funktionen
hat.
90
DOS
beim Positionieren einen Fehler
'50 RE CORD
meldung muß unbedingt beachtet werden, wenn man
lesen will,
für die Organisation eingerichtet. Vorher prüft das
auf das Beispielprogramm verweisen, mit dem
keiten nachvollziehen können. Deshalb raten wir Ihnen,
DOS
noch,
Sie
die meisten (Fehler-) Möglich-
vor
ob
genügend
dem Durcharbeiten
können durch Eingabe der davor angegebenen Zahl ausgewählt werden.
Bei
Eingabe
nur
muß aber
gebene Satzlänge mit der Satzlänge der Datei . Stimmen diese nicht
meldet
es '5 0 RE CORD NOT
PRESENT'. Beachten
Sie, daß
diese Fehlermeldung
Loading...