APPLICATIONSDIVERS ★ Diskettenroutinen : Rückmeldung in BASIC Directory-String und Statusmeldung - RSX macht's möglich ★

Diskettenroutinen (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Ein Laufwerk an seinem CPC 6128 zu haben, ist eine wunderbare Sache, es ist schnell, sicher und recht einfach zu handhaben. Leider fällt einem beim Programmieren unter BASIC sehr schnell auf, daß man keinerlei Möglichkeit hat, eventuelle Fehler (Diskette nicht eingelegt, Programm oder Datei nicht gefunden) innerhalb des eigenen Programmes abzufangen und das Directory als String einzulesen und weiterzubearbeiten. Das soll sich nun ändern, denn wofür besitzt der CPC die Eigenschaft, RSX-Befehle auszuführen?

Endlich kann das Directory von BASIC aus in einen String eingelesen werden. Nehmen Sie dafür den Befehl |DIRSTR. Außerdem können Sie mit |STATUS den Zustand der Laufwerke problemlos und einfach von Ihrem eigenen Programm aus abfragen. Zugriffe auf ein nicht vorhandenes B-Laufwerk gehören damit der Vergangenheit an. Die neuen Befehle im einzelnen

|DIRSTR,@fehler%,@maske$,@dir$,@frei%,@n%

liefert in 'dir$' die Files des Directory. In 'maske$' müssen Sie den Filenamen oder eine Wildcard entsprechend dem DIR-Befehl übergeben. Die größtmögliche Maske ist "15B:????????.???". Sie liest alle Files von User 15 Laufwerk B in 'dir$' ein. Die Variable 'frei%' enthält nach Ausführung von | DIRSTR den freien Speicherplatz. Die dritte Variable 'n%' gibt die Anzahl der Files, die der Maske entsprechen, zurück. Maximal werden jedoch 21 Files in 'dir$' eingelesen, da im Schneider BASIC ein String nicht länger als 255 Zeichen sein kann. Trat beim Lesen des Directory ein Fehler auf, war also die Diskette nicht eingelegt oder kein B-Laufwerk angeschlossen, so bekommt 'fehler%' den Wert 255. Steht in 'fehler%' dagegen 0, ist alles o.k.... Maximal 21 Filenamen werden in 'dir$' direkt hintereinander abgelegt. Mit dem BASIC-Befehl 'MID$' kann der einzelne Filename herausgeschnitten werden (siehe BASIC-Listing).

|STATUS,@drive%,@status%

ermittelt den Zustand des mit 'drive%' gewählten Laufwerks. Steht in 'drive%' der Wert 0, wird Laufwerk A selektiert, steht in 'drive%' eine 1, gilt das gleiche für Laufwerk B:. In 'status%' stehen nach Ausführung drei mögliche Werte:

0 - > Laufwerk bereit, Diskette nicht schreibgeschützt
1 - > Laufwerk bereit, Diskette schreibgeschützt
2 - > Laufwerk nicht vorhanden oder keine

Diskette eingelegt Beachten Sie bei beiden RSX-Befehlen, daß die Variablen mit führendem Klammeraffen (@) übergeben werden müssen. Außerdem müssen sämtliche Variablen zuvor im BASIC initialisiert werden, indem ihnen irgendein Wert zugewiesen wird. Die Stringvariable 'dir$' muß mit 252 Zeichen gefüllt werden. Dies erledigt die FOR-NEXT-Schleife in Zeile 310 des BASIC-Listings 2. Sie belegt 'dir$' mit 252 (0-251) Spaces, dies entspricht der Länge von von 21 Filenamen (maximale Länge=21). Die Integervariablen müssen auch als solche definiert werden. Dazu hängt man ihnen ein ' %' an oder verwendet den DEFINT-Befehl von BASIC.

Das Binärprogramm nimmt den Bereich von &A000-&A200 ein, benötigt jedoch einen temporären Buffer ab &9CD0, um die Filenamen zwischenzuspeichern. Tippen Sie den BASIC-Lader ab, und starten Sie mit 'RUN'. Die Anwendung der beiden Befehle erlernen Sie am besten mit dem DEMO-Programm. Viel Spaß mit den neuen Befehlen.

jb, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1989
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1989
★ AUTHOR: Christoph Hipp
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Diskettenroutinen    (CPC  Amstrad  International)    GERMANDATE: 2020-07-04
DL: 247
TYPE: ZIP
SiZE: 5Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Sound Digitizer (Amstrad Action)
» Applications » Komfortable INPUT-Routine
» Applications » RSX Swap (Amstrad Personal)
» Applications » RSX Pack Graphique n01 (Deuuligne #03)
» Applications » Page RSX / PageEditor (CPC Amstrad International)
» Applications » RSX Sound (Schneider Magazin)
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 676 millisecondes et consultée 1537 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.