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
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 Kommandostringformat, 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
Versionen
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
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!
andeDieser
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 freigegeben.
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 abgebrochen
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
PRGREL-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örigen 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
QuellZiel-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 RELLaufwerk
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-
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' Dateiverwaltung, '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 Inhaltsverzeichnis 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#'
orgagesendet
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 gekennzeichnet. 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 Reihenfolge 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
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 beschriebenist.
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
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...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.