APPLICATIONSDIVERS ★ Auf einen Schlag : Disk-Katalog ins BASIC-Programm ★

RSX Disk-Katalog (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 ★ 

Für den BASIC-Programmierer stellt sich bei Datenverarbeitungsprogrammen immer wieder dasselbe Problem: Für den Ablauf eines solchen Programms werden des öfteren ein oder mehrere Programmnamen einer eingelegten Diskette benötigt. Sei es zum STARTEN, MERGEN eines Programms oder zum Öffnen einer relativen beziehungsweise sequentiellen Datei. Nur, wie soll man das aus dem BASIC so ohne weiteres schaffen.

Natürlich läßt sich durch CAT oder |DIR ein Diskettenkatalog auf dem Bildschirm ausgeben. Auch können unter Zuhilfenahme des COPYCHR$-Befehls Namen in Stringvariablen übergeben werden (beim CPC 464 aber auch nur mit dem Emulator). Solche Routinen sind in BASIC allerdings sehr aufwendig und platzraubend zu realisieren. Abgesehen davon wird durch ein CAT und ähnliches immer der Bildschirmaufbau zerstört. Um diese ganze Gedankenarbeit und vor allem Speicherplatz zu sparen, wurde diese Maschinencode-Routine geschrieben. Hiermit ist es möglich, durch Nutzung des RSX-Befehls |READ sämtliche auf der Diskette (funktioniert übrigens auch bei Datasette) befindlichen Files namentlich und mit kByte-Angabe in ein vorher dimensioniertes Stringvariablen-Array zu kopieren. Nach Aufruf von |READ wird der Bildschinnaufbau nicht beeinflußt. Die Namenseinlesung erfolgt vollkommen unsichtbar.

Syntax des Befehls

|READ, (Klammeraffe)name$(Arraywert) Mit Klammeraffe ist das etwas seltsam aussehende "a" auf der CPC-Tastatur gemeint. Das Array sollte nach Möglichkeit nur einfach dimensioniert sein und auf jeden Fall ausreichend Platz für die auf den Disketten befindlichen Files haben, zuzüglich eines Strings, welcher nach Aufruf der Routine mit "*** ENDE ***"+ CHR$(0) aufgefüllt wird. Bei voller Ausnutzung des Directories einer 3"-Diskette unter AMSDOS sind das genau 65 + 1 Datei. Jeder String muß vor dem ersten Aufruf der Routine eine Mindestlänge von 13 Zeichen zugewiesen bekommen (z.B.: name$(0)=SPACE$( 13) usw.). Dann können Sie die Routine mit |READ,@name$(0) aufrufen. Nach kurzer Zeit sind die Strings mit Directory-Einträgen belegt worden. Sind weniger als 65 Dateien auf dem Datenträger vorhanden (das ist wohl meistens der Fall), können Sie das Ende eines eingelesenen Kataloges an dem oben bereits beschriebenen ENDE-String erkennen. Die ersten zwölf Zeichen eines Strings geben den Namen eines Files an. Das 13te Zeichen enthält in ASCII-Form die verbrauchten kBytes des Programms auf der Diskette. Mit a=ASC(RIGHT$(name$(x),1)) können diese Werte ohne große Probleme übernommen werden. An diese Datei können Sie weitere Diskettendirectories anhängen. Sie müssen dann nur darauf achten, daß die Anzahl die vorher gewählte Dimensionierung des Arrays nicht übersteigt. Es kommt dann zu äußerst unangenehmen Nebenwirkungen.

Abtipphinweise

Den DATA-Lader vor dem Start bitte erst einmal abspeichern und dann starten. Es wird selbsttätig das Binärfile "EINLESE.BIN" abgespeichert. In Ihrem BASIC-Programm läßt sich die Routine auf folgende Weise einbinden.

10 MEMORY &979B: IF PEEK(&979C)=0 THEN LOAD"EINLESE.BIN":CALL &979C

CD, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1989
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1989
★ AUTHOR: Holger Schäkel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Disk-Katalog    (CPC  Amstrad  International)    GERMANDATE: 2012-12-27
DL: 266
TYPE: ZIP
SiZE: 6Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » FastBrot Generator (Amstrad Action)
» Applications » Breakpoints (Computing With the Amstrad)
» Applications » Malleus Archive
» Applications » Doubleur (Tilt)
» Applications » Acupunctura: Meridianos y Puntos
» Applications » Bonzo's Flash Pack/Big Flasher/Nemesis Flash Basic
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 188 millisecondes et consultée 1527 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.