C 64
Disketten-Meister

Disketten-Meister

Um leichter mit der Diskette arbeiten zu können, benötigen Sie nur diese kleine Basic-Erweiterung.

Die hier vorgestellte Basic-Erweiterung umfaßt 24 neue Befehle, die es ermöglichen, den Umgang mit dem Diskettenlaufwerk sowohl im Direktmodus als auch im Programm erheblich zu vereinfachen. Autostart, menügesteuertes Laden von Programmen sowie das Speichern von Maschinenprogrammen sind nur 3 der vielen Möglichkeiten dieses Programms.

Die Befehle im Einzelnen:

@

Der Fehlerkanal des Laufwerks wird gelesen und auf dem Bildschirm angezeigt.

@S

Der Fehlerkanal wird gelesen und die Nummer des Fehlers in Speicherstelle 251 abgelegt. Die Abfrage erfolgt nun mit PRINT PEEK (251). Die Bedeutung der Fehlernummern ist aus dem Floppy-Bedienungshandbuch Seite 36 bis 39 zu entnehmen.

$

Das Inhaltsverzeichnis der Diskette wird auf dem Bildschirm seitenweise angezeigt, das heißt daß die Ausgabe nach 23 Zeilen stoppt und das Programm eine Menüzeile ausgibt. Nun hat man die Möglichkeit die folgenden Zeilen zu listen oder die Ausgabe zu beenden.

$$

Dieser Befehl erlaubt es auf einfachste Art ein Programm zu laden ohne den Namen des Programms einzugeben. Hier wird das Inhaltsverzeichnis der Diskette gelistet, wobei jeder Zeile eine Programmnummer vorangestellt ist. Sind 20 Zeilen ausgegeben, so erscheint eine Menüzeile. Man kann nun die nächste Seite listen, die Ausgabe beenden, oder ein Programm laden. Drückt man nun die Taste für »Laden«, so ist nur die Nummer des Programms einzugeben, »RETURN« zu drücken und das jeweilige Programm wird in den Basic-Speicher geladen. Es besteht die Möglichkeit durch ein der Programmnummer nachgestelltes &-Zeichen einen Autostart durchzuführen.

#

Die aktuelle Geräteadresse wird auf dem Bildschirm angezeigt. Sie wird beim Start des Programms automatisch auf 8 gesetzt.

#9

Ändern der Geräteadresse. Alle folgenden Befehle beziehen sich auf Geräteadresse 9.

#8

Alle Befehle beziehen sich wieder auf Geräteadresse 8.

#E

Die Befehlserweiterung wird ausgeschaltet. Dies ist notwendig, wenn man ein anderes Maschinenprogramm in den Speicher ab $C000 laden will, ohne daß das System aussteigt. Alle Zeiger werden wieder in ihre Ausgangsposition gesetzt.

£"Name"

Die Startadresse des jeweiligen Programms wird auf dem Bildschirm angezeigt. Dieser Befehl kann bei unbekannten Startadressen von Maschinenprogrammen eine nützliche Hilfe sein.

%"Name"

Das Programm mit dem angegebenen Namen wird geladen. Dieser Befehl lädt ein Programm immer an die Adresse, die im Programm abgespeichert ist. Es lassen sich so auch Maschinenprogramme laden.

&"Name"

Autostart-Befehl. Das Programm wird geladen und danach selbständig gestartet. Dies ist nur mit Programmen möglich, die im Basic-Speicher abgelegt sind.

!"Name"

Das im Speicher befindliche Basic-Programm wird unter dem angegeben Namen auf Diskette gespeichert.

!"Name",S,E

Dieser Befehl ermöglicht das Speichern von Maschinenprogrammen, wobei »S« die Startadresse und »E« die Endadresse ist. Es muß beachtet werden, daß »E« die Endadresse + 1 des abzuspeichernden Bereichs ist.

V

Der Validate-Befehl wird ausgeführt.

←I

Initialisiert eine Diskette.

←N"Name,ID"

Formatiert eine Diskette.

←N"Name"

Reformatiert eine Diskette ohne Änderung der ID. Dies funktioniert jedoch nur bei bereits formatierten Disketten.

←C"nf=af"

Das File »af« wird mit dem Namen »nf« kopiert.

←C"nf=file1,file2"

Es besteht die Möglichkeit maximal 4 sequentielle Datenfiles zu einem mit neuem Namen zusammenzufassen.

←R"nfn=afn"

Das File mit dem Namen »afn« wird zu »nfn« umbenannt.

←S"file"

Das File mit dem Namen »file« wird gelöscht.

←S"file1,file2,.."

Es können auch mehrere Files gleichzeitig gelöscht werden.

←S"fi*"

Es werden alle Files gelöscht, die mit dem Buchstaben »fi« beginnen.

←S"*"

Alle Files einer Diskette werden gelöscht.

Eingabe des Programms
Das Basic-Programm bildet jeweils von fünf DATA-Zeilen eine Prüfsumme. Ist diese fehlerhaft, so stoppt das Programm und zeigt die jeweilige Blocknummer auf dem Bildschirm an. Waren die Prüfsummen aller 20 Blocks fehlerfrei, stoppt das Programm mit dem Hinweis die richtige Diskette einzulegen. Nach Drücken einer Taste wird das Maschinenprogramm unter dem Namen »Disk-Master/M« auf Diskette gespeichert. Um das Laden und Starten zu erleichtern, muß der Basic-Lader eingetippt werden.

Laden des Programms mit Basic-Lader:
LOAD"Disk-Master",8. Ist die Ready-Meldung erfolgt, so ist einfach RUN einzugeben und das Maschinenprogramm wird geladen und gestartet.
direkt:
LOAD"Disk-Master/M",8,1. Ist die Ready-Meldung erfolgt, muß das Programm mit SYS 49152 gestartet werden.

Allgemeine Hinweise zur Programmbenutzung:
Will man im Rahmen eines Basic-Programmes einen Befehl hinter einer »IF…THEN« Abfrage benutzen, so ist vor dem Befehl ein Doppelpunkt zu setzen, da sonst eine Fehlermeldung ausgegeben wird.

Sollen die Befehle —N, —R, —S, —C im Programm verwendet werden, so sollten die nachfolgenden Parameter in einer String-Variablen gespeichert sein.

Will man im Anschluß an »Disk-Master« noch andere Programme abspeichern, so darf die Startadresse des folgenden Programms nicht kleiner als $C900 sein.

(Armin Haas/rg)
@ Fehlerkanal lesen und anzeigen
@S Fehlerkanal lesen und speichern
$ Inhaltsverzeichnis der Diskette anzeigen
$$ Menügesteuertes Laden von Programmen
# Aktuelle Geräteadresse abfragen
#9 Geräteadresse = 9
#8 Geräteadresse = 8
#E Programm ausschalten
£"Name" Startadresse ermitteln und anzeigen
%"Name" Programm absolut laden
&"Name" Programm laden und starten
!"Name" Programm speichern
!"Name",A,B Maschinenprogramm speichern
←V Validate-Befehl ausführen
←I Initialisiert Diskette
←N"Name,ID" Formatiert Diskette
←N"Name" Reformatiert Diskette
←C"nf = af" Kopiert File
←C"nf=file1,file2" Verkettet SEQ-Files (max. 4)
←R"nfn=afn" File umbenennen
←S"file" File löschen
←S"file1,file2,..." Mehrere Files gleichzeitig löschen
←S"fi*" Alle Files mit Anfangsbuchstaben »fi« werden gelöscht
←S"*" Alle Files der Diskette werden gelöscht
Befehlsübersicht »Disk-Master«
100 rem ********  basic-lader  ********
110 iff=1thensys49152:new
120 print"{down}loading disk-master/m"
130 f=1:load"disk-master/m",8,1
0 rem *************************
1 rem *                       *
2 rem *    --disk-master--    *
4 rem *                       *
5 rem *      1984 armin haas  *  **
6 rem *                       *
7 rem *************************
8 rem
10 rem pruefsummentest
20 n=1
30 s=0
40 for i=1 to 80
50 read x:if x=-1 then 80
60 s=s+x
70 next
80 read f:if f<>s then 120
90 print"pruefsumme block"n" ok!"
100 if x=-1 then 140
110 n=n+1:goto30
120 print"fehler in block"n:end
130 rem maschinenprogramm wird auf diskette gespeichert
140 print"{down}diskette einlegen und taste drueken!"
150 wait 198,1
160 print"{down}programm wird auf diskette gespeichert":print"{down}bitte warten!"
170 open 1,8,1,"disk-master/m"
180 print#1,chr$(0);:rem adresse low
190 print#1,chr$(192);:rem adresse high
200 restore
210 for i=1 to 1585
220 read x:if x>255 then 240
230 print#1,chr$(x);
240 next i
250 close 1
260 print"{down}fertig !":end
495 rem datas
500 data 169,0,141,32,208,141,33,208,169,15,141,134,2,169,74,162
510 data 56,160,192,32,26,192,32,45,192,96,133,253,134,251,132,252
520 data 160,0,177,251,32,210,255,200,196,253,208,246,96,169,101,141
530 data 8,3,169,194,141,9,3,96,147,17,42,42,42,42,42,42
540 data 42,42,42,42,42,32,32,68,73,83,75,32,45,45,32,77
545 data 8514:rem pruefsumme block 1
550 data 65,83,84,69,82,32,32,42,42,42,42,42,42,42,42,42
560 data 42,42,17,29,29,29,29,29,29,29,29,29,29,40,67,41
570 data 32,49,57,56,52,32,32,65,82,77,73,78,32,72,65,65
580 data 83,17,17,18,32,32,60,70,49,62,32,87,69,73,84,69
590 data 82,32,32,32,60,70,51,62,32,69,78,68,69,32,32,146
595 data 4084:rem pruefsumme block 2
600 data 8,169,1,174,160,192,160,15,32,186,255,96,169,0,32,189
610 data 255,32,192,255,162,1,32,198,255,96,32,207,255,32,210,255
620 data 165,144,240,246,32,204,255,169,1,32,195,255,96,169,36,133
630 data 251,169,251,133,187,169,0,133,188,169,1,133,183,173,160,192
640 data 133,186,169,96,133,185,32,213,243,165,186,32,180,255,165,185
645 data 11729:rem pruefsumme block 3
650 data 32,150,255,169,0,133,144,96,160,3,132,251,32,165,255,133
660 data 252,164,144,208,56,32,165,255,164,144,208,49,164,251,136,208
670 data 233,166,252,32,205,189,169,32,32,210,255,32,165,255,166,144
680 data 208,27,170,240,6,32,210,255,76,27,193,169,13,32,210,255
690 data 164,254,192,22,240,11,200,132,254,160,2,208,189,32,66,246
695 data 11742:rem pruefsumme block 4
700 data 96,169,0,133,254,169,30,162,130,160,192,32,26,192,32,228
710 data 255,240,251,201,133,240,7,201,134,240,15,76,78,193,169,147
720 data 32,210,255,169,0,133,254,76,57,193,169,13,32,210,255,169
730 data 23,32,210,255,76,61,193,32,161,192,169,1,162,255,160,159
740 data 32,189,255,76,165,193,32,161,192,32,87,226,165,187,56,233
745 data 11234:rem pruefsumme block 5
750 data 2,133,187,160,0,165,253,145,187,200,169,58,145,187,165,183
760 data 24,105,2,133,183,32,192,255,169,1,32,195,255,96,165,251
770 data 56,233,48,133,251,169,0,160,10,24,101,251,136,208,250,133
780 data 251,165,252,56,233,48,24,101,251,133,251,96,32,161,192,32
790 data 172,192,76,186,192,169,147,32,210,255,169,0,133,254,32,205
795 data 11294:rem pruefsumme block 6
800 data 192,76,248,192,32,161,192,32,172,192,32,207,255,133,251,32
810 data 207,255,133,252,32,207,255,165,144,240,249,32,196,192,76,174
820 data 193,169,228,141,8,3,169,167,141,9,3,96,169,0,174,160
830 data 192,32,205,189,169,13,32,210,255,96,169,2,174,160,192,160
840 data 2,32,186,255,96,165,183,166,187,164,188,32,189,255,32,192
845 data 11612:rem pruefsumme block 7
850 data 255,162,2,32,198,255,32,207,255,133,251,32,207,255,133,252
860 data 32,204,255,169,2,32,195,255,96,32,26,194,32,87,226,169
870 data 0,133,251,133,252,32,46,194,165,252,166,251,32,205,189,169
880 data 13,32,210,255,96,32,115,0,201,36,240,73,201,64,240,94
890 data 201,95,240,53,201,35,240,105,201,38,240,36,201,37,240,23
895 data 11225:rem pruefsumme block 8
900 data 201,92,240,10,201,33,240,36,32,121,0,76,231,167,32,115
910 data 0,32,73,194,76,174,167,32,115,0,32,69,195,32,174,167
920 data 32,115,0,32,133,195,76,174,167,76,16,195,32,115,0,32
930 data 156,195,76,174,167,32,115,0,201,36,240,6,32,213,193,76
940 data 174,167,32,115,0,76,212,195,32,115,0,76,174,167,32,115
945 data 8343:rem pruefsumme block 9
950 data 0,201,83,240,6,32,204,193,76,174,167,32,228,193,76,200
960 data 194,32,115,0,240,24,201,69,240,32,32,158,183,224,8,240
970 data 19,224,9,240,15,224,1,240,11,162,11,32,55,164,32,12
980 data 194,76,174,167,142,160,192,76,174,167,32,1,194,76,200,194
990 data 32,115,0,201,86,240,26,201,73,240,22,201,82,240,27,201
995 data 9754:rem pruefsumme block 10
1000 data 83,240,23,201,67,240,19,201,78,240,15,32,121,0,76,231
1010 data 167,141,255,159,32,119,193,76,200,194,133,253,32,115,0,32
1020 data 134,193,76,174,167,32,76,195,32,114,195,96,174,160,192,160
1030 data 1,32,186,255,32,87,226,169,0,32,213,255,144,3,76,249
1040 data 224,134,45,132,46,32,183,255,41,191,240,5,162,29,76,55
1045 data 9948:rem pruefsumme block 11
1050 data 164,96,164,56,133,51,132,52,165,45,164,46,133,47,132,48
1060 data 133,49,132,50,96,174,160,192,160,0,32,186,255,32,87,226
1070 data 169,0,166,43,164,44,32,89,195,76,113,168,174,160,192,32
1080 data 186,255,32,87,226,32,121,0,240,39,32,253,174,32,138,173
1090 data 32,247,183,165,20,133,251,165,21,133,252,32,253,174,32,138
1095 data 9660:rem pruefsumme block 12
1100 data 173,32,247,183,169,251,166,20,164,21,134,253,132,254,76,95
1110 data 225,76,89,225,169,0,133,253,169,199,133,254,169,0,141,250
1120 data 198,141,251,198,141,252,198,141,253,198,169,147,32,210,255,32
1130 data 205,192,160,3,132,251,32,165,255,133,252,164,144,208,117,32
1140 data 165,255,164,144,208,110,164,251,136,208,233,166,252,32,205,189
1145 data 12998:rem pruefsumme block 13
1150 data 169,32,32,210,255,32,165,255,166,144,208,88,170,240,9,32
1160 data 210,255,32,123,196,76,21,196,169,13,32,210,255,152,160,0
1170 data 145,253,76,158,196,169,18,32,210,255,32,180,197,169,0,174
1180 data 250,198,232,142,250,198,32,205,189,169,146,32,210,255,169,32
1190 data 32,210,255,169,45,32,210,255,169,32,32,210,255,165,253,24
1195 data 11628:rem pruefsumme block 14
1200 data 105,17,144,5,164,254,200,132,254,133,253,169,0,141,252,198
1210 data 160,2,208,128,32,11,197,32,66,246,96,201,34,208,16,174
1220 data 253,198,240,5,162,0,76,139,196,162,1,142,253,198,96,174
1230 data 253,198,240,250,172,252,198,200,140,252,198,145,253,96,173,250
1240 data 198,201,20,240,3,76,53,196,169,37,162,203,160,197,32,197
1245 data 11941:rem pruefsumme block 15
1250 data 196,32,228,255,240,251,201,133,240,30,201,134,240,71,201,135
1260 data 240,85,76,177,196,133,60,134,61,132,62,160,0,177,61,32
1270 data 210,255,200,196,60,208,246,96,169,147,32,210,255,169,0,141
1280 data 250,198,141,251,198,141,252,198,133,253,169,199,133,254,160,0
1290 data 169,32,153,0,199,200,208,250,160,0,153,0,200,200,192,90
1295 data 12304:rem pruefsumme block 16
1300 data 208,248,76,53,196,32,119,196,76,174,167,169,23,162,240,160
1310 data 197,32,197,196,76,168,196,169,22,162,7,160,198,32,197,196
1320 data 32,119,196,169,0,133,251,133,252,133,253,32,207,255,56,233
1330 data 48,133,251,32,207,255,201,38,208,4,133,253,169,13,201,13
1340 data 208,7,169,0,133,252,76,98,197,56,233,48,133,252,32,207
1345 data 11218:rem pruefsumme block 17
1350 data 255,133,253,169,0,160,10,24,101,251,136,208,250,24,101,252
1360 data 133,251,169,0,133,252,164,251,24,105,17,144,5,166,252,232
1370 data 134,252,133,251,136,208,241,165,252,24,105,199,133,252,177,251
1380 data 166,251,232,208,5,164,252,200,132,252,164,252,32,189,255,165
1390 data 253,201,38,240,17,174,160,192,160,1,32,186,255,32,87,195
1395 data 12680:rem pruefsumme block 18
1400 data 32,114,195,76,174,167,174,160,192,160,0,32,186,255,32,144
1410 data 195,76,174,167,173,250,198,201,9,208,5,169,1,141,251,198
1420 data 173,251,198,208,5,169,48,32,210,255,96,17,18,60,70,49
1430 data 62,32,87,69,73,84,69,82,32,60,70,51,62,32,69,78
1440 data 68,69,32,60,70,53,62,32,76,65,68,69,78,146,17,13
1445 data 8358:rem pruefsumme block 19
1450 data 145,157,157,157,157,157,32,32,32,32,157,157,157,157,17,32
1460 data 32,32,32,157,157,157,157,78,85,77,77,69,82,32,68,69
1470 data 83,32,80,82,79,71,82,65,77,77,83,63,32,13,-1
1475 data 4015:rem pruefsumme block 20
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →