/*
 *  VEX_CURV					(C) Digital Design 1990
 *
 *  EXCHANGE CURSOR CHANGE VECTOR
 *
 *  Diese Funktion bewirkt, da zu einer definierten Adresse gesprungen
 *  wird, wenn der Cursor auf dem Bildschirm gendert wurde. Der Funktion
 *  wird eine Adresse bergeben, zu der ÝVDIÝ..\VDI.HLPÝ bei Vernderung der Grafik-
 *  cursor-Position springen soll. Vor Verzweigung zu dieser Routine
 *  wird die neue x/y-Position des Cursors berechnet und aktualisiert.
 *  Die Funktion gibt die Adresse der bisherigen Routine zurck.
 *  Das Setzen und Zurcksetzen der Register mu vom Programm selbst
 *  sichergestellt sein.
 *  Die neue x/y-Position des Cursors kann aus Prozessorregistern
 *  ausgelesen werden.
 */
#include <gemdefs.h>

void vex_curv( int handle, int (*pusrcode)(), int (**psavcode)() )
{
  *(int (**)())(contrl + 7) = pusrcode; 	/* Adresse der neuen	*
						 * Grafikcursor-Routine */
  VDI( 127, 0, 0, handle );

  *psavcode = *(int (**)())(contrl + 9);	/* Adresse der alten	*
						 * Grafikcursor-Routine */
}