APPLICATIONSDIVERS ★ EXTENDED BASIC|CPC MAGAZIN) ★

23 neue RSX-Befehle (CPC Magazin)15 neue RSX-Befehle (CPC Magazin)
★ 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 ★ 

ln dieser Serie wollen wir das Basic des Schneider Computers noch um einiges aufwerten. Es sollen pro Folge etwa 10-25 neue Befehle eingerichtet werden. Klar ist, daß wir diese Serie nicht in alle Ewigkeit fortsetzen können, denn irgendwann fallen einem ja keine neuen, sinnvollen Befehle mehr ein, die zudem von der Programmierung nicht zu umfangreich sein sollten. So werden wir diese Serie wohl auf 3 - 4 Teile beschränken. Wem noch sinnvolle Befehle zusätzlich einfallen, kann uns schreiben. Wir bringen dann die entsprechenden Befehlserweiterungen.

Neu an der Serie soll die vollständige Kompatibilität sein. Während die Befehle eines jeden Teiles auch unabhängig von den anderen Teilen laufen, ist es auch möglich, mit allen Teilen gleichzeitig zu arbeiten.

Jeder Teil hat einen gewissen Schwerpunkt. Diesmal geht es um die Hardware. Vieles was im Inneren des Rechners vorgeht, und was in seinem Speicher steht, kann durch diese 23 Befehle beeinflußt werden. Der nächste Teil beschäftigt sich dann vornehmlich mit Grafik: Zeichnen von Dreiecken, Vierecken und vieles andere.

Schwerpunkt Hardware

Die Befehle werden auf der Basis von RSX-Befehlen eingerichtet. Ihnen ist ein senkrechter Strich vorangestellt, den Sie mit der Tastatur über Shift + Klammeraffe @ erreichen. Den Befehlen können mehrere Parameter übergeben werden (durch Kommata voneinander getrennt). Beachten Sie dabei, daß schon bei einem Parameter direkt hinter dem Befehl ein Komma stehen muß. Beispiel IPAUSE, Zeit. Dem Befehl muß auch öfters der Speicherplatz einer Variablen mitgeteilt werden. Dies geschieht über den Klammeraffen. Z. B. ergibt PRINT @i% die Speicherzelle, ab der die Variable i% im Speicher abgelegt ist. Existiert eine Variable mit diesem Namen nicht, gibt der Rechner eine Fehlermeldung aus. Um das zu vermeiden, setzen Sie die Variable vorher auf einen beliebigen Wert (z. B. auf i%=0). Beachten Sie, daß das Prozentzeichen (%) eine Integervariable kennzeichnet.

In der Auflistung der neuen Befehle stehen verschiedene Parameter hinter den Befehlen. Dabei bedeuten n1, n2, n3,... direkte Zahlen. D. h., man kann dort eine direkte Zahl hinschreiben, wie etwa 10000 oder eine Variable (Integer oder Real) wie i oder %.

Zu beachten ist dabei, daß der Wert im Bereich von 0 bis +65535 liegen muß. Integervariablen haben allerdings nur den Wertebereich -32767 bis +32767. Um eine negative Zahl in eine positive umzurechnen, macht man folgendes: PRINT 65536+i% und schon kommt eine positive Zahl heraus. Für den Rechner ist es absolut egal, ob er mit positiven oder mit negativen Zahlen rechnet, für ihn sind sie identisch. Um eine positive Zahl in eine negative umzurechnen, so daß sie in eine Integervariable paßt, macht man folgendes: i%=< zahl >-65536.

Die zweite Art von Parametern, die übergeben werden, sind Variablen mit vorangestellten Klammeraffen. Hier dürfen nur Integervariablen stehen. Beispiel: @i%. Werden einem Befehl zuviel oder zuwenig Parameter übergeben, so kommt zwar keine Fehlermeldung, der Befehl wird aber nicht ausgeführt.

Für die Computer CPC 664 und 6128 müssen Sie zusätzlich folgende Zeile eingeben:

85 POKE &A5E3,&32:POKE &A5E4,&B6:POKE &A5E9,&32:POKE &A5EA,&B6:POKE &A5EF,&31:POKE &A5F0, &B6: POKE &A5F5,&31: POKE &A5F6,&66

Tippen Sie das abgedruckte Listing sorgfältig ab und starten Sie es mit RUN. Der Rechner überprüft nun die Datenzeilen. Zuerst wird die Nummer der gerade überprüften Zeile gedruckt, dann ein Kommentar. Schreibt der Rechner OK, so ist die Zeile in Ordnung, die nächste wird untersucht. Druckt der Rechner ERROR oder eine Basicfehlermeldung wie TYPE MISMATCH, so ist die Zeile nicht korrekt. Diese müssen Sie dann überprüfen und verbessern und danach das Programm erneut mit RUN starten. Das tun Sie solange, bis alle Fehler eliminiert sind. Der Rechner schreibt nun ACHTUNG: ABSPEICHERN. Legen Sie eine Cassette oder Diskette ein und drücken Sie REC & PLAY (nur TAPE), anschließend eine Taste. Das Maschinenprogramm wird nun abgespeichert. Wollen Sie das alte Programm mit den Datas behalten, eventuell um jemand anderen eine Kopie zu überspielen, speichern Sie es mit SAVE ”EBAS1” ab. Das Maschinenprogramm liegt nun unter dem Namen EXTBAS1 .BIN vor.

Wollen Sie die Befehlserweiterung anwenden, müssen Sie folgendermaßen vorgehen:

  1. Rechner zurücksetzen (ist nicht unbedingt notwendig).
  2. MEMORY 41899 - Speicherplatz für MC reservieren
  3. LOAD "EXTBAS1.BIN” - MC-Programm laden
  4. CALL 41900 - Die neuen Befehle einrichten

Von nun an befinden sich die neuen Befehle im Speicher. Bei CTRL+SHIFT+ESC oder beim Ausschalten des Rechners gehen sie allerdings verloren, nicht jedoch bei NEW. Das Maschinenprogramm belegt den Speicher von 41619 bis 41900.

  • |BLOCKFILL,n1,n2,n3,: Der Speicher wird von Adresse n1 mit n2 Bytes vom Wert n3 aufgefüllt (1 -Byte-Wert).
  • lBYTECOUNT,n1,n2,n3,@a%: Ab Adresse n1 werden n2 Bytes auf den Wert n3 untersucht. In der Variablen a% befindet sich nach Ausführung des Befehls die Anzahl der Bytes, die im angegebenen Bereich vorhanden waren.
  • |CAPSON: Der Capsmodus (Großbuchstaben) wird angestellt.
  • |CAPSOFF: Der Capsmodus (Großbuchstaben) wird abgestellt.
  • lDEEK,n1 ,@a%: DEEK steht für DOUBLE PEEK. Ab der Adresse n1 werden zwei Bytes aus dem RAM gelesen und an die Variable a% übergeben. Dabei entspricht das High-byte dem Wert der Adresse n1+1 und das Lowbyte dem Wert der Adresse n1.
  • lDOKE,n1,n2: DOKE steht für DOUBLE POKE, Ab Adresse n1 wird zuerst Low, dann Highbyte von n2 im Speicher abgelegt.
  • lDRUCKER,@a%: In der Variablen a% wird der Druk-' kerstatus übergeben. Ist kein Druckerangeschlossen oder ein vorhandener Drucker nicht empfangsbereit, liefert der Befehl in a% eine 0, ist der Drucker empfangsbereit, ist a /o gleich 1.
  • |HIGH,n1,@a%: Dieser Befehl liefert das Highbyte von n1 in der Variablen a%.
  • |LOW,n1,@a%: Dieser Befehl liefert das Lowbyte von n1 in der Variablen a%.
  • |LOWHIGH,n1,@a%: Das Lowbyte von n1 wird im Highbyte von a% übergeben, und das Highbyte von n1 wird im Lowbyte von a% übergeben.
  • |MOTORON: Der Motor des Cassettenteils wird angestellt.
  • |MOTOROFF: Der Motor des Cassettenteils wird abgestellt.
  • |PAUSE,n1: Der Rechner wartet n1/fünfzigstel Sekunden. Um also eine Pause von einer Sekunde zu erreichen, wäre der Befehl IPAUSE.50 notwendig.
  • |ROMDEEK,n1,@a%: Dieser Befehl wirkt ebenso, wie der Befehl IDEEK, bloß daß jeweils die Werte aus dem ROM gelesen werden.
  • |ROMPEEK, n1, @a$: Wie IROMDEEK, allerdings wird nur ein Byte aus der Adresse n1 ausgelesen und in das Lowbyte von a% übergeben.
  • |SHIFTON: Der Shiftmodus wird angestellt.
  • |SHIFTOFF: Der Shiftmodus wird abgestellt.
  • |TASTRESET: Die Tastatur wird zurückgesetzt. Dieses hat zur Folge:
    1. Der Tastenbuffer wird geleert.
    2. Die Tastenvektoren werden auf ihre Ursprungswerte
    3. Daueranschlag und Wiederholungsgeschwindigkeit werden auf ihre Ursprungswerte gesetzt.
    4. Die Tastendefinition wird zurückgesetzt.
    5. CAPS und SHIFT sind aus.
  • |TESTKEY,n1: Der Rechner wartet solange, bis der Benutzer ein Zeichen mit dem ASCII-Code n1 eingetippt hat. Wird kein Parameter übergeben, wartet der Rechner nur auf den Druck irgendeiner Taste.
  • |VEKTORRES: Alle Vektoren werden auf ihre Ursprungswerte zurückgesetzt.
  • |WAITFLY: Dieser Befehl wartet auf den nächsten Rückstrahl des Elektronenstrahls des Monitors.
  • |WAITKEY,@a%: Wartet auf einen Tastendruck und übergibt den ASCII-Wert der Taste der Variablen a%. Ohne Parameter wird nur auf einen Tastendruck gewartet.

CPC MAGAZIN

★ PUBLISHER: CPC Magazin
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LICENCE: LISTING
★ AUTHOR: Andreas Zallmann
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
  » RSX-Extended  Basic-Teil  2    (CPC  Magazin)    LISTING    GERMANDATE: 2020-05-27
DL: 3 fois
TYPE: PDF
SIZE: 432Ko
NOTE: 1 page/PDFlib v1.6

  » RSX-Extended  Basic    (CPC  Magazin)    GERMANDATE: 2020-05-18
DL: 5 fois
TYPE: ZIP
SIZE: 5Ko
NOTE: 40 Cyls
.HFE: NON

  » RSX-Extended  Basic    (CPC  Magazin)    LISTING    GERMANDATE: 2020-05-27
DL: 3 fois
TYPE: PDF
SIZE: 173Ko
NOTE: 1 page/PDFlib v1.6

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Zen
» Applications » Fast Fill (Computing With the Amstrad)
» Applications » Assembler
» Applications » Coding - Small - c (CPC Amstrad International)
» Applications » Defspr - Lispr - Creget (Amstrad Magazine)
» Applications » Build a Monster (The Amstrad User)

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop
Page créée en 349 millisecondes et consultée 32 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.