/*
 *  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 <gemdefs.h>

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 */
}