Bonjour,
JE voudrais savoir comment on fait pour utiliser les fonctions d'une librairie écrite en assembleur dans mes programmes en C.
calculator (./3) :
Pour le header les fonctions doivent bien etre déclarées ainsi: malib::ma_fonction equ malib@xxxx ?
genlib::init_screen EQU genlib@0049 genlib::init_dscreen EQU genlib@0002
#undef gl_init_screen #define gl_init_screen(scr,hd) \ asm("jsr genlib__0049; move.l %%a0,(%0); move.w %%d0,(%1)" :: "a" (scr), "a" (hd) : "d0", "d1", "d2", "a0", "a1") #undef gl_init_dscreen #define gl_init_dscreen(dscr,hd) \ asm(" jsr genlib__0002; move.l %%a0,(%0); move.w %%d0,(%1)" :: "a" (dscr), "a" (hd) : "d0", "d1", "d2", "a0", "a1")
genlib::init_plane EQU genlib@0006
#define gl_init_plane genlib__0006 PLANE *gl_init_plane(unsigned char map[] A3, SPRITE_16 tile[] A4, short sizeX D3);
#define D0 asm("d0") #define D1 asm("d1") #define D2 asm("d2") #define D3 asm("d3") #define D4 asm("d4") #define D5 asm("d5") #define D6 asm("d6") #define D7 asm("d7") #define A0 asm("a0") #define A1 asm("a1") #define A2 asm("a2") #define A3 asm("a3") #define A4 asm("a4")
section ".data" xdef _nostub include "OS.H" xdef i2clib@0000 xdef i2clib@0001 xdef i2clib@0002 xdef i2clib@0003 xdef i2clib@0004 xdef i2clib@0005
#define start() asm("jsr i2clib__0000") #define stop() asm("jsr i2clib__0001")
calculator (./11) :
Mais ce que je comprends c'est que si j'utilise une librairie statique je ne devrai pas avoir besoin d'un Kernel??
PpHd (./15) :
Bug du linkeur qui voit une exportation externe là où elle est résolue. Faut passer en kernel donc. (Projet mode KERNEL).