Esempio n. 1
0
void SDL_AtariXbios_InstallVectors(int vectors_mask)
{
	void *oldpile;

	/* Clear variables */
	SDL_AtariXbios_mouselock =
		SDL_AtariXbios_mouseb =
		SDL_AtariXbios_mousex =
		SDL_AtariXbios_mousey =
		SDL_AtariXbios_joystick =
		atari_prevmouseb = 0;

	if (vectors_mask==0) {
		SDL_AtariXbios_enabled=0;
		return;
	}

	/* Read IKBD vectors base */
	kbdvecs=Kbdvbase();

	/* Go to supervisor mode */
	oldpile=(void *)Super(0);

	/* Install our vectors */
	SDL_AtariXbios_Install(
		kbdvecs,
		(vectors_mask & ATARI_XBIOS_MOUSEEVENTS) ? SDL_AtariXbios_MouseVector : NULL,
		(vectors_mask & ATARI_XBIOS_JOYSTICKEVENTS) ? SDL_AtariXbios_JoystickVector : NULL
	);

	/* Back to user mode */
	Super(oldpile);

	SDL_AtariXbios_enabled=1;
}
Esempio n. 2
0
void SDL_AtariXbios_RestoreVectors(void)
{
	void *oldpile;

	if (SDL_AtariXbios_enabled==0) {
		return;
	}

	/* Read IKBD vectors base */
	kbdvecs=Kbdvbase();

	/* Go to supervisor mode */
	oldpile=(void *)Super(NULL);

	/* Reinstall system vector */
	SDL_AtariXbios_Restore(kbdvecs);

	/* Back to user mode */
	Super(oldpile);
}
Esempio n. 3
0
void
sethooks( void )
{
    unsigned int wOriginalValue;
    int i;

/* find out if we're on Stacy */
    wOriginalValue = *SHADOW;
    for(i=0; (i<NPATTERNS)&&(isStacy); ++i){
	*SHADOW = wPattern[i];
	isStacy = ((*SHADOW & 0xF) == wPattern[i]);
    }
    *SHADOW = wOriginalValue;
    ma_info->stacy = isStacy;

#ifdef CLICK_CONFIG
/* get kbshift address */
    if( sysbase->os_version == 0x100 ) kbshift = KBS10;
    else kbshift = sysbase->kbshift;
#endif
/* install maccel vectors */
    kbase = Kbdvbase();
    mvloc = &kbase->kb_mousevec;
/*  IPL7();*/
    oldrvec = resvector;
    oldrval = resvalid;
    resvector = myreset;
    resvalid = RESMAGIC;
    oldmvec = kbase->kb_mousevec;
    kbase->kb_mousevec = mouse;
    oldkbd = kbase->kb_kbdsys;
    kbase->kb_kbdsys = ikbd;
    oldrs = Setexc( 76, rs232 );
    vbentry = VBLQUEUE;
    while( *(++vbentry) ); /* skip the VDI entry */
    *(void(**)())vbentry = myvbl;
/*  IPL_RESTORE();*/
}