APPLICATIONSDIVERS ★ EXTENDED BASIC : 36 NEUE RSX-BEFEHLE (86/4) ★

Extended Basic : 36 Neue RSX-befehle (Schneider Aktiv)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 ★ 

EXTENDED BASIC stellt Euch 36 neue Befehle zur Verfügung, welche Ihr nach Belieben in Euere Programme einbinden könnt. EXTENDED BASIC wird entweder mit Memory 39999;RUN "EXBAS" (zur Verwendung im Direktmodus) gestartet oder in BASIC-Programmen mit 10 MEMORY 39999: LOAD "EXBAS.BIN": CALL &9C4D eingebaut. Das Hochziehen auf Diskette erfolgt mit:

LOAD"EXBAS.BIN":SAVE "EXBAS",B,40000,2620,40000

BEFEHLSERLÄUTERUNG:

|SCHRIFT, X- und Y-Koordinate, @ String-Variable, Höhe, Breite, Ink X- und Y-Koordinate geben die Position auf dem Grafikbildschirm an (wie bei Plot). Eine String-Variable muß vorher definiert sein, sonst erfolgt eine Fehlermeldung. Auch der Klammeraffe @ muß unbedingt vor die Variable gesetzt werden. Die Angaben bei Höhe und Breite geben die Vervielfachung der Matrixpunkte an ( 0 ist nicht möglich). Höhe und Breite beziehen sich immer auf 8 Matrixpunkte (wie im Mode 2).Der kleinste Parameter für die Breite ist im Mode 2 eine lf - im Mode 1 eine 2 - und im Mode 0 eine 4. Werden diese Mindest breiten nicht eingehalten, so werden die darzustellenden Zeichen verfälscht. Ink gibt die Farbe an, in der der String ausgegeben werden soll und ist modeabhängig. Es sind auch selbstdefinierte Zeichen möglich, jedoch sind nur die Charakter von 240 bis 255 zugelassen. Ein SYMBOL AFTER ist nicht mehr möglich.

BEISPIEL:

Mode 2 :a$="F": (SCHRIFT,0, 399,@a$, 25, 80,1 oder Mode 2:a$="HalloM: [SCHRIFT, 200,300, @A$J5,5,1

|LEFT,WINDOW-NR. Scrollt das angegebene Window nach links. Ist daa Window noch nicht definiert, wird der komptete Bildschirm gescrollt. Wurde der komplette Bildschirm mit PRINT o.ä. Befehlen nach oben oder unten gescrollt - und somit das Offset verändert -kehrt die Routine ohne Fehlermeldung zurück.

Für die Berechnung der FOR-NEXT-SCHLEIFE gilt die Formel:

ANZAHL DER ZEICHEN IN EINER ZEILE IM WINDOW * MODE-OFFSET Der Mode-Offset beträgt im Mode 2 = 1 Mode 1 = 2 Mode 0 = 4

BEISPIEL:

Mode 2:PRINT STRING$( 160,"A"): WINDOW#l,l, 80,1,2:FOR 1=1 TO 80:|LEFT,1: NEXT oder
Mode 1:PRINT STRING$(80,"B"):WINDOW#2I10, 20,1,2:FOR 1=1 TO 20:|LEFT,2:NEXT oder
Mode 0:PRINT STRING$(40,"C',):WINDOW#3I5> 15,1,2: FOR 1=1 TO 40:[Left,3:NEXT

|RIGHT,WINDOW-NR. Analog zu |Left.WINDOW-Nr. nur nach rechts.

|LEFTR,WINDOW-NR. Rollt das angegebene Window nach links, d.h. die Zeichen, die auf der linken Seite herausfallen kommen rechts wieder herein. Sonst analog zu |LEFT, WINDOW-NR.

BEISPIEL:

Mode 2:FOR 1=1 TO 24:PRINT STRING* (79,"W") ;:NEXT:WINDOW#1,1,80,1,10:FOR 1=1 TO 80: |LEFTR, 1 :NEXT

|RIGHTR,WINDOW-NR. Wie |LEFTR, WINDOW-NR., aber nach rechts.

|INVERSE Schaltet auf inverse Darstellung. Alle nachfolgenden Zeichen werden invers dargestellt. Nochmaliger Aufruf schaltet auf Normalmodus zurück.

|CHRINV,SPALTE,ZEILE,INK,INK Invertiert ein Zeichen auf der angegebenen Position mit den Ink-Farben.Die Farben sind modeabhängig.

BEISPIEL:

Mode 1:?"TEXT INVERTIEREN MIT |CHRINV":FOR 1=1 TO 40:|CHRINV,I,1,2,0:NEXT:|PAUSE,100:FOR 1=1 TO 40:|CHRINV,I,1,2,0:NEXT

|READ, SPALTE, ZEILE, @STRING-VARIABLE Liest ein Zeichen auf der angegebenen Position und legt es in der STRING-Variable ab. Die String-Variable muß vorher definiert sein (a$="M oder eine Feld-Variable wählen, dann entfällt die Vorabdefinition).

BEISPIEL:

LOCATE 1,1:PRINT"HALLO":FOR 1=1 TO 5:READ,I,1,@A$(0):PRINT A$(0);:b$=b$+a$(0):NEXT:PRINT:PRINT b$

|PAUSE,WERT Hält das Programm um «twa WERT * 1/50 Sekunde an. Ein Wert von 50 ergibt somit eine Pausenschleife von etwa einer Sekunde, ein Wert von 100 zwei Sekunden usw. Eine Sonderstellung nimmt Pause,0 ein, denn hier wartet das Programm auf einen Tastendruck. Die Pausenschleife kann nicht mit einem BREAK unterbrochen werden.
|PAUSE,0 übergibt das letzte Zeichen in den Tas^ taturpuffer und ea kann mit INKEY$ ausgelesen wer-den.

BEISPIEL:

|PAUSE,0:A$=INKEY$:PRINT A$

|CKEY Löscht den Tastaturpuffer

BEISPIEL:

10 |PAUSE,0:INPUT"TEST";A$
besser ist 10 |PAUSE,0:|CKE :INPUT"TEST";A$

|SCREEN,@STRING-VARIABLE Speichert den Bildschirm (16384 Bytes) mit dem Namen der STRING-VARIABLEN ab. Die STRING-VARIABLE muß vorher definiert worden sein, sonst erfolgt eine Fehlermeldung.

BEISPIEL: A$="TEST.SCR":|SCREEN,@A$

|SPRESS, @STRING- VARIABLE Speichert den mit |PRESS komprimierten Bildschirm ab. Es muß vorher komprimiert worden sein, sonst erfolgt eine Fehlermeldung. Sonst Analog zu |SCREEN.

|PRESS Komprimiert den Bildschirm und speichert die Bytes ab Adresse 25000 ab.Da EXTENDED-BASIC ab 40000 steht, speichert EXTENDED-BASIC den Bildschirm normal (16384 Bytes) unter dem Namen SAFE.SCR ab, wenn der reservierte Speicherplatz (25000-39999) nicht ausreicht. Beim Arbeiten mit |PRESS sollte MEMORY auf 24999 gesetzt werden. Außerdem darf nicht die Bildschirmbank 0 aufgerufen werden, da diese parallel zum benötigten |PRESS-Speicher liegt und ein Beschreiben des Bildschirmes (in der Bank 0) das komprimierte Bild zerstören würde.

|LANGE,@INTEGER-VARIABLE übergibt an die vorher definierte INTEGER-VARIABLE die Anzahl der Bytes, auf die das Bild komprimiert wurde.

BEISPIEL: A%=0:|PRESS:|LANGE,@A%:?A%

|ONSCREEN,ADRESSE Bringt die mit |PRESS komprimierten Bilder auf den Bildschirm. Wenn kein Bild vorhanden ist, erfolgt Fehlermeldung IMPROPER ARGUMENT. Wird |ONSCREEN ohne Adresse aufgerufen, nimmt das Programm den Wert 25000 (Anfang d.|PRESS-Speichers) an.In Verbindung mit |BLOCK können komprimierte Bilder im Speicher verschoben werden und diese mit |ONSCREEN,ADRESSE auf die Bildschirmbank 1 zurückgeholt werden.

BEISPIEL: MODE 2:FOR 1=1 TO 2000:PRINT "W"; :NEXT:|PRESS:CLS:|ONSCREEN:CLS:A%=0: |LAENGE, @%:|BLOCK,25000,10000, A%: |ONSCREEN,10000

BEISPIEL: MODE 2:FOR 1=1 TO 2000:PRINT"Q"; :NEXT: |PRESS:A$="TEST.SCR":|SPRESS,@A$:CLS LOAD"TEST.SCR",10000:|ONSCREEN,10000

Mit |DEEK,ADRESSE+1,@A% kann die Länge der verschobenen Bilder bestimmt werden (z.B. 2:a% =0:|DEEK,10001,@a%:?a%)

|XOR Schaltet die Graphikdarstellung auf XOR-Darstellung um

BEISPIEL: TAG:|XOR:MOVE 0,400:?" WM;:TAGOFF Erneuter

Aufruf löscht den Buchstaben wieder oder:

|XOR:MOVE 0,200:DRAWR 640,0 Erneuter Aufruf löscht die Linie wieder.

|AND Schaltet die Graphikdarstellung auf AND-Darstellung

|OR Schaltet die Graphikdarstellung auf OR-Darstellung

|STANDARD Schaltet die Graphikdarstellung wieder auf Normaldarstellung

|COPY,X-ANFANG,X-ENDE,Y-ANFANG, Y-ENDE,X-PUNKT,Y-PUNKT

X-ANFANG und X-ENDE definieren die Länge, des Fensters auf der X-Achse.

Y-ANFANG und Y-ENDE definieren die Länge des Fensters auf der Y-Achse

X-PUNKT und Y-Punkt bestimmen den linken oberen Punkt,an den das definierte Fenster (das Ursprungsbild) kopiert wird.

BEISPIEL:

|Copy,0,200,200,399,0,200

|MOVE,X-ANFANG,X-ENDE,Y-ANFANG, Y-ENDE,X-PUNKT,Y-PUNKT Funktion und Syntax wie unter |COPY beschrieben, aber zusätzlich wird das Ursprungsbild gelöscht.

|MIRRORC,X-ANFANG,X-ENDE, Y-ANFANG,Y-ENDE,X-PUNKT,Y-PUNKT Kopiert das Ursprungsbild seitenverkehrt (gespiegelt). Der X-Piinkt gibt aber die rechte Ecke des gespiegelten Bildes an. Ansonsten analog zu [COPY

MIRRORM,X-ANFANG,X-ENDE, Y-ANFANG,Y-ENDE,X-PUNKT,Y-PUNKT Wie |MIRRORC, aber wird das Ursprungsbild gelöscht.

|BOTTOMC,X-ANFANG,X-ENDE, Y-ANFANG,Y-ENDE,X-PUNKT,Y-PUNKT Kopiert das Ursprungsbild auf dem Kopf stehend.

Der Y-Punkt gibt aber die untere Ecke des gespiegelten Bildes an

|BOTTOMM,X-ANFANG,X-ENDE, Y- ANFANG,Y-ENDE,X-PUNKT,Y- PUNKT Wie unter |BOTTOMC, aber das Ursprungsbild wird gelöscht.

|SPEED,PARAMETER Setzt die Aufzeichnungsgeschwindigkeit des Kassettenrekorders herauf.Erlaubt sind die Para-meter 2 oder 3.Parameter 2 entspricht einer Aufzeichnungs-geschwindigkeit von 3000 Baud- Parameter 3 entspricht einer Aufzeichnungsgeschwindigkeit von 3600 Baud.

|DOKE, ADRESSE, WERT Schreibt an die Adresse das LOW-Byte des Wertes und an Adresse+1 das HI-Byte des Wertes.Es sind auch Integer-Variable gestattet, wenn sie vorher definiert wurden.

BEISPIEL: |DOKE,20000,15000 oder a%=30000:b%=65535:|DOKE,a%,b%

|DEEK, ADRESSE, 0INTEGER-VARIABLE Die Umkehrung von |DOKE. Es wird aus Adresse das LOW-Byte und ADRESSE+1 das HI-Byte ausgelesen und das Ergebnis an die vorher definierte Integer-Variable Ubergeben. Bitte verwenden sie ausschließlich Variablen vom Typ Integer.

BEISPIEL: C%=0:|DEEK,30000,@c%oderc%=0:d%=30000:|DEEK,d%,@c%:PRINT c%

Werte über 32767 werden als Minuszahlen aüsgegeben.Es muß hierbei der Wert 65536 addiert werden, um das richtige Ergebnis zu erhalten.

|BOX,1.X-PUNKT, 1.Y-PUNKT,2.X-PUNKT,2.Y-PUNKT,INK Die Koordinaten des ersten Punktes geben die linke obere Eck@ dea Viereckes an, die Koordinaten des zweiten, die der rechten unteren Ecke. Die INK ist modeabhängig

BEISPIEL: |BOX,100,100,200,200,1

|TRI,1.X-PUNKT,1. Y-PUNKT, 2.X-PUNKT,2.Y-PUNKT,3.X-PUNKT,3.Y-PUNKT,INK Die Koordinaten der drei Punkte geben die Punkte A,B und C des Dreiecks an. Die INK ist modes-abhängig

BEISPIEL: |TRI,100,100,500,100,300,399,1

|CURON Schaltet den Cursor ein

BEISPIEL: 10 MODE 2:LOCATE 1,12:|CURON 20 FOR 1=2 TO 80:|CUROFF:LOCATE I,12:|CURON: |FRAME: NEXT

|CUROFF Schaltet den Cursor ab

|FRAME Entspricht CALL &BD19 = Firmware Wait FLY-BACK.Pixelweise Bewegungen auf dem Bildschirm werden etwas flüssiger.

|BLOCK,QUELLE,ZIEL,LÄNGE Verschiebt einen Speicherbereich von der Adresse Quelle zur Adresse ZIEL. LÄNGE gibt die Anzahl der Bytes an, die verschoben werden sollen. Es sind wiederum vordefinierte Integer-Variablen möglich.

ACHTUNG !!!

BENUTZEN SIE DIESEN BEFEHL MIT BEDACHT,DENN SIE KÖNNEN SICH OHNE WEITERES IHREN BASIC -SPEICHER UND DAMIT IHR PROGRAMM ODER ANDERE WICHTIGE SYSTEMADRESSEN ÜBERSCHREIBEN

BEISPIEL:  Es soll der Bildschirm (Anzahl der Bytea &4000) von &C000 nach &4000 verschoben werden. Schreiben Sie bitte einige Zeichen auf den Bildschirm.

|BLOCK,&C000,&4000,&4000:CLS:|BLOCK,&4000,&C000,&4000

Natürlich können auch alle anderen Adressen innerhalb des Speichers (außer ROM) angesprochen und verschoben werden. So wird die Blockverschiebung im DEMO-Programm innerhalb des Bildschirmspeichers verwendet und ein schnelles Kopieren ermöglicht.

|BANK,NUMMER Es stehen zwei Bildschirmbänke zur Verfügung. Als Parameter sind 0 oder 1 erlaubt. Bank 0 liegt von &4000 bis &8000 =16384 bis 32768 Bank 1 liegt von &C000 bis &FFFF =49152 bis 65535 Wird dieser Befehl in einem Programm genutzt, sollte HIMEM vorsichtshalber auf &3FFF gesetzt werden, um einem Überschreiben vorzubeügen. Auch sollte der Befehl |BANK,0 nicht in Verbindung mit |PRESS genutzt werden, da es hinsichtlich des Speicherbereichs zu Überschreibungen kommt.

BEISPIEL: 5 REM BEI JEDEM TASTENDRUCK WIRD DIE BANK GEWECHSELT
10 MODE 2:?"BANK 1 "TAB(20)"&C000-&FFFF: |BANK,0:CLS:?"BANK 0 "TAB(20)"&4000-7FFF"
20 |BANK,1 :|CKEY:|PAUSE,0:|BANK,0: |CKEY: |PAUSE,O:GOTO 20

DUMP VARIABLEN-DUMP gibt auf Tastendruck die Werte aller Integer-, Real-und String-Variablen aus, wie sie nacheinander im Variablenspeicher stehen. Enter unterbricht die Ausgabe.

Kornelius Becher ,SA

★ PUBLISHER: Schneider Aktiv
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LiCENCE: LISTING
★ LANGUAGE:
★ AUTHOR: Kornelius Becher
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
  » Extended  Basic-36  Neue  RSX-befehle    (Schneider  Aktiv)    GERMANDATE: 2021-06-10
DL: 5 fois
TYPE: ZIP
SIZE: 7Ko
NOTE: 40 Cyls
.HFE: NON

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.
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Key-Help (CPC Amstrad International)
» Applications » Interlock Services - Amshelp
» Applications » HELP.COM (Happy Computer)
» Applications » Copyhelp v3 (CPC Magazin)
» Applications » Proghelp (CPC Magazin)
» Applications » RSX Help (Computing With the Amstrad)

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