APPLICATIONSDISQUE ★ SYSDISC -Ein Diskettensystem ★

SYSDisc (CPC Magazin)Applications Disque
★ 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 ★ 

RSX-Befehlserweiterung für Disketten- und Speicherzugriffe

Dieses Programm erweitert die Disketten- und Speichermanipulationsbefehle unter Basic. Folgende RSX-Befehle werden installiert:

  1. |OPEN, |CLOSE, |RECORD, |GET, |PUT, |SEC.WR, |SEC.RD, |FORMAT
  2. |SYSTEM, |ROM, |LDIR, |LDDR, |CHIR, |RESULT, |AKKU, |FLAG, |DOKE und |CALLSTR, |WRITE

Mit den Befehlen der ersten Gruppe ist man in der Lage, eine Relative Dateiverwaltung zu betreiben und Sektoren einzeln anzusprechen. Der zweite Teil ermöglicht es, Systemroutinen in den ROMs aufzurufen, die Register zu laden und abzurufen sowie Speicherverschiebungen vorzunehmen.

Form und Funktion der Befehle
|FORMAT bzw. |FORMAT, flagFormatiert die Diskette im DATA-Only-Format bzw., wenn flag'1, im Vendor-Format (CP/M ohne Systemspuren).
|SEC.RD, drive, track, sector, buffeHolt einen Sektor vom Diskettenlaufwerk A/B (0/1) von Track 0...39 undder Sektornummer &C1 ...&C9 (&41 ...&49 im CP/M-Format) in einen 512-Byte-Buffer.
|SEC.WR, drive, track, sector, bufferEntsprechend zu ISEC.RD, nur daß aus dem 512-Byte-Buffer auf die Diskette geschrieben wird.
|OPEN, < Länge der Records >Übergibt der Routine die Record-Länge (Länge' 2,4, 8,16...512).
|CLOSESchreibt den aktuellen Record auf die Diskette und beendet den Zugriff.
|RECORD,Liest den Record mit dieser Nummer (falls nötig) ein, macht ihn für Zugriffe bereit und speichert zuvor den alten auf der Diskette ab.
|GET, @ , @ < Str-Var >,...Holt die String-Variable(n) aus dem aktuellen Record.
|PUT, @ , @ < Str-Var >,...Legt die String-Variable(n) im aktuellen Record ab.
|SYSTEM, Adresse, FA, BC, DE, HL, IX, IYRuft eine Routine im RAM/ROM auf und lädt die Register mit den angegebenen Parametern (FA: Flags'High-Byte, Akku'Low-Byte).

Beispiel:

|SYSTEM, &BB06Holt ein Zeichen von der Tastatur.
|SYSTEM, &BB5A, ASC (”A”)Schreibt A auf den Bildschirm.
|SYSTEM, &BBF6,0,0,320,200Zeichnet eine Linie zum Punkt 320/200.
|ROM, ROM-NrWählt für |SYSTEM, |LDIR, |LDDR das RAM bzw. ROM aus:
0000-3FFFC000-FFFF
|ROM, 0... ROM, 251RAMZusatz-ROM 0...251
|ROM, 7RAMCP/M, AMSDOS
|ROM, 252BetriebssystemBasic
|ROM, 253RAMBasic
|ROM, 254BetriebssystemRAM
|ROM, 255RAMRAM
|LDIR, Quelladr., Zieladr., AnzahlVerschiebt einen Speicherbereich aufwärts zählend von der Quelladresse zur Zieladresse.

Beispiel:

|ROM, 7: |LDIR, &C000, &C000, &4000Schreibt den Inhalt des AMSDOS-ROM in den Bildschirmspeicher.
|ROM, 255: |LDIR, &C050, &C000, &3F50Scrollt den Bildschirm eine Zeile höher.
|LDDR, Quelladr., Zieladr., AnzahlEntsprechend |LDIR, nur wird hier abwärts zählend verschoben.
|CHIR, Adr.1, Adr.2, AnzahlDie beiden Speicherbereiche ab Adresse 1 und Adresse 2 werden vertauscht.

Beispiel:

|CHIR, &4000, &C000, &3FFFTauscht den Bildschirmspeicher mit dem Speicherbereich 4000H-7FFFH.
|CHIR, @a$, @b$, 3Tauscht die beiden String-Variablen.
|CHIR, @a%, @b%, 2Tauscht die beiden Integer-Variablen.
|CHIR, @al, @b!, 5Tauscht die beiden Real-Variablen.
|RESULT, @BC%, @DE%, @HL%,@IX%, @IY%Füttert die Integer-Variablen BC bis IY nach Aufruf eines ISYSTEM-Befehls mit den Werten der entsprechenden Register.

Beispiel:

|SYSTEM, &BB69Holt die Größe des aktuellen Textfensters.
|RESULT,@UR%,@UR%, @OL%Füttert UR% mit dem Wert von DE, also rechts'High, unten'Low, und OL% mit dem Wert von HL, also links'High, oben'Low.
|AKKU, @A% Füttert A% mit dem Wert des Akkus nach dem letzten |SYSTEM-Befehl.

Beispiel:

|SYSTEM, &BB06: lAKKU, @CHARWartet auf ein Zeichen von der Tastatur und speichert es in CHAR% ab.
|FLAG, @F%Füttert F% mit dem Wert des Flag-Registers nach dem letzten |SYSTEM-Befehl. Die Bits stehen für folgende Flags:

BitBedeutung
0/1CÜbertrag, 1'C,0'NC
½NAdditions-/Subtraktions-Fla
2/4P/VParität/Überlauf, 1'PO, 0'PE
3/8Keine Bedeutung
4/16HHalbübertrags-Flag
5/32Keine Bedeutung
6/64ZNull-Flag, 1'Z,0'NZ
7/128SVorzeichen-Flag, 1'M,0'P

Beispiel:

|SYSTEM, &BD2E: |FLAG, @busy% : busy%'(busy% AND 1)'1Stellt fest, ob der Drucker empfangsbereit ist (busy%'0), sonst busy%'&FFFF
|CALLSTR, @program$ oder
|CALLSTR,< Program in ASCII-Zeichen >
Ruft eine Routine auf, die in einem String gespeichert ist (sie muß verschiebbar sein: relative Sprünge).
|WRITE, Quelladr., AnzahlSchreibt den Inhalt des Speicherbereichs als ASCII- oder Sonderzeichen auf den Bildschirm.

Beispiel:

|ROM, 252: |WRITE, &738, &3EGibt die Firmen, die den CPC vertreiben, auf dem Bildschirm aus.

Dieter Deifel , CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1987
★ AUTHOR: Dieter Deifel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» SYSdisc    (CPC  Magazin)    GERMANDATE: 2020-05-27
DL: 198
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 » Tape Control
» Applications » DOS-Tester (Happy Computer)
» Applications » QuickFormat (Schneider CPC-Welt)
» Applications » Procopy 128k v3
» Applications » DATA.COM (CPC Magazin)
» Applications » MesCAT v2
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 548 millisecondes et consultée 928 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.