Interruption 33 & gestionnaire d'evenements

je ne comprend pas comment fonctionne se gestionnaire de l'interruption 33!
pouvez vous m'aidez plus particulierement pour les registre ES et DX! je ne comprend pas quelle adresse faut il mettre! j'ai mis ça mais sa ne marche pas:
typedef void( far* MOUHAPTR)();
main(void)
{ MOUHAPTR install;
int count=0,reponse;
install=(MOUHAPTR) malloc(10); /*je sais pas tro si C juste*/
InitMouse();
installHandler( L_BUTTON_PRESS, install)
}

static void installHandler(unsigned event,MOUHAPTR handler);
{
reg.r_ax=0x000c;
reg.r_cx=event;
reg.r_dx= FP_OFF( handler );
reg.r_es= FP_SEG( handler );
intr(0x33,®);
}
pourriez vous m'expliquez tout le tralala sur "reg.r_dx= FP_OFF( handler ); reg.r_es= FP_SEG( handler );"

merci d'avance!

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour, je n'ai pas la documentation
    de la gestion de la souris sous dos.
    Mais je suppose que handler est une routine.
    FP_OFF et FP_SEG retournent vraissemblablement
    l'offset et le segment du point d'entrée de la routine(modèle
    segmenté de la mémoire)
    Google est ton ami...
    http://members.tripod.com/~oldboard/assembly/int_33-c.html

    Johan

    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.