APPLICATIONSDIVERS ★ Headerlose Kassettenoperationen ★

Headerlose Kassettenoperationen (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 ★ 

Um Programme mit dem Kassettenrekorder schneller laden und abspeichern zu können, hat man entweder die Möglichkeit des Erhöhens der Kassettenübertragungsrate, oder die des headerlosen Abspeicherns. Da die erste Möglichkeit schon hinlänglich bekannt sein dürfte, soll hier die zweite genauer erklärt werden.

Durch das headerlose Abspeicherformat entfällt das Zerlegen in 2K-Blöcke ganz. Auf dem Band befindet sich nur ein langer Block, allerdings ohne Namen und nur mit einem Maschinenprogramm ladbar. Der Block kann eine Länge von 1 Byte bis 65536 Bytes haben, wobei eine Längenangabe von 0 vom Betriebssystem als 65536 interpretiert wird. Es ist nicht nötig, wie beim normalen Speicherformat die Adresse eines 2K-Pufferspeichers anzugeben, weil der File direkt ab der angegebenen Adresse in den Speicher geladen wird, ohne daß ein Zwischenspeicher benötigt wird. Diesen Vorteil bekommt der Basic-Programmierer nicht zu spüren, weil der 2K-Puffer vom Basic-Interpreter eingerichtet wird.

Mit folgenden Firmware-Einsprüngen ist es möglich, einen headerlosen Kassettenfile zu erzeugen, zu laden und zu kontrollieren. Sie werden vom Basic-Interpreter bei Befehlen wie "LOAD", "SAVE", "CAT" und "PRINT#9,..." angesprungen.

  • #BC9E CAS WRITE Satz auf Band schreiben
  • #BCA1 CAS READ Satz vom Band einlesen
  • #BCA4 CAS CHECK Satz mit angegebenen Speicherabschnitt vergleichen

Bevor man diese Firmware-Routinen anspringt, müssen folgende Register geladen werden:

  • HL = Startadresse
  • DE = Länge des Files
  • A = Satzkennzeichen

Beim Laden muß beachtet werden, daß ein Satz nur dann wieder eingelesen werden kann, wenn im Register A das gleiche Satzkennzeichen angegeben wird wie beim Abspeichern.

Es muß nicht ein ganzer Satz eingelesen werden. Man kann z.B. von 500 abgespeicherten Bytes auch nur 50 wieder einlesen, ohne daß ein Fehler auftritt. Es können aber nur die ersten Bytes eines Satzes geladen werden, d.h. es ist nicht möglich, z.B. die ersten 5 Bytes eines Satzes zu überspringen und dann die nachfolgenden einzulesen. Wird versucht, mehr Bytes einzulesen, als abgespeichert, so entsteht ein Fehler, das CARRY-Flag ist dann nicht gesetzt und das Register A enthält den Fehlerschlüssel. Diese Fehler können auftreten:

  • A=0 Unterbrechung durch ESC ("Break") WRITE/READ/CHECK
  • A=1 Geschwindigkeit zu hoch WRITE/READ/CHECK
  • A=2 Lesefehler READ und CHECK
  • A=3 Unterschied zum angegebenen Speicherabschnitt nur CHECK

Kassettenoperationen erfordern genaue Zettberücksichtigung. Deshalb werden alle Unterbrechungen einschließlich der Tastaturabfrage gesperrt. Es ist also nicht möglich, während des Ladevorgangs Musik zu erzeugen, weil dafür meist Interrupts zur Steuerung der Töne benötigt werden. Der Abspeichervorgang kann nur durch Ausschalten des Computers unterbrochen werden. Im Vergleich zum normalen Abspeicherformat ist das headerlose etwa doppelt so schnell. Ein 16K-Bereich benötigt mit einer Übertragungsrate von 3000 Baud:

normal 95 Sekunden, headerlos 45 Sekunden.

Die nachfolgende MC-Routine stellt drei RSX-Befehle zur Verfügung:

  • |WRITE
  • |READ
  • |CHECK

Die Parameter sind jeweils:

  • Adresse der Daten (0 - 65535)
  • Länge der Daten (0 - 65536)
  • Satzkennzeichen (0 - 255)

Bei CHECK sind folgende Meldungen möglich:

  • CAS CHECK:FILE OK

File entspricht dem angegebenen Speicherabschnit

  • CAS CHECK ERROR 0

ESC wurde gedrückt

  • CAS CHECK ERROR 1

Geschwindigkeit ist zu hoch

  • CAS CHECK ERROR 2

Lesefehler

  • CAS CHECK ERROR 3

File entspricht nicht dem angegebenen Speicherabschnitt

Als Test können Sie dieses kurze Basic-Programm eingeben. Legen Sie, bevor Sie das Programm starten, eine Kassette ins Kassetten fach ein und drücken Sie dann REC und PLAY. Wenn Sie das Programm starten, wird es auf dem Bildschirm 200 Linien ziehen und dann auf eine Taste warten. Wenn Sie eine Taste drücken, wird der Bildschirminhalt mit 3000 Baud headerlos abgespeichert. Spulen Sie danach die Kassette an den Ausgangspunkt zurück und drücken Sie dann PLAY. Nach Zurückspulen und einem Tastendruck wird der ursprüngliche Bildschirminhalt wieder geladen.

100 REM
110 REM Test "|WRITE" und "|READ"
120 REM
130 MODE 1:BORDER 0:INK 0,0:INK 1,2:INK 2,18:INK 3,6 140 FOR k=1 to 200
150 DRAW INT(RND*640), INT(RND*400),INT(RND*3)+1
160 NEXT k
170 CALL &BB06
180 |WRITE,&C000,&4000,&FF
190 CLS:CALL &BB06
200 |READ,&C000,&4000,&FF
210 END

CPCAI 8607

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1986
★ AUTHOR: Eckehart Röscheisen
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Aucun fichier de disponible:
» Vous avez des fichiers que nous ne possédons pas concernent cette page ?
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Text-Basic (CPC Magazin)
» Applications » Rsx - Reflection (Amstrad Computer User)
» Applications » Rsx - Nova Basic
» Applications » RSX GPrint (Deuuligne #05)
» Applications » Screen Commands (Compute Mit)
» Applications » Schrift-RSX (Schneider Magazin)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» 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 253 millisecondes et consultée 1568 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.