Programmierung » ClassPad 300 » Basic » Portieren vom CFX 9850
Portieren vom CFX 9850
Wenn man ein Programm vom CFX 9850 o.ä. auf dem ClassPad laufen lassen will, hat man
im Prinzip 2 Möglichkeiten: Einen Interpreter für den ClassPad schreiben und das Programm
vom Interpreter ausführen oder das Programm für den ClassPad zu portieren. Diese Seite
beschränkt sich auf letzteres.
Das Dokument ist noch nicht vollständig.
ViewWindow-Einstellungen
Auf dem CFX ist es möglich die Minimale Y größer als die Maximale einzustellen. Dies dann sinnvoll, wenn man Linien, Text usw. verwenden wollte und nicht jedes mal die Koordinaten umrechnen wollte:
ViewWindow 0,126,0,62,0,0
Das geht auf dem ClassPad nicht mehr. Für ein kleines Grafik-Fenster wird das in folgendes geändert:
ViewWindow 1,155,1,-77,-1,1
Dann muss man zwar negative Y-Koordinaten für Line, Circle, Plot usw. (ausser Text) angeben, das ist immer noch besser wie für jede Grafik-Funktion ein Pixel-Gegenstück zu schreiben. Die obere linke Ecke ist dann (1,-1). (Y negativ!)
Eingaben: ?
Auf dem CFX schrieb man ?
Variable. Das geht recht einfach zu portieren. Aus folgendem:
?A
Wird dann folgendes:
Local A InputStr A strToExp(A)Das Local A sollte am Anfang des Programms stehen und bewirkt nur, daß die Variable A temporär erstellt wird.A
Grafische Text-Ausgabe
Die Text-Funktion gibt es zwar noch, doch die Argumente sind nun richtig herum. Statt y,x,zeichenkette schreibt
man nun x,y,zeichenkette. Was noch zu beachten wäre, ist daß die Schrift 9 Pixel (8 Pixel für Zeichen + 1 Freiraum)
hoch ist. Zu beachten gibt es noch, das der Classpad eine "Frei-Pixel-Zeile" über ein Zeichen zeichnet.
Text 1,1,"A" beginnt am oberesten Pixel zu zeichen. Doch dieser ist immer leer.
Text 1,1,"Zeile 1" Text 7,1,"Zeile 2"
Wird zu
Text 1,1,"Zeile 1" Text 1,10,"Zeile 2"
Disp-Ausgabe und "Ausdruck"
Diese Ausgabe wird nun mit dem Print-Befehl realisiert. Dieser stoppt nicht nach jeder Zeile also muß manuell eine GetKey-Schleife (am Ende einer Seite) eingefügt werden.
Vielleicht so etwas:
Local sx,sy,sz 'Ausgabe StrJoin "x=",var1,sx Print sx StrJoin "y=",var2,sy Print sy StrJoin "z=",var3,sz Print sz 'Auf EXE warten Print "- EXE! -" Local gk 0gk While gk
13 GetKey gk WhileEnd
GetKey
Das ist offensichtlich: Der ClassPad hat nur 34 Tasten, der CFX eine ganze Menge mehr. Da muß man nun sehen, daß man die Funktionen, die man erst auf den Tasten irgendwie anders unterbringt (z.B. mit Buttons). Auch sind die Tastencodes auf dem ClassPad andere: [EXE] ist nun 13 und nicht mehr 31.
A
13
GetKey gk
WhileEnd