/* * VEX_MOTV (C) Digital Design 1990 * * EXCHANGE MOUSE MOVEMENT VECTOR * * Mit Hilfe dieser Funktion k”nnen die Aktionen der Maus umfangreicher * verwaltet werden. Der Routine wird eine Adresse bergeben, zu der * VDI bei Bewegung der Maus springen soll. Vor Verzweigung zu dieser * Mausroutine wird die neue x/y-Position des Cursors berechnet, jedoch * noch nicht aktualisiert. * Die Funktion gibt die Adresse der bisherigen Mausroutine zurck. * Das Setzen und Zurcksetzen der Register muž vom Programm selbst * sichergestellt sein. * Die neue x/y-Position des - noch unsichtbaren - Cursors kann aus * Prozessorregistern ausgelesen, aber auch ge„ndert werden. Erst nach * Rcksprung zum ÝVDIÝ..\VDI.HLPÝ wird diese Position als aktuelle Position * gespeichert. */ #include void vex_motv( int handle, int (*pusrcode)(), int (**psavcode)() ) { *(int (**)())(contrl + 7) = pusrcode; /* Adresse der neuen * * Mausbewegungsroutine */ VDI( 126, 0, 0, handle ); *psavcode = *(int (**)())(contrl + 9); /* Adresse der alten * * Mausbewegungsroutine */ }