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

Revolution Fx 1.0 mit OS 2.0 kompatibel machen

Hilfe beim Programmieren mit dem fx-9860G SDK.

Revolution Fx 1.0 mit OS 2.0 kompatibel machen

Beitragvon Jimboom » Sa 6. Feb 2010, 13:51

Viele kennen sicherlich das Problem:
Sie zeichnen ihre Grafiken mit Revolution Fx. Diese Datei ist ja an sich ganz gut, es gibt aber ein Problem:
Es benutzt für die Angabe der VRAM eine statische Variable. Bis OS 1.05 funktioniert dies auch, doch unter OS 2.0 wird die VRAM jedes mal neu festgelegt.

Darum müssen wir im Quelltext von revolution.h etwas ändern:
Ziemlich am Anfang steht die Zeile #define VRAM (unsigned char*)0x8800498D
Man kann sie entweder löschen oder auskommentieren( //#define VRAM (unsigned char*)0x8800498D )

An die Stelle kommen nun folgende Zeilen:
Code: Alles auswählen
int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070};
int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;
#define VRAM (unsigned char*)(*SysCall)( 0, 0, 0, 0, 0x0135 )

Sie lesen über einen Syscall die Adresse der VRAM aus und weisen sie dann VRAM zu.

Jetzt kann man unter jedem OS alle Funktionen der Revolution (z.B. DrawSprite, CoolText,...) und gleichzeitig auch die normalen Bdisp Funktionen nutzen.
Um den Bildschirm zu "leeren" kann man einfach Bdisp_AllClr_DDVRAM(); schreiben.

Weitere Fragen kann ich hier jederzeit beantworten.
Jimboom
 
Beiträge: 2
Registriert: So 31. Jan 2010, 21:03
Taschenrechner: fx 9860 GII SD
fx 9750G PLUS

Zurück zu fx-9860G SDK (Alle fx-9860G Modelle)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron