Commodore VC 7547 User Manual

Page 1
Benutzerhand
buch
CE
Commodore
Page 2
Page 3
FLOPPYDISK
Beüienungshandbuch
7547
Commodore
Page 4
INHALTSVERZEICHNIS
--
SEITE
KAPITEL
1
Einleitung Allgemeine Informationen Gerätebeschreibung
Frontplatte Rückseite Die Diskette Auf stel lungsort Diskettenbehandlung Auspacken der Floppy VC-1541 Anpassung an VC-20
KAPITEL
2
Inbetriebnahme Anschluß der Floppy Einschalttest Das Einlegen der Diskette Funktionstest
KAPITEL Arbeiten Die Das Disk-Operating-System
3
mit
dem
Diskettenlaufwerk
Block-Availability-Map
(BAM)
(WS)
Floppy System-Befehle
NEW
INITIALIE Die Directory VALIDATE COPY RWM SCRATCH
KAPITEL
4
Das Abspeichern und Laden von Programmen und Daten
WE VERIFY LOAD OPEN
am
PRINT# INPUT# GET#
KAPITEL Fortgeschrittenes Programmieren Das Die Direkt-Zugriffs-Befehle
5
mit
maRE-Disk-Operating-System
BLOCK-READ BLOCK-WRITE BLOCK-WECUTE BUFFER-POINTER BLOCK-ALLOCATE BLOCK-FREE
der Floppy (DOS)
Page 5
'MEMORY'-Befehle Memory-Wr i te Memory-Read Memory-Execute
Die
Datenstruktur auf der Diskette
KAPITEL Sequentielle Files Programnbeispiel: Sequentielle Files
KAPITEL Der Direkt-Zugriff Programn-Beispiel: Direkt-Zugriffs-Datei
6
7
USER
Kapitel Die Relative Datei Programm4Jeispiel: Relative-Datei
KAPITEL Fehlermeldungen-Der 'Joker' Lesen des Fehlerkanals Liste der Bedeutungen der
Liste der Fehlermeldungen und Beschreibung Der 'Joker'
Kapitel hdern der Gerätenunmer
Coftwarelösung Hardwarelösung
Gelistete Programme
8
9
10
Fehlernunmern
:
VIC-20
WEDGE
C44
WEDGE
PRINTER TEST
DIS
ADDR
DIR
VIEW
DISPLAY TgC
PERFORMGNCE TEST
CHANGE
BPM
Part.-Nr.:
354
139-02
.
Rev.:
1.2
Page 6
Abb.1 Frontplatte 2 Abb.2 Rückseite 2 Abb.3 Anschlußschema der Floppy 1541 an den VC-20
und den Drucker VC-1525 Abb.4 Einlegen der Diskette Abb.5 Aufbau eines Diskettensektors Abb.6 Datenfluß zwischen Rechner, Puffer
und Floppy bei Direktzugriff
TABELLEN Tab.1 Technische Daten
Tab.2 Sprungtabelle Tab.3 Belegung der Spuren Tab.4 Format der Tab
.5
Vorspann (Header) der Directory Tab.6 Format der Directory Tab.7 Format eines Tab.8 Format eines sequentiellen Files Tab.9 Format eines Tab.10 Zuordnung der Recordnunmern zu den
Diskettenspuren Tab.11 Format einer Relativen Datei Tab.12 Format des Side Sektor
VC-1541-üAM
mit
Sektoren
Directory-Eintrags Pogrmfiles
/
C-64
6
6
28
32
Page 7
KAPITEL
1
: E I
N
L E I T U N G
ALLGEMEINE Da die Floppy VC-1540 und die Floppy VC-1541 nahezu identisch sind,
verwendet dieses Handbuch nur die Bezeichnung Floppy Auch können der VC-20 oder der C-64 an die Floppy Disk VC-1541 an­geschlossen werden. In diesem Handbuch wird als Rechner nur der C-64 angesprochen, gleiches gilt jeweils auch für den VC-20.
Durch den Erwerb der fähigkeit Ihres voll ausnutzen zu können, sollten Sie die hinreichend beherrschen und einheit vertraut sein.
Die Abspeichern grd3er Datermengen geeignet ist. Es besteht zur Hauptsache aus einem elektronisch geregelten Antrieb, Lesekopf Leseroutinen überwacht. Das Laufwerk wird an den seriellen Bus des C-64 angeschlossen, der auch von Da es sich bei der handelt, wird beim C-64-Zentraleinheit belegt.
Frontplatte Auf der Frontplatte des Geräts befindet sich ein Schlitz, in den
die Diskette eingeführt wird. Durch das Herunterdrücken einer am SchI itz angebrachten Klappe oder eines Knebels wird die Diskette an die Laufwerksachse angekoppelt.
Weiterhin sind
auf der Frontplatte angebracht. Die grüne LED auf der linken Seite zeigt an, daß das Gerät eingeschaltet ist. Diskettenschlitz
und blinkt bei Fehlfunktion.
INFORMATION
VC-1541 Single-Floppy haben Sie die Leistungs-
VC-Systems wesentlich erhöht.
mit
VC-1541 ist ein intelligentes
mit
Steuerung und der Elektronik, die die Schreib- und
VG1541
Betrieb der Floppy kein Arbeitsspeicher in der
zwei LEDS (LED = Light-Emitting-Diode = Leuchtdiode)
leuchtet kontinuierlich, wenn die Floppy aktiv ist
um
ein 'intelligentes " Peripheriegerät
Disk VC-1541.
Un
der Bedienung der C-64-Zentral-
Programiersprache BASIC
Einzeldiskettenlaufwerk,
Commodore-Druckern benutzt wird.
dieses System
das zun
Schreib-
Die rote LED unter dem
Rückseite Auf der Rückseite der Floppy befinden sich zwei parallel geschal-
tete, serielle und die Sicherung angebracht.
Die Diskette Als Diskette (auch: Floppy Disk 0.ä.) wird die Standard 5-1/4-Zoll
Diskette verwendet. SOFT-SEKTOR-FORMGT aufweisen.
Ein/Ausgänge. Weiterhin ist dort der Netzschalter
Es
müssen Disketten verwendet werden, die das
Page 8
Auf stel lungsort Das Diskettenlaufwerk sollte auf einer flachen, vibrationsfreien
Unterlage aufgestellt werden. Wichtig ist weiterhin eine staubfreie Umgebung, da Geräts empfindlich stören kann.
I
I
Abb.
1
eine
Ansamnlung von Staubpartikeln die Funktion des
Dauerlicht
Hinweis:
Das Laufwerk kann ggf. von dieser Abbildung leichte Abweichungen aufzei-
gen, da
im Rahmen einer Produktpflege Änderungen auftreten können.
:
Front-Ansicht
=
Laufwerk eingeschaltet
I
J
I
Abb.
'.p"tEfh-;'
Serieller Bus Anschluß fur Interface-Kabel
2:
Rück-Ansicht
Serieller Bus
I
I
2
Page 9
TABELLE
SPE Totale Speicherkapazität
Sequentieile Files Relative Files
Einträge in die Sektoren pro Spur Bytes pro Sektor Spuren Blöcke
1.
IGHERUNG
Technische Daten der VC-1541 Single Floppy
174848 Bytes pro Diskette 168656 Bytes pro Diskette 167132 Bytes pro Diskette
65535 Records pro File
144
Directory
pro Diskette
17 bis
21
256
35
(664
683
Blöcke frei)
6502 Mikroprozessor
(2)
6522
Puffer : 2114 (4)
Höhe Breite Tiefe
I/O,
2K
77
184
256
Timer
RAM
rnrn
mrn
mm
STROMVEKSORGUNG Spannung
Frequenz Leistungsaufnahme
100,120,220 oder 240
50
oder
60
Hz
25 Watt
V
SPEICHERMEDIUM Disketten
Standard dichte
5-1/4', einfache Schreib-
Page 10
Behandlung der Disketten
Gehen Sie aufgeführtkn Regeln befolgen, schonen Sie Ihre Disketten und können sich jederzeit auf Ihre gespeicherten Daten verlassen
1.
2.
3.
4. Benützen Sie zun Ausfüllen des Etiketts auf der
5. Setzen Sie die Disketten nie hohen Temperaturen oder der Sonne
6.
7.
Das Auspacken der VC-1541 Uberprüfen Sie beim Auspacken des Geräts,
der Verpackung enthalten sind.
Sollten Sie ein Teil vermissen, lich Ihren
mit
den Disketten vorsichtig un. Wenn Sie die nachstehend
:
Stecken Sie die Diskette nach der Entnahme aus dem Laufwerk sofort in die Papierhülle.
Bringen Sie die Diskette nicht in die Nähe starker magnetischer
Felder, Lassen Sie nie eine Diskette auf der Floppy oder auf Ihrem
puter liegen.
Diskettenschutzhülle keinen Bleistift oder Kugelschreiber,
sondern einen Filzschreiber.
aus.
Berühren Sie keinesfalls die Diskettenoberfläche und versuchen
Sie diese auch nicht zu reinigen. Schon der Verlust kleinster Oberflächenpartikel kann zun Verlust von Daten führen.
Vergewissern Sie sich beim Ein- und Ausschalten der Floppy,
sich keine Diskette
da
hierdurch die Daten zerstört werden können.
im
Laufwerk befindet.
ob
die folgenden Teile in
1.
VC-1541 Single Floppy TEST/i)EMO-Diskette
2.
3.
Garantiekarte
4. Verbindungskabel
5. Handbuch
CCMODCRE-Fachhändler.
so
verständigen Sie bitte unverzüg-
Cm-
daß
Anpassung an den VC-20 Die Floppy 1541 befindet sich nach dem Einschalten
Da der VC-20 die Floppy 1541 an den VC-20 angepasst werden. Dazu sind folgende Befehle einzugeben:
WEN
Um wieder in den fehle
WEN 15,8,15,'UI+'
15,8,15,'UI-'
:
mit
einer anderen Lesegeschwindigkeit arbeitet, muß
:
CLOSE
15
C44 Modus zu gelangen, benutzen Sie folgende Be-
:
Ci-
15
im C-64 Modus.
Page 11
KAPITELZ: INBETRIEBNAHME
mit
Bevor Sie
vergewissern, befindet. Dazu der beigefügten TEST/bEMO-Diskette durchgeführt werden.
Anschluß der Floppy an den C-64
der Floppy zu arbeiten anfangen, sollten Sie sich daß sich diese in einem einwandfreien Zustand
muß nach
deni
Initialisieren der Funktionstest
mit
Das Kabel,
dem Diskettenlaufwerk beigelegt.
BEMERKUNG: Werden an den seriellen Bus des C-64 durch 'Verkettung' mehrere Geräte angeschlossen,
hinter
Befolgen Sie beim Anschluß der Floppy an den Computer bitte Schritt
für Schritt die folgenden Anordnungen
1.
SCHRITT : Schalten Sie Ihren Computer (und gegebenenfalls Ihre
2.
SCHRITT : Stellen Sie das Diskettenlaufwerk möglichst nahe am
3.
SMITT : Verbinden Sie den seriellen Ausgang
4.
SCHRITT : Schließen Sie Ihre Floppy an das Netz an, aber schal-
Einschalttest
1.
SCHRITT : offnen Sie die Klappe des Diskettenlaufwerks und ver-
2.
SCHRITT : Schalten Sie die Modulbox EIN (falls vorhanden).
3.
SCHRIm : Schalten Sie den C-64 EIN.
4.
SCHRITT : Schalten Sie die VC-1541 EIN. Zuerst werden beide LEDs
mit
dem
die Floppy an den C-64 angeschlossen wird, ist
so
dem
Computer sein.
Modulbox) AUS. Computer auf. Schließen Sie die Floppy NOCH NICHT an
das Netz an.
Ein/Ausgang der VC-1541 durch das bei 1 iegende Kabel.
ten Sie
gewissern Sie sich daß keine Diskette
auf der Frontplatte aufleuchten. Nach etwa 1 sec sollte die rote LED an der Verschlußklappe ausgehen, während die grüne LED weiterhin leuchtet und damit anzeigt, daß die Floppy betriebsbereit ist. Sollte das rote warten etwa eine Minute und schalten wieder ein. Wenn sich auch daraufhin nicht der Normalzustand (rote LED: AUS bitte an Ihren
NOCH
LED
blinken, so schalten Sie bitte das Gerät aus,
;
grüne LED:
sollte die Floppy das erste Gerät
:
an
NICHT ein.
AN)
CXWODORE-Händler.
einstellt, wenden Sie sich
C-64
darin ist.
und einen
BEMERKUNG: Um auszuschließen, daß die Fehlfunktion der Floppy auf eine Wechselwirkung ebenfalls an den seriellen Bus angeschlossen sind ker), schließen Sie bitte diese Geräte während des Tests nicht an.
mit
anderen Geräten zurückzuführen ist, die
(2.0. ein Druk-
Page 12
Commodore Personal Computer
1541
-Lauiwerk
Abb.3
:
Anschlußschema der
Schreibschutz
Abb.
4
:
Orientierung der Diskette
NIE VERGESSEN: Zuerst die Steckdose stecken!
C
64
und
VC
1541
Drucker
Floppy
tromversorgung
an den
C
64
(A
und den Drucker
a
zun
Laufwerk
verbinden, dann Netzstecker in
beim
Einlegen
Page 13
Das Einlegen der Diskette
VORSICHT
1.
:
SCHALTEN SIE DAS DISKETTENLAUFWERK NIE EIN (ODER WS),
WENN
SICH EINE DISKETTE DARIN BEFINDET.
SCHRITT : Halten Sie die Diskette
so,
daß sich der Schreibschutz (siehe Abb.4) auf der linken Seite befindet und schie­ben Sie sie in dieser Orientierung in den Schlitz des Laufwerks.
2.
SCHRITT : Schieben Sie solange weiter, bis Sie einen deutlichen
Widerstand spüren und die Diskette einen festen Sitz hat.
3.
SCHRITT : Drücken Sie nun die Klappe an der Laufwerksöffnung
nach unten, bis sie
mit
einem hörbaren Klicken einrastet. Die Diskette ist nun fest an das Laufwerk angekoppelt.
:
4. SCHRITT
Um die Diskette wieder zu entnehmen, drücken Sie die
Klappe leicht nach hinten (Richtung
aufw werk)
und schieben sie gleichzeitig nach oben. Die Diskette wird dann automatisch aus dem Laufwerk herausgeschoben,
so-
daß Sie sie leicht entnehmen können.
Funktionstest
Wenn sich beim Einschalttest keine Fehler gezeigt haben,
mit
Sie jetzt
dem Funktionstest weitermachen. Die Befehle, die in
so
können
diesem Abschnitt benutzt werden, werden später detailliert erklärt. Alle Befehle müssen durch ein RETURN (Drücken der RETURN-TASTE) ab­geschlossen werden.
BEMERKUNG: Die Befehle müssen genau in der sie unten aufgeführt sind. Ein
inUder Form eingetippt werden,
Space'
(
=
Leertaste ) zu­viel oder zuwenig kann dazu führen, daß ein Befehl nicht interpre­tiert werden kann. Wenn durch Blinken der roten LED ein Fehler an­gezeigt wird, tippen Sie den letzten Befehl noch
einal ein. Wenn
die LED daraufhin erlischt, haben Sie den Fehler erfolgreich korri-
im
giert und können
Test fortfahren.
1.
SCHRITT : Schieben Sie die DEMO-Diskette wie oben beschrieben in
das Laufwerk ein.
2.
SCHRITT : Tippen Sie ein : LW'PERFCRM4NCE TESTS,8
(dann RETURN -Taste)
Auf dem Bildschirm erscheint daraufhin:
SEARCHING FOR PERFORMANCE LOAOING READY.
TEST
Page 14
3.
SCHRITi : Tippen Sie ein : RUN (dann RETURN-Taste)
Auf
dem.Bildschirm erscheint daraufhin:
PERFORUlWCE TEST
CCRATCH
INSERT DISKETTE W DRIVE
PRESS
R€iLRN
WHEN READY
NEW
DICK
Die Floppy fordert Sie auf, eine andere Diskette in das Laufwerk einzuschieben. Benutzen Sie eine neue Diskette, bm. eine, die
keine für Sie Funktionstest-Programm 'reformatiert' wird. Alle Daten, die auf einer Diskette gespeichert sind, gehen durch einen solchen Prozeß
yrloren. ?as Funktionstest-f'rogramn gibt der Diskette den Namen
TEST DICK
Sie legen also die neue Diskette in das Laufwerk ein und drücken die RETURN-Taste. Als erstes wird die Diskette 'formatiert'. Eine. fehlerfreie Durchführung
aMd4ND
wrtvollen Informationen enthält, da sie durch das
.
Sie kann
mit
Programmen oder Daten beschrieben werden.
der Formatierung wird angezeigt durch:
DRIVE PASS
Der Test wird nun automatisch weiter durchgeführt und der
fehlerfreie Verlauf wird angezeigt durch:
OPEN
WITING DATA
aosE
OPEN
READING DATA
SCRATCH FILE
WrrE
*CANICAL
WIE FILE
WITE
DATA
READ FILE
TRACK
35
TEST
OOKOO
OOKOO
OOKOO
OOKOO
OOKOO
OOKOO
1
FILE CCRATCHED 1 0
OOKOO
Page 15
READ TRACK
OOKOO
35
OOKOO
READ TRACK
1
OOKOO
UNIT
HAC
PASCED
PERFORMANCE TEST!
PUL DISKETTE
DRIVE BEFORE TlRNING POWER OFF
READY.
4.
CCHRITT : Entnehmen Sie nun die Diskette und stecken Sie sie zu-
5.
SCHRITT : Wenn in der letzten Phase des Tests irgendwelche
FROM
rück in die Staubschutzhülle. Probleme aufgetreten sind,
1.Schritt und wiederholen den gesamten Vorgang. Sollten mehrere Versuche nicht zun Erfolg führen, setzen Sie sich bitte Verbindung.
so
gehen Sie zurück zun
mit
Ihrem aMODORE-Händler in
so
Page 16
KAPITEL
Die Steuerung der Floppy erfolgt über den C-64 in folgender Weise:
* * *
Alle drei Methoden sollen in diesem Kapitel beschrieben werden. Zun besseren Verständnis dieses Kapitels sollten Sie über folgende
Punkte Bescheid wissen:
Als erstes sollen das Verständnis der Methode sind, kettenlaufwerken Daten zu verwalten. Es handelt sich hierbei un die
'Block- Availabil
Blöcke) und das 'Disk Operating System' (WS
3
:
ARBEITEN
BASIC-Kommandos von der Tastatur des C-64 BASIC-Komnandos in Programmen Spezielle Disketten-Komnandos
1.
Bedienung der C-64-Zentraleinheit
2.
Elementares Programmieren in BASIC
3.
C)f
MT
DEM
DISKETTENLAUFWERK
fnen und Schließen von Files
zwei Begriffe erläutert werden, die wichtig für
ityMap'
(BAM
mit
der Hilfe von Cmodore-Dis-
=
Verzeichnis der verfügbaren
=
Betriebssystem).
Die Block Availability Map Die BPM enthält ein Verzeichnis des freien und belegten Speicher-
platzes der Diskette. Wenn das System Information auf einer Dis­kette speichern abgefragt, ob und einer Speicherung wird die d.h. ,der von den neuen Daten benötigte Speicherplatz wird als belegt gekennzeichnet. Wird jedoch bei der Abfrage festgestellt, daß die zur Speicherung vorgesehene wird eine Fehlermeldung ausgegeben.
BPM wird beim Formatieren einer Diskette erstellt und beim
Die Initialisieren der Diskette in den DOS-Speicher geschrieben. Die BPM ist auf der Diskette auf Spur belegt einen Speicherplatz von Anderungen registriert und beim UOEn (Schließen) eines SMentiellen Files auf die Disketten-BAM
geschrieben.
Das Disk Operating System (DOS) Das
00s verwaltet den Austausch von Informationen mischen den
Kontrollorganen der Floppy und dem Computer. So wählt das WS
auf den entsprecheneden Befehl hin die Directory (das 'Inhaltsver­zeichnis' der Diskette), löscht und kopiert Files.
will,
so wird automatisch die BPM vom DOS
wieviel Speicherplatz noch frei ist.
werden zuerst
z.B. die Kanäle bei Ein/Ausgabeoperationen, sucht
BAM
anhand der neuen Werte korrigiert,
Datemnge zu groß ist, so
18,
Sektor 0 gespeichert und
128
im
SAVEen (Abspeichern) eines Programms bzw. beim
Bytes. Alle die BAM betreffenden
DOS-Speicher (in der Floppy)
(BAM)
Im
Falle
Page 17
Floppy Systembefehle Die folgenden Befehle
wrden beim F i le-'Hand1 ing' und der
Verwaltung der Diskette verwendet
BEFEHL
FLMTIQU
NW Formatiert die Diskette INITIALIZE Initialisiert die Diskette
Disketten-Ebene
LW'$'
,8 Liest die Directory
VALIDATE Rekonstruiert die BPhi
COPY
Kopiert Files (ermöglicht auch das Verknüpfen von Files)
Fi le-Ebene
RENE ünbenennung eines Files SCRATCH Löschen eines Files
NEW Bevor Sie
erst
auf die Diskette gespeichert
Code,
mit
mit
mit
einer neuen Diskette arbeiten können, müssen Sie sie
NW formatieren. Dazu wird die Struktur, in der die Daten
wrden,
sowie der Name und der ID-
dem die Diskette von der Floppy identifiziert wird, auf
die Diskette geschrieben. NEW organisiert die Diskette in Spuren
(Tracks) und Sektoren und legt die durch N abgekürzt
BEMERKUNG:
Alle in diesem Kapitel behandelten Befehle werden der
wrden.
Floppy unter Verwendung eines
muß
Ausgabe dieses Befehls das File
Nr.1) eröffnet werden. Sie können dann
mit
BAM an. Der Befehl NEW kann
PRINT#-Befehls übermittelt. Vor der
OPEN1,8,15 ein File (in diesem Fall
mit
PRINT#l, 'Befehlsstring'
(
1:
?
FILE
logische
OPOU
ERROR
den Systembefehl an die Floppy übermitteln
Filenunmer, die innerhalb der Grenzen
kann, 8 beim
:
Geräteadresse der Floppy, 15: ~ekundäradresse). Sollte
offnen des Files die Fehlermeldung
1
bis 127 frei gewählt werden
erscheinen, so wurde vorher das File Nunmer 1 nicht ordnungsgemäß geschlossen, was durch die Eingabe
Der NEW-Befehl hat das Format:
CLOCE 1 nachgeholt werden muß.
PRINT#lfn,'N:dn,xx'
lfn : Logische Filenmmer dn : Name der Diskette (max. 16 Zeichen)
:
Ein zwei Zeichen langes Identifizierungs-
xx
merkmal (ID)
Page 18
Der NEW-Befehl
(mit
ID) wird bei neuen Disketten oder solchen, die
reformatiert werden sollen, angewendet. Bei bereits formatierten Disketten kann der NEW-Befehl ohne wird nur die Directory gelöscht und in der
ID angewendet werden. Hierbei
BAM alle Blocks als
nicht belegt gekennzeichnet. Der NEW-Befehl ohne ID braucht erheblich weniger Zeit als der
1.
BEISPIEL : OPEN15,8,15
mit
Angabe der ID.
PRINT#lJ,'N:TESTDISK,88'
Diese Befetile öffnen Fehlerkanal zum Diskettenlaufwerk. Eine Diskette wird formatiert,
mit
und
kann die
2.
dem Namen TESTDISK und der Identifikation
beiden Befehle auch in einem zusammenfassen
BEISPIEL : OPEN15,8,15, 'N:TESTDISK
Soll beim Reformatieren einer Diskette nur der Name, nicht aber die
ID geändert werden, so läßt man die ID einfach weg:
3.
BEISPIEL : OPEN15,8,15,'N:NEUE TESTDICK'
Die Diskette bekommt den Namen NEUE TESTDICK zugeordnet und die Directory und die funktioniert jedoch nur bei einer bereits formatierten Diskette.
ACHTUNG: WIRD DAS FORMATIEREN EINER DISKETTE ABGEBROCHEN, WEIL EINE SCHLECHTE DISKETTE VERWENDET ODEN DIE 0FFNE.i WURDE (ROTE LED BLINKT), SO MUSS DIE 1541 VOR DEM NACH­STEN FORIs4ATIEREN AUS- UND WIEDER EINGESCHALTET WERDEN. SOLL DAS FORMATIEREN UNTER VOR DEM FORMATIER-KOMMANDO FOLGENDE HEFEHLSZEILE EINZUFÜGEN:
mit
der Sekundäradresse 15 den Befehls- und
88
versehen. Man
:
,88'
BAM werden gelöscht. Dieses abgekürzte Verfahren
LAUFWERKSKLAPPE GE-
PROGRAMh4-KONTROLL-E ERFOLGEN, SO IST
INITIALIZE Bei der Initialisierung wird die Disketten-SAM in den Speicher des
Diskettenlaufwerks geschrieben. Eine fehlerhafte Initialisierung führt zu der Fehlermeldung den
zu
Datenverlust.
Die Floppy
initialisiert die neu eingelegte Diskette selbsttätig,
wenn sie sich in der
DISK ID MICMGTCH ERRCR und unter ~mstzn-
ID von der vor-
hergehenden Diskette unterscheidet,
da die Disketten an Hand der den. Wenn alle Disketten eine unterschiedliche
chen Sie also nie 'von Hand' zu
ID von der Floppy identifiziert wer-
ID besitzen, brau-
initialisieren.
Der Befehl INITIALIZE kann durch I abgekürzt werden.
Das Format des Initialisierungbefehls ist
:
lfn : logische Filenummer
BEISPIEL
:
OPEN15,8,15 PRINT15,
'I'
Sie können beide Befehle zu einem zusammenfassen:
Page 19
Die Directory
Die Directory einer Diskette enthält folgende Informationen:
1.
Diskettennamen
4.
Belegte Blocks
7.
Freie Blocks
2.
Disketten ID
5.
Filenamen
3.
Nr. der DOS Version
6.
Filetyp
Das Laden der Directory in den Rechner geschieht durch die Eingabe von
mit
nachfolgender (RETLRN) -Taste. Beachten Sie bitte, daß
hierdurch ein
im
Rechnerspeicher befindliches Progran zerstört
wird. Der Inhalt der Directory wird nach Eingabe des Befehls
IST
L
mit
nachfolgender (RETLRN) -Taste auf
dem
Bildschirm sichtbar
gemacht.
Es ist sinnvoll, die Diskette
zusamnen Directory aufzubewahren. Die Ausgabe der Directory Drucker
gesdiieht
an
bequemsten
mit
der ausgedruckten
auF einen
mit
der untenstehenden Befehls-
folge:
Die Directory wird in den Arbeitsspeicher des Rechners geladen
Ein File und der
mit
der Filenunmer 4 wird eröffnet
Gerätenunmer 4 zugeordnet (in den meisten Fällen besitzt der Drucker diese Gerätenunmer)
Alle Daten, die normalerweise auf den Bild­schirm ausgegeben werden, werden nun auf das Peripheriegerät ungelenkt, das der Filenunmer 4 zugeordnet ist (in unserem
LIST
PR
INT#4
CLOSE4
Fall also auf den Die Directory wird ausgedruckt Der
CM)-Befehl wird aufgehoben
Das File
4
ruck er)
wird geschlossen
VALIDATE
Bei der Ausführung des
VALIDATE-Befehls werden die Inhalte aller
auf einer Diskette gespeicherten Files Block für Block gelesen.
mit
Blocks, die als belegt gekennzeichnet, aber nicht Filenamen verknüpft sind, werden für das Abspeichern
freigegeben. Weiterhin
werden Files, die nicht ordnungsgemäß
einem
neuer Daten
geschlossen wurden, aus der Directory gelöscht.
Page 20
Wird der VALIDATE-Befehl ordnungsgemäß durchgeführt, neue
BAM erzeugt und auf der Diskette abgespeichert. Bei Anzeige
READ ERRDR wird der Vorgang abgebrochen und die Diskette
eines bleibt unverändert. weitergearbeitet, so
VALIDATE-Befehl hat das Format:
Der
Bemerkung: VALIDATE kann durch
Wird
in einem solchen Fall
muß sie neu initialisiert werden.
PRINT#lf n , 'VALIDATE'
V
abgekürzt werden.
mit
der Diskette
so
wird eine
BEISPIEL:
Sie können die beiden Befehle zu einem zusamnenfassen und verkürzt
schreiben:
COPY
Mit Hilfe des bigen Namen) innerhalb einer Diskette kopieren. Sie können den fehl auch benutzen, male Anzahl: abgekürzt werden. Das Format des
Möchte man
das Format
BEISPIEL
COPY-Befehls können Sie ein File (unter einem belie-
4)
ein neues zu erzeugen. Der COPY-Befehl kann durch
COPY-Befehls lautet beim Kopieren eines Files:
mhrere Files zu einem zusemnenfassen,
:
PRINT#l,'C:NEUFILE=ALTFILE'
OPEN1,8,15 PRINT#l,
OPEN1,8,15,
un
aus mehreren sequentiellen Datenfiles (maxi-
PRINT#lfn, 'C:nfn=afnl,afn2,. lfn : logische Filenunmer
nfn : neuer Filename
:
alter Filename
afn
afn2,.
afnl,
'V'
'V'
..
:
alte Filenamen
. .
so
'
Be-
benutzt man
C
Hat man vor,
kurze Filenamen wählen, da ein Befehlsstring maximal
lang sein darf.
mehrere Files zu einem zusammenzufassen, so
40
muß
man
Zeichen
Page 21
RENAME
ROVAME-Befehl belegt ein bereits existierendes File
Der neuen Namen.
Der Befehl hat das Format:
Bemerkung: Ein File, das vorher
SCRATCH
Mit
dem
einzelne, einige, oder alle Files einer Diskette in einem Arbeitsgang löschen. Die Abkürzung von SCRATCH ist
Der Befehl hat das Format:
BEISPIEL:
Die 3 Files: FILE1, FILE2 und FILE3 werden gelöscht. Sie können dasselbe erreichen, wenn Sie eingeben:
BEISPIEL:
RENM kann
mit
dem CLOCE-Befehl geschlossen werden.
SCRATM-Befehl lassen sich Files löschen. Man kann
lfn
fnl,fnZ,... : Namen der zu löschenden Files
im
Befehlsstring durch R abgekürzt werden.
:
lfn nfn : neuer Filename afn
logische Filenunmer
:
alter Filename
mit
dem
RENM-Befehl unbenannt wird, muß
:
logische Filenmer
PRINT#l,"S:FILEl,FILEZ,FILE3'
PRINT#l,'S:FILE*'
mit
einem
C.
Wenn Sie alle Files einer Diskette löschen wollen, folgenden Befehlsstring verwenden:
BEISPIEL:
Bemerkung: Näheres über die Verwendung des Zeichens nannten 'Jokers' erfahren Sie
PRINT#l,'S:*'
im
Kapitel
8.
so
müssen Sie
'*',
des soge-
Page 22
4.KAPITEL : DAS ABSPEICHERN
M
LADEN
VON PROGRAMEN
LM)
DATEN
Folgende BASIC-Befehle sind wichtig für den Austausch von Pro-
C-64
grammen und Daten zwischen dem
lfn
:
logische Filenunmer ( Zahl zwischen 1 und 255)
und der Floppy:
fn : Filename (maximal 16 Zeichen lang)
:
Geräteadresse der Floppy
8
(H)
sa : Sekundäradresse f
t
:
Filetyp ( SEQ,
mode: READ (Abk.
USR
:R)
oder PRG
Lesen ; WRITE (Abk.
)
:W)
Schreiben
APPEN) (Abk. :A) Anhängen
Bei der Anwendung des PRINT#-Befehls ist darauf zu achten,
(*)
:
ob die logische Filenunmer größer oder kleiner als 128 ist. Siehe dazu den Abschnitt über den Die Geräteadresse der Floppy wurde werksseitig auf 8 einge-
(M):
stellt, sie kann von Ihnen oder durch Ihren Vertragshändler in
9,
10 oder
PRINT#-Befehl.
COMnW)ORE-
11
ungeändert werden (siehe
auch Kapitel 10).
SAVE
Anwendung: Abspeichern
(Saven) eines Programms vom Arbeitsspeicher
des Rechners auf die Diskette.
:
BEISPIEL Das
im
dem Namen
CAVE'TESTPROGRW' ,8
Arbeitsspeicher des Rechners stehende Programn wird unter
TESTPROGRAM auf die Diskette geschrieben.
(*)
Haben Sie ein Programm abgeändert und wollen das alte Programm
unter Beibehaltung des Namens Filenamen das Zeichen
'@'
überyhreiben, so müssen Sie vor den
(
engl. at sign' aber auch 'Klammeraffe'
genannt) setzen.
:
BEISPIEL
CAVEm@ :TESTPROGRAMM' ,8
VERIFY
Anwendung: Das
im
Arbeitsspeicher des Rechners stehende Programm wird Byte für Byte Programmfile verglichen.
mit
dem
im
VERIFY-Befehl angeführten
Jedesmal nach dem Abspeichern
eines Programms sollte ein VERIFY durchgeführt werden.
BEISPIEL
:
VERIFY'TESTPROGRAMM'
,8
Page 23
Geben Sie statt des Filenamens das Zeichen
abgespeicherte Progranm überprüft.
letzt
Mit
dem
Rechnerspeicher laden. Der LOAD-Befehl hat das Format:
BEISPIELE : LOAD'TESTPROGRM'
LOAD-Befehl kann man Programne von der Diskette in den
:
Filename
fn
8
:
Geräteadresse
:
Parameter für die Ladeadresse (wahlfreie ~ngabe)
1
,8
ein Basic-f'rogramm wird geladen
'*'
ein,
so
wird das zu-
LOAD'M-PROGRAW' ein Maschinen-Program wird an die gespeicherte Adresse geladen
OPEN
Sie haben mit
lung von Programnfiles dienen. der Hauptsache Diskette und das Wiedereinlesen in den Rechnerspeicher.
Der OPEN-Befehl stellt den Zusamnenhang zwischen einer logischen Filenunmer und einer Geräteadresse her. Weiterhin werden adreasen s ezifiziert und Filenamen, Filetyp und Modus (Schreiben oder Der OPEN-Befehl hat das Format:
(*)
BEISPIELE
im
anderen Anweisungen kennengelernt, die insbesondere der Behand-
Lesen7 festgelegt.
Die Sekundäradresse Das führt dazu, daß der String, der einem solchen folgt, pretiert wird. Die Sekundäradressen
(LOAD) und Speichern
letzten Kapitel den OPEN-Befehl schon
un
Datenfiles, d.h.
lfn
:
Logische Filenunmer
8
:
Geräteadresse
:
Sekundäradresse (eine Zahl zwischen 2 und
sa
fn : Filename
:
Filetyp, 2.0. SEQ bzw.S (Sequentiell)
ft
mode:
REM bzw. R (lesen) ; WRITE bzw. W (schreiben) APPEMI bzw. A (anhängen von Daten)
bzw.
dem
zugehörigen PRINT#-Befehl, als Befehl inter-
:
OPEN~,~,~,'TEXTFILE,S,'W'
,8,1
im
Zusamnenhang
Im
vorliegenden Abschnitt geht es in
un
das Schreiben von Daten auf
15
öffnet den Befehls- und Fehlerkanal.
0 und 1 sind für das Laden
(SAVE) von Programmen bestirnt.
WEN-Befehl
Sekundär-
14)
(*)
Page 24
Wollen Sie den Inhalt eines Files überschreiben, den Filenamen
jedoch beibehalten, so müssen Sie den 'Klammeraffen'
:
BEISPIEL Es kann manchmal von Vorteil sein, den Stringausdruck Befehl bzw. Teile davon durch eine Stringvariable darzustellen.
BEISPIELE
OPEN4,8,7,'e:NEUFILE,S,R'
:
BS$='MESSDATEN,S,W' OPEN,1,8,14,BS$
&)
verwenden:
im
OPEN-
Der CLOCE-Befehl schließt Files, die Format ist:
CLOSElfn lfn : Logische Filenummer
Ilm
Dateriver-lust zu vermeiden und von Files zur Verfügung geöffnet sein), sollte man Files schließen, nachdem sie nicht mehr benötigt; werden.
Bemerkiing : Eine spezielle Bedeutung hat das Schließen eines
Mit dem über
SEQuentielle Files) oder Systembefehle übermitteln. Der
PRINT#-Befehl hat das Format:
(*)
der Sekundäradresse 15 eröffneten Files. Hierdurch werden nämlich alle Datenkanäle einer Floppy auf einen Schlag geschlossen.
PRINl-#-Befehl lassen sich Daten (siehe auch den Abschnitt
:
lfn
Daten : Befehle, Variablen (numerisch oder Strings)
Bei Verwendung des PRINT#-Befehls zur Datenübertragung ist zu berücksichtigen, daß bei Verwendung einer logischen File­nunmer zwischen 1 und 127 ein 'carriage return' Verwendung einer
samnen mit einem 'line feed' (LF) gesendet wird. Da bereits
ein
CR
als Beendigung des PRINT#-Befehls interpretiert wird, wird das LF fälschlicherweise in den nächsten Datensatz nommen.Abhilfe läßt sich dadurch schaffen, daß man den Befehl mit einem Semikolon
zu habe11 (max. 10 Files dürfen gleichzeitig
logische Filenummer
Filenunrner zwischen 128 und 255 ein CR zu-
(;)
abschließt, dadurch das CRLF unter-
mit
OPEN geöffnet wurden. Sein
un
stets die größtmögliche Anzahl
(*)
(CR)
mit
und bei
über-
Page 25
drückt und in Form eines CCR$(13) ein 'künstliches' terherschickt.
BEISPIEL
Mit
dem
gerät, wie mitteln. Er ist nur Modus)
Mit
Rechnerspeicher eingelesen werden:
INPUT#-Befehl läßt sich Information von einem Peripherie-
ve,mndbar . Der INPUT#+efehl hat das Format:
dem
INPUT#-Befehl können auch mehrere Variable zugleich in den
:
PRINT#137,'PER ACPERA
z.B. der Floppy in den Speicher des Rechners über-
im
Rahmen eines Programns (nicht
INPUT#lfn,A$ oder INPüi#lfn,A lfn : logische Filenunmer
A$
:
Stringvariable
:
A
numerische Variable
AD
ASlllA';~$(l3);
im
Direkt-
CR
hin-
nunerische Variable, die
Strings der Floppy gelesen werden, können nur wrden, wenn sie auf der Floppy durch carriage returns' getrennt sind.
BEISPIEL
BEISPIEL
BE
Der INPUT-Befehl akzeptiert nur Strings, die eine Länge
88
angewendet werden.
Der pheriegerät wie
GET#
Befehl hat das Format:
bm.
:
50
INPüT#Z,A Liest das nächste Datun (das nunerisch sein ordnet es der Variablen A zu.
:
10
INPUT#7,A$ Liest das nächste Datun und ordnet es der String-
variablen
ISPI
:
~OINPUT#~, Liest die nächsten merischen Variablen B und dem String
Zeichen aufweisen.
GET#-Befehl dient dazu, Strings Byte für Byte von einem Peri-
kann
nur im Rahmen eines Programms angewendet werden. Der
A$
zu
B,
C$
Im
z.0.
der Floppy in den Rechnerspeicher einzulesen.
beiden Daten und ordnet sie der nu-
Falle längerer Strings muß der GET#aefehl
mit
Hilfe dieses Befehls von
dann als getrennt erkannt
md)
und
C$
zu.
Mn maximal
Page 26
lfn : logische Filenumner
A$
:
Stringvariable
A
:
numerische Variable
GET#
kam benutzt werden, dmit N lang für den INPUT#-Befehl sind, einzulesen. Der folgende Programteil ist ein Beispiel für eine Unterroutine, mit der es
&glich ist, einen String mit einer Länge von
Rechnerspeicher einzulesen, zugeordnet wird:
un
Strings, die länger als
wo
er der Str ingvariablen
OPEN1,8,5,'FILE,S,R'
10
20
M="
30
FORI=lto254
40
GET#1
50
60
70
,A$ : IFA$=' 'THENA$X~R$(O)
AA$=A4.$+Ag NMT
amEi
88
254
Zeichen in den
AAfC
Zeichen und
Page 27
KAPITEL
5
:
FORTGESCHRITTENES PROGRWIEREN MIT DER FLOPPY
Das COMMODORE
Das File-System wird durch Kanäle organisiert, die OPEN-Statements geöffnet werden. Das DOS reserviert je nach Filetyp ein oder zwei Pufferspeicher für jeden Kanal. Steht kein reich mehr zur Verfügung, ausgegeben. Drei der acht Pufferspeicher werden vom DOS von vorn­herein belegt für die Block Availability Map kanal EidAusgabe und die 'Job-Schlange' des Disk-Controllers, die für eine optimale Abwicklung der verschiedenen tionen sorgt. Die vom
WS
kundäradresse wird jedoch nur als Identifizierungsmerkmal eines be­stimmten Kanals verwendet und nunmer identisch sein. Bei Eingabe des LOAD­den als Sekundäradressen automatisch benden Sekundäradressen zu
Die Direkt-Zugriffs-Befehle Bei den nun
der Diskette nicht vom DOS selbst bestirnt werden. Voraussetzung für eine sachgemäße Anwendung dieser Befehle ist die Kenntnis des Diskettenaufbaus, der am Ende dieses Kapitels detailliert besprochen wird.
Alle nachstehend aufgeführten Befehle werden nach Eröffnung eines Files mittelt:
Befehl Abkürzung Format BLOCK-REN
BLOCK-W ITE BLOCK-EXECUlE BLFFER-POINTER BLOCK-ALLOC4TE
BLOCK-FREE
memory-write memcu-y-read
memory-execute(*)
USER
(X):
zur Kennzeichnung der Kanäle verwendet. Die Größe der
5
weitere Datenkanäle zu öffnen.
mit
der Sekundäradresse
Während die drei 'memorym-Befehle n
Form verwendet werden dürfen, kann man bei allen anderen fehlen sowohl die abgekürzte wie auch die in der Spalte fehl' angegebene ausgeschriebene Form verwenden.
im
folgerlden Befehlen wird die Organisation der Daten auf
(*)
(*)
Disk Operating Syst,em
mit
Hilfe des
Pufferbe-
NO
so
wird die Fehlermeldung:
(BA), die Befehls-
WEN-Befehl angegebene Sekundäradresse wird
muß nicht
mit
Ein/Ausgabeopera-
der internen Kanal-
bzw.
2
bis
übernannien, sondern kann vom Anwender
B-R B-W B-E B-P B-A B-F
M-W
M-R M-E U
0 bzw. 1 gewählt. Die verblei-
14
können dazu venvendet werden, bis
15
durch einen PRINT#-Befehl über-
'B-R:'ch,O,t,s 'B-W:'ch,O,t,s 'B-E:'ch,O,t,s 'B-P:'ch,p 'B-A:'O,t,s 'B-F:'O,t,s 'M-W'adl/adh/nc/data 'M-Rmadl/adh 'M-Emadl/adh 'Ui :param'
in der abgekürzten
U
r
CHANrlEL
Se-
SAVE-Befehls wer-
Be-
'Be-
Page 28
Die Parameter in den Formatanweisungen haben folgende Bedeutungen:
:
Kanalnunmer
ch
Sekundäradresse
0
:
NummerdesFloppy-Laufwerks
:
Nunmer der Spur ('track') auf der Diskette
t
(eine Zahl zwischen
:
Nunmer des Sektors auf der Diskette (je nach
s
Spur eine Tabelle
p
:
Position des Buffer-Pointers
adl
:
Low Byte der Adresse
:
High Byte der Adresse
adh nc
:
Anzahl der Zeichen (zwischen 1 und
data : Daten in hexadezimaler Darstellung. Die
Daten werden byteweise Funktion dargestellt, d.h.mit CHR$(~GO) wird hexadezimal AO
i
:
Index der User-Sprung-Tabelle
param: Parameter, die
si nd
.
Uie Parameter können wahlweise durch ein Komma kolon
(;)
Semikolon benutzt.
Oieser Befehl erlaubt direkten Zugriff zu jedem Datenblock auf der Diskette. Zusammen Fi le-System aufgebaut angesprochen wird. Der B-H-Befehl liest einen Zeiger (Pointer), der
in der 0-Position eines jeden Blocks steht und der auf das letzte zu lesende Zeichen zeigt. (durch einen
'End-Or-Identify' (€01) an den Rechner gesendet. Hierdurch wird der
INPIJT#-Befehl abgeschlossen und die Status-Variable auf
getrennt werden. In den nachfolgenden Beispielen wird das
mit
anderen Direkt-Zugriffs-Befehlen kann so ein
wrderi, iri dem jeder bel iebige Block direkt
GET#-
Nachdem der Block bis zu dieser Position
oder INPUT#-Befehl) gelesen wurde, wird ein
im
DOS, die identisch
im OPEN-Befehl ist
1
und 35)
Zahl zwischen 0 und 20; siehe dazu
4)
mit
der
34)
mit
Hilfe der
übermittelt.
mit
dem USER-Befehl verknüpft
(,)
oder ein Semi-
64
gesetzt.
CHR$-
/
BEISPIEL
ULOCK-WR I rE Ilei der Ausführung dieses Befehls wird der momentane Puffer-Zeiger
(Buf fer-Pointer) als Zeiger auf das letzte Zeichen interpretiert
und in die 0-Position des Puffers geschrieben. Daraufhin wird der Pufferinhalt ben. Der Puf fer-Zeiger zeigt nach Ausführung des Befehls wieder auf
die Position
:
"B-H:'5;0;18;0
Der Datenblock von Spur
5
Kanal
ein File unter Verwendung der Sekundäradresse kann speicher einlesen.
gehörenden Puffer eingelesen. Eröffnet man nun
man die Daten
in den spezifizierten Block auf die Diskette geschrie-
1.
18,
Sektor 0 wird in den zu
mit
GET# oder INPUT# in den Rechner-
5,
so
Page 29
BEISPIEL : 'B-W:'7;0;35;IO
Der Inhalt des zu Kanal 7 gehörenden Pufferspeichers wird in den Block von Spur
35,
Sektor 10 geschrieben.
Dieser Befehl lädt Floppy-Speicher und führt sie nach Abschluß des Ladens aus. Das Programm abgeschlossen werden.
BEISPIEL
BUFFER-POINTER Mit diesem Befehl lässt sich der Wert des Puffer-Zeigers
Pointers) verändern. Auf diese Weise ist es möglich, einen Block in Bereiche zu unterteilen, auf die beliebig zugegriffen werden kann.
BEISPIEL
Mit diesem Befehl können in der belegt gekennzeichnet werden. Beim Schließen eines Schreib-Files wird dieser Eintrag in die
BEISPIEL : 'B-A:'0;10;0
Wenn ein Block markiert werden soll, der schon vorher als belegt gekennzeichnet wurde, so wird durch Erhöhen von Spur- und nunmer der nächste freie Block aufgesucht. Die Position des fundenen Blocks kann zusammen den Fehlerkanal 15 ausgelesen werden. Zu diesem Zweck muß bei An­wendung des B-A-Befehls stets ein File geöffnet werden. Mit
muß
:
:
'B-P:
Programn-Routinen von der Diskette in den
mit
einer RTS-Anweisung (Return-From-Subroutine)
'B-E:'6;0;1;10
Lädt den Datenblock von Spur Kanal 6 gehörenden Puffer und führt die in den Daten enthaltenen Anweisungen aus.
'2,
I
Der Zeiger des zu Kanal 2 gehörenden Puffers wird auf den Beginn des Speicherbereichs gesetzt.
BAM
Disketten-BAM übernrnnmen.
Der Block auf Spur 10, Sektor 0 soll als belegt gekenn­zeichnet werden.
mit
der Fehlermeldung: NO BLOCK über
1,
Sektor 10 in den zu
(im
DOS-Speicher) Blocks als
mit
der Sekundäradresse 15
(Buffer-
Sektor-
so
ge-
können dann Spur Blocks ausgelesen werden. Ist kein freier Block mehr verfügbar, so werden FT, FS als 0,O ausgegeben.
VORSICHT: Ein VALIDATE-Befehl gibt alle Blöcke wieder frei, die nicht zu ordnungsgemäß
(FT) und Sektor (FS) des nächsten frei verfügbaren
im
Directory eingetragenen Files gehören.
Page 30
BLOCK-FREE Dieser Befehl hat den entgegengesetzten Effekt wie der B-A-Befehl.
Ein vorher in der gegeben.
BEISPIEL
Die BAM-Befehle der befehlen gemeinsam vor. Sollte einmal ein Block-Free- oder Block-Allocate-Befehl ohne nachfolgenden Schreibbefehl auftre­ten, so ist ein Dummy-Zugriff auf die Diskette auszuführen,
z.8.:
Die aktualisierte BAM wird immer erst beim Schließen eines Schreib-Kanals auf die Diskette zurückgespeichert.
Die drei Zusammenhang Rahmen eines BASIC-Programms muß man die einzelnen Bytes Es dürfen nur die Abkürzungen M-R, der das Ausschreiben der Befehlsnamen pelpunkts
:
WMCRY-Befehle arbeiten byte-orientiert, sodaß man sie
(:)
BPM als belegt gekennzeichneter Block wird frei-
'B-F:'0;9;20
Der Block in Spur 9, Sektor 20 wird als frei gekenn­zeichnet.
1541
kommen in der Regel nur
mit
Maschinenprogrammen verwenden kann. Wenn man
ist zugelassen.
mit
den MEMORY-Befehlen arbeiten will,
mit
Hilfe der CHR$-iunktion übertragen.
M-W
und M-E benutzt werden;
noch
die Verwendung des Dop-
mit
Schreib-
im
im
we-
Memory-Write Der M-W-Befehl erlaubt direkten Zugriff zun DOS-Speicher. Programn-
Routinen können geladen und startet werden. Bei jeder Anwendung des Befehl können bis zu Bytes übertragen werden.
:
BEISPIEL
Memory-Read Mit diesem Befehl kann das Byte gelesen werden, dessen Adresse
Befehlsstring steht. Es können sowohl Variable aus dem DOS, wie auch aus den Puffern ausgelesen werden. Der M-R-Befehl ändert den Inhalt des Fehlerkanals, da er diesen benutzt, den Rechner zu übermitteln. Der nächste Fehlerkanal anspricht (Sekundäradresse
'M-w"cM$(oo)cw$(~)c@(~)cw$(~~)c-)
Drei Bytes werden in die Speicheradressen $0701,
$0702
geschrieben.
mit
dem M-E- oder dem UCERBefehl ge-
(hexadezimal) (dezimal 1792, 1793, 1794)
34
$0700,
im
um
GET#-Befehl, der den
151,
Information an
liest das Byte aus.
Page 31
Liest das Byte, das unter der Adresse
128) gespeichert ist.
Memory-Execute Startet die Ausführun einer Subroutine
routine mui3
BEISPIEL
USER
Mit
dieser Befehlsgruppe kann man unter Benutzung einer Sprungta-
belle (Tabelle 3) die Verbindung zur Maschinensprache des stellen. Der Index n Sprungadresse. Statt der Zahlen
können auch die Buchstaben A bis J als Indizes benutzt werden.
mit
RTS
(&I)
abgeschlossen werden.
:
'M-E'CW$( 128) ;CW$(49)
Startet die Pro ramnausführung bei
(dezimal : 126723
im
Befehl Un definiert nach Tabelle 3 die
1
im
bis 9 und dem Doppelpunkt
$OOt?O
(dezimal:
DOS-Speicher. Die Sub-
$3180
0502
her-
(:)
Die Befehle U1 und U2 sind nahezu identisch W-Befehlen und haben deshalb auch das gleiche Format:
ober die Befehle
(*)
U1 setzt den Pufferzeiger auf 255 und liest stets den gesamten Block in den Speicher ein. U2 schreibt den Speicherinhalt in einen Block, ohne den Wert des Bytes in Position
Tabe1 le 2 : Sprungtabelle
U1
bis
U9
kann
O
vom
zu ändern.
Anwender frei verfügt werden.
(*)
mit
den B-R und B-
Ersatz für Ersatz für
Sprung nach
Sprung nach
Sprung nach Sprung nach Sprung nach
Sprung nach
Sprung nach $FFFA Power-up Vektor
Unschalten in C-64 Modus Lmschalten in VC-20 Modus
BLOCK-READ BLOCK-WRITE
$X00
$0503
$E06
$0509
i/5050C
8050F
Page 32
DIE DATENSTRLKTLR WF DER DISKETTE
mit
Die einzelnen Datenblocks der Diskette können
gramms: DISPLAY der
TEST/DEMO-Diskette befindet, gelesen werden. Die Tabelle zeigt Anzahl und Nunmerierung der Sektoren (~locks) auf den verschiedenen Spuren.
W'
(
=
Anzeige von Spur sektor), das sich auf
Hilfe des Pro-
4
Tabelle
SPUR
18 bis 24 25 bis 30 31 bis
Tabelle Gespeichert auf : Spur 18; Sektor 0 BYTE INHALT BEDEUTUVG 0,l 18,Ol Spur und Sektor des ersten Blocks der Directory
2 3 0 0-F 4-143
Tabelle 5 Gespeichert auf BYTE INHALT BEDEüTLRJG
144-161 162,163 ID-Kennzeichnung der Diskette 164 160 'Geshif teter 165,löö 50,65 ASCII-Darstellung von
166,167 177-255 0
3 : Die Belegung der Spuren
SEKTCRNWR
1
bis 17 0 bis 20 21
35
4
65
1W Geshiftete Spaces'
0 bis 18 19 0 bis 17 18 0 bis 16 17
:
Format der VC-1541-BAM
ASCII-Zeichen 'A'; zeigt 1541-Fomat an
1
ag Bitmuster der belegten (0: belegt;
:
Vorspann (Header) der Directory
:
Cpur 18; Sektor 0
Name
der Diskette (ergänzt mit'geshifteten Spaces')
{gibt DOS-Version und Format an) Nicht benutzt, aufgefüllt
mit
ANZAHL
1:
nicht belegt)
Space'
Sektoren
DER SEKTOREN
bzw. nicht belegten Blocks
2A
mit
Nullen
Bem: Die Positionen 180 bis 191 können
sein.
mit
ASCII-Zeichen belegt
Page 33
Tabelle Gespeichert auf BYTE IMiALT
Tabelle BYTE INHALT
(*)
6
:
Format der Directory
Spur und Sektor des nächsten Blocks der Directory Eintrag des
Eintrag des Eintrag des Eintrag des
Eintrag des Eintrag des Eintrag des
Eintrag des
7
:
Format eines Directory-Eintrags
Filetyp Spur und Sektor des ersten Datenblocks Fi
lename (ergänzt Nur bei relativen Files benutzt Nur bei relativen Files benutzt Nicht benutzt Spur und Sektor des neuen Files beim dem (a) ('Klammeraffe') Anzahl der Blocks
Filetypen
:
Spur 18, Sektor
1.
2.
3.
4.
5.
6.
7.
8.
(*)
oder-verknüpft ('geort')
:
0
=
DELeted
1
=
SEQuential
2 = PROGrm
3 = USeR
4
=
RELative
1
Files Files Files Files Files Files Files Files
mit
'geshif teten Spaces'
im
File (Low Byte, High Byte)
mit
$80
)
Oberschreiben
mit
Tabelle
BYTE
0,1
2-255 254 Bytes Daten
Tabelle BYTE
0,1
2-255
8
:
Format eines sequentiellen Files INHALl Spur und Sektor des nächsten sequentiellen Datenblocks
9
:
Format eines Programmfiles INHALl Spur und Sektor des nächsten Programmblocks
254
Bytes Programn
als 'Tokens'). Das Fileende ist durch
im
VC-Speicherformat (BASIC-Befehle
3
Nullen markiert.
Page 34
Abb.5 zeigt den Aufbau eines Sektors auf einer Diskette, die für
VC-1541 formatiert wurde. Jeder Sektor enthält einen Datenblock
die
von
254
Zeichen Daten bzw. Programm. Zwei zusätzliche Bytes bilden
zun
einen Zeiger zu arbeiten, die länger als ein Block sind. Dieser Aufbau ist bei
PRG,
SEQ und UCER-Files der gleiche. Ein Datenblock wird durch die Angabe von Block und Sektor adres­siert. Eine bis 35 durchnunmeriert sind. Da die Spuren verschieden lang sind, enthalten sie eine verschiedene Anzahl von Sektoren (Tabelle Die Gesamtheit der Daten, die in einem Sektor enthalten sind, zeigt die Abb.5.
nächsten Block; dadurch wird es möglich,
VC-1541-Diskette enthält
35
Spuren (Ringe), die
mit
Files
von
4.).
1
S
08
I
I
S
Y
DDPESLMh(EuY
N
C
Abb.5 : Aufbau eines Diskettensektors.
12UK C
(~arstellung nicht maßgerecht)
S PROF-
R
T K C 0 R
L S 07
N
E
1
Zeiger der Blocks in einem File
4
B B 254 BYTES PROF-
Y
T T C
E
0
zun Verknüpfen
+
Y
DATEN
E K
1
SM
L
0
E
2
Page 35
KAPITEL
Die Daten, aus denen ein sequentielles File aufgebaut ist, können nur in der Reihenfolge gelesen werden, in der sie geschrieben wur­den. Ein sequentielles File kann nicht teilweise es besteht lediglich die Möglichkeit (durch Wahl des neue Daten an das Fileende anzuhängen.
6 : SEQUENTIELLE FILES
abgelindert werden,
mode' A),
Anlegen und Lesen eines sequentiellen Files (Siehe Beschreibung des
1.
CCtRITT : Eröffnen eines Schreibfiles
2.
SCHRITT : Schreiben in das File
3.
SMITT : Das File wird geschlossen
4.
SMITT : Das File
5.
Schritt : Die Daten werden in den Rechnerspeicher eingelesen
6.
SaRITT : Die Statusvariable, die
OPEN-
und des PRINT#-Befehls in Kapitel
DATEN
:
Filename
:
S
W
Die Inhalte der drei Stringvariablen werden in das File geschrieben
R
Die Werte
X$,
nimmt,wird abgefragt.
Sequentiell
:
Schreiben (~rite)
mit
dem
Namen DATEN wird geöffnet
:
Lesen (Read)
von
und
A$,
Z$
zugeordnet.
Y$
B$
und
C$
werden jetzt den Variablen
an
Fileende den Wert
Cazu auch die
4)
64
an-
Page 36
Beispiel eines Programms, 'das Mit sequentiellen Files arbeitet
Dieses Programm befindet sich unter
TEST/L)EMO-üiskette.
der
i
REM
wwwY*a~tiww# 2 REM 3 4 REM Y
5
6
I
EXAMPLE
REM # READ L WRITE
A SEQUENTIRL
REM I DRTR FILE
REM
n*uma*wwtu*aaa
dem
10 PRINT"~IIIINITIALIZE DISK" 20 DIMR$(25> 30 DIMEC25) 40 OPEN15,8,15, "10"
COSUB 1000
60 70
CR$=CHR$(l3> 80 PRINT 90 PRINT" 'BI-JRITE SEQ TEST FILE"
35
PRINT
100
REM
101 REM
#*u*wia*waw
I
102 REM I WRITE SEQ
I
103 REM 104 REM
TEST FILE
1
105 REM YLItIlWtIItt 110 OPEN2,8,2,"80:8EQ TEST FILE
,S,W"
1 15 GOSUB 1000
117
PR1NT"ENTER A WORD, COMMA, NUMBER"
118 PRINTMENTER WORD 'END' TU STOP"
INPUT"R$,B'l;AX,E
120 130 IFA$="ENDuTHEM 160
PRINT#2,RX1', "STR$CB)CRa;
140 145 GOSUE 1000 150 GOTO 120
CLOSE 2
160
200 REM
IItttltttIItI 201 REM Y 202 REM 203 REM 204
REM
#
REHD SEQ
I
TEST FILE
a
205 REM YY1YIStt#It#t 206 PRINT 207 PRINT" REHD SEQ TEST FILE"
208 PRINT
OPEI~Z,~J~,"~:SEQ TEST FILE ,S,R"
210 215 GOSUb 1000 220 INPUT#2,A$CI),B(I> 224 RS=ST 225 OOSUB 1000 230
PRINTABCI).~B(I>
240 IFR 5-64 THEN 300
250 IF
260
2%
300 CLOSE
RS00 THEN 400
I=I+1
GOTU-220
2
310 END
Namen
'SEQUENTIAL
FILE' auf
Page 37
1686 REM t%btt%tttt+$ 1661 REtl
%
1062 REM % READ 1863 REH % THE ERROR 1884 REtl % CHHt,It.IEL 1085 REPl
%
IBO6 REM %+%%l%tttt%C
lßlrj
1820
It.IF'UT#l5,
IF
EbIzr-3 THEt.4 RETlJRbI
Et.I:EM$, ET, E!?
1636 PRIkIT "I#I#ERRi3R rJbl
i840
PE
I
t.ITE1.I
.;
EMB
.;
9656 CLO!SE
1850
END
2
ET; ES
UISK"
Page 38
KAPITEL
Ein Direkt-Zugriffs-File wird nen BLOCK- und USER-Befehle angelegt. wenden zu können, ist es wichtig, den Datenfluß zwischen Rechner, Pufferspeicher und Diskette zu verstehen. In Abbildung diese Zusammenhänge illustriert:
Zuerst
7
:
DER DIREKT-ZUGRIFF
mit
Hilfe der in Kapitel 5 besproche-
Lm
diese Befehle richtig an-
wrden Befehlskanal und Puffer eröffnet:
6.
werden
5,8,15 : OPEN 4,8,3,'#7'
OPEN
Daten vom Rechner in den Puffer schreiben:
Puf ferzeiger setzen:
n
Daten vom Puffer in den Rechner lesen: in den Puffer schreiben:
Rechner
PRINT#5.'B-Pm;3;1
(*)
Daten vom Puffer auf die Diskette schreiben:
n
n:
.,..LL-
Daten von der Diskette
0
Abb.
6.
Datenfluß zwischen Rechner, Puffer und Diskette
Der
im
(*)
CHGNNELS angezeigt. Benutzt man den OPEN-Befehl in der Form OPEN4,8,3,'#',
vorliegenden Beis iel angewandte OPEN-Befehl ordnet Kanal 3 (Cekundäradresse? den Puffer 7 zu. Ist dieser Puffer nicht verfügbar,
3
Kanal
zugeordnet.
so
wird dies durch die Fehlermeldung
so
wird der nächste freie Pufferspeicher dem
:
ND
dem
:
Page 39
Programmbeispiel : Fileverwaltung
mit
Direkt-Zugriffs-Befehlen
Das folgende Programm verwaltet Files
'USER'-Befehlen und kann
werden. Unter
wendet auf der TESThEMO-Diskette gespeichert. Die verschiedenen Programm-
teile und ihre Funktion sind der folgenden Aufstellung zu ennehmen
=
Zeilennumner)
(ZN
ZN 50 - 76 Menu Zn
100 - 190 Erzeugen eines Files 200
ZN ZN ZN 5100 ZN
ZN
ZN
Um
die Handhabung der Datenblocks zu vereinfachen, wurde das Kon­zept der letzte Programmteil (ab ZN 5322) Spur und Sektor des gesuchten
Datensatzes. Die Spur 18 wird bei dieser Programmroutine tisch ausgespart, sodaß die an dieser Stelle abgespeicherte Directory nicht überschrieben werden kann. Die Aufteilung der Record-Nummern auf die Spuren der Diskette zeigt Tabelle
Tabelle
10 : Zuordnung der Record-Nummern zu den Diskettenspuren
-
300
-
-
5190 Dateneingabe 5200 - 5260 Datenausgabe 5260 - 5320 Fehlerausgabe 5322
-
5390
Record-Numner eingeführt. Aus dieser Numner errechnet der
(Programm: SPUR SEKTOR SEKTOREN
1
bis 17
18
bis 24 25 bis 30 31 bis
2.B.
dem
:
280
Löschen eines Files
390 Suchroutine
Umrechnen der Recordnunmer in Spur und Sektor
35
zum Aufbau einer Adress-Datei ver-
Namen 'RANDOM FILE' ist dieses Program
RANWM FILE)
0 bis 20 21 1-357
0
bis 18 19
0 bis 17 18 478-579
0 bis 16 16
mit
Hilfe von 'Blockm- und
autma-
11.
PRO SPUR NMRN
RECORD-
358-471
586-664
1ß REM 12 14 REM 16
18
20 22
24
ttl*lltttlYllft%tba####
REM
a
RANDOM
FILE
EXRMPLE
a
lll#tlltttttltttt#Ltaat
DIMI$(664>-:FD=0:FX=5:CH=2:FP=l
PRINTW.DI8l
PRINT' INSERT DRTA SHEET"
PRINT" PR1NT"m START PRESS
II
'E
'"
26 GETPS:IFP$C>"S"THEN26
28
OPEN15>8>15> "10" :OPEN2>8>2> "W"
30
PR1NT1'3Q
32 PKINTWINDEX FILE OPERHTION"
PRINT"
34
36
INPUTUM NEU SHEET? NIIII" ; OS : PR
II
38 IFOS-"N"THEN46
40 IFOO<>"Y"THEN36
II
I,
I
NT
" "
Page 40
44 PR I NT "EBLILLLLLLL~
45 PRIb4TI$CI>:NEXT:GOTO50 46 OPEN5,8,5, "0: INDEXi3,R" 47
FORI=iT0664:IklPUT#5,I$<Ij
48 Pi?I~T"~ILDILWRIT! 49 b4EXT 50 PRIh4Tu3!l
52
54 PRINT" 56 PRINT 58
60 PR1 NT" 2=UELETEN 62 PRINT" 3=SERRCH0 64 PRINT" B=EHD" 65 PRIHT 66 68 70 IF0$="1"THEN104 72 IFO$="3"THEN300 74 IFO$<>"2"THEN50 76 GOTrJ2EiEi
160 REM
102 REM # MHSTER FILE CRERTE
103 REN
104 PRINT"3D.l
105 PRINT" MHSTER FILE CRERTE"
106 PRINT"
1 ß7 I NPIJT " RECORD NO. = 011111'
109 IF F=0THEN178
1
10 INPUT" NHME =.1111"iFB$(lj 120 INPUT " HDDRESS 130 1NPUT"ZIP 132 INPUT'TEL
I
:
CLOSE5
PRINT" JOB MENU
PRIHT"
INPUT"1 , 2 , 3 , 8 1lIII1';O$
1
=CRERTE
"
IFD$="B"THENCLOSE15:CLOSE5:CLOSE2:ENU
%~##~%tt##%ttt#t###t### tt#t#t###tt####t%##Y%#b
=.
llIl1' ; FB8C
=
.
llll"
;
=.
FE$ ( 3
!III";FB$(4>
IIIIII"
11
I,
I
#
8,
;
F
2
>
IIIIII"
,I
I
;
I;
1
:
I $ I
I$<
>="/"
Ij
175
FDRI~lT06C4~PRINT#S~I$~I~~CHR$C13~~
180 PR1NT"~bILLbWHIT ! IIIIIP'I; 185 MEXT : CLOSES
190 GUT074 200 REN 201 REM % MASTER FILE DELETE 202 REM 210 PRINTMm 212 PRINT" MHSTER FILE UELETE" 214 PRIHT" 228 238 IFF=@THEkl260 235 IFI$(F>i>"l"THEk422B 240 I$(Fj=l'/" : PRINT"*ECORU 250 ijOTrJ228
#l##t#~##tLf%t#ttt##### #%%####t#t#t#tl#tlllIta
1NPUT"RECORU NU. = OIIII1';
NO.
I
F
"
:
PRINT
"F;
"DELETE"
,I
I$(Ij
Page 41
389 REM 301 REM t FILE SEARCH
302
tt~~ttt%~tt~tt~fttttti)it'
REM
tt~tttittt~ttttattt+*t+
318 PRIt.IT"rn1 312 PRIt4T" SEARCH 314 PRINT" 328 INPUT" RECORD
HO.
=
Bllll" ; F
$2 1 IFF=BTHEN58
398
~13~0328 5100 REM 5185 REM Y FDD BLOCK REAU
5183 RE11
tä#lXtXt%tttttttttt##Xt ##t%X%%%t#t%ttttttYtIt+
51 18 GOSUB5330
t
I
I
"
:PRIt4T
5208 REM 5281 REM L FDD BLOCK WRITE
5202 REM
tt#ttt#tt#tttttttt%tt%% Yttttltttttt%t#tttttt%t
t
52 18 GOSUB5338 5228 PHINT#lS,"B-P:";CH,FP
C
.-
-,
4d.A
FORF
I
=
1
TOFX : PR I NT#CH,
FB9C
F
I
3
;
CHRai 13
;I
; : NEXT 5240 PRINT#15, "112: "iCH;FU;FT;FS 5258 GOSUB5270 5268 RETURH 5279 REM 5275 REM Y ERRUR CHECK 5278 REtl 5280
C"
C
~298 IFEt~I=DTHENRETIJRN
#tt#t+#tttt#+tt%%X#tttt
tb;ktttXb%Yt%ttI**#t+ftI
I
t.IPUT#15, Et4, EM$, ET, ES
i
5328 STOP 5322
REM
5324 REM X SET TRACK & SECTOR 5326 REM 5330 5340 5350 5366 5370 5388
XittttatttttXtttttttt*t
t
tttibbt#lY9ttlttttlttm)
IFFi358THENFl=0:F2=22:F3=1:GOTO5370 IFF>357HNDF<472THENFl=357:F2=26:F3=1S:COTO5378 IFF~471ANDF<5~0THENF1=471:F2=19:F3=25:UOT~5378 IFF>573THENF1=579:F2=18:F8=31
FT=INT(C<F-F11-l>/(F2-1i),F3
FS=F-Fl-(FT-F3j#F2+iFT-F&-1)
5330 RETURN
READY.
Page 42
KAPITEL
8
:
Relative Datei
Was ist eine 'RELATIVE DATEI'
Die Relative Datei ist eine besondere
leicht zu programnieren ist. Dabei wird ein Satz wahlfrei, durch
Satznunmer identifiziert, gelesen oder geschrieben. Eine
seine Relative Datei ist in gleichlange Sätze unterteilt, ein wiederm kann in Felder untergliedert sein.
Aufbau und Verwaltung einer Relativen Datei Die Dateiverwaltung übernimmt das DOS der Floppy Disk. Dazu werden
SIDE SEKTORS (Zeigerblöcke) angelegt. Ein Sektor kann auf 120
Datenblöcke zeigen, 6 dieser Sektoren können in einer Datei stehen.
Kapazität einer Relativen Datei
Eine
Datei kann aus 167132 Zeichen bestehen, d.h. einer Disketten-
seite. Die Datensatzlänge beträgt
11
:
Tabelle Byte
0,1
2-255 254 Datenbytes
Tabe1 le 12 : Format des SIDE SEKTORS Byte
0,l
2 3
4,5
6,7
8,9
10,ll
12,13
14.15 16-255
Format der Relativen Datei
Inha 1
t
Spur und Sektor des nächsten Datensatzes
Ein leeren Satz enthält FF (hex) Nicht belegte Bytes werden auf
Inha
1
t
Spur und Sektor des nächsten Side Sektors Nmmr des Side Sektor (0 Satzlänge
Spur und Sektor des ersten
Spur und Sektor des zweiten Side Sektor
und
Spur
Spur und Sektor des vierten Side Sektor
Spur
Spur und
Spur-
Sektor des dritten Side Sektor
und
Sektor des fünften
Sektor
und
?
Art
des DIREKT-NGRIFFS, die
:
:
1
-
254 Zeichen.
im
ersten Byte
00
(hex) gesetzt
-
5)
Side Sektor
des sechsten Side Sektor
Sektorzeiger auf 120 Datenblöcke
Side Sektor
Satz
Anlegen einer Relativen Datei Die Datei wird
die Satzlänge Format Beispiel : OPEN 2,8,2,'REL,L,'tCW$(100)
Eine Relative Datei
:
mit
dem
mit
OPEN
lfn,8,sa,'fn,L,'tCHR$(satzlänge)
WEN Befehl erzeugt, im Befehlsstring wird
übergeben.
mit
:
Satzlänge 100 wird angelegt.
Page 43
--
Eröffnen einer existierenden REL Datei zun Lesen und Schreiben Format : OPEN 1fn,8,sa,'fnm Beispiel : OPEN 2,8,2,'REL'
Die Relative Datei REL wird zun Lesen und Schreiben eröffnet.
:,
Positionieren auf einen Datensatz Da auf jeden einzelnen Satz wahlfrei zugegriffen wird,
:
muß
zunächst die entsprechende Satznunmer bereit gestellt werden. Das DOS der Floppy erwartet diese Satznunmer als
'ZWEI-BYTE-ZAHI.', deshalb
die Satznunmer erst ungerechnet werden. Umrechnung Satzadresse in das
'ZWEI-BYTE-FCRM4T'
:
HB = INT(satznunmer/256) : LB = satznummer - HB * 256 Diese Satznunmern werden über den Befehlskanal
mit
geschickt (der Befehlskanal muß Format
:
PRINT#
~~~,'P'+CHR$(~~)+CHR$(LB)+C~W$(HB)+CHR$(~~~~)
sa
=
Sekundäradresse der Relativen Datei
LB
=
Satznunmernteil (LW-BYTE)
HB
=
Satznunmernteil (HIGH-BME)
byte = Bytezahl
Beispiel : PRINT#15, Es wird auf das
Schreiben die REL Datei Sätze werden
mit
'P'+c~$(~)+cHR$(~o)+cHR$(o)+cHR$(~)
1.
Byte
im
10. Satz positioniert.
:
PRINT# lfn, (satz) in die Datei geschrieben.
OPEN eröffnet sein!).
(1
-
254)
innerhalb des Satzes
Sollen mehrere Felder in einen Satz, müssen diese getrennt und
Beispiel
:
Die Felder
Lesen der Relativen Datei
e i n e m PRINT# Befehl abgesetzt werden.
mit
PRINT#~,A$;cHR$(~~);E%$;c~~R$(~~);C
A$,
E@
und C werden in den gleichen Satz geschrieben.
:
zun DOS der Floppy
mit
CHR$(13)
muß
=
CR
Die Felder einer REL Datei werden Beispiel
:
INPUT#P,X$,Y$,Z
mit
GET# oder INPül# gelesen.
Die 3 Felder eines Satzes werden gelesen.
Fehlercodes bei REL Dateien Der Fehlercode
50,
(siehe Kap.
:
9)
muß besonders behandelt werden.
Page 44
Beispiel-Programm Programmerklärungen Zeilennr. Kurzbeschreibung
10 PRINTM3";GOT0130:REM ZUM HflUPTPROGRHMN
20 REM
..............................
mit
RELATIVER'
:
Satznunmer errechnen und auf den Satz Positionieren Satzlänge prüfen,
10
Leersätze als Platzhalter erzeugen
Sätze in die Datei schreiben
wenn beim positionieren der Fehler über die Datei hinaus ein Satz geschrieben werden. Begrenzung der Eingabelänge durch den INPUT# Befehl
Sätze aus der Datei lesen
siehe Zeile
Fehlerkanal lesen und ausgeben, der Fehler
sondert gezeigt.
470,
DATFI
REL
Datei anlegen
nur beim Lesen
50
JB REN SHTZNUMMER UMRECHNEN UND HUF 40 REM DEN SFlTZ POSITICiNIEREtJ
50 REpl
..............................
CB HB=I NT( Rk4/256> : LB=RbI-HEi256 70 PRINT#15,
aa
GOSIJBT~E~
90 RETIJRN
180 REM
1
16 REM MEbIIJE
128
REM
-P-
"P"+CHR$(83+CHR$(LBj+CHR$<HB?+CHR$(lj
..............................
..............................
130 OPEb415:8,15, "Iß":CL0SE15 148 PR1 NT
150 PRINT" 160 IFXX=BTHENPRINT"
170 PRINT" 186 190
208 PHI NT " PNa5i PROGRRMNEt4TiE
PRINT" PRINT"
"
3kl
DHTE I OERWHLTUblG RELHT I VER FILES C-64"
=ae================================z"
#IrllPl
ma32
mrwr
KagOll
URTEt48flETZE SCHREIBEN DRTENSHETZE OEFFNEH
HNLEGEN EINER UHTEI"
LESEN"
EINER
DHTEI"
"
210 GETHt~IFA9=""THEW210
auftritt, sollte
50
wird ge-
"
248 REM 250 REM RELATIVE DflTEI HHLEGEN
260 REM 278 PRINT1'3alfiHTEINRME
280
..............................
PR1 NT1' sRTZLRENGE
:
i"
;
;
INPUTt4H3 : PRINT
:
E''
;
:
I
t.IPUTL
290 IFLC 1 ORL>254THEEIPR INT" alCISS
ZW
I
SCHEt4 1. . .254
L
I
EGENI" : GOT0280
Page 45
400 REM 410 REH SHETZE SCHREIBEt.4
,420 438
948 OPEHl5,8,15 : OPEN83
450 PR I NT"
480 490 IHPIJTDB : IFLEk4I 500 PF:IbIT#%, D2 : GOTO450
510 REM 520 REM SATZE LESEN
530 REM 54ia I FXX?: 1 THEkIGOSlJB7 18 : GOT0 140
550 568 PR1 EIT
570 PE1 t~IT"~1~ATZ~I~JMtlER
588
598 I NPUT#8, D2 600 6 18 PR IkIT"Ma3ESPEICHERTE DATEkI : F'' 628 GOT0570
638
643 REM DHTEI EROEFFFIEN
€50 660 PRI~IT"3;IIIHTEIbIfit1E
270 XX=2:GOT0148 680 REM
639 REFl FEHLERMELDUNG 700 REM
7 10 PR I NT " ;IZlJERST MIJSS EI NE DHTE I HHGELEGT WERDEN!"
728 FOR 730 RETURN 740 CLOSE8:BLOSE15:GOTO146
750 REN 768 REM FEHLEHKANHL LESEN
770 REM 780 INPUT#
796 PRIb4T"aFEHLER : i";X,XS;Y,Z 860 CLOSE8:CLOSElS
818 ENU
..............................
REM
..............................
IFXX~~lTHENGOSUB718:G~TO140
md
SAETZE SCHRE I BEN!" PR I NT
PR1 t.IT PRINTU EIHGHBEDATEN : IMHX. 73 ZEICHEN>!"
8.8,
FifiB : GCISiJB788
D2?>79THEnUZ=LEFTZ(n2,79)
..............................
..............................
OPEN15,8, 15 OPEN%, 8,8, t4HO : GOSIJEi86i
"md
GrJSUB.50:
IFD2=CHR3(25S>THENDZ="LEEKER
SfiETZE LESEbIi"
IFX=S8THEt.IPRINT"dZlJ HOHE SRTZkIUMMERi" : GOTU570
:
<8=EHDE5
i"
;
:
INPIJTRN : IFRt.I=BTHEN740
DHTEbISHTZ"
F'RIHT : PRINTU2
..............................
:
E"
; :
INPlJTNR2
..............................
..............................
I=
1
T04008 : NEXT
..............................
..............................
15,
X
t
X$
,
Y,
Z
:
IF;<~~28ORX=5GiTHEt.IRETURN
Page 46
LESEN DES FEHLERKANALS Das Blinken der roten LED der Floppy zeigt das Auftreten eines Feh-
lers an. Mit Hilfe des folgenden kleinen mitteln, un welchen Fehler es des Fehlers möglich ist, wo er lokalisiert ist.
A
:
Nummer des Fehlers
:
Fehlerbezeichnung
B$ C : Spur
D
:
Sektor
DER
LISTE
BEDEUTUNGEN DER FEHLERNWRN
Kein Fehler Rückmeldung für Block-Header nicht gefunden Sm-Zeichen nicht gefunden Datenblock nicht vorhanden Fehler in der Byte falsch decodiert Fehlerhaftes Verify beim Schreiben Schreibversuch auf Diskette Prüfsunmenfehler Datenblock ist zu lang
ID der Diskette fehlerhaft Allgemeiner Syntax-Fehler Ungültiger Befehl Befehl ist zu lang Ungültiger File existiert nicht Befehl kann nicht interpretiert werden
Record existiert nicht
Recci-dlänge zu klein
Recordnunmer ist zu hoch
File bereits
File nicht offen
File nicht gefunden
File existiert bereits
Falscher Filetyp
Kein Block mehr frei
Falsche Spur- oder Sektornunmer
Falsche
Kein Kanal mehr frei
Fehler in der
Diskette oder Directory voll
Angabe der
Keine Diskette
Spur- oder Sektornunmer
Filelöschung. (keine Fehlermeldung)
Prüfsumme
Filename
zun
BAM
DOS-Version
im
sich handelt, und
im
Header
Schreiben geöffnet
Laufwerk
Prograinms~könnensie er-
wen? dies nach Art
im
Klartext
mit
Schreibschutz
Page 47
LISTE DER FEHLERMELDUVGEN
20
:
READ ERROR Header des gesuchten Datenblocks wird nicht gefunden.
21
:
READ ERROH SYNC-Markierung wird nicht gefunden. Gründe dafür können
schlechte Justierung des tierte Disketten oder schlechter Sitz der Diskette sein. Kann auch Hardware-Defekt anzeigen.
22 : READ ERRCR
Dieser Fehler auf und zeigt an, daß ein Block gelesen oder geprüft (veri­fied) werden sollte, der nicht ordnungsgemäß geschrieben wurde.
23
:
READ ERRCR Die Daten, die in den DOS-Speicher geschrieben wurden ent­halten einen re sind fehlerhaft. Dieser Fehler kann auch Erdungsprobleme anzeigen.
24
:
READ ERRCR Die Daten oder der Header wurden in den DOS-Speicher einge-
lesen, aber in den Datenbytes existieren fehlerhafte
muster. Dieser Fehler kann auch Erdungsprobleme anreigen.
25
:
WRITE ERRCR Fehlende den Daten
26
:
WRITE PROTECT Es wird versucht, auf eine Diskette zu schreiben, die einem Schreibschutz versehen ist.
27
:
READ ERROR Es liegt ein Fehler
(Prüfsunme stimmt nicht). Dieser Fehler kann auch Erdungs-
probleme anzeigen.
Prüfsunmenfehler, d.h. ein Datenbyte oder mehre-
ubereinstimnung zwischen den Daten
auf
LNU
BESCHREIBUNG
tritt
im
Zusammenhang
der Diskette.
ON
im
Header des zu lesenden Datenblocks vor
Schreib/Lesekopfes, nicht forma-
mit
den BLm-Befehlen
im
Bit-
DOS-Memory und
mit
28
:
WRITE ERROR Nach
dem
hYW-Zeichenfolge des nächsten Datenblocks. Wenn er diese
synchronisationsmarkierung
Zeitrams findet, wird diese Fehlermeldung ausgegeben. Grund
dafür kann
Hardwarefehler sein.
29
:
DICK 10 MICM4TU-i
Die
der Diskette oder der Header ist fehlerhaft.
30
:
SYNTAX ERRCR Das DOS kann den über den Befehlskanal geschickten Befehl nicht interpretieren.
Schreiben eines Datenblocks sucht der Controller die
nicht innerhalb eines bestimmtem
z.B. ein zu langer Datenblock oder ein
im
DOS-Speicher vorhandene ID stimnt nicht
überein. Die Diskette wurde nicht initialisiert,
mit
der ID auf
Page 48
31 : SYNTAX ERKOR
Befehl wird nicht erkannt.
32
:
SYNTAX ERROR Befehl
33
:
SYNTAX ERROR Falsche Verwendung des "Jokers"
34
:
SYNTAY ERROR
ist länger als
58
Zeichen.
im
OPEN- oder SAVE-Befehl.
Filename fehlt, oder kann vom DOS nicht erkannt werden. Typischer Fehler: Ein Doppelpunkt
:
SYNTAX ERKOR
39
(:)
fehlt.
Befehl wird nicht erkannt.
50
:
RECORD NOT PRESENT
Die Fehlermeldung wird ausgegeben, wenn versucht wird, nach den letzten aufgezeichneten Daten
mit
INPUT# oder GET# wei-
ter zu lesen.
51
:
OVERFLOW IN RECORO Die Anzahl der Zeichen (inklusive
CR)
ist größer als die vor-
gegebene Recordlänge
52
:
FILE
TOO
LARGE Recordnummer (in einem relativen File) ist zu groß; das Fassungsvermögen der Diskette wird überschritten.
60
:
WRITE FILE OPEN Ein Schreibfile, das nicht geschlossen wurde, soll geöffnet werden.
01
:
FILE NOT WEN Es soll ein File angesprochen werden, das nicht geöffnet wurde.
G2 : FILE NOT FOUND
File existiert nicht.
63
:
FILE EXISTS Ein File soll einen Namen erhalten, der bereits auf der Dis­kette existiert.
G4 : FILE TYPE MICMATCH
File-Typ stimmt nicht
G5
:
NO
BLOW
Diese Fehlermeldung steht
mit
Directory-Eintrag überein
im
Zusammenhang
mit
dem B-A-Befehl. Der Block, der als belegt gekennzeichnet werden soll, ist be­reits belegt. Die Parameter die ausgegeben werden, geben Spur und Sektor des nächsten frei verfügbaren Blocks an. Werden zwei Nullen ausgegeben, so sind alle Blocks
mit
Nmmern belegt.
G6 : ILLEGAL TRACK AN0 SECTOR
Das WS findet nicht den Zeiger
zun
nächsten Block
höheren
Page 49
67 : ILLEGAL T CR S
Ungültige Spur- oder
70
:
NO
MEL AVAILABLE
Ein direkt angesprochener Kanal ist bereits belegt oder
(falls kein bestimmter Kanal angesprochen wurde) kein Kanal ist mehr frei.
71
:
DIR ERRCR Die BAM kann nicht qelesen werden, was eventuell seinen Grund darin haben kann, däß sie de. Ein Reinitialisieren der Diskette kann diesen Fehler in manchen Fällen beheben.
:
DICK FULL
72
73
:
74 : DRIVE WT
664
Alle
hat die maximale Anzahl von 144 Einträgen. CBM M)S V2.6 V170
Diese Meldung erscheint direkt nach dann, wenn sie wollen, die mit einer anderen DOS-Version formatiert wurde.
Auf
Versionen: DOS 1.0
Voll kompatibel sind die Versionen 2.0 und 2.6. Mit DOS 1.0 und 2.0 selseitig gelesen, aber nicht beschrieben werden. Bei einem Schreibversuch erscheint die obige Fehlermeldung. Die Version 2.5 ist noch lesekompatibel.
Es wrde versucht die Floppy anzusprechen, ohne eine Diskette
in das Laufwerk einzulegen.
Blocks der Diskette sind belegt, oder die Directory
CahMOWRE-Rechnern existieren vier verschiedene WS-
DOS 2.0
WS
DOS 2.6 : CBM 1541
bzw. 1.0 und 2.6 formatierte Disketten können wech-
READY
Sektornunmer
im
DOS-Speicher überschrieben wur-
dem
mit
der VC-1541 auf eine Diskette schreiben
:
CBM 2040/3040
:
CBM
2.5 : CBM
mit
4040
8050
allen anderen Versionen weder schreib-
Einschalten bzw.
DOS-
DER 'JOKER'
Jokerzeichen
Filenamen in verkürzter Form einzugeben. Man gibt nur den Teil des Namens ein, in kette unterscheidet. Der Rest wird durch einen Stern Fragezeichen
Der Stern wird benutzt,
des
Filenaniens zu ersetzen.
BEISPIEL
wrden benutzt,
dem
er sich von den anderen Filenamen auf der Dis-
(?)
ersetzt.
:
DAT* kann für folgenäe Filenamen stehen DATE
I
DATLM DATEWILE
d.h., für alle Filenamen, die ginnen
un
bei einigen Floppy-Befehlen den
un
nichtsignifikante Zeichen a
mit
den Buchstabe DAT
(*)
n
:
oder ein
E
n d e
be-
Page 50
Das Fragezeichen wird benutzt, bestimmten Stelle zu ersetzen.
BEISPIEL
:
????FILE kann stehen für TESTFILE
DIAGFILE
OATAF
IL E
i
C
aber n
ABFILE oder FILEPROG
h t für
m
e i n Z e
i
C
h e n an einer
Kombinationen von Stern und Fragezeichen müssen
handhabt werden.
Der Grund dafür ist, daß alle Stellen hinter
signifikant angesehen werden. Ein Stern kann aber für jeden belie­bigen Filenamen stehen, kombination in Verbindung kette befindlichen Files gelöscht Eine sinnvolle Kombination von Stern und Fragezeichen wäre z.B.:
Bei den einzelnen Floppy-Befehlen wirkt sich das Arbeiten Joker-Symbolen verschieden aus. Der Namen, die durch die eingegebe Joker-Kombination abgedeckt werden. Bei Ausführung des LOAD-Befehls wird das erste File Namen geladen. Dasselbe gilt für den OPEN-Befehl; hier kann jedoch nur ein File Befehle dung
REM, SAVE oder COPY dürfen prinzipiell nicht in Verbin-
mit
Jokersymbolen verwendet werden.
So
ist z.B. die Kombination
*ABC???? identisch
A?????DAT* , die stehen kann für ADRESSDATEN
ALTERSDATEI ABCDE DATEIEN (ein Leerzeichen ist auch ein Zeichen)
mit
bereits existierendem Namen eröffnet werden. Die
mit
*
so
daß z.B. bei Verwendung dieser Joker-
mit
dem CCRATCH-Befehl alle auf der Dis-
crden.
SCRATCH-Befehl löscht alle
mit
Vorsicht
dem
Stern als nicht
mit
ge-
mit
den
'passendem'
Page 51
KAPITEL Da an den
Geräte über verschiedene 'Namen' angesprochen werden. Der 'Name' einer Floppy ist die oder Hardwaremäßig geändert werden.
Softwarelösung:
PRINT# lfn,
Beispiel
1
PRIM#lS,'M-W~;CW$(119)+C~$~O)~(2~+CHR$(9+32)+CHR$(9+64~
Die neue Gerätenunmer ist 9.
Nachteil der Softwarelösung: Dieser Befehl
schalten der Floppy wiederholt werden!
10
:
'hdern' äer Geräteadresse
C-64
bis zu 5 Floppy Dick's anzuschließen sind, muRen die
Gerätenmr. Die Gerätenunmer kann Software-
'M-W
nr : neue Gerätenunmer (9
:
';~tR$(119)+~HfZ$(0)+~tR$(2)+~~~(nr+32)+~HR$(nr+64)
-
13)
muß
nach jedem Ein-
Hinweis: Wenn Sie mehr als ein müssen Sie bei jedem Gerät eine andere Gerätenummer einstellen. Die bei nicht sehr empfehlenswert, da immer nur das Gerät, dessen Nummer geändert werden soll, eingeschaltet sein darf. Außerdem müssen jedes Mal die oben beschriebenen Befehle eingege­ben bzw. ausgeführt werden. Die Lösung. bei den anderen Laufwerken das serielle kabel bei .Power on" abzuziehen, sollte nicht in Erwägung gezogen werden, da Schäden an den Laufwerksplatinen die Folge sein können. Bei unsachgemässer Behandlung erlischt die Garantie für das Laufwerk.
Hardwarelösung: #ndern der Gerätenummer mit DIP-Schaltern In Abbildung Die Änderung nehmen Sie
1. Schalten Sie das Laufwerk aus.
2.
Stellen Sie die beiden DIP-Schalter entsprechend der Tabelle für die gewünschte Laufwerks­Gerätenummer ein.
Gerätenummer
10 ON OFF
11 OFF OFF
3.
Schalten Sie das Laufwerk wieder ein. Das Laufwerk wird jetzt unter der eingestellten Lauf­werksbezeichnung angesprochen.
5
ist die Lage der DIP-Schalter für das Einstellen der Gerätenummer ersichtlich.
#
SW1 SW2
8
9
ON ON OFF ON
I
1541-Diskettenlaufwerk an Ihren Computer anschließen wollen,
bitte wie folgt vor:
SERiAL
INTERFACe
POWER
Soitwarelösung ist hier-
Verbindungs-
I
1
Abb. 5:
Page 52
Page 53
DISPLAY T8S Gibt den Inhalt jedes gewünschten Blocks (einschließlich BAM und
)
Uirectory
auf den Bildschirm oder den Drucker aus. Die Daten wer-
den im ASCII-Code oder als Hexadezimalzahlen dargestellt.
DISK
CHECK Führt den Befehl VAIOATE aus und gibt an, welche Blocks nicht ge­lesen werden können. Erlsubt festustellen, inwieweit eine Diskette zerstört ist.
PERFORMANCE
TEST
Allgemeiner Floppy-Funktionstest. SEWENTIAL FILE
Programmbeispiel, an dem das Schreiben und Lesen eines sequentiellen Files gezeigt wird.
RANWM FILE Programmbeispiel, an dem das Schreiben und Lesen von Files
Direkt-Zugriffs-Befehlen
(BLOCK und USER-Befehle) gezeigt wird.
mit
Bei diesem Programm (xx entspricht den Computer-Bezeichnungen C64, C16 oder delt es sich um ein
Kopierprogramm. mit dem Sie 1
:
1
Kopien von Ihren Disketten anfertigen
PLUS4) han-
können. Rufen Sie das Ihrem Computer entsprechend bezeichnete Programm auf. Sie werden dann aufgefordert die Quell- und Ziel-Diskette Ziel-und Quell-Diskette hat einen
Datenverlust zur Folge. (Eine Quell-Diskette sollte immer
im Wechsel einzulegen. Eine Verwechslung von schreibgeschützt sein.) PRINT.xx.UTIL
Bei diesem Programm (xx entspricht den Computer-Bezeichnungen C64, C1 6 oder +4) handelt es sich um ein Druck-Programm, mit dem Sie das Listing eines Basic-Programms mit dem mo­mentanen Inhalt der Variablen (keine Variablenfelder) auf den Bildschirm oder einem
CBM-Druk­ker ausgeben können. Spezielle Druckmodi können ggf. nicht auf jeden Drucker ausgegeben werden. Das Programm lauft auch von einer Datasette.
C64 BASIC DEMO Mit den Routinen dieser
Es werden die Video- und
/
+4
BASIC DEMO
beiden Programme können Sie einen kleinen Systemtest durchführen
Audio-Ausgabe, Tastatur- und Joystick-Eingaben sowie Laufwerks
Ein/Ausgabe-Vorgänge gestestet. LOAD ADDRESS ist ein kleines Programm, mit dessen Hilfe Sie feststellen können, an welche
Speicheradresse im RAM ein Programm von der Diskette in den Computer geladen wird. Einige Programme können nur in dem Bereich laufen. von dem Sie ursprünglich einmal gespeichert wurden. Diese Programme müssen mit LOAD
.DateinameU,
8,l
geladen werden.
UNSCRATCH erlaubt Ihnen Dateien wieder zugänglich zu machen, wenn Sie aus Versehen ge­löscht wurden (siehe Seite 15,
Scratch-Befehl) und noch keine weiteren Diskettenaktivitäten
(2.
Speichern einer neuen Datei) durchgeführt wurden. Mit HEADER CHANGE können Sie eine Diskette ohne Datenverlust umbenennen Hinweis: Auf der mitgelieferten Diskette können sich neue Programme befinden bzw. auch eini-
ge fehlen. Commodore behält sich das Recht vor, den Inhalt dieser Diskette von Zeit zu Zeit neu
;U
gestalten. Änderungen befinden sich in den „HOW T0 USF-Programmen auf der Diskette.
B.
Page 54
18
PRINT"~"TABI:c>'"WIC WEDGE PRINTUM BY DRVIU
20
30
PRINTM]B> DI8K
40
PRINTU@ OR CONMFiHDS
50
PRINT"kDB0 DIRECTORY PR1NT1'@$0
60
70
PR1NT"WF ILENRME
E8
SYSCPEEK<43>+296tPEEC:<44i+2153
90
NEW
H.
HOOK STaTUS
LOAD
REHDY.
Page 55
PRINTU;1 DIi%.COPY.HLL J DIM
L2(232>~L1%(232>1N3(232),TXI:2.32j~T$t4j
DATA XXX J SEQ FORJ=0TO4 : RERDTO C .J
.,
PRG, USR, REL
>
:
NEXTJ
I
M
BIJTTERF-I ELD
"
DHTH18,32167,72,77,82~87198~117,147
SI=2342:SB=PEEK(44>:NB=SBt256+SI
FORI=0TOS:READR:POKEMB+AiC;B+9:blEXT
I
NPIJT" FROM UNI T 81111'' ; F GOSUE800 F$=D$
INPUT" TO IJN I T 91111'' ; T GOSUB800 T$=DO
IFF=T AEIDF$=T$THENR~JN GOSlJBS60 CLOSE1:CLOSElS:OPEN I~JF,~~:PRINT#~S,"I"+FO GUSUB830:IF E THEN STOP:GUTU22B
INPUT"PATTERt4 FORJ=lTOLEN(PO> : IFMIDt(PO,
tllll"
;
PO
J,
~;I<>"Y"THENNEXTJ
Pl=J-l:IFP1>0THENPt=LEFT$CP$'Pl~
PRINTUHOLD DOWN 'Y' OR 'N.' PR1NT"PROGRAMS TU BE COPIED..."
1,
F,
3,
OPEN
GUSUB830:IFETHENSTOP:I3rJTrJ220
GET#l,RO:H=HSCCf7$+"
"$"+F$
"i
IFH=IORA=65THENL1=253:GOT0350
IFH=67THENL1=761 :GOT0398
KEY
TU SELECT"
CLOSEl:PRINT"?????":STOP
FORJ=~TOL~:GET#~JX$:NEXTJ
N=@:Nl=@:R=255:Z=83
N$="":GOSUB1029:T9=Y-l28~GUSUB1008
JI=~:Z$=CHR$~~~~>:FORJ=~TO~~J:GET#~JX$:NO=~~$+X$
IFX$<>ZOTHENJl=J NEXT
J
GOSUB390:Ll%=Y GUSUB980:GOSUB980 L2=X+256lY
IFT3<10RT9>4GOTO540
IFP1>~THENIFP2~>LEFT~Ct4$IPl~C;rJT0540
PRINTNO;
"
";
TOiT42
CLOSEl :CLOSE~~~P~INT" t Y FORJ= 1 TON
t
t
#"
L2=L2CJ):T%=T%(J):IFL>L2OOTO648
PR1NT"YYI OUTPUT DISK FIJLL"
INPUTUDO YOU HHVE A NEW UNE"; IFHSC(ZOjO89THENEND
GOSUB860:GOTO530 OPENl4,F, 15:OPEt.4151T, 15 PRINTN$( OPEN3, F.,
INPlJT#14,EIEOJEl,E2:GUSUBEi4B:
J);
LEFTOC"
3,
F$+" : "+N$I:Jj+"., 11+T2CT;!j
ZZ
",
IFETHENPRINT ";EO.;E:GOTOi
17-LEbl<NOC.J>:~>;
Page 56
689 IFT%=4THEb{rJPEt,I4- T, 4, T$+'' : "+t.I$i:J)+"
i3PEt.14, T, 4, T$+" : "+t4$(.J:t+",, "+T$(T%).t"
690
-
-
L=L-LZ : G08lJB3:::0:
710
IFT?:=~THE~~IB'+SI;I.~B+~.~)
1FETHEtt]FRI~{T1'jlijlijli " ,E$,;
:
GC)Tij73@
.,
L, "+CHR$(Ll%(
.,
1-1"
E
:
GOT0758
J)
)
:
iIirJTiTi70B
SYs(MB+:3)
,,JGJ
bl$
i:.J:i
=I'
"
:
740
i3rJ:;lJBZ:iQ : IFErHEbIPR 1t.ITnjli%jli#
F'RI t.ITU7"
-.=-
I
.,~j
CLCiSE4 : CLOSEZ : CLO!:E15 : CLij!:E 14
760 HEXTJ 770 ;*:=FEE r:i3 : F'R
-r
;du
-
IFHCCIZ9 J=~~GCITO~~~
8
18 IFD%D(>UGrJTOaMB
r--
D$-iI:HF:$1 U+4F:j : RETijRt.4
830 It.IFCiT#15,E>EZ,EliEZ
E:4ß
IFE=BTHEbIE=(CT filjjj 191
It.ITHHt.IijTHEF.: It.IPiJT
11
j
:
E$="#ST%"
131:: REAIj'f" : IWJTu t.(IIII"
"
;
E'$;
E
:
GrJTrJ75@
I
Z$
859 RETURM
Z60 UPEt.l15> T 15 PR IHT" '1Ht.IJ Tl1 t~IECl THE i:ilJTPlJT UISK" : IbIPIJT " N1111" ; 22
Z78
IFASr;(,7$;i
E:%@ It,IPlJT " DICK t.IfiPlE, 1 399 pRIkIT#lS, "t.IH+T$+". "+X$+",
<>-S~GJ~TC~~~GJ
D"
.;
X$,
Y$
"+Y$
909 GrJSlJB83GJ : IFETHEbI8TrJP : i3iJTCi86u 91ß PF:IbIT#15, "I "+T$;OPEt~Il,T,ß, "$"+T$+" : !#$X&"
920
GrJSlJB839 : IFETHEt.ISTrJP : Gi3TrJ860
GC)!$lJB38@ : GOStJB-88
Page 57
100 REM PRINTER TEST FUR VIC HND 64
NL$=CHR$(l0:):CR$=CHRO(13~
110 120
BS$=CHR~~8):SO$=CHR$~l4~:SI$=CHR$i:15~~
1313
PU$=CHR$B.:~~):ESC$=CHR$C~~>:SIJB$=CHF:$<~~~
140
CD$=CHR$ClT):CUO=CHR$<l45>
150 RV:S$=CHR$( 18) : OFF$=CHR$( 146;s 160
:
170 OPEN~J~:PRINT#~:PRINT#~ 188 PRIMT#4,o 801" PR INTER TEST 190
:
268
PR IkIT#4 : PR1 NT#4 210 PR1 t4T#4,SrJ2" 228 GOSUB848 : CLUGE4
.-
,-
-
.LSU
:
1.
CHECK GRHPHII; (CURSOR IJP) NODE"SI$
"
240 OPEN4 J 4 J 7 : PR I NT#4 250 PRINT#4,30$"2. CHECK BlJ8INESSiCURSOR IjOWNi MBUE"SI8 260 GOSUBB4@:CLOSE4
270
:
188 ÜPEN4,4 : PRINT#4 : PRINT#4.4 :50$"3. CHI?$( lB) TESTUSI$ :PRINT#4 236
FORI=48T052 :PRINT#~J PU3"25"LHR$(
304
:
310
PRIt~IT#4:PF:IHT#4,SrJ$"4.
CHRZI
I
);
NL3 : NEXT
13)
TES;TMSI$:PRINT#4
320 FURIz53TO57 : PRINT#~J PO$"25"CHR$C I >;CR$ HEXT
330
:
340 PRINT#4:PRINT#4,SU$"5. CHR2C2) TESTUSI$:PRINT#4 350 FOKJ=lT02 310
H$="":FURI=1~8T[l~~5:~$=~$+CH~$(I):NEXT
378
PRINT#J,BS~H$:PRII~~T#~J~I%:NEXTJ
320 FORJ=l T02 398
B2="":FORI=255TO1288TEP-1:B$=B$+CHR$~I~:blEXT
480 PRIt.IT#4,
:
410
BSOBO
:
PRItJT#4 J SI$ : NEXTJ
420 PRI~4T#4:PRINT#4~CU$"6, CHR$r14> & CHR0(15;t TESTUSI$:PRIk4T#4 430 F URJ=ZTO4STEP2 448
A$="":FORI=J.%16TO.J%16+31:H$=H.b+CHR$II):klEXT
450 PR1 I.IT#J, 800H$CR$SI$H$ : NEXT 468
:
470
PRIt~IT#4:PRINT#4,SUZ"7.
488
FUR J=BTÜ? : PRINT#4, F'U$CHR$i48+5 )CHR$ I8:j "CUMMOUORE" : NEXT
498
:
500
PRIt.iT#.l:PRIt.IT#4,CU$"8.
518 FiIR J=BTrJ3 : F'RINT#.), BS$SIJB$CHFt$( 10+10tJ M:iLHi?$1:255) : HEXT 526
:
530 PRINT#4:PRIb4T#4,5O$"9. CHR$1:27) TEST"SI$:PRINT#4 540 SP$="
CC
-
.J&
FOR I=WTU360STEP10
568
I$=RIGHT$(SP$+STR$CI),4>
CHRfClti TEST"SI$:PRINT#4
i3Hi?$c:26, TEST"SI$:PRINT#4
608 NEXT : CLOSE4 618
:
62r3 OPEN4,s 4
Page 58
7-
-
1
ciili
OPEt44,4,7 1 FOF:J=16Tü13
-10 R$="
r
720
7
.-,
,
,:M
746
"
:
PR 1 1IT#4
-
kIEXT : CLOSE4
FURI=J~l6TOJ~l6+15 : H$=A$+CHR$C I :HEXT
:
.,
HQ
"
"
ClJ$n$
750 OPEI.14,4 760 PRINT#4 : PRIbIT#4, ::C1$"12. EHR$< 18, & CHR$C 1461 TEST "SI$ : PRINT#4 770 H$='' COMMIjitORE 786 FrJRI=OTÜ:3 PRIbIT#4, R$lS$H$rJFF$" "H$" "RVS$A.QOFF$"
"
"H$"
"RVSOfi2 7963 HEXT BE10
blß
PHINT#4 1 PR1 NT#4 1 CMU4,- S0B0'PRI3l3RRt1 L1ST"SIB : LIST
i32,5
END 839 840
PS:
T
IIT#J
. . . - . . .
. . .
FORI=32T047
056 868
FOR.J= 1 T08 PR I NT#4
p-
FrJR.J= 1 TU:? : PR I NT#4,
FORJ= 1 T08 : PR I NT#4
FrJR.J= 1 TOS; . PR I EIT#4,
896
900
FüR.S= 1 T08 : PR INT#4,
FORJ=lT08 PR1 NT#4:
911)
3
?,j
FORJ= lT08 : PRIFIT#4,
L
1
5
.
j::.Lj
FORJ=lT08 : PRINT#4)
.P
r
i4ß
95ß
Page 59
100 POKE59468,12 110 PRINTM-RIVE ADDRESS CHHNGE PROGRAM" 111 PRINT"l!iTURN OFF RLL DRIVES NOW" 112
PRINT"E%CEPT THE UNE T0 BE CHHNGED."
420
PRItJTnWLD DEVICE AIIDRESS 81111"
130 INPUT OD: IF OD<8 OR OD>15 GOTO 120
PRINT8'WiEW DEVICE HDDRESC; 91111"
140 150 INPUT ND: IF NDCE OR ND>15 GOTO 140
GOSUB 300 : REM FIND DRIVE TYPE
160
GOSUB 600: REM CHANGE ADDRESS
170
PR1 tJT"kiTHE SELECTED DRIVE HRS BEEN CHHNGtD.
180 185 PRINT'NOW TURN ON THE OTHER DRIVE(C2" 190 END
300
REM: 310 CLOSE15:OPEN15,0D, 15 320 330 IF ST THEN 1000 340 IF C-254 THEN 350 IF C=226 THEN HT=50: REM: 2040 V1.2 360 IF 370 IF 380 IF L-198 THEN 400 330 RETURN 400 410 IF ZB=0 THEN MT=12: REM: 4040 '42.7 420 IF ZB=l THEN 440 430 IF ST THEN 440 450 IF ZC=l THEN MT=12: REM: 8050 '42.7 466 IF ZC=2 THEN MT=12: REM: 8250 '42.7 470 RETURN
600 CLOSElJ: OPENlSrOD,lS 610 630 RETURN
1000 PRINT" DEVICE ERROR 1010 END
REFIDY.
ILIENTIFY
PRINT#15,"M-R"CHR$(2SJ)CHR$C255j:GET#15,C$:C=RSC<C$+CHR$~0j>
C=213 THEN MT=12: REM: 4040 V2.1 C=242 THEN MT=12: REM: 8656 V2.5
PRINT#15,"M-R"CHR$~234jCHR$<16j:GET#15,ZB$:ZB=RSCCZB$+CHR$~02?
PRINT#15,"M-R"CHRBC172~CHRtC16>:GET#15,ZC$:ZC=RSL4ZC$+CHR$<0}>
PRINT#l5,"M-W"CHR$CMT)CHRS<02CHR$(2~CHR$CND+32>CHR$CND+64~
DRIVE
MT=119: REM: 2031 '42.6
1B00
TYPE
"
1
;
.
.
"
Page 60
4
OPEN2,8,15
5
PRINT"3":GUTO 18888
OPEN1,8,8, "$0"
18
GET#~IH$,B$
28. 30 GET# 48 GET#l,R$,B$
58
68 IF H$<:>" " THEN C=RSC(H$)
-
-
(U
88 90 GET#1,0 B$ : IF STOB THEN 1000
188 IF B$OCHR$1:34) THEN 98 110 GET#l,B$:IF B$OCHR$C34)THEN PRINTB$i:GUTOllB 120 GET#l,BZ:IF EO=CHR2132> THEH 128 138 PRINT TRE418;ai :C$="" 148 CB=L'$+B$:GET#l 150 PRINT" 160 GET T$: IF TZO"" THEt4 GOSUB 2880 178 IF ST=8 THEN 38 1088 PRINT' ELOCKS FREE"
1810 CLOSE1:GUTO 18888 28B0 IF T$="QU THEH CLUSE1 :END 2810 GET T$:IF T$="" THEN 2888 2020 RETURbI 4088 REM DISK COMMHbID 4010 C$="" :PRIbIT":;lt,; 401 1 GETES : IFB$=" " THEN4811 4012 PRINTE$; :IF B$=CHR$(13) THEN 4828
1,
H$, B$
C=6
IF B$(>"" THEN C=C+ASC(BB> W56
PRINT"I"MID$i.STR$<C),o2);THE(3);
B$
:
IF
B$<:;"
"
O"LEFT$(C$,3)
THEt.4 148
"I";
5000 PR I NT " l" 5018 GET#2)fl$:PRINTH$; :IF fl$OCHR~(13)GUTO5018 5028 PHINT"iU
1
8888 PR I NT " D-D IRECTORY"
10010
PRIHT "3-DISK COMMHMD" 10020 PRINT "U-QUIT PROGRHM" 18030 PHINT "S-UISK STRTUS 10188 GETHO:IFR$=""THEN18196 18260 IF H$="DU THEN 18 18:380 IF H$=". " rJR R$=":iU UR n$=") " THEt.4 4800
18310 IF A2="QW THEN END
18320 IF H$="S" THEN 5808
18933 GOTO 18188
;
"
Page 61
208
FORI=0TO28~PRIHT~PRINT"~"RIGHT$ISTR$(.I~+"
218 GET#2,H$ 220 GET#2, H3 230 GET#2,HB
246 T!5=0 258 FORT=lT017:GOSUB458 268
'f=22:%=T+4:GOSUB438:GOSUB540:NEXT
270 FOR
286
298 300 FORT=18TO35 310 GOSUB450 320 336 FOR 348 350 PRIMT#15, "B-P";Z; 144 360 376 PRINT" 'IN$" "TS-17; "BLOCKS FREE" 380 FOHI=iTO4808:NEXT 330 PRINT"3" 400
410 428 I FR$<> 438 PKINTLEFTBIY~J Y >LEFT$(;i$t XI 448 RETURN 450
530 RETURN 540 550
I = 1
Y=22:X=i:GOSUB438 FORI=8TUZ~~PRINT~PRI~4T"~"PPIGHT$C."sTR$i.I~+"
Y=22:X=T-l3:GOSIJB430:rjrJSIJB54@:NEXT PRINT".~"
T02888 : NEXT : PR1 NT1'3"
I = 1
TU 1 000 : NEXT
~IO="":FORI=lT020:GET#2~H$:H$=N$+~%~NEXT
INPUT~~~IRNOTHER
IFH$="Y "THENRUN
GET#~,SC~:SC=HSCIRIGHT~~:CHR~~~~+SC$,~~~I
PRINT"~~~I"RIGHTSISTR~C.T>J
REH
PR
"
Y"
THENENU
INTT
"
DISKETTE NllHl" ; H3
"II"
1);
'Ir'
aC
"'
"SBIB>" "SBC1>" "SBI2>=CHR$t0>
"iml';
;
",35.;:NEXT
"~5:)i :HEXT
598 IFT>30HNDS=17THEN : PRINTNIU$I t4IJ31 Z4,1> €08 IFT>24fiNDS=18THEN : PRINTtIIU$CNJ$ J 241 1 618
IFT>Z~HNUS=~STHENPRINTMIDOI:NU$~Z~J 626 IFT> 17HNTiC;=28THEEIPR I NTM IUZI: NJZ 638 PRINT" 648 IF FNS(Sj=0 THEN PR1NT"S"; :GUT0660
FC
-
~JU
PRINTUEt"; :RENRIGHT$<STK$(SL 1j;Z4,~ 1); :GUT072 668 PR I NT 678 HEXT 680 RETURH
"
du'
-C"
;
;
.,
j I :
1); :GOTU660
24t1
5
i
;
:
GOTOCCB GOTU660
:
24=24+
1
:
GOTO668
Page 62
1
REM CHECK DISK DN=G : REM FLOPPY DEVICE NUMEER
2
5
DIMT<198):UIMSi188>:REM ERD TRACK, SECTOR HRRAY F'RIEIT1'3I@i@l
9
18 PRINT" CHECK DISK PROGRHN"
%B PR1 NT : PRIIlT#2., AB; 85 : S=@
96 PRINT#15i "B-H: "DB!T,S
INP?lT#15> EH, EPlZc ET, ES
1Eiß 118 IFEt.I=8THEtJ138
1
15 I FET=BTHEN208 : REM END
120 PRINTtl5,, ''E-.n: "U$;ET.;ES: T=ET: 138 PRINT#15,"U2:Ci>"U$;T;S
134 t4B=t4E+1 : PR1 t4T1' CHECKED BLOCKS"t4B
155
PR1 t.IT" TRHCK IIIIIUT; " SECTUR IWIII"S"7-l"
INPUT#15> EH, EPlBJ ES, ET
148
158 IF
168 T( J)=T: !~~.J:I=C:.J=J+~
165 PR1NT"BDEHD bLrJCK:~ll"~TiS""
178 GÜT065
208 PRINT#15, 2 1 6 GOSlJE988
212 CLTJSE2
215 IF.J=0THENPRINTU
217 OPEN.2, UN,2.8 2 228 FUR I=OTO.J­236 PRIl.IT#15, "B-H: ";D$, Ti.1); SC11
248 PRIhfT., iT;I>,SCI1
258 NEXT 260 PR I EIT""J"Ii BLOCKS HHVE EEEH ALLrJLATED 278 CLUSE2 : END 986 918 IF EN=6 THEM RETURN 928 PR1 t4T"EKROR
,-
j.dki
Et4=8THEN85
PR1 t.IT
18
.-
-
AU
INPIJT#15, EN, EPlB., ET, ES
PRINT#15., " I
"I
1
"D$
"#"
"D$
--
VER 1.4
WLLNO
BLOCKS
#"EH.,
BHIi BLrJCKS
"
,-
"TRHCK"
EH$.; ET; ES"
oo
S=EZ
,
"
SECTOR
"
!
"
:
END
"
"
Page 63
100
REM~t%%ttt%ttttttttttIltttttttt6Itt
1
18 REN% DISPLH'f HNY TRHCK $ SECTUR
t
128 REN* ON THE KIISk: TO THE SCREEN A 138 RENS UR THE PRINTER 148
HENttWltt~%St~ffl~ttdO~tttttStttt
t
158 PRINTUm 160 PRINT"D1SPLHY ELUCK LONTENTS" 165 PRIt.4T" 178
RENttt%tt#tttt+ttttttttttttStSttS
180 RENS SET PROGRHM CUt4STANT 190
RENL$LttSSYlt%%bl%ltIttEtttdt1tLt
206 SP$="
":t.4L$=CHR$(B):HX$="B12345G783fiBCDEF"
I,
:
t
210 FS$="" : FüRI=i4 Tij 95: FS$=F!s$+" Iv+CHR$( 1 )+"E" : t.IE:<T 1 220 55$="
"
:
FOR 1~192 Tu 223 : SS$=3S$+" al'+T;HR$( 1 ::I+"!" : bIE,YT
248 KIIM H2i 15): t4BC2:1
1
35ECF:EEH#..IIIIIIIREiR WIS'4IIITER
"
254 GETJJf : IF JJ$=" " THEt.4254 255 IF JJZ="SM THEb4PRIt.4T" N35CREEt.4.lr" 256 IF JJS="PnTHENPRI NT 260
ijPEI-4 15 265 OPEt.14 278 OPEt.4 280
REM~~SSttttt~SSSSSttt#SS~StSSS~YS
2.8
,,
4
8
,,
8,2,
15,
"
1
"#"
290 REN* LUHD TRHCK 368 REM* Ib4TU DICK BUFFER 310
REM~tt%StSS~~~b~tttt~ItI~t~Stt~tt
326
I
t4PUT " RIITRHCK , SECTrJR
38 IF T=0 OR T>55 THEI.4 PRIHT#lSi
"
"+D$ : (iOSIJB 659
.
GLi5UB 656
AND
SECTUR
"
;
T,
',
M;YRINTERi"
t t
"
I
"D$:CLrJ8EZ~CLiS5E4:CLOCE1S:PRIHT~ENIiu:EN~
48 IF JJ$= "S" THEN PH1NT"RIiTRHCK"T" SECTUR"C;"N" 41 IF .JJ$="P" THEt.4 PRINT#4 : PRINT#4, "TRACb<"T1' SECTORHS:PRINT#4 50 PRINT#15, 68
REN~tlttttttt#%t#tSjr.t;ktt#~tLttStt
78 REM* REHD BYTE 0 OF DISK BUFFER 98
REMtYltft%ttft#fb~t#~SS~i):S~#~~#tt
"U1
:21 "D$;T,~S:GOSIJBG56
t
,-
88 PRINT#15.-"E-P:2,1"
18
PRINT#~~I"M-R"CHH$(B>CHR$~:~~
20 GET#15, H$(@> 28
IF
JJS="SnTHEN430
:
IFH~<~>=""THE~.IH~IIQ;I=IILO
436 IF JJ3="PnTHEt.4468
32 REH* READ & CRT DISPLHY
33
REM% REST UF THE DISK BUFFER
34
REMt~t#tPttttt+tfStSSSS$#StSSS+St
$
%
36 K=l:NBCl~=HSCCA2(8)j 38 FUR
40
42 GET#Z, HZC I T : IF RZC 44
46
48 Hf 58 FUR I=0 Tü
J-@
FOR
IF
HEXT I:K=0
=
TU 63:IF Je32 THEN GOSUB 716:IF Z$="N"THEN J=88:GOTU 452
I=K
TO
K=l
RND
:
B$="
3
IC2
:
1'
3:t.l=HSC(H$(I>s:rjiiC;iJE
I
)=""
THEt4 HSI I )=NL$
THEH NE(2>=RSCiHZiIi>
:
Jt4 : GO:5lJB
790 : H$=H$+"
798
:
"
52 C$=HZ(I>:GOSUE 850:BZ=BB+C$ ~4 NEXT
I:
IF J.J$="S1' THEN PRIIITHSBS
58 NEXT J:GOT0571
-\\
Page 64
460
REPlt++;lt++tttttttt+~+###Y+tt#jy.+~#+
462 REI.19 REHD & PRIMTER D1:SPLH'r' 464
REPlt%+$+%t#ft#t+##t1#t*ot+#++#+#t
466 K=l. t,4B<1j=fiSC(H$(8))
468 FOR
.J=0
Tl3 15
+
474 IF 476 HEXT I:K=8
478 480 FijR
482 l:$=fi$(I):GOrjUE 85Q:B$=Bf+c$ 484 t.IEXT
486
488 bIEXT 571 572 REM% kIE)::T TAALH Ht4D SECTOH
573
C-7c
.J,
er
590
680 IF
K=l Rt.IU I.::2 THEt4 HB!2T=HSCr:A$C
fi$="":B$=":":t.i=J#l6:GrJC;lJB
I&
Ti] 15 : tI=fiSC(R$C
75J@:H$=R$+":"
I
)
j
:
rj12rjIJB
I
IF .JJ8="PU THEt.4 PRIbIT#4: HOES
.J
:
GUT0571
REM%#)+$f++t#+#$#tt+#++++j(:+ttt+##
REM#ttt++t++++t#t+++#I++#tf#++###
.J
PR1 t.IT"NE:.T TRACK Ht.ID SEI:TCIR"~.IB~. 1 >t#3(2;1
-
PEIbIT1'DTJ &T
Zf.="Y"
Z$:IF
YUlJ
blHt4T HEXT TRHLK Ht4D SEC'TiIiR"
z$=""
THEbI T=NB( 1
THEPI.1538
)
:
3=tjB(2) : 13;1jT1:1330
I
798
:
IF Z$="NuTHEt4 J=4@ : GoTCi 571
t
l'fl"
610 IF Z$="PIv THEk( 320 620
IGIIT~
6130 646 REM+ SlJgRljlJT I bIES 650 660 FEHL ERROH ROUTIt4E
678
590
RE~*+f*+*%t%**%*t+***+++*+t*+*t+*
RE~+tt+~t+ttf+++f+~tttt++t+t#~###
f
RE~*%**t+++**t++*~***#tt#t*:+tft+t
i):
65'6 IPIPlJT#15, EP.1, El.18: ET) E5 : IF Et4=13 THEI.4 RETIJRt.4 638 PFII kIT " üDI 7r38 END 718
REMC##+#tt%%O*t+)++t++++t#+t+++tt
-.?
-
:du
REIIt SCREEkI CiIikIT I t.IlJE p1E:;SHrjE
7.5
LU
-
REMtttt+++%Ot#%%t+#++;(r+*tI+tO#t#t
T.--
,.
bU
I F Z$="Pl1' THEPI RET'IRPI
7
,.
-
;U
-
IF
z$<:-."'f
780 pRIkITu~ERCKu T " !5ECTl]Rv8
\
7r
,
ju
-
REP10ttt+f+tt++ +++*+t++#+++$+##+Yt 80Ei REllt DISK B'iTE TU HEX FRIMT 810
REI.ll):t+##ttQ):Lt+#+#sT.+t++t+t*ttttj):
5'20
Rl=It.jT<t.j,,"16) : A$=H$+tIILl$(Hi.:$,, fi1+1 83i3 fi2=Ib1T,::bI-l6+fi1 848 A$=AB+SP$ RETURN 850
REM+++#ttttt##+t+++#++$t++++$+kQ+
SI<
ERFlURi"Et4, EM$ ET, ES
"
THEH
750
j
:
H$=~~$+F~IU$I.:H><$, fiL+l, 1
"3"
.RETl-iF.:kI
t
%
.I
1)
Page 65
1089 REM PERFORMANCE TEST 2.6 1610
:
1620 REM VIC-28 AND COMMODORE 64 1839 REM SINGLE FLOPPY 1046
:
1950 UPEN 1,8,15:CIPEM15.~8: 15
LT=35
1666 1670 LTZ=STR2l::LTi 1980 NT=30 1090 PR1 t.4Tu3J
i
100 PR I t,IT " PERFlIlF:I1AHiJE TEST
1119 PRIt4TU-
1
128 PR 114T
1136 PRINT" I t,ISERT 1148 PRIkIT
1150 PRIhlT" IIISKETTE IN DRIVEN 1169 PRIbIT 1
17rj
PR1 t4T"N FPESS PETlJRNi"
1180 PRIt.lT
1190 PRIbIT" WHEH REHDYR"
1266 FuR 1=0 TU 56:GET fi$:NEXT 1218 GET n2:IF fl2~I>CHR$i1:3j THEN 1216
1220
:
I:CS=C~$+C~$:GOSUB lS40
IF T 1;blTTHEN 1370 PRINT"i!VT"fTEPl 15'" PRINTU:CI NUT RESPrJt4D I NG PRIHT " CÜRRECTLY TU CUtlHHt~lDS" GCiSiJB 1388
UISK DRI'v'E
"
SCRHTCH"
"
PR1tJT"miFtIVE F'HSS" PR I FIT
"
TT=2 1 OPEII
1498 1410 CCZ="OPEhI 1420 l:H=2:CC$="WRITE DfiTH" :OOSIJB 1930
1438
1446 UPEN 2,8,2,"0:TEST FILE,S.-R" 1450 CC$="OPEkl REHD FILE" :GOSUB
1460
1470 PRINT#l,"SB:TEST FILE" 1456 1499 1500
2,8,2?
CC$="CLOSE
LH=2:GDGUB CC$="SCRATCH FILERV:TT=l
:
:
MECHHIII
"@:TEST FILE,
WEITE
CHL
TECTR"
5,W"
FILE" :GOSUB 1840
"+LC$
1996
:GOSUB
:GOSUB
1848
1848
184Ei
Page 66
1518 TT=21
1528 ljPEt.4 4, 8, 4.,
"#"
1530 klbli:=~.I l+RHDl.ITI )1254+Nt'I%:jHt.ID255 : PRINT#1 "B-P"; 4; t.ItJ%
1540 t.4tif
="
"
:
FCIE
I = 1
T0 255 : 'Ikl$=EIb4$+CHE$
C
I
:
EIEXT 1558 PRIMT# 4, tdt.42; 1568 PRINT# 1578 CE$="
1,
"U21 ";4;0;LTIB
WF;
ITE TRRCK1'+LT$ : GOSUB 1248 1580 PRIt.4T#l,"U2:"~4;0;11O 1538 CC$="WHITE TRHCK 1688 PRItJT#l, "U1 1618 CC$="READ 1P-
~LM
PRINT#l, "U1:";4;8.; 118
18:38 Clz$="REHD TRACK
TRHCK"+LT$
I"
:
"
14; 0; LT.; 0
1"
:GrJSUB 1848 :GOSUB 1848
:
GrJSl-IB 1840
1648 CLrJSE 4
:
1658 1668
:
1670 PR I HT" N lJt.4 I T 1688 PHIMT" PEHFORMfit.4CE TEST
HA!;
PHSSED"
!
"
1690 PRIk4T"lA PIJLL DISKETTE FRON"
1700 PR I k4T"
3iJ
DRIVE BEFOHE TURNING"
1718 PRIHT" POWER UFF."
END
1728
1738
:
1748
:
1758 Pi?It.ITV :arJt.ITINiJE ~;'f/t.l)?''; 1768 FuR I=@ TO 50:GET A$:NEXT 1778 GET HS:IF
PRIt.lT fiZ"lg"
1780 1790
IF 1888 IF H$="'f" THEN RETURN 1810 1828 1838
HZ="H"
GOTU 1764
:
:
H$=""
THEH 1770
THEbI EklD
1840 PRIHT CC2 1858 INPUT#
1866
PRINTTHBi 12)" "EH;
1,
EH, EH$-, ET,
ES
Et.12;
ET.; ES;
""
1S70 IF EH(2 THEt.4 RETURN 1880
PRINTUM IJNIT IS FHILII.IGn
1890
PR
INT
"B
1388 TMO=T 1918
:
1328
:
PERFORMANCE TEST"
I$ : GOSUB 1758 : T I$=TM$ : HETURt.4
1936 PRIHT"WRIT1NG DATH" 1940 FUR I=1006 TO 2000 : PRItdT#CH,
I
:
NEXT
1956 GOSUB1556 1960 CLOSE CH:RETURN 1978
:
1380
:
1990 PR1NT"REHDIHG DRTA"
2000 GETAL
2010 FOH I=1990 TO 2B86
2858
GOCIJB 1559
2068 CLUSE
CH
:
RETURN
Page 67
BESCHEINIGUNG DES HERSTELLERS
wird bestätigt, dass di,e Floppy Disk
COMMODORE
~instim.ung mit den Bestimmungen der
Amtsblattverfügung Nr.
-stört
utschen Bundespost wurde das Inverkehrbringen dieses
angezeigt und die Berechtigung zur Überprüfung der
~nds
ist.
Einhaltung der Bestimmungen eingeräumt.
certify that our device Floppy Disk
we
COMMODORE
to
Amtsblattverf ügung Nr.
1541
-U
1046/1984
CEXTI FICATE OF THE MANUFACTURER
1541
-II
the regulations
1046/1984
-nated of radio interference.
Eundespost has been informed that
~ket and has got the right
-on
an
if
the limits
COMMODORE
are
kept.
BUSINESS MACHINES LIIIITED
this
to
check on the mass
unit
is
on
Page 68
Loading...