573 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			573 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
# HG changeset patch
 | 
						|
# User Patrice Mandin <patmandin@gmail.com>
 | 
						|
# Date 1406540679 -7200
 | 
						|
# Node ID 4a9c67d11c9f688b9c47fb6ee46d3c903ec35f22
 | 
						|
# Parent  7f4407040fbd31079fbab9264076450bdd20b1ec
 | 
						|
atari: Do not use system interrupt for handling timer. Do it from userspace, like RISCOS backend.
 | 
						|
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f configure.in
 | 
						|
--- a/configure.in	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/configure.in	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -2865,7 +2865,6 @@
 | 
						|
             else
 | 
						|
                 AC_DEFINE(SDL_TIMER_MINT)
 | 
						|
                 SOURCES="$SOURCES $srcdir/src/timer/mint/*.c"
 | 
						|
-                SOURCES="$SOURCES $srcdir/src/timer/mint/*.S"
 | 
						|
             fi
 | 
						|
             have_timers=yes
 | 
						|
         fi
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/timer/mint/SDL_systimer.c
 | 
						|
--- a/src/timer/mint/SDL_systimer.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/timer/mint/SDL_systimer.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -25,7 +25,7 @@
 | 
						|
 
 | 
						|
 /*
 | 
						|
  *	TOS/MiNT timer driver
 | 
						|
- *	based on vbl vector
 | 
						|
+ *	based on RISCOS backend
 | 
						|
  *
 | 
						|
  *	Patrice Mandin
 | 
						|
  */
 | 
						|
@@ -44,106 +44,119 @@
 | 
						|
 
 | 
						|
 #include "SDL_timer.h"
 | 
						|
 #include "../SDL_timer_c.h"
 | 
						|
-#include "SDL_thread.h"
 | 
						|
 
 | 
						|
 #include "../../video/ataricommon/SDL_atarisuper.h"
 | 
						|
 
 | 
						|
-#include "SDL_vbltimer_s.h"
 | 
						|
+/* from src/video/ataricommon/SDL_atarievents.c */
 | 
						|
+void SDL_AtariMint_BackgroundTasks(void);
 | 
						|
 
 | 
						|
-/* from audio/mint */
 | 
						|
-void SDL_MintAudio_CheckFpu(void);
 | 
						|
+static Uint32 readHz200Timer(void);
 | 
						|
 
 | 
						|
 /* The first ticks value of the application */
 | 
						|
 static Uint32 start;
 | 
						|
-static SDL_bool read_hz200_from_vbl = SDL_FALSE;
 | 
						|
+
 | 
						|
 static int mint_present; /* can we use Syield() ? */
 | 
						|
 
 | 
						|
+/* Timer  SDL_arraysize(Timer ),start/reset time */
 | 
						|
+static Uint32 timerStart;
 | 
						|
+
 | 
						|
 void SDL_StartTicks(void)
 | 
						|
 {
 | 
						|
-	void *old_stack;
 | 
						|
 	long dummy;
 | 
						|
 
 | 
						|
-	/* Set first ticks value */
 | 
						|
-	old_stack = (void *)Super(0);
 | 
						|
-	start = *((volatile long *)_hz_200);
 | 
						|
-	SuperToUser(old_stack);
 | 
						|
-
 | 
						|
-	start *= 5;	/* One _hz_200 tic is 5ms */
 | 
						|
+	/* Set first ticks value, one _hz_200 tic is 5ms */
 | 
						|
+	start = readHz200Timer() * 5;
 | 
						|
 
 | 
						|
 	mint_present = (Getcookie(C_MiNT, &dummy) == C_FOUND);
 | 
						|
 }
 | 
						|
 
 | 
						|
 Uint32 SDL_GetTicks (void)
 | 
						|
 {
 | 
						|
-	Uint32 now = start;
 | 
						|
+	Uint32 now = readHz200Timer() * 5;
 | 
						|
 
 | 
						|
-	if (read_hz200_from_vbl) {
 | 
						|
-		now = SDL_Atari_hz200;
 | 
						|
-	} else {
 | 
						|
-		void *old_stack = (void *)Super(0);
 | 
						|
-		now = *((volatile long *)_hz_200);
 | 
						|
-		SuperToUser(old_stack);
 | 
						|
-	}
 | 
						|
-
 | 
						|
-	return((now*5)-start);
 | 
						|
+	return(now-start);
 | 
						|
 }
 | 
						|
 
 | 
						|
 void SDL_Delay (Uint32 ms)
 | 
						|
 {
 | 
						|
 	Uint32 now;
 | 
						|
 
 | 
						|
+	/* No need to loop for delay below resolution */
 | 
						|
+	if (ms<5) {
 | 
						|
+		SDL_AtariMint_BackgroundTasks();
 | 
						|
+		if (mint_present) {
 | 
						|
+			Syield();
 | 
						|
+		}
 | 
						|
+		return;
 | 
						|
+	}
 | 
						|
+
 | 
						|
 	now = SDL_GetTicks();
 | 
						|
 	while ((SDL_GetTicks()-now)<ms){
 | 
						|
+		SDL_AtariMint_BackgroundTasks();
 | 
						|
 		if (mint_present) {
 | 
						|
 			Syield();
 | 
						|
 		}
 | 
						|
 	}
 | 
						|
 }
 | 
						|
 
 | 
						|
-/* Data to handle a single periodic alarm */
 | 
						|
-static SDL_bool timer_installed=SDL_FALSE;
 | 
						|
+static Uint32 readHz200Timer(void)
 | 
						|
+{
 | 
						|
+	void *old_stack;
 | 
						|
+	Uint32 now;
 | 
						|
 
 | 
						|
-/* This is only called if the event thread is not running */
 | 
						|
+	old_stack = (void *)Super(0);
 | 
						|
+	now = *((volatile long *)_hz_200);
 | 
						|
+	SuperToUser(old_stack);
 | 
						|
+
 | 
						|
+	return now;
 | 
						|
+}
 | 
						|
+
 | 
						|
+/* Non-threaded version of timer */
 | 
						|
+
 | 
						|
 int SDL_SYS_TimerInit(void)
 | 
						|
 {
 | 
						|
-	void *old_stack;
 | 
						|
-
 | 
						|
-	SDL_MintAudio_CheckFpu();
 | 
						|
-
 | 
						|
-	/* Install RunTimer in vbl vector */
 | 
						|
-	old_stack = (void *)Super(0);
 | 
						|
-	timer_installed = !SDL_AtariVblInstall(SDL_ThreadedTimerCheck);
 | 
						|
-	SuperToUser(old_stack);
 | 
						|
-
 | 
						|
-	if (!timer_installed) {
 | 
						|
-		return(-1);
 | 
						|
-	}
 | 
						|
-
 | 
						|
-	read_hz200_from_vbl = SDL_TRUE;
 | 
						|
-	return(SDL_SetTimerThreaded(0));
 | 
						|
+	return(0);
 | 
						|
 }
 | 
						|
 
 | 
						|
 void SDL_SYS_TimerQuit(void)
 | 
						|
 {
 | 
						|
-	/* Uninstall RunTimer vbl vector */
 | 
						|
-	if (timer_installed) {
 | 
						|
-		void *old_stack = (void *)Super(0);
 | 
						|
-		SDL_AtariVblUninstall(SDL_ThreadedTimerCheck);
 | 
						|
-		SuperToUser(old_stack);
 | 
						|
-		timer_installed = SDL_FALSE;
 | 
						|
-	}
 | 
						|
-	read_hz200_from_vbl = SDL_FALSE;
 | 
						|
+	SDL_SetTimer(0, NULL);
 | 
						|
 }
 | 
						|
 
 | 
						|
 int SDL_SYS_StartTimer(void)
 | 
						|
 {
 | 
						|
-	SDL_SetError("Internal logic error: MiNT uses vbl timer");
 | 
						|
-	return(-1);
 | 
						|
+	timerStart = SDL_GetTicks();
 | 
						|
+
 | 
						|
+	return(0);
 | 
						|
 }
 | 
						|
 
 | 
						|
 void SDL_SYS_StopTimer(void)
 | 
						|
 {
 | 
						|
-	return;
 | 
						|
+	/* Don't need to do anything as we use SDL_timer_running
 | 
						|
+	   to detect if we need to check the timer */
 | 
						|
+}
 | 
						|
+
 | 
						|
+
 | 
						|
+void SDL_AtariMint_CheckTimer(void)
 | 
						|
+{
 | 
						|
+	if (SDL_timer_running && SDL_GetTicks() - timerStart >= SDL_alarm_interval)
 | 
						|
+	{
 | 
						|
+		Uint32 ms;
 | 
						|
+
 | 
						|
+		ms = SDL_alarm_callback(SDL_alarm_interval);
 | 
						|
+		if ( ms != SDL_alarm_interval )
 | 
						|
+		{
 | 
						|
+			if ( ms )
 | 
						|
+			{
 | 
						|
+				SDL_alarm_interval = ROUND_RESOLUTION(ms);
 | 
						|
+			} else
 | 
						|
+			{
 | 
						|
+				SDL_alarm_interval = 0;
 | 
						|
+				SDL_timer_running = 0;
 | 
						|
+			}
 | 
						|
+		}
 | 
						|
+		if (SDL_alarm_interval) timerStart = SDL_GetTicks();
 | 
						|
+	}
 | 
						|
 }
 | 
						|
 
 | 
						|
 #endif /* SDL_TIMER_MINT */
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/timer/mint/SDL_vbltimer.S
 | 
						|
--- a/src/timer/mint/SDL_vbltimer.S	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 | 
						|
@@ -1,228 +0,0 @@
 | 
						|
-/*
 | 
						|
-    SDL - Simple DirectMedia Layer
 | 
						|
-    Copyright (C) 1997-2012 Sam Lantinga
 | 
						|
-
 | 
						|
-    This library is free software; you can redistribute it and/or
 | 
						|
-    modify it under the terms of the GNU Lesser General Public
 | 
						|
-    License as published by the Free Software Foundation; either
 | 
						|
-    version 2.1 of the License, or (at your option) any later version.
 | 
						|
-
 | 
						|
-    This library is distributed in the hope that it will be useful,
 | 
						|
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
-    Lesser General Public License for more details.
 | 
						|
-
 | 
						|
-    You should have received a copy of the GNU Lesser General Public
 | 
						|
-    License along with this library; if not, write to the Free Software
 | 
						|
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
						|
-
 | 
						|
-    Sam Lantinga
 | 
						|
-    slouken@libsdl.org
 | 
						|
-*/
 | 
						|
-
 | 
						|
-/*
 | 
						|
- *	VBL queue routine
 | 
						|
- *
 | 
						|
- *	Patrice Mandin
 | 
						|
- */
 | 
						|
-
 | 
						|
-#define _vbl_queue 0x456
 | 
						|
-#define _hz_200    0x4ba
 | 
						|
-
 | 
						|
-	.text
 | 
						|
-
 | 
						|
-	.globl	_SDL_AtariVblInstall
 | 
						|
-	.globl	_SDL_AtariVblUninstall
 | 
						|
-
 | 
						|
-	.globl	_SDL_MintAudio_hasfpu
 | 
						|
-
 | 
						|
-/*--- Save/restore FPU context ---*/
 | 
						|
-
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-
 | 
						|
-#define SAVE_FPU_CONTEXT \
 | 
						|
-	lea		sp@(-216),sp;	\
 | 
						|
-	fsave		sp@;	\
 | 
						|
-	fmovel		fpiar,sp@-;	\
 | 
						|
-	lea		sp@(-64),sp;	\
 | 
						|
-	fmovemd	fp0-fp7,sp@
 | 
						|
-
 | 
						|
-#define RESTORE_FPU_CONTEXT	\
 | 
						|
-	fmovemd		sp@,fp0-fp7;	\
 | 
						|
-	lea		sp@(64),sp;	\
 | 
						|
-	fmovel		sp@+,fpiar;	\
 | 
						|
-	frestore	sp@;	\
 | 
						|
-	lea		sp@(216),sp
 | 
						|
-
 | 
						|
-#else
 | 
						|
-
 | 
						|
-#define SAVE_FPU_CONTEXT	\
 | 
						|
-	.chip	68k/68881;	\
 | 
						|
-	fsave	sp@-;	\
 | 
						|
-	fmoveml fpcr/fpsr/fpiar,sp@-;	\
 | 
						|
-	fmovemx	fp0-fp7,sp@-;	\
 | 
						|
-	.chip	68k
 | 
						|
-
 | 
						|
-#define RESTORE_FPU_CONTEXT	\
 | 
						|
-	.chip	68k/68881;	\
 | 
						|
-	fmovemx	sp@+,fp0-fp7;	\
 | 
						|
-	fmoveml	sp@+,fpcr/fpsr/fpiar;	\
 | 
						|
-	frestore	sp@+;	\
 | 
						|
-	.chip	68k
 | 
						|
-
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-/*--- Vector installer ---*/
 | 
						|
-
 | 
						|
-_SDL_AtariVblInstall:
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	movel	sp@(4),d0
 | 
						|
-	movel	d0,my_vector
 | 
						|
-#else
 | 
						|
-	movel	sp@(4),my_vector
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	lea		_my_vbl,a0
 | 
						|
-
 | 
						|
-	clrw	vbl_mutex
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	movel	_hz_200.w,d0
 | 
						|
-	movel	d0, _SDL_Atari_hz200
 | 
						|
-#else
 | 
						|
-	movel	_hz_200.w, _SDL_Atari_hz200
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Stop interrupts */
 | 
						|
-
 | 
						|
-	movew	#0x2700,sr
 | 
						|
-
 | 
						|
-	/* Read vbl_queue pointer */
 | 
						|
-	movel	_vbl_queue.w,a1
 | 
						|
-
 | 
						|
-	/* Search a free place */
 | 
						|
-	moveq	#7,d0
 | 
						|
-bcl_search_place:
 | 
						|
-	movel	(a1),d1
 | 
						|
-	beqs	place_found
 | 
						|
-	addql	#4,a1
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	subql	#1,d0
 | 
						|
-	bpls	bcl_search_place
 | 
						|
-#else
 | 
						|
-	dbra	d0,bcl_search_place
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Not found */
 | 
						|
-	moveq	#1,d0
 | 
						|
-	bras	exit_vbl_queue
 | 
						|
-
 | 
						|
-	/* Then install ourselves */
 | 
						|
-place_found:
 | 
						|
-	movel	a0,(a1)
 | 
						|
-	moveq	#0,d0	
 | 
						|
-
 | 
						|
-exit_vbl_queue:
 | 
						|
-	/* Restart interrupts */
 | 
						|
-	movew	#0x2300,sr
 | 
						|
-
 | 
						|
-	rts
 | 
						|
-
 | 
						|
-/*--- Vector uninstaller ---*/
 | 
						|
-
 | 
						|
-_SDL_AtariVblUninstall:
 | 
						|
-	movel	sp@(4),d0
 | 
						|
-	cmpl	my_vector,d0
 | 
						|
-	bnes	badvector
 | 
						|
-	
 | 
						|
-	movel	#_my_vbl,d0
 | 
						|
-
 | 
						|
-	/* Stop interrupts */
 | 
						|
-
 | 
						|
-	movew	#0x2700,sr
 | 
						|
-
 | 
						|
-	/* Read vbl_queue pointer */
 | 
						|
-	movel	_vbl_queue.w,a1
 | 
						|
-
 | 
						|
-	/* Search where we are */
 | 
						|
-	moveq	#7,d1
 | 
						|
-bcl2_search_place:
 | 
						|
-	cmpl	(a1),d0
 | 
						|
-	bnes	next_place
 | 
						|
-	clrl	(a1)
 | 
						|
-	moveq	#0,d1
 | 
						|
-next_place:
 | 
						|
-	addql	#4,a1
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	subql	#1,d1
 | 
						|
-	bpls	bcl_search_place
 | 
						|
-#else
 | 
						|
-	dbra	d1,bcl2_search_place
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Restart interrupts */
 | 
						|
-	movew	#0x2300,sr
 | 
						|
-badvector:
 | 
						|
-	rts
 | 
						|
-
 | 
						|
-/*--- Our vbl ---*/
 | 
						|
-
 | 
						|
-_my_vbl:
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	lea	sp@(-60),sp
 | 
						|
-	moveml	d0-d7/a0-a6,sp@
 | 
						|
-#else
 | 
						|
-	moveml	d0-d7/a0-a6,sp@-
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Update _hz_200 */
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	movel	_hz_200.w,d0
 | 
						|
-	movel	d0, _SDL_Atari_hz200
 | 
						|
-#else
 | 
						|
-	movel	_hz_200.w, _SDL_Atari_hz200
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Verify if this is not already running */
 | 
						|
-
 | 
						|
-	tstw	vbl_mutex
 | 
						|
-	bnes	vbl_end
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	movew	vbl_mutex,d0
 | 
						|
-	notl	d0
 | 
						|
-	movew	d0,vbl_mutex
 | 
						|
-#else
 | 
						|
-	notw	vbl_mutex
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-	/* Save FPU if needed */
 | 
						|
-	tstw	_SDL_MintAudio_hasfpu
 | 
						|
-	beqs	SDL_AtariVbl_nofpu1
 | 
						|
-	SAVE_FPU_CONTEXT
 | 
						|
-SDL_AtariVbl_nofpu1:
 | 
						|
-
 | 
						|
-	movel	my_vector,a0
 | 
						|
-	jsr		a0@
 | 
						|
-
 | 
						|
-	/* Restore FPU if needed */
 | 
						|
-	tstw	_SDL_MintAudio_hasfpu
 | 
						|
-	beqs	SDL_AtariVbl_Xbios_nofpu2
 | 
						|
-	RESTORE_FPU_CONTEXT
 | 
						|
-SDL_AtariVbl_Xbios_nofpu2:
 | 
						|
-
 | 
						|
-	clrw	vbl_mutex
 | 
						|
-vbl_end:
 | 
						|
-#if defined(__mcoldfire__)
 | 
						|
-	moveml	sp@,d0-d7/a0-a6
 | 
						|
-	lea	sp@(60),sp
 | 
						|
-#else
 | 
						|
-	moveml	sp@+,d0-d7/a0-a6
 | 
						|
-#endif
 | 
						|
-	rts
 | 
						|
-
 | 
						|
-	.data
 | 
						|
-	.even
 | 
						|
-	.comm	_SDL_Atari_hz200,4*1
 | 
						|
-	.even
 | 
						|
-	.comm	vbl_mutex,2*1
 | 
						|
-	.even
 | 
						|
-	.comm	my_vector,4*1
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/timer/mint/SDL_vbltimer_s.h
 | 
						|
--- a/src/timer/mint/SDL_vbltimer_s.h	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 | 
						|
@@ -1,35 +0,0 @@
 | 
						|
-/*
 | 
						|
-    SDL - Simple DirectMedia Layer
 | 
						|
-    Copyright (C) 1997-2012 Sam Lantinga
 | 
						|
-
 | 
						|
-    This library is free software; you can redistribute it and/or
 | 
						|
-    modify it under the terms of the GNU Lesser General Public
 | 
						|
-    License as published by the Free Software Foundation; either
 | 
						|
-    version 2.1 of the License, or (at your option) any later version.
 | 
						|
-
 | 
						|
-    This library is distributed in the hope that it will be useful,
 | 
						|
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
-    Lesser General Public License for more details.
 | 
						|
-
 | 
						|
-    You should have received a copy of the GNU Lesser General Public
 | 
						|
-    License along with this library; if not, write to the Free Software
 | 
						|
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
						|
-
 | 
						|
-    Sam Lantinga
 | 
						|
-    slouken@libsdl.org
 | 
						|
-*/
 | 
						|
-#include "SDL_config.h"
 | 
						|
-
 | 
						|
-/*
 | 
						|
- *	TOS/MiNT timer driver
 | 
						|
- *	based on vbl vector
 | 
						|
- *
 | 
						|
- *	Patrice Mandin
 | 
						|
- */
 | 
						|
-
 | 
						|
-extern volatile long SDL_Atari_hz200;
 | 
						|
-
 | 
						|
-/* Functions prototypes */
 | 
						|
-extern int SDL_AtariVblInstall(void *newvector);
 | 
						|
-extern void SDL_AtariVblUninstall(void *newvector);
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/ataricommon/SDL_atarievents.c
 | 
						|
--- a/src/video/ataricommon/SDL_atarievents.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/ataricommon/SDL_atarievents.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -34,6 +34,7 @@
 | 
						|
 
 | 
						|
 #include "../../events/SDL_sysevents.h"
 | 
						|
 #include "../../events/SDL_events_c.h"
 | 
						|
+#include "../../timer/SDL_timer_c.h"
 | 
						|
 
 | 
						|
 #include "SDL_atarikeys.h"
 | 
						|
 #include "SDL_atarievents_c.h"
 | 
						|
@@ -41,6 +42,9 @@
 | 
						|
 #include "SDL_gemdosevents_c.h"
 | 
						|
 #include "SDL_ikbdevents_c.h"
 | 
						|
 
 | 
						|
+/* from src/timer/mint/SDL_systimer.c */
 | 
						|
+void SDL_AtariMint_CheckTimer(void);
 | 
						|
+
 | 
						|
 enum {
 | 
						|
 	MCH_ST=0,
 | 
						|
 	MCH_STE,
 | 
						|
@@ -232,3 +236,8 @@
 | 
						|
 
 | 
						|
 	return(keysym);
 | 
						|
 }
 | 
						|
+
 | 
						|
+void SDL_AtariMint_BackgroundTasks(void)
 | 
						|
+{
 | 
						|
+	if (SDL_timer_running) SDL_AtariMint_CheckTimer();
 | 
						|
+}
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/ataricommon/SDL_atarievents_c.h
 | 
						|
--- a/src/video/ataricommon/SDL_atarievents_c.h	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/ataricommon/SDL_atarievents_c.h	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -44,6 +44,8 @@
 | 
						|
 
 | 
						|
 extern void SDL_Atari_InitInternalKeymap(_THIS);
 | 
						|
 
 | 
						|
+extern void SDL_AtariMint_BackgroundTasks(void);
 | 
						|
+
 | 
						|
 /* Atari to Unicode charset translation table */
 | 
						|
 extern Uint16 SDL_AtariToUnicodeTable[256];
 | 
						|
 SDL_keysym *SDL_Atari_TranslateKey(int scancode, SDL_keysym *keysym,
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/ataricommon/SDL_biosevents.c
 | 
						|
--- a/src/video/ataricommon/SDL_biosevents.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/ataricommon/SDL_biosevents.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -71,6 +71,8 @@
 | 
						|
 	int i;
 | 
						|
 	SDL_keysym keysym;
 | 
						|
 
 | 
						|
+	SDL_AtariMint_BackgroundTasks();
 | 
						|
+
 | 
						|
 	/* Update pressed keys */
 | 
						|
 	SDL_memset(bios_currentkeyboard, 0, ATARIBIOS_MAXKEYS);
 | 
						|
 
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/ataricommon/SDL_gemdosevents.c
 | 
						|
--- a/src/video/ataricommon/SDL_gemdosevents.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/ataricommon/SDL_gemdosevents.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -72,6 +72,8 @@
 | 
						|
 	int i;
 | 
						|
 	SDL_keysym keysym;
 | 
						|
 
 | 
						|
+	SDL_AtariMint_BackgroundTasks();
 | 
						|
+
 | 
						|
 	/* Update pressed keys */
 | 
						|
 	SDL_memset(gemdos_currentkeyboard, 0, ATARIBIOS_MAXKEYS);
 | 
						|
 
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/ataricommon/SDL_ikbdevents.c
 | 
						|
--- a/src/video/ataricommon/SDL_ikbdevents.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/ataricommon/SDL_ikbdevents.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -73,6 +73,8 @@
 | 
						|
 	int i;
 | 
						|
 	SDL_keysym keysym;
 | 
						|
 
 | 
						|
+	SDL_AtariMint_BackgroundTasks();
 | 
						|
+
 | 
						|
 	/*--- Send keyboard events ---*/
 | 
						|
 
 | 
						|
 	for (i=0; i<ATARIBIOS_MAXKEYS; i++) {
 | 
						|
diff -r 7f4407040fbd -r 4a9c67d11c9f src/video/gem/SDL_gemevents.c
 | 
						|
--- a/src/video/gem/SDL_gemevents.c	Sun Jul 27 19:19:47 2014 +0200
 | 
						|
+++ b/src/video/gem/SDL_gemevents.c	Mon Jul 28 11:44:39 2014 +0200
 | 
						|
@@ -86,6 +86,8 @@
 | 
						|
 
 | 
						|
 		quit = 0;
 | 
						|
 
 | 
						|
+		SDL_AtariMint_BackgroundTasks();
 | 
						|
+
 | 
						|
 		resultat = evnt_multi(
 | 
						|
 			MU_MESAG|MU_TIMER|MU_KEYBD,
 | 
						|
 			0,0,0,
 | 
						|
--- SDL-1.2.15/configure.orig	2019-02-09 05:22:11.106966000 +0100
 | 
						|
+++ SDL-1.2.15/configure	2019-02-09 05:22:35.734516000 +0100
 | 
						|
@@ -30122,7 +30122,6 @@
 | 
						|
 _ACEOF
 | 
						|
 
 | 
						|
                 SOURCES="$SOURCES $srcdir/src/timer/mint/*.c"
 | 
						|
-                SOURCES="$SOURCES $srcdir/src/timer/mint/*.S"
 | 
						|
             fi
 | 
						|
             have_timers=yes
 | 
						|
         fi
 |