Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

short-Werte für Farben

Hilfe beim Programmieren mit dem Prizm SDK.

Re: short-Werte für Farben

Beitragvon cfxm » Do 7. Apr 2011, 20:24

Etwas Ähnliches habe ich beim Laden von Hintergrundbildern bemerkt:
Da fehlt jede zweite Displayzeile, aber beim Drücken der [MENU]-Taste wird kurz das komplette Bild angezeigt.
cfxm
 
Beiträge: 739
Registriert: Mi 1. Apr 2009, 19:39

Re: short-Werte für Farben

Beitragvon SimonLothar » Sa 9. Apr 2011, 12:34

Paul94 hat geschrieben:Ich will einen Grauton...
Wenn man bei Programmstart als erstes syscall 0x0921 (int ...(int)) mit dem Parameter 1 aufruft, dann wird's grau.
SimonLothar
 
Beiträge: 228
Registriert: Mi 27. Mai 2009, 10:51
Taschenrechner: fx-9860G, fx-9860G slim, fx-9860G SD, fx-9860GII SD, fx-9750GII, fx-7400GII, fx-CG20, fx-9860GII-2 SD, fx-9750GII-2, fx-7400GII-2, fx-CP330+, fx-CP400

Re: short-Werte für Farben

Beitragvon Paul94 » So 10. Apr 2011, 18:34

Kannst du mir mal eine Codezeile geben? Ich bin beim Prizm noch nicht so weit, dass ich wüsste, wie ich einen bestimmten Syscall hinzufügen kann. Was muss ich "Full Setup" ändern?

Paul
Paul94
 
Beiträge: 219
Registriert: Do 14. Mai 2009, 06:50
Taschenrechner: FX-9860G (OS 2.00.0200)
FX-CG 20

Re: short-Werte für Farben

Beitragvon SimonLothar » Mo 11. Apr 2011, 09:06

Paul94 hat geschrieben:Kannst du mir mal eine Codezeile geben? Ich bin beim Prizm noch nicht so weit, dass ich wüsste, wie ich einen bestimmten Syscall hinzufügen kann. Was muss ich "Full Setup" ändern?Paul

Tab "Syscall library"
Cursor am besten in den Bereich der Sycall Definitionen positionieren (am besten der Sortierung nach Nummer entsprechend)
Einfg betätigen (es müsste ein leerer Eintrag eingefügt werden)
In der Spalte "Key" den Wert 0921 eintragen.
In der Spalte "Value" den Text "void EnableColor( int );$(SYSTEM_SC)" eintragen (ohne die Anführungszeichen).
Einstellungen mit Button "Save" sichern.
In G3A_main musst Du dann ganz am Anfang den Funktionsausruf
EnableColor( 1 );
positionieren.
Ggf. musst Du vor dem nächsten Build einmalig den Schalter "Make all" aktivieren (die Abhängigkeitssteuerung für die libraries ist in Version 1.04 noch nicht optimal).
SimonLothar
 
Beiträge: 228
Registriert: Mi 27. Mai 2009, 10:51
Taschenrechner: fx-9860G, fx-9860G slim, fx-9860G SD, fx-9860GII SD, fx-9750GII, fx-7400GII, fx-CG20, fx-9860GII-2 SD, fx-9750GII-2, fx-7400GII-2, fx-CP330+, fx-CP400

Re: short-Werte für Farben

Beitragvon Paul94 » Mo 11. Apr 2011, 13:15

Danke schön! Funktioniert, jetzt kriege ich endlich mal was Graues :D
Paul94
 
Beiträge: 219
Registriert: Do 14. Mai 2009, 06:50
Taschenrechner: FX-9860G (OS 2.00.0200)
FX-CG 20

Re: short-Werte für Farben

Beitragvon SimonLothar » So 24. Apr 2011, 14:32

Paul94 hat geschrieben:Gibt es eigentlich einen Syscall der Linien malt, sodass ich auf die Schleifen verzichten kann?

Die universellste zzt. verfügbare Funktion ist:

syscall 0x01C7 :
void Bdisp_ShapeBase( unsigned char work[28], TShape*shape, unsigned short color, int line_width, int P5, int P6 );
work[0]: bit 0 gesetzt: nach VRAM schreiben
work[0]: bit 1 gesetzt: direkt ins Display schreiben
P5 == 0, P6 == 0.
(kann aber nicht in den Bereich der Statuszeile zeichnen)

Ansonsten gilt die Parametrierung wie im fx9860-System (alter Syscall 0x02F, s. u.).
TShape.on_bits und .off_bits haben im fxCG-System wohl keine Funktion mehr.
Der shape-typ "dashed line" scheint also nicht mehr unterstützt zu werden.

Auszug aus der aktuellen "fx_calculators_SuperH_based.chm":

Code: Alles auswählen
0x02F: void Bdisp_ShapeToVRAM( p*TShape );

The function draws a dot, a line, a dashed line, a box or a circle to VRAM.

typedef struct{
    unsigned int x1;
    unsigned int y1;
    unsigned int x2;
    unsigned int y2;
    unsigned char f[4];
    unsigned int on_bits;
    unsigned int off_bits;
} TShape;

x1, y1, x2, y2 define the shapes coordinates; details depend on the type of shape, see below.

on_bits/off_bits control the pattern of the dashed line types 3 and 4, see below.

f[0]: always 2;
f[1]: type of shape
1: dot at (x1;y1)
2: solid line from (x1;y1) to (x2;y2)
3: dashed line (starting with on_bits) from (x1;y1) to (x2;y2)
4: dashed line (starting with off_bits) from (x1;y1) to (x2;y2)
5: box from (x1;y1) to (x2;y2)
6: circle at (x1;y1) with radius x2
f[2] and f[3] control the draw mode (set, clear, invert)
f[2]=1;f[3]=1: set
f[2]=1;f[3]=4: invert
f[2]=2;f[3]=1: clear
f[2]=3 disables every second bit of the display, giving a dimmed appearance of any drawn shape.
f[2]=3;f[3]=1: invert; normal bit disabling, t. i. bit (0;0) is enabled
f[2]=3;f[3]=2: set; normal bit disabling, t. i. bit (0;0) is enabled
f[2]=3;f[3]=3: clear; normal bit disabling, t. i. bit (0;0) is enabled
f[2]=3;f[3]=4: invert; reverse bit disabling, t. i. bit (0;0) is disabled


Beispiel:
Code: Alles auswählen
unsigned char work[ 28 ];
TShape shape;
         shape.x1 = 150;
         shape.y1 = 100;
         shape.x2 = 50;
         shape.y2 = 0;
         shape.f[0] = 2;   // 2
         shape.f[1] = 6;   // circle
         shape.f[2] = 1;   // 1
         shape.f[3] = 1;   // 1
         memset( work, 0, sizeof( work ) );
         work[0] = 1;
         Bdisp_ShapeBase( work, &shape, 0xF800, 5, 0, 0 );
SimonLothar
 
Beiträge: 228
Registriert: Mi 27. Mai 2009, 10:51
Taschenrechner: fx-9860G, fx-9860G slim, fx-9860G SD, fx-9860GII SD, fx-9750GII, fx-7400GII, fx-CG20, fx-9860GII-2 SD, fx-9750GII-2, fx-7400GII-2, fx-CP330+, fx-CP400

Vorherige

Zurück zu Prizm SDK (Alle fx-CG Modelle)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast