APPLICATIONSDIVERS ★ Teil 8 ★

Profi-RSX 8 (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 ★ 

Die letzten Befehle unserer Serie haben wir Ihnen ja schon vorigen Monat, gerade noch rechtzeitig zu Weihnachten, geliefert. Diesen Monat folgt jetzt auch der letzte Teil dieser Serie.

Profi RSX hatte bis jetzt, aber auch nur bis heute, einen kleinen Nachteil (wie die meisten RSX- Erweiterungen auch) und zwar ist sie an feste Speicheradressen gebunden. Da es jedoch eher unwahrscheinlich ist, daß Sie immer alle Befehle in Ihren Programmen gleichzeitig verwenden, kann es dadurch zu einer nicht unerheblichen Speicherplatzverschwendung kommen. Nehmen wir einmal an, Sie brauchen nur eine Schnittstelle BASIC-Maschinen-sprache und ziehen hierzu die Befehle des Teiles 7 heran. Diese können selbstverständlich auch alleine geladen und benutzt werden. Sie liegen allerdings im Bereich von &6E00 bis &71F0, so daß der Bereich &71F1 bis &A5FF zwar nicht belegt, jedoch “verloren“ ist, da BASIC-Programme nur unter HIMEM liegen können (in diesem Fall bis &6DFF). Praktischer wäre es, wenn Sie diesen Teil direkt unter &A5FF ablegen könnten, da Sie dann ca. 12 kBytes mehr Speicherplatz zur Verfügung hätten. Dieses setzt natürlich voraus, daß der M-Code von Profi RSX frei verschiebbar ist, was er bis jetzt jedoch nicht ist (gilt grundsätzlich für alle RSX- Erweiterungen, da hier intern mit festen Adressen programmiert werden muß). Somit hätten Sie jetzt die 12 kBytes abschreiben können — wenn Sie sich dieses Heft nicht gekauft hätten.

Sie haben es — und somit stellt sich Ihnen dieses Problem nicht, da es für solche Problemfälle bei Profi RSX ein gesondertes Programm gibt. Hiermit können Sie sich eine Mischung aus allen Profi RSX-Folgen zusammenstellen (oder nur eine Folge, ganz wie Sie es wünschen) und diese an beliebige Speicheradressen im Bereich von &4fö0 bis &A5FF laden. Somit läßt sich der Speicherplatz nicht nur optimal ausnutzen, es können auch eventuelle Kollisionen bzw. Überschneidungen mit anderen MC-Programmen vermieden werden. Die Beschränkung auf den oben genannten Speicherbereich ist übrigens nicht durch Profi RSX verschuldet, sondern ist vom Betriebssystem zu verantworten. Dieses schreibt leider vor, daß RSX-Erweite-
rungen nur in den zentralen 32k (RAM) liegen dürfen (also von &4000 bis &BFFF), wobei das Betriebssystem davon noch über 4k für sich beschlagnahmt.

Profi RSX-Relocalisator

Kommen wir jetzt zu dem eigentlichen Programm. Hier können Sie in einem Auswahlmenü angeben, welche Teile von Profi RSX Sie benötigen. Danach erwartet das Programm von Ihnen noch die Angabe einer Speicheradresse, an die Profi RSX anzupassen ist, sowie einen Namen, unter dem diese neue Version gespeichert werden soll. Alles weitere geschieht automatisch. Der Relocator lädt die einzelnen BIN-Files von Diskette, bindet sie zu einem File zusammen, paßt diese an den Speicherbereich an und sichert das File auf Diskette. Da dieses File später von BASIC aus geladen und initialisiert werden muß, wird als Service zusätzlich noch ein BASIC-Programm erzeugt, welches ebenfalls unter dem gleichen Namen gespeichert wird und aus dem hervorgeht, welche Teile in dem BIN-File enthalten sind. Um die neue Profi RSX-Version dann zu laden, starten Sie einfach dieses BASIC-Programm durch

RUN "name.BAS"

Dieses Programm lädt dann den M-Code und initalisiert diesen ebenfalls, so daß Dinen Profi RSX dann “arbeitsfertig“ zur Verfügung steht. Selbstverständlich können Sie das BASIC-Programm auch in Ihre eigenen Programme einbinden.

Was ist jetzt genau zu tun?

Sie sollten zuerst das anschließend abgedruckte Programm abtippen und unter “PR-TEIL8.BAS“ abspeichem. Achten Sie unbedingt darauf, daß Ihnen hier, wie bei den vorangegangenen Folgen, kein Fehler unterläuft, da dieser unschöne Konsequenzen haben könnte. Als nächstes legen Sie sich eine Diskette mit den folgenden Files aus den letzten sieben Folgen an:

G1-464.BIN
G2-464.BIN
S-464.BIN
T-464.BIN
SP-464.BIN
SP2-464.BIN
PR-TEIL7.BIN

(Anm.: Arbeiten Sie mit einem Kassettenrekorder, so müssen sich die Files in umgekehrter Reihenfolge (also “PR-TEIL7.BIN“ zuerst) auf dem Band befinden und das Band muß danach unbespielt sein.) Falls Sie nicht im Besitz aller Teile sind, dürfen Sie im Programm-Menü diese Folgen nicht auswählen! Die Besitzer der neueren Typen (664 & 6128) sollten logischerweise die für Ihren Typ gültige Version anstelle der 464er-Version verwenden. Damit wären dann schon alle Vorbereitungen getroffen, es ist lediglich darauf zu achten, daß auf der Diskette noch mindestens 16k frei sind. Sie können auch die Files der anderen Typen auf der Diskette haben; dieses macht nichts, da der Relocator automatisch die Files liest, die zu dem Rechner gehören, auf dem er gerade läuft. Wollen Sie eine Version für einen anderen CPC als den Ihrigen erstellen, so fügen Sie in den Relocator folgende Programmzeile ein:

215 ver$=“464"

(oder eben 664 bzw. 6128) In der vorliegenden Version des Relocators beträgt die tiefste Speicheradresse, an die Profi RSX verschoben werden kann, ca. &4F00. Soll sie noch tiefer geladen werden, was in der Praxis kaum Vorkommen dürfte, so müssen Sie im Programm alle REM-Zeilen etc. entfernen.

Falls Sie mit allen Teilen von Profi RSX bzw. mit dem einen oder anderen, die an ihrer Standard-Adresse liegen können, arbeiten wollen, so sollten Sie das in der letzten Folge verwendete Ladeprogramm benutzen, da es speicher-technisch einen kleinen Vorteil bringt und es auf allen drei CPC's läuft. Sie müßten sonst dreimal den Relocator durchlaufen (für jeden CPC-Typeinmal).

Was der Assembler aus den ca. 9000-10000 Programm-Zeilen (oder 175 Seiten), aus denen der Assembler-Teil von Profi RSX besteht, gemacht hat, können Sie aus der Abbildung 1 ersehen. Und zwar sind daraus genau 14 kBytes (+ einem Byte) = 14337 Bytes geworden. Weiterhin geht aus der Abbildung die Verteilung der Bytes auf die einzelnen Teile sowie die standardmäßige Speicherbelegung hervor. Beachten Sie, daß es dort eine Überschneidung gibt, die jedoch gewollt ist und die bei richtiger Ladereihenfolge Speicherplatz spart. Zusätzlich ist zu beachten:

a) Teil 6 ist nur mit Teil 5 zusammen lauffahig, während Teil 5 auch alleine läuft.

b) Möchten Sie mit zwei Bildschirmen arbeiten (Verwaltung dafür in Teil 4 enthalten), so dürfen Sie keinen M-Code im Bereich von &4000 bis &7FFF ablegen!

c) Speicherbereiche für Sprite- und Icon-Matrixen sowie für die Fensterverwaltung (in Teil 4) können auch unterhalb von &4F00 bzw. über dem M-Code liegen.

In einzelnen Fällen kann es besonders sinnvoll sein, wenn Sie Ihre fertig erstellten Programme noch mit dem Programm “RSX-Compiler“ (siehe PC Int. 10/87) bearbeiten. Dieses trifft dann zu, wenn es auf maximale Geschwindigkeit ankommt und gleichzeitig die Erweiterung voll geladen ist. Das Betriebssystem braucht dann u. U. sehr lange, bis es den richtigen Befehl aus den 133 vorhandenen herausgefunden hat. Das ist aber vom BS vorgegeben und läßt sich nicht vermeiden.

Auf der DATABOX befindet sich (als kleiner Service zum Schluß) noch ein Demo-Programm. Legen Sie wie oben beschrieben eine Diskette mit den entsprechenden Files an und laden Profi RSX anschließend (alle Teile). Danach starten Sie die Demo durch »RUN“PRDEMO.BAS"«. Hier sollten die Files der Folgen 1 bis 7 zwar auf der Diskette, jedoch nicht im Speicher sein.

Zur besseren Übersicht finden Sie im Anschluß noch einmal alle Befehle mit Ihrer kompletten Syntax (allerdings ohne Erklärung) aufgelistet, damit Sie nicht ständig in sieben Heften blättern müssen.

Das wär's dann fast, falls Sie noch Fragen haben bzw. noch welche entstehen sollten, so schreiben Sie uns ruhig. Mit diesem Programm dürfte Profi RSX nun universell einsetzbar sein. Es bietet somit neben den leistungsfähigen Befehlen zusätzlich noch eine freie Re-localisierbarkeit, die Sie selbst bei den meisten käuflichen Erweiterungen nicht finden. Und 133 Befehle sollten in der Regel auch genügen. (Das einzige, was jetzt noch denkbar wäre, ist eine relative Dateiverwaltung für die Floppy. Alle anderen Bereiche werden wahrscheinlich durch Profi RSX ausreichend abgedeckt.) Wir hoffen, Ihnen somit eine Erweiterung geliefert zu haben, die Ihnen zusammen mit dem Schneider- BASIC (oder einer anderen Programmiersprache, insbesondere Assembler) eine komfortable Programmierung Ihres CPC's ermöglicht und zudem Ihre Programme immer ein wenig besser werden läßt, als wenn Sie ohne Erweiterung liefen.

Diesmal heißt es nicht “Fortsetzung folgt — in einem Monat“ sondern ENDE

Übersicht über alle Befehle der RSX-Befehlserweiterung Profi-RSX (Versionen 1.1/1.2/1.3)

Teil 1: Grafik-Befehle

1. QUADRAT (, X-Koordinate, Y-Koordinate), Kantenlänge (.Farbe)
2. A.QUADRAT (, X-Koordinate, Y-Koordinate), Kantenlänge (,Farbe)
3. RECHTECK (, X-Koordinate, Y-Koordinate), X-, Y-Kantenlänge (.Farbe)
4. A.RECHTECK wie Pos. 3
5. CIRCLE (, X-, Y-Koordinate), Radius (, Farbe)
6. GDISC wie Pos. 5
7. ELLIPSE (, X-, Y-Koord.), X-, Y-Radius (, Farbe)
8. A.ELLIPSE wie Pos. 7
9. VIELECK (, X-, Y-Koord.), X-, Y-Radius, Grad, Eckenzahl (, Farbe)
10. A.V.GENAU, X-, Y-Genauigkeit
11. A.VIELECK wie Pos. 9
12. FORCE (keine Parameter)
13. AND (keine Parameter)
14. XOR (keine Parameter)
15. OR (keine Parameter)
16. INVERT (, Text-Window-Nr.)(, Maske)
17. FRAME (keine Parameter)

Teil 2: Fenster- und Kopier-Be-fehle

18. RGW (, Grafik-Window NR. (0-7))
19. ORIGIN, G.W.-Nr. (, X-, Y- Origin) (, linke, rechte, obere, untere Ecke des Fensters)
20. GWINDOW, G.W.-Nr.
21. CLG (, G.W.-Nr.) (, Farbstift- Nr.)
22. GPEN (, G.W.-Nr.), INK-Nummer (0-15)
23. GPAPER wie Pös. 22
24. WLAENGE, Fenstemummer (0-7), Adresse Integer Variable
25. WINDOW, Fenstemummer
26. W. SET, Fenstemr., untere Speicherstelle, Länge des benötigten Speicherbereiches
27. SCREEN, Bildschirmnummer (, Flag (1 oder 0) für Sicht- oder Unsichtbar)
28. SWAP.ON (keine Parameter)
29. SWAP.OFF (keine Parameter)
30. COPY (, X-, Y-Koordinate Ausgangsrechteck), Anzahl der Kopierpunkte in X-, Y-Richtung, X-,Y-Koordinate Zielrechteck
31. a) ZOOM, X-, Y-Faktor oder
b) ZOOM (, X-, Y-Faktor), X-, Y-Koordinate Ausgangsfeld, Kopierpunkte in X-, Y-Richtung, X-, Y-Koordinate Zielfeld
32. SWAP wie Pos. 30
33. SPIEGEL, X-Schalter EIN/AUS,Y- Schalter EIN (1) / AUS (0)
34. LASSO, Schalter EIN (1)/AUS (0) ( Färbe)
35. COPYSCR wie bei 'COPY' + Nummer des Ausgangsbildschirmes als letzten Parameter oder COPYSCR, Nummer des Ausgangsbildschirmes
36. ZOOMSCR wie bei 'ZOOM' + Nummer des Ausgangsbildschirmes
37. SWAPSCR wie bei 'SWAP' + Nummer des Ausgangsbildschirmes
38. TCOPY, Zeile-, Spalte- Ausgangsfeld, Zeile-, Spalte- Zielfeld, X-, Y-Ausdehnung in Zeichen
39. TSWAP wie bei Pos. 38
40. TSCOPY, Zeile-, Spalte- Ausgangsfeld, Zeile-, Spalte- Zielfeld, X-, Y-Ausdehnung, Nummer des Ausgangsbildschirms
41. SSWAP wie bei Pos. 40

Teil 3: Bildschirm-Steuerung

42. BM2 (keine Parameter)
43. BM1 (keine Parameter)
44. MODE, Farbtabellen-Nr., Mode
45. BORDER, Farbtabellen-Nr., 1. Farbe (, 2. Farbe)
46. INK, Farbtabellen-Nr., Stift- Nr.,1. Farbe (, 2. Farbe)
47. BEREICH, Bereich-Nr., Farbtabellen-Nr.
48. RI (keine Parameter)
49. RM (keine Parameter)
50. RB (keine Parameter)
51. SYNC (keine Parameter)
52. BON (keine Parameter)
53. RIN (keine Parameter)
54. DEL (keine Parameter)
55. GMODE, Mode

Teil 4: Textbefehle

56. INVERS (keine Parameter)
57. SCROLL.U, Fensternummer, Anzahl der zu scrollenden Reihen(, Farbe für die neuen Zeilen)
58. SCROLL.D wie bei Pos. 57
59. CROLL, Offset
60. CAPS, EIN (1) / AUS (0)
61. SHIFT wie bei Pos. 60
62. TRANSP., Schalter für EIN bzw. AUS
63. HOME (, Fenter-Nr.)
64. CURSOR (, Systemschalter), Anwenderschalter
65. BELL (keine Parameter)
66. WAITKEY (keine Parameter)
67. DIN (keine Parameter)
68. ASCH (keine Parameter)
69. TSPEED (keine Parameter)
70. SCHRIFT, X-, Y- Vergrößerungsfaktor
71. S.ON (keine Parameter)
72. T.OFF (keine Parameter)
73. Z.EDIT, Zeichen-Nr., Vergrösse-rung (,Adressen von 8 Integer-Va-riablen)
74. PRINT, Adresse Text-String
75. READ, Adresse Integer-Variable
76. READTXT, Adresse Text-String
77. CHGSTR, Adresse 1. String, Adresse 2.String
78. CHAR.ROT, Parameter
79. LIGHT (keine Parameter)
80. FETT (keine Parameter)
81. UNT. (keine Parameter)
82. NORMAL (keine Parameter)

Teil 5: ICON & 'SPRITE'-Befehle (Teil 1)

83. SP.MEMORY, oberste Speicherstelle, unterste Speicherstelle
84. SP.DEF, S-Nr., X-, Y-Ausmaße, Mode, Adresse Integer-Variable
85. SPRITE, S-Nr., X-, Y-Koordinate, weitere Parameter
86. SP.ON, S-Nummer, Adresse Integer-Variable
87. SP.OFF, S-NR., Adresse Integer Variable
88. SP.DELETE, S-Nr., Adresse Integer Variable
89. SP.PRIO, S-Nr., Priorität
90. SP. KOL, EIN/AUS
91. SP.GOTO, Zeilennummer (0-65535)
92. SP.GOSUB, Zeilennummer
93. SP. RETURN (keine Parameter)
94. SP. FLAG, Adresse einer Variablen
95. SP.LET, 1. S-Nr., 2. S-Nr., Adresse Integer Variable
96. SP.PUT, S-Nr., X-Position (0-max. 159/319/639), Y-Pösition (0-199) (, Darstellungs-Mode)
97. SP.GET, S-Nr.
98. SP.MOVE, S-Nr., X-, Y-Position (, D.-Mode)
99. SP.MOVER, S-Nr., X-, Y.Abstand (, D.-Mode)
100. SP.MOVER2, Nummer des zu entfernenden Sprite, Nummer des darzustellenden S., X-, Y-Offset (, D.-Mode)
101. SP.FRAME, EIN (1) / AUS (0)
102. SP.POS, S-NR., Adresse l.Variable, Adresse 2.Variable
103. SP.GET2, S-Nr., X-, Y-Position

Teil 6: ICON & 'SPRITE'-Befehle (Teil 2)

104. SP.I.ON (keine Parameter)
105. SP.I.OFF (keine Parameter)
106. SP.I.K.ON, Kanal-Nr. (0-7 oder > =256)
107. SP.I.K.OFF, Kanal-Nr. (0-7 oder >=256)
108. SP.I.FOLGE, Kanal-Nr. (0-7), bis zu acht Sprite Nummern
109. SP.I.ABLAUF, Kanal-Nr. (0-7),1.Zähler (Zahl der Durchläufe (1-255)), 2.Zähler (Zahl der Bewegungen pro Durchlauf (1-255)), X-, Y-Anfangsposition, 1. X-, YVerän-derung (, 2. X-, Y- Veränderung)
110. SP.I.KANAL, Kanal-Nr. (0-7), Adresse Integer Variable
111. SP.I.MODE, Kanal-Nr. (0-7), Darstellungsmode (0-4)
112. SP.I.PRIO, Kanal-Nr. (0-7), Priorität (0 oder 1)
113. SP.I.SYNC, Wert fürs Einblenden, Wert fürs Ausblenden
114. SP.EDIT, Sprite-Nummer, Vergrößerung
115. SP.SAVE (, 1. Sp.-Nummer) (, 2. Sp.-Nr.), Adresse des Namens
116. SP.LOAD (, Sp.-Nummer), Adresse des Namens, Adresse Zwischenspeicher (2048 Bytes lang)

Teil 7: Allgemeine Befehle

117. RAM, neue Konfiguration (0-7)
118. GETRAM, Adresse Integer-Variable
119. RAMFILL, Anfang (Speicheradresse), Länge (in Bytes), Wert (0-255)
120. RAMCLEAR, Anfang (Speicheradresse), Länge (in Bytes)
121. RESET (keine Parameter)
122. PEEK, Adresse (0-65536), RAM/ ROM-State (0-255), Adresse Integer- Variable
123. PEEK16, Adresse (0-65536) (, RAM/ ROM-State (0-255)), Adresse Integer-Variable
124. POKE16, Adresse (0-65536), 16-Bit-Wert (0-65536)
125. FIND, Anfang (Speicheradr.), Länge, Adresse String, Adresse Integer-Variable
126. CALL1, Adresse, RAM/ ROM-Sta-tus (, A, F, HL, DE, BC, IX)
127. CALL2, Adresse, RAM/ ROM-State, Adressen von 6 Integer-Varia-blen
128. CALL3, Adresse, RAM/ ROM-State, A, F, HL, DE, BC, IX, Adressen von 6 Integer-Variablen
129. CWRITE, Schreibgeschwindigkeit für Kassette (0, 1, oder 2)
130. DISPRO, EIN- (1) oder AUS (0)
131. DISK.M, EIN- (1) oder AUS (0)
132. DISK.ST, Laufwerksnummer (0 oder 1), Adresse Integer-Variable
133. DISK.P, Wartezeit (Standard: 50), Nachlaufzeit (250), Wartezeit für Spurwechsel (3087), Head Unload Time (1), Head Load Time (3)

K. Kremer, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1988
★ AUTHOR: Klaus Kremer

Page précédente : Profi-RSX 5
★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Profi  RSX-Teil  8    (CPC  Amstrad  International)    GERMANDATE: 2020-07-08
DL: 102 fois
TYPE: ZIP
SIZE: 13Ko
NOTE: 40 Cyls
.HFE: NON

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

Lien(s):
» Applications » RSX - Double Height (Your Computer)
» Applications » RSX Procedures (Computing With the Amstrad)
» Applications » Metallic-RSX (CPC Amstrad International)
» Applications » RSX - SCNSV and SCNLD
» Applications » Rsxinfo (CPC Magazin)
» Applications » Rsx - Hardcopyroutine Fur Den Prasident 6313 (CPC Amstrad International)
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 281 millisecondes et consultée 527 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.