APPLICATIONSDIVERS ★ UNIV-RSX (CPC AMSTRAD INTERNATIONAL) ★

Univ-Rsx (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 ★ 

Nichts ist unmöglich

Berechnete Sprünge unter BASIC

Haben Sie schon einmal versucht, einen GOTO-Befehl auszuführen, der abhängig von dem Wert einer Variablen war? Ja, dann wissen Sie auch, daß dies zu einer Fehlermeldung führt. Daß es auch anders geht, soll Ihnen dieses Programm zeigen.

Die drei Befehle der ersten Gruppe ermöglichen berechnete Programmsprünge und ein berechnetes Setzen des DATA-Zeigers. Das bedeutet: Die Zeilennummer wird in einer Variablen angegeben, was bei den Befehlen des eingebauten BASICs nicht möglich ist. Ausdrücke wie |GOTO,10*w+ 1 sind also keine Utopie mehr. |GOTO ,Zeilennummer Springt zur Zeile mit der Nummer Zeilennummer. Da bei CALL- und RSX-Befehlen auch arithmetische Ausdrücke als Parameter angegeben werden dürfen, wird eine direkte Berechnung des Sprungziels möglich.

Beispiel:

|GOTO,5*(10-x)+23 |GOSUB,Zeilennummer Wirkt wie das normale GOSUB, allerdings kann das Sprungziel wieder als arithmetischer Ausdruck oder Variable angegeben werden.

Beispiel:

|GOSUB,a* 10-4 |RESTORE,Zeilennummer Wie das normale RESTORE, aber wieder mit der Möglichkeit, die Zeilennummer als Variable etc. anzugeben.

Beispiel:

|RESTORE,z

Weitere Befehle

Nun folgen zwei Befehle für den Umgang mit dem Diskettenlaufwerk. Diese Befehle funktionieren sowohl unter AMSDOS, als auch unter VDOS. Zu beachten ist, daß im aktuellen Laufwerk auch wirklich eine Diskette eingelegt ist, weil bei Ausführung dieser Kommandos zwischenzeitlich die Textausgabe abgeschaltet wird und dadurch eine eventuell ausgegebene Fehlermeldung nicht sichtbar wird. Wenn der Computer längere Zeit nichts mehr von sich "hören" läßt, sollten Sie einmal "C" für "Cancel" (im VDOS: "N" für "Nein") drücken. |DISKSPACE,@sp% Dieser Befehl ermittelt die freie Speicherkapazität der Diskette im aktuellen Laufwerk. Sie wird in der Variablen sp% in Kilobytes zurückgegeben.

Beispiel:

sp% =0:|DISKSPACE,@sp%:?sp% |EXIST,@f$, @flag%

Dieser Befehl testet, ob eine Datei existiert oder nicht, und beugt damit der Fehlermeldung " < name > not found" bzw. " < name > already exists" vor. Enthält flag% nach Abschluß des Befehls den Wert -1, so ist die Datei vorhanden, andernfalls enthält flag% eine 0.

Beispiel:

10 INPUT"Dateiname"; f$
20 flag%=0: |EXIST,@f$,@flag%:IF NOT flag% THEN 10

Der INPUT-Befeh! des BASIC-Interpreters ist zwar sehr komfortabel, aber er hat auch seine Nachteile. So ist es z.B. nicht möglich, die maximale Zahl von Zeichen, die angenommen werden sollen, festzulegen. Auch, wenn nur Zahlen als Eingabe erlaubt sein sollen, hilft nur eine eigene Routine. Mit dem IINPUT-Befehl von UNIVERSAL RSX ist dieser Aufwand nun nicht mehr nötig.

|INPUT,@s$, AMin, AMax,ZMax,@flag% Dieser Befehl erlaubt die formatierte Eingabe über die Tastatur. Nach Abschluß des Befehls enthält s$ den eingegebenen Text. Das letzte eingegebene Zeichen kann mit DEL gelöscht werden. Es können nur ZMax Zeichen eingegeben werden. Es werden nur Zeichen angenommen, deren ASCII-Wert im Bereich von AMin (einschließlich) bis AMax (ausschließlich) liegt. ESC, DEL und RETURN/ENTER werden unabhängig von dem mit AMin und AMax gewählten Bereich abgefragt. Der Befehl kann mit ESC abgebrochen werden. Der alte Inhalt von s$ bleibt dann erhalten und flag% enthält eine 0. Andernfalls enthält flag% den Wert -1. Wichtig ist, daß s$ vorher mit ZMax Zeichen gefüllt wird.

Beispiel:

f%=0:zm=2:s$=SPACE$(zm): |INPUT,@s$, 48,58,zm,@f%

Es können nur Zahlen eingegeben werden, und zwar nur Werte von 0 bis 99 (2 Stellen).

Beim letzten Befehl handelt es sich um einen sog. "Entschüt-zer", der es ermöglicht, mit der "P"-Option gespeicherte Programme wieder normal zu bearbeiten. Der Befehl funktioniert auch unter VDOS.

|DEPROTECT,flag

Enthält flag beim Aufruf einen Wert ungleich 0, so wird ein kleiner Patch ins RAM kopiert, der nach jeder Diskettenoperation das Protect-Flag des BASIC-Interpreters löscht. Damit lassen sich auch geschützte Programme wieder LISTen. Hat flag den Wert 0, dann wird der Patch rückgängig gemacht. Geschützte Programme bleiben dann wieder geschützt.

Fehlermeldungen: Als Parameter dürfen nur Integervariablen oder Strings bzw. deren Adressen angegeben werden. Bei REAL-Parametern gibt der BASIC-Interpreter eine Fehlermeldung aus. UNIVERSAL RSX selbst kennt zwei Fehlermeldungen: Bei unstimmiger Parameterzahl wird die Meldung "Parameterfehlerl" ausgegeben. Bei den Befehlen IGOTO, IGOSUB und IRESTORE ist auch die Fehlermeldung "Falsche Zeilennummerl" möglich, wenn eine nicht existierende Zeilennummer angegeben wird. Der Entschützer funktioniert grundsätzlich nur mit einem Diskettenlaufwerk. Für ihn wird vorausgesetzt, daß die Diskroutinen über die Adresse &BE7F zum aufrufenden Programm zurückkehren. Das Abtippen: Geben Sie den DATA-Lader UNIV-RSX.LAD ein und speichern Sie ihn vor dem Start. Nach dem Start mit RUN wird der Maschinencode eingelesen und als Datei UNIV-RSX.BIN abgespeichert. Mit der Befehlsfolge

MEMORY &A2FF: LOAD"UNIV-RSX.BIN",&A300:CALL &A300

werden die RSX-Befehle später wieder aktiviert.

CD, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1989
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1989
★ AUTHOR: Harald Schoen
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» UNIV-RSX    GERMANDATE: 2012-12-27
DL: 247
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 » Quick-Strip : Strip-Poker-Bilder auf Papier (CPC Magazin)
» Applications » Microword
» Applications » Valeurs Plus
» Applications » Dibujo en Funciones Explicitas
» Applications » Cherry Paint
» Applications » Esat Software - Satan
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 145 millisecondes et consultée 1561 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.