Sicher hat sich schon einmal jeder Diskettenbesitzer gefragt: Warum kann man unter AMSDOS keine Diskette formatieren und keine Tracks sowie Sektoren einiesen? Genau dies brachte mich auf die Idee, DISCXBAS zu schreiben. Es handelt sich dabei um eine Erweiterung, die mit 19 neuen Befehlen das effektive Arbeiten mit der Diskettenstation vereinfacht oder erst ermöglicht. Sie beginnen alle mit dem RSX-Strich. Eine falsche Parameteranzahl führt zur Fehlermeldung "*Parameterfehler*” und zum Programmabbruch. Die neuen Befehle |SECREAD - Einen Sektor in den Buffer einiesen Syntax: |SECREAD, track, sektor+offset Offset: 65 = Systemformat, 193 = Datenformat, 1 = IBM-Format Beispiel: |SECREAD, 0, 0+65 (Liest den Sektor 0 auf Track 0 von einer Systemdiskette.) |SECWRITE - Buffer-Inhalt auf Diskette schreiben Syntax: |SECWRITE, track, sektor+offset Offset: siehe |SECREAD Beispiel: |SECWRITE, 0, 0+65 (Schreibt den Buffer-Inhalt auf Track und Sektor 0 einer Systemdiskette.) |FORMAT - Gesamte Diskette formatieren Syntax: |FORMAT, format format = 0: DATA-Format format = 1: VENDOR-Format Beispiel: |FORMAT, 0 (Formatiert die eingelegte Diskette im DATA-Format.) |TRACKFORM - Einen Track formatieren (Offset beliebig) Syntax: |TRACKFORM, track, offset Offset: siehe |SECREAD Dieser Befehl kann verwendet werden, um eine Diskette vor DISCCOPY oder DISCKIT zu schützen. Tippen Sie folgendes ein: |FORMAT, 1 'Formatiere in Vendor |TRACKFORM, 1,193 'Formatiere Track 1 in DATA-Format Beim Kopierversuch antwortet DISCKIT mit: DISK ERROR - FORMAT CHANGED |ID - 9 Sektor-IDs lesen und ausgeben Syntax: HD, track Beispiel: MODE 2: |ID, 0 Hier gibt der CPC jetzt 9*4 Bytes aus. Sie entsprechen dem ID von 9 Sektoren. (Achtung! Die ausgegebenen Werte stimmen nicht mit der Reihenfolge der Sektoren auf der Diskette überein.) lDRV - Laufwerk für die zuvor genannten Befehle einstellen Syntax: |DRV, drive drive = 0 wählt Laufwerk A: drive = 1 wählt Laufwerk B: Beispiel: |DRV, 1: |ID, 0 (Liest 9 Sektor-IDs von Track 0 / Laufwerk B:.) |TRY - Anzahl der Schreib-/Leseversuche festlegen Syntax: |TRY, anzahl anzahl = Anzahl der Versuche vor Fehlermeldung Beispiel: |TRY, 1: |SECREAD, 0, 128 (Die Floppy gibt sich wenig Mühe, den illegalen Sektor zu suchen.) Beispiel: |TRY, 30: |SECREAD,0,128 (DieFloppy versucht wesentlich öfter, den illegalen Sektor zu laden.) Diesen Befehl kann man gut verwenden, um auf einer kaputten Diskette noch Daten zu finden. |AMSEROFF - Hardware-Fehlermeldungen ausschalten Syntax: lAMSEROFF Beispiel: 10 |AMSEROFF 20 ON ERROR GOTO 100 30 CAT 40 |AMSERON: END 100 |FDERR = 144 THEN ? "DISKETTE FEHLT”: RESUME 40 Dieser Befehl ist für die 664/6128-User gedacht, die mit DERR und ON ERROR GOTO Diskettenfehler abfangen können. lAMSERON - Hardware-Fehlermeldungen einschalten Syntax: |AMSERON Beispiel: |AMSERON: |B |USE - User-Nummer wählen (0 bis 255) Syntax: |USE, user Beispiel: |USE, 229: CAT (Gibt alle gelöschten Files aus.) |DUMPBUF - Sektor-Buffer dumpen Syntax: |DUMPBUF Beispiel: |SECREAD, 0, 0+65: |DUMPBUF (Dumpe Boot-Sektor einer Systemdiskette.) Dieser Befehl erzeugt einen HEX- und ASCII-Dump des Sektor-Buffers. Links wird die aktuelle Adresse relativ zum Buffer-Anfang ausgegeben, danach 16 Bytes Inhalt als ASCII-Dump. Das Dumpen läßt sich mit l*COPY einfrieren, mit 2*COPY abbrechen (wie Basic-Programme mit ESC). |BUFFER - Adresse für Sektor-Buffer festlegen Syntax: |BUFFER, adr 'adr = neue Adresse Beispiel: |BUFFER, &A000: |SECWRITE, 0,0+65 (Schreibt den Speicher ab &A000 auf den Boot-Sektor einer Systemdiskette.) Normalerweise liegt der Sektor-Buffer ab &9B1B. Er ist 512 Byte lang. |GETBUF - Buffer-Ad resse ausgeben (in HEX) Syntax: |GETBUF Beispiel: |GETBUF Ergebnis: 9B1B |GETBUF - Buffer-Adresse in Variable einiesen Befehl: |GETBUF, @variable% Syntax: v% = 0: |GETBUF, @v% Beispiel: a% = 0: |GETBUF, @a%: ? HEX$( a%) Ergebnis: 9B1B |AMSDOS - System-Reset und nur ROM 7 initialisieren Syntax: |AMSDOS Dieser Befehl ist für User gedacht, die mehr ROMs als nur die Floppy angeschlossen haben. Nach IAMSDOS wird ein Reset durchgeführt, nur die Floppy initialisiert und Basic neu gestartet. Auch problematische Programme müßte man so wieder zum Laufen bringen. (Achtung! Durch das Zurücksetzen des Systems werden auch DISCXBAS und andere Erweiterungen gelöscht.) |BEEP - Piepton ausgeben Syntax: |BEEP Dieser Befehl entspricht vollständig ? CHR$(7); |KWAIT - Auf Tastendruck warten Syntax: |KWAIT Dieser Befehl löscht den Tasten-Buffer, wartet auf einen Tastendruck und löscht ihn dann wiederum. |CLBUF - Tastaturpuffer löschen Syntax: |CLBUF Dieser Befehl löscht den Tastatur-Buffer. |BEFEHLE - DISCXBAS-Befehlsliste ausgeben Syntax: |BEFEHLE Hier werden alle DISCXBAS-Befehle mit ihrem Format und einer eventuellen Kurzbeschreibung angezeigt. Eintipphilfe Geben Sie zunächst Listing 1 (Starter) ein und sichern Sie es mit SAVE”DISCXBAS.BAS”. Danach tippen Sie den DATA-Lader ab und speichern ihn mit SAVE ”DISCXBAS.DGN”. Starten Sie ihn nun mit RUN. Fehler in den DATA-Zeilen werden angezeigt. Sie sind nach dem Ready zu korrigieren. Ist alles in Ordnung, wird der Code gesaved. Sie benötigen den DATA-Lader dann nicht mehr. Laden Sie jetzt DISCXBAS mit RUN "DISCXBAS”. Soll dies in einem Programm geschehen, ist nur folgende Zeile einzufügen : 10 MEMORY &94FF: LOAD”DISCXBAS.RSX”: CALL &9500Stefan Rompf , Schneider Magazin ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 529 millisecondes et consultée 778 foisL'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. |
|
|