Arexx-Schnittstelle: Die Arexx Schnittstelle bietet wie gewohnt einen Menüscreen, einen Farbscreen und den Malscreen. Der Malscreen ist bei Programmstart immer im Lomem-Modus. In der oberen Zeile des Menüscreens befindet sich ein Texteingabefeld. Auf der rechten Seite die Schalter >Hilfe< und >Exit<. Klicken Sie auf >Exit<, dann wird das Hauptprogramm unter Umschalten auf Lomem wieder gestartet. Rechts unten die Anzeige des Fehlerstatus, der auch an Arexx gemeldet wird. Die Addresse des Arexx-Ports lautet : Malmal_1 Bitte beachten Sie die beiliegenden Arexx-Scripts in der Arexxbeispiele-Schublade. Kopieren Sie diese Beispiele in die Rexx:-Schublade und starten Sie sie dann per Aufruf vom Cli. (z.B: Shell:> rx malmaltest1) Es ist auch eine direkte Befehlseingabe in die Dialogbox am Menüscreen möglich. Ein Befehl an die Schnittstelle besteht aus : - 3 Buchstaben zur Befehlsidentifikation - falls Parameter folgen genau eine Leerstelle, dann die Parameter jeweils durch genau eine Leerstelle voneinander getrennt. - fehlende Parameter werden als Null oder Leerstring interpretiert. - Groß- und Kleinschreibung wird nicht unterschieden. Ein typischer Befehl hat z.B. das Format : >dra 1 5 90 70< : zeichne Linie von Punkt1(1,5) zu Punkt2(90,70). >dra 100 11< : zeichne Linie von Punkt1(100,11) zu Punkt2(0,0) Fehler: Treten Fehler auf, dann wird das an Arexx gemeldet. Fehlerstatus 5 > möglicher Fehler, z.B. wenn im Lomem-Modus gedehnt wird. Fehlerstatus 7 > Befehl unbekannt, z.B. bei Tippfehlern. Fehlerstatus 10 > Fehler z.B. wenn ein Füllen (Pai) scheitert. Fehlerstatus 20 > Schwerer Fehler, z.B. wenn beim Öffnen eines neuen Bildes ein >Out of memory< autritt. Bei Fehlerstatus 20 müssen Sie zu Malmal schalten und die Fehlermeldung entgegen- nehmen. Treten keine Fehler auf, dann wird eine Null an Arexx zurückgegeben. Manche Befehle geben keine Fehlermeldung zurück, auch wenn die Parameter unsinnig sind. (z.B "dra" wird interpretiert als : Zeichne Linie von Punkt1(0,0) zu Punkt2(0,0)). Befehle: Alle Befehle liefern normalerweise Fehlerstatus 10 beim Scheitern, Ausnahmen sind im folgenden vermerkt. a,Zeichenbefehle: - Dra x1 y1 x2 y2 : Linie von x1,y1 zu x2,y2. - Box x1 y1 x2 y2 : Leeres Rechteck von x1,y1 zu x2,y2. - Bar x1 y1 x2 y2 : Gefülltes Rechteck von x1,y1 zu x2,y2. - Cls x : Bild löschen mit der Farbe x. - Plo x y : Punkt x,y. - Cil x y r : Kreis leer mit Mittelpunkt x,y und Radius r. - Cig x y r : Kreis gefüllt. - Ell x y r1 r2 : Ellipse leer mit Mittelpunkt x,y, x-Radius r1, y-Radius r2. - Elg x y r1 r2 : Ellipse gefüllt. - Spl x1 y1 x2 y2 x3 y3 n : Es wird eine Spline (Kurve) gezeichnet mit den Endpunkten (x1,y1) und (x2,y2) und der fiktiven Mausposition (x3,y3). N gibt die Anzahl der Zeichenschritte an und muß größer 0 sein. Wird n weggelassen, dann wird als Default n=15 verwendet. - Pol n e x1 y1... : Polygon : n=0 > leer; n=1 > gefüllt; e=Anzahl der Ecken, minimal 3 Ecken, maximal 10 Ecken; x1,y1 bis xe,ye Eckenkoordinaten. - Tex x y text$ : Text text$ am Punkt x,y - Pai x y : Füllen am Punkt x,y - Spr x y b h a m : Spray am Punkt x,y; Breite b; Höhe h; Anzahl der Punkte a; Maske m m=0 > normales Spray m=1 > Spray auf alle Punkte der Hintergrundfarbe m=2 > Spray auf alle Punkte außer denen der Hinter- grundfarbe. - Geb n x1 y1 x2 y2 : Bob ausschneiden von x1,y1 zu x2,y2 und Speichern in der Bob-Bank unter der Nummer n, für die alle positiven werte gültig sind. - Pub n x1 y1 s : Bob Nummer n an der Position x1,y1 fixieren. s=Spiegelbild. (s=0 ist Default). S kann Werte von 0 bis 3 annehmen. Siehe Werkzeug >Schnitt< im Hauptprogramm. - Dbb n : Bob mit der Nummer n zerstören. - Dba : Komplette Bob-Bank zerstören. Die beiden letzten Befehle liefern keine Fehlercodes, auch wenn der jeweilige Bob oder die Bank nicht existieren. b,Einstellungen: - Him : Umschalten auf Himem. - Lom : Umschalten auf Lomem. - Und : Undo nur im Himem-Modus. - Ink v h : Einstellen von Vordergrundfarbe v und Hintergrundfarbe h. - Sep x : Einstellen des Musters von 34 bis -1000 Bei negativen Werten wird versucht, das ent- sprechende Bild aus der Bob-Bank zu verwenden. Achtung: Das eingestellte Muster wird nicht nur zum Füllen (Pai), sondern auch für gefüllte Rechtecke (Bar) und Polygone (Pol) verwendet. Durchgehendes Füllen > Sep 0. - Sli x : Einstellen des Linienstils von x=0 bis x=8. X=0 > Durchgehende Linien. Achtung: Der eingestellte Stil wird für alle Linienoperationen verwendet. (Pol,Box,Dra) - Grw x : Einstellen des Amiga-Grafikmodus. x=0 > Jam 1 : Grw %0 x=1 > Jam 2 : Grw %1 x=2 > Xor : Grw %10 x=3 > Invers : Grw %100 x=4 > Xor + Invers : Grw %110 Achtung : Der jeweilige Modus wird für alle künftigen Operationen verwendet. - Sch Schrift$ : Einstellen des für Tex zu benutzenden Fonts. Geben Sie den Namen des Fonts sowie dessen Größe durch eine Leerstelle getrennt an. Groß- und Klein- schreibung sind dabei nicht relevant. Wollen Sie z.B. den Font >Peridot.font 7< einstellen, dann lautet der Befehl : >Sch peridot 7< - Tst x : Einstellen des Textstils. Mögliche Werte sind x=0 bis x=7. Siehe Werkzeug >Text< des Hauptprogrammes. c,Effekte / Schirmoperationen: - New b h f r l : Öffnen eines neuen Malscreens Breite b (16 bis 1008 in 16-Pixel-Schritten) Höhe h (2 bis 1022) Farben f (2,4,8,16 in Hires, sonst auch 32,64) Auflösung r (0=Hires, 1=Lores) Laced l (0=Normal, 1=Laced) - Kon x1 y1 x2 y2 b h f r l : Konvertieren von x1,y1 zu x2,y2 auf einen Schirm mit Breite b, Höhe h, Farben f, Auflösung r, Laced l (siehe New). - Red : Farbreduktion auf die Hälfte der Farben, was eine Weile dauern kann. - Zom x1 y1 x2 y2 x3 y3 x4 y4 : Dehnen des Bildbereiches von x1,y1 zu x2,y2 auf den Bildbereich x3,y3 zu x4,y4. Im Lomem-Modus ist Dehnen zwar möglich, aber riskant. Es wird dann der Fehlerstatus 5 zurückgegeben. - Sps x1 y1 x2 y2 : Spiegeln an der Senkrechten des Bereiches x1,y1 zu x2,y2. Im Lomem-Modus ist Spiegeln nicht möglich. Es wird dann ein Fehler von 10 zurückgegeben. - Spw x1 y1 x2 y2 : Spiegeln waagrecht. S.o. - Aus x1 y1 x2 y2 i f : Aufweichen senkrecht von x1,y1 zu x2,y2 mit der Intensität i. Für i sind alle positiven Werte zulässig. F gibt an, welche Funktion dazu verwendet wird: f=0 => Zufall; f=1 => Sinus; f=2 => Tangens; - Auw x1 y1 x2 y2 i f: Aufweichen waagrecht. S.o. - Faw x1 y1 x2 y2 m : Farbwechsel von x1,y1 zu x2,y2 mit Maske m. m=0 > alle Punkte der Malfarbe werden durch solche der Hintergrundfarbe ersetzt. m=1 > alle Punkte ungleich der Malfarbe werden durch solche der Hintergrundfarbe ersetzt. - Sco x1 y1 x2 y2 x3 y3 m : eine Befehl ohne Entsprechung im Malmal- Hauptprogramm. Der Bereich des Bildes von x1,y1 zu x2,y2 wird an den Bereich mit Anfangspunkt x3,y3 kopiert. Der Befehl Sco 1 10 2 20 100 100 liefert das gleiche Ergebniss wie Zom 1 10 2 20 100 100 101 110. Es wird mittels Blitter kopiert. Der Parameter m ist für die Einstellung des Blittermodus zuständig. Lassen Sie den Parameter weg, wenn Sie nicht wissen, was Sie tun. m stellt ein Byte dar, dessen untere 4 Bit nicht gesetzt werden dürfen (!!!). z.B. m=%11000000 > Replace (Default) m=%00110000 > Invert (der Zielbereich wird mit inverser Kopie des Ausgangsbereiches belegt.) m=%10000000 > And (Kombination von Zielbereich mit Ausgangsbereich mittels AND) m=%11100000 > Or (Komination mittels OR) m=%01100000 > Xor (Komination mittels XOR) d,Palette: - Col x a : Farbe Nummer x auf den Wert a bringen. Zulässig für a sind auch Zahlen im Hex-Format (z.B. Col 3,$fff) Bei illegalen Parametern wird Fehler 10 zurückgegeben. - Def : Alle Farbwerte werden auf die Defaultstellung gesetzt. - Res : Alle Farbwerte werden auf den wert seit dem letzten Speichern (Spe) gesetzt. - Gbp : Bob-Palette wird übernommen. - Opa : Originalpalette (wie Res) - Spe : Alle Farbwerte werden gespeichert. - Tau : Die Farbwerte von Vordergrundfarbe und Hintergrundfarbe werden getauscht. Alle folgenden Palettefunktionen sind auf die Farben zwischen der aktuellen Malfarbe und der Hintergrundfarbe beschränkt. - Rot : Umwandlung in Rot-Werte. - Bla : in Blau-Werte. - Gru : in Grün-Werte. - Rog : in Rot-grün-Werte. - Rob : in Rot-blau-Werte. - Blg : In Blau-grün-Werte. - Gra : In Grau-Werte. - Hel : Heller. - Dun : Dunkler. - Shu : Shift up. - Shd : Shift down. - Neg : Bildnegativ. - Ro+ : Erhöhung des Rotanteils - Ro- : Erniedrigung des Rotanteils - Gr+ : Grünanteil - Gr- - Bl+ : Blauanteil - Bl- - Ge+ : Gelbanteil - Ge- - Li+ : Lilaanteil - Li- - Tu+ : Turkisanteil - Tu- e, Diskettenoperationen: Groß- und Kleinschreibung nicht relevant ! - Lif name$ : Iff-laden. Beispiel: Lif DH0:Bilder/Katze.iff - Sif name$ : Iff-speichern. - Lab name$ : Pic-Pac laden. - Sab name$ : Pic-Pac speichern. - Lbb name$ : Bob- oder Icon-Bank laden. - Sbb name$ : Bob-Bank speichern. - Sib name$ : Icon-Bank speichern. - Del file$ : File zerstören. - Mkd file$ : Verzeichniss anlegen. - Ren file1$ file2$ : Umbenennen von file1$ auf den Namen file2$ - Ass von$ zu$ : Assign von$ as zu$ - Lpa file$ : Die Palette File$ wird in den Malscreen übernommen. - Spa file$ : Die Palette des Malscreens wird als file$ gespeichert. f, Variablen/Mathematische Funktionen Malmal bietet 8 interne Variablen und diverse mathematische Funktionen, die in Arexx serienmäßig nicht enthalten sind. Die Variablen tragen die Namen va0,va1,va2,va3,va4,va5,va6,va7. Die Variablen speichern Zahlenwerte, keine Strings. Beim Start tragen die Variablen den Wert 0. Wollen Sie eine Variable auf einen Wert setzten,lautet das Kommando z.B. va0 100 => setze die Variable va0 auf den Wert 100. Wollen Sie die Variablen in Zeichenbefehle einsetzten, dann geht das z.B. so: dra 100 va0 va3 67 => zeichne Linie von Punkt1(100,va0) zu Punkt2(va3,67). Hat die Variable va0 z.B. den Wert 1.89, dann wird sie beim Beispiel oben als 1 verwendet, d.h. es wird gekürzt. Mathematische Funktionen: Ein Kommando hat z.B. folgendes Format: va2 sqr 9 => Setze die Variable va2 auf den Wert der Quadratwurzel von 9. >> va2 erhält den Wert 3. va2 teil va2 => Setze va2 auf den Wert der Division von va2 durch va2 >> va2 erhält den Wert 1. va2 mal 9 => Setze va2 auf den Wert von neunmal va2. Zeichenbefehle wie >dra 10 10 20 va2 sqr 9< sind unzulässig. Es werden stattdessen 2 Kommandos benötigt : va2 sqr 9 dra 10 10 20 va2 Klar ? - add : Addition (z.B. va0 add 39.3 => va0=va0+39.3). - dec : Subtraktion. (va0 dec 1 => va0=va0-1) - mal : Multiplikation. (va0 mal -2 =>va0=va0*(-2)) - teil : Division. (va0 teil 3 => va0=va0/3) - sqr : Quadratwurzel. - abs : Absolutwert (va2 abs -11 => va2 erhält den Wert 11). - rnd : Zufallswert (va3 rnd 21 => va3 erhält einen Wert zwischen 0 und 21). - exp : Exponentialfunktion (va1 exp 1 => va1 erhält den Wert 2.718... = e ) - ln : natürlicher Logarithmus. (va0 ln 2 => va0=ln(2)) - log : Logarithmus zur Basis 10. (va0 log 2 => va0=log(2)) - mod : Modulodivision. (va0 mod 10 => va0=va0 mod 10) - deg : Degree Verwendung : va0 deg => alle Variablen werden bei trigonometrischen Funktionen als Winkelgrade angesehen. - rad : Radian Verwendung : va0 rad => alle Variablen werden als Radians angesehen (Default). - pi : z.B. va0 pi => Variable va0 erhält den Wert pi (3.14..). - sin : Sinus ( va3 sin 90 => Bei Einstellung Degree erhält va3 den Wert 1, bei Radian 0.83...) - cos : Cosinus - tan : Tangens - asin : Arcussinus - acos : Arcuscosinus - atan : Arcustangens - hsin : Hyperbolicsinus - hcos : Hyperbolicosinus - htan : Hyperbolictangens g, Sonderfunktionen: - Esc 0 : Der Menüscreen wird gezeigt. - Esc 1 : Der Menüscreen wird verborgen. Diese Funktion wird aufgehoben, wenn ein neuer Mal- screen geöffnet wird. - Wai x : Warteschleife in Vertical-Blanks. Der Parameter X muß größer als Null sein, sonst wird Fehlerstatus 10 zu- rückgegeben. Z.B. >Wai 50< => eine Sekunde warten. - Wmk : Warten auf Maustaste. Die Malmaloberfläche muß dabei am Monitor angezeigt werden. - Mox : X-Mausposition bzgl. Malscreen. - Moy : Y-Mausposition bzgl. Malscreen. z.B. >dra mox moy 100 100< => Zeichne Linie von der aktuellen Mausposition zum Punkt 100/100. oder >va0 mox< => Setze va0 auf den Wert der X-Mausposition. - Int file$ : Interpretiert die AscII-Datei file$ als eine Folge von Malmalkommandos. Zeilen mit einem Leerzeichen am Zeilenbeginn werden überlesen. Während einer solchen Interpretation werden alle weiteren Int-Befehle (noch) nicht akzeptiert. Existiert die Datei nicht, wird Fehlerstatus 10 zu- rückgegeben. Klicken Sie auf ein Gadget, wird die Interpretation abgebrochen. - Off : Dieses Kommando setzt die automatische Screenkontrolle außer Kraft. Scrolling per Mauszeiger ist nicht mehr möglich. Sobald ein neuer Screen geöffnet wird, Konvertiert oder Farbreduziert wird, auf Low- oder Himem umgeschaltet wird, wird die Screenkontrolle wieder von Malmal übernommen. - Onn : Schaltet die Screenkontrolle wieder an. - Sof x y : Damit kann man den Screenoffset selbst bestimmen, nachdem die Screenkontrolle abgestellt wurde. Default ist sof 0 0. Wollen Sie das Bild z.B. nach links scrollen, erhöhen Sie den x-Wert. - Sdi x y a b : Damit kann man das Screedisplay selbst bestimmen. Default ist Sdi 130 50 320 256/513 (Normal/laced). Wollen Sie ein Bild nach oben scrollen, dann erhöhen Sie den y-Wert. Die a und b-Werte bestimmen, wieviele Pixel des Bildes tatsächlich am Monitor dargestellt werden.