Seite 1 von 2

Syscall für Grafikfunktionen

BeitragVerfasst: Fr 12. Nov 2010, 18:08
von Paul94
Hi!

Gibt es Syscalls, um die CASIO-Grafikfunktionen zu ersetzen?

Paul

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Fr 12. Nov 2010, 22:34
von SimonLothar

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 09:10
von Paul94
Ich suche nach keinen bestimmten Funktionen. Kannst du mir einen kleinen Überblick über die Bereiche, für die es Grafik-Syscalls gibt, nennen? Ich möchte mir eine kleine Grafik-Bibliothek erstellen und gehe davon aus, dass ich mit Syacalls evtl. bessere Laufzeiten und kleinere Programme bekomme.

Gibt es eigentlich neben dem Dokument fx-reverse, dass duu mir schon mal gegeben hast noch andere Auflistungen von Syscalls, oder woher nimmst du dein Wissen über die vielen Syscalls?

Paul

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 10:53
von cfxm
Tja, Simon bezeichnet einige Syscalls halt gerne mal als "zu gefährlich", daher verschleiert er hin und wieder ein bisschen und gibt nur so viele Infos wie absolut nötig. Von der Strategie bin ich nicht wirklich begeistert, dann kann man sich auch gleich bei Casio für eine Stelle bewerben...

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 11:02
von Paul94
Vielleicht ein paar "ungefährliche" Informationen? Ich trau mich an die mit Risiko verbundenen eh nicht ran...

Paul

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 11:33
von SimonLothar

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 12:04
von Paul94
Ok, vielen Dank!

Wie kann ich den die fxlib.h ersetzten? Muss ich sie noch per #include einfügen, oder brauche ich die nicht mehr? Und was mache ich mit den Konstanten, die in keybios.h definiert sind?

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 16:08
von SimonLothar
fxlib.h, keybios.h und ggf. weitere wie z. B. stdlib.h musst Du weiterhin includen.
Die Interfaces, Types und Konstanten brauchst Du ja unabhängig von der konkreten Implementation.

Wenn Du aber eine gleichnamige Funktion in einem Modul des Projekts implementierst, dann benutzt der Linker diese Implementation.

Z. B. atoi:
wenn Du nichts weiter machst, bezieht der Linker atoi aus der SDK-library (header: stdlib.h).

Alternativ kannst Du aber auch in einem Assembler-Modul
SYSCALL 015F, _atoi
deklarieren.
Der Linker verwendet dann diese SysCall-Variante. Das spart bereits 1 k Code.

In der debug-Datei FXADDINror.map kannst Du die Resultate nachvollziehen bzw. nachsehen,
welche der SDK-Funktionen viel Platz verbrauchen und ggf. optimiert werden können.

Es bringt nicht immer was, auf SysCalls umzustellen, da die SDK-Library selbst z. T. bereits SysCalls benutzt.
Die in stdlib.h und stdio.h deklarierten Funktionen sind aber oft gute Kandidaten.

Manchmal kann man eine der Library-Funktionen nicht mit einem einzelnen SysCall abbilden.

Z. B. sprintf:
diese und die anderen Formatierungsfunktionen (stdio.h) sind zwar sehr komfortabel, verursachen eine ziemlich große Codezunahme.
Wenn man nur Ganzzahlen formatieren muss, dann reicht vielleicht
SYSCALL 0160, _itoa
aus.
Das Interface von itoa ist: int itoa( int value, unsigned char*result, int digits );
Ggf. hilft hier noch
SYSCALL 0AD4, _strcat

Ich hör jetzt erst einmal auf, damit Du das alles verdauen kannst.

Re: Syscall für Grafikfunktionen

BeitragVerfasst: Sa 13. Nov 2010, 18:52
von Paul94
Hast du denn eine Liste zur Hand, die die komplette fxlib.h ersetzt?

Re: Syscall für Grafikfunktionen

BeitragVerfasst: So 14. Nov 2010, 07:57
von SimonLothar