Tout depend ce que l'on veut faire...
Xlib est open source.. faut en profiter
#define XGPlanc(y) ({ asm volatile ("move.l %0,%%a0;bsr GPlan":: "a" (y): "a0");})
#define XBWPlanc(y) ({ asm volatile ("move.l %0,%%d0;bsr BWPlan":: "d" (y): "d0");})
#define XClrGPlan() asm volatile ("pea (%a0);bsr ClrGPlan;move.l (%a7)+,%a0")
#define XClrLPlan() asm volatile ("pea (%a0);bsr ClrLPlan;move.l (%a7)+,%a0")
#define XClrDPlan() asm volatile ("pea (%a0);bsr ClrDPlan;move.l (%a7)+,%a0")
#define XCpyGPlanToLCD() asm volatile ("pea (%a0);bsr CpyGPlan;move.l (%a7)+,%a0")
#define XCpyDPlanToLCD() asm volatile ("pea (%a0);bsr CpyLPlan;move.l (%a7)+,%a0")
#define XCpyLPlanToLCD() asm volatile ("pea (%a0);bsr CpyDPlan;move.l (%a7)+,%a0")
ou alors:
void XGPlanc(register void *GPlan asm("a0"));
void XBWPlanc(register int x asm("d0"));
void XClrGPlan();
void XClrLPlan();
void XClrDPlan();
void XCpyGPlanToLCD();
void XCpyGPlanToInvLCD();
void XCpyDPlanToLCD();
void XCpyDPlanToLLCD();
void XCpyLPlanToLCD();
void XCpyLPlanToDLCD();
/////////////////////////////////////////////////////////////////////////////////
asm("
virtual_pc:
dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
XGPlanc:
move.l %a0,CGplan
rts
XBWPlanc:
tst.w %d0
beq XLPlan
move.w #3840,CBWplan
rts
XLPlan:
move.w #0,CBWplan
rts
XClrGPlan:
move.l CGplan,%a0
lea 7680(%a0),%a0
bsr.s XClrPlan
bsr.s XClrPlan
rts
...
")