APPLICATIONSDISQUE ★ DISCMON (CPC AMSTRAD INTERNATIONAL) ★

Floppykurs 3/87 (CPC Amstrad International)Floppykurs 4/87 (CPC Amstrad International)
★ 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 ★ 

Weiter geht es mit dem zweiten Teil unseres DE-LUXE Diskmonitors für die Rechner der CPC-Reihe.

Die schlechte Nachricht gleich vorneweg: Bisher hat sich noch kein Leser gemeldet, der uns eine Referenz zur Vortex Floppy schicken konnte. Wir geben jedoch nicht auf und hoffen, daß wir einen Nachtrag bringen können. Außerdem hat sich im ersten Teil des Listings ein unbedeutender wenn auch unschöner Fehler eingeschlichen. Ändern Sie bitte die Zeile 1760 wie folgt: 1760 track=int (a/secanz)

Ansonsten waren keine Fehler festzustellen. Wie Assemblerinteressierte feststellen werden, arbeitet das Assemblerprogramm mit den Befehlssuch-routinen des AMS-DOS.

Im abgedruckten Assemblerlisting (DEVPAC) finden Sie in Zeile 570 den Befehlscode für den Direktbefehl Sektor lesen &84.
Es ist anzunehmen, daß bei Vortex die gleichen Befehlssequenzen benutzt werden, so daß eigentlich nur die Werte für die Trackanzahl geändert werden müssen. Es bleibt jedoch zu erwarten, daß nach Abdruck des Quellcodes mehr Vortex Besitzer Motivation bekommen, uns eine Anpassungsroutine zuzuschicken, anstatt sich laufend zu beschweren, daß zu wenig für sie getan wird.

Zeile 1300 im Assemblerlisting ist eigentlich überflüssig und kann bedenkenlos gestrichen werden.

Eine genaue Anleitung wie Sie mit dem Monitor umzugehen haben finden Sie weiter unten im Bericht, und in der nächsten und letzten Lektion werden wir uns dann daran machen, die Diskette zu erforschen und die Bedeutung von Bits und Bytes zu entschlüsseln.
Beschreibung der RSX-Befehle:

Es folgt nun eine Beschreibung aller RSX-Befehle, die im Programm verwendet werden. Die Befehle können später in eigene Programme implementiert werden. Dazu müssen Sie nur den M-Code, der die RSX-Befehle erzeugt mit

MEMORY & 6FFF
LOAD “MONMC.BIN“,&7000
CALL &7000

laden. Danach stehen Ihnen die nachfolgend beschriebenen Befehle zur Verfügung. Wie immer müssen auch hier die Befehle mit dem senkrechten Balken beginnen. Die Befehle benötigen oft verschiedene Parameter, die Sie der Beschreibung entnehmen können. Jetzt aber zu den Befehlen selbst:

1. |SECREAD,track,sector,buffer

Der Befehl SECREAD bewirkt, das ein beliebiger Sektor von der Diskette gelesen wird. SECREAD braucht  für diesen Zweck jedoch drei Parameter, die als Variablen oder Zahlen hinter den Befehl in der oben angegebenen Syntax angehängt werden müssen. Der Parameter track gibt die Nummer der Spur an, auf der sich der einzulesende Sektor befindet. Der Wert sec-tor gibt den Sektor an, der von der Diskette gelesen werden soll. Dabei ist zu beachten, daß die tatsächlich auf der Diskette vorhandene Sektornummer angegeben wird. Als letztes muß noch der Wert buffer angegeben werden. Dieser stellt die Anfangsadresse eines 512 Bytes langen Speicherbereiches dar, an den der Inhalt des Sektors gespeichert werden soll.

2. |SECWRITE,track,sector,buffer

Dies ist die Umkehrung zu SECREAD. Hier wird ein 512 Bytes langer Speicherbereich, dessen Anfang die Adresse buffer darstellt, als Sektor auf Diskette geschrieben. Auch hier gibt track die Spur- und sektor die Sektornummer an.

3. |HEXDUMP,buffer

Diese Routine schreibt 256 Bytes als Hexwert und als ASCII-Zeichen in Window #0. Da die Routine auf den DISCMON zugeschnitten ist, muß das Fenster auch die Breite haben, die das Fenster des Discmon hat (68 Zeichen), da die Ausgabe sonst falsch formatiert wird. Als Parameter wird die Startadresse des 256 Bytes großen Speicherbereiches verlangt, der ausgegeben werden soll. Die Routine numeriert die Speicherzellen in einem 512 Byte Rhythmus durch, d.h. daß sie nur Adressen vor den Werten im Bereich von 000 — 1FF Hex ausgibt. Es können jedoch alle Adressen von 0 — FFFF Hex für buffer angegeben werden.

4. |SEARCH,start,len,@str$,@res

Diese Routine untersucht, ob in dem Speicherbereich mit der Startadresse start, und der Länge len der String str$ enthalten ist. Ist er es, so wird in die Variable res die Adresse geschrieben, in der der String gefunden wurde, anderenfalls ist res = 0.

Achtung: für str$ und res müssen die Adressen der Variablen übergeben werden, und nicht die Werte, da str$ ein String ist, und res noch verändert werden soll.

5. |BUFFDOWN,adresse

Diese Routine verschiebt den Speicherbereich mit der Startadresse adres-se und einer Länge von 512 Bytes um 512 Bytes nach unten. Z. B. wird der Speicherbereich mit der Startadresse adresse = &1000 und der Länge 512 Bytes um 512 Bytes nach unten verschoben, d. h. er hat danach die Startadresse &E00.

6. |FILEPAR, @filename$

Diese Routine benötigt den Namen des Files, dessen Parameter sie suchen soll. Darum braucht sie die Adresse eines Strings als Parameter, da der String selbst ja nicht übergeben werden kann. Die Routine liefert verschiedene Informationen über die Datei filename$, die in ganz bestimmten Speicheradressen abgelegt werden, wo sie sich der Benutzer per PEEK Befehl herausholen kann. Folgende Informationen liefert die Routine:

  • Das Filetypbyte
  • Die Startadresse des Files
  • Die Länge des Files
  • Die Einsprungsadresse für Maschinenprogramme
  • Die Blocknummern, der Blöcke, die das Programm belegt.

Die Werte stehen nach dem Aufruf an folgenden Adressen:

  • das Filetypbyte bei &7220
  • Die Startadresse bei &7221 /&7222
  • Die Filelänge bei &7223/&7224
  • Die Einsprungsadresse bei &7225 / &7226
  • Die Blocknummern stehen ab &7290.

Sie stehen hintereinander im Speicher. Ein Byte mit dem Wert 0 markiert das Ende der Tabelle.

CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEARE: 1986 , 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTIONS: CPC AMSTRAD INTERNATIONAL 1988 , CPC AMSTRAD INTERNATIONAL 1988
★ AUTHOR: Holger Jurkat
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Discmon    (86-04)    (CPC  Amstrad  International)    GERMAN    LISTINGDATE: 2021-08-12
DL: 236
TYPE: PDF
SiZE: 940Ko
NOTE: 2 pages/PDFlib v1.6

» Discmon    (CPC  Amstrad  International)    GERMANDATE: 2021-08-12
DL: 227
TYPE: ZIP
SiZE: 12Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » Monithex (CPC Revue)
» Applications » Diskettemonitor (CPC Amstrad International)
» Applications » CPC Disc Monitor (Schneider Aktiv)
» Applications » Disk-Monitor (CPC Magazin)
» Applications » Monite (Amstrad Cent Pour Cent)
» Applications » Moniteur de Disquettes (CPC Revue)
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 382 millisecondes et consultée 1345 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.