APPLICATIONSPROGRAMMATION ★ RSX BASIC-ERWEITERUNG V3.0 (CPC AMSTRAD INTERNATIONAL) ★

RSX Basic-Erweiterung v3.0 (CPC Amstrad International)Applications Programmation
★ 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 ★ 

Bei dem vorliegenden Programm handelt es sich um eine in Maschinensprache geschriebene BASIC-Erweiterung, die als RSX-Befehle direkt unter BASIC aufgerufen wird. Wichtig:

Allen RSX-Befehlen wird ein | vorangestellt!!! (Zeichen oberhalb des @ 'Klammeraffen').

Das Programm beinhaltet acht neue Befehle, die sich ausschließlich mit den Bildschirmoperationen des CPC 464 befassen. (Näheres zur Syntax siehe Befehlsliste.) Zu SCRINVERT und RESET muß wohl nichts gesagt werden. außer daß dem RESET-Befehl ein PEN 1 folgen sollte (RESET-PEN 1).

SCRCOPY kopiert einen Bildschirminhalt in einen anderen Bildschirmbereich und durch SCRSWAP kann dieser dann aufgerufen werden.

Etwas ausführlicher möchte ich nun auf die letzten vier Befehle eingehen. Hierbei handelt es sich um SAVEIN, LOADIN, WSAVE und WLOAD. die dem Anwender eine Vielzahl von Möglichkeiten eröffnen (siehe auch das DEMO-Programm). Hier nun die unterschiedliche Funktionsweise beider Befehlsgruppen:

1. SAVEIN / LOADIN

Der Befehl SAVEIN veranlaßt das Programm, das Zeichen an der gegebenen Position zu identifizieren (durch Vergleich der Matrix mittels der Firmware-Routine RD CHAR #BB60) und als ASCII-Code in dem angegebenen Speicherbereich abzulegen.

Es ist dabei möglich, mehr als ein Zeichen auszulesen, da Werte für die erste bis letzte Spalte und die erste bis letzte Zeile angegeben werden können.

Der Befehl LOADIN holt sich nun aus dem Speicherbereich ein oder mehrere Zeichen heraus und bildet diese an dergege-benen Position ab. Vorteil:

Es ist nun folgende Befehlssequenz möglich:

  • SAVEIN,8000,5,7,5,20
  • LOADIN,8000,6,7,10,15

Bei diesem Beispiel wird nur ein Teil (!) der vorher eingclese-nen Zeichen wieder auf dem Bildschirm ausgegeben.^ Es ist hier also möglich, die Zeilen- und Spaltenwcrte beliebig zu ändern!!

Nachteil:

Der Firmwareaufruf von RDCHAR ist sehr zeitintensiv, d.h. wenn sehr viele Zeichen identifiziert und eingelesen werden sollen, dauert dies relativ lange. (Der Zeitfaktor liegt im Sekundenbereich!!) Fazit:

Die beiden Befehle eignen sich zum Kopieren kürzerer Bild-schirmausschnittc oder sollten eingesetzt werden, wenn Zeichen auf dem Bildschirm als ASCII-Code benötigt werden.

Zum schnellen Austausch von Bildschirminhalten sind sie aber nicht geeignet!

2. WSAVE / WLOAD

Der Befehl WSAVE veranlaßt, daß ein Teilbereich des Bildschirminhaltes in einen anzugebenden Bereich kopiert wird.

Dabei wird der Bildschirminhalt durch Blockverschiebung (LDIR) »umgeschaufelt«.

Der Befehl WLOAD kehn das Ganze dann wieder um. indem er aus dem gegebenen Speicherbereich wieder in den Bildschirm zurückschreibt. Vorteil:

Durch direktes Block-Kopieren wird eine hohe Abarbeitungsgeschwindigkeit erzielt. Nachteil:

Die Zeichen werden nicht, wie bei SAVEIN. identifiziert, sondern einfach byteweise vom Bildschirm kopiert. Dadurch ist es nicht möglich, das Beispiel wie bei SAVEIN/LOADIN zu übernehmen. (Achten Sieauchaufdiegeänderte Syntax bei WSAVE/WLOAD!)

Das Beispiel dort war:

  • SAVEIN,8000,5,7,5,20
  • LOADIN,8000,6,7,10,15

Hierbei wurde nur ein Teilbereich des abgespeicherten Bild-schirminhaltes wieder eingelesen. Das ist bei WSAVE./ WLOAD nicht möglich!!! Hier geht nur (z.B.):

  • WSAVE,5,20,5,7,8000 WLOAD,5,20,5,7,8000

Allerdings ist es natürlich auch möglich, den gesamten Inhalt zu verschieben!

Das würde in unserem obigen Beispiel folgendermaßen aussehen:

  • WLOAD, 10,25,8,10,8000

Zu beachtcn ist. daß die Differenz zwischen der ersten und der letzten Spalte sowie die Differenz zwischen dererstenund der letzten Zeile gleich bleibt!!! Fazit:

Die Befehle WSAVE/WLOAD lassen sich zum schnelleren Wechseln von Bildschirminhalten einsetzen, wobei es sich bei dem Inhalt auch um Grafiken (!) oder selbstdefinicrte Zeichen handeln kann. (Dies ist mit SAVEIN nicht möglich!)

Auch Scrollen in beliebiger Richtung, auch quer, läßt sich mit diesen Befehlen realisieren. (Siehe auch DEMO-Pronramm.)

Tips:

Sollte sich der Start des Bildschirms nicht bei #C000 befinden, sondern bei #4000. so sind folgende POKES hilfreich:

  • WSAVE+WLOAD = POKE &A13A,&3F
  • SCRINVERT = POKE &A0B4,&40

CPCAI 8602

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1986
★ AUTHOR: Torsten Kirsch
 

Page précédente : RSX Basic-Erweiterung v1.0
★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Basic-Erweiterung  v3.0    (CPC  Amstrad  International)    GERMANDATE: 2020-04-28
DL: 212
TYPE: ZIP
SiZE: 7Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » Traducer
» Applications » CPC464 Fill Subroutine (Australian Personal Computer)
» Applications » Ajuste/Minimos (G.T.S. Editorial)
» Applications » Vereinsverwaltung (CPC Amstrad International)
» Applications » Magic Musician
» Applications » Crypt (appy Computer)
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 802 millisecondes et consultée 1623 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.