Mercurial > sdl-ios-xcode
annotate src/timer/mint/SDL_systimer.c @ 4928:930614179450 SDL-1.2
Patch from Haiku's Google Code-In student Daniel Marth, fixes an off-by-one issue in bwindow.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 03 Dec 2010 16:55:25 -0800 |
parents | a1b03ba2fcd0 |
children |
rev | line source |
---|---|
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 /* |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
4159 | 3 Copyright (C) 1997-2009 Sam Lantinga |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
13 Lesser General Public License for more details. |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1045
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 Sam Lantinga |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 slouken@libsdl.org |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1396
diff
changeset
|
22 #include "SDL_config.h" |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
1635
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
24 #ifdef SDL_TIMER_MINT |
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
25 |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 /* |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 * TOS/MiNT timer driver |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 * based on vbl vector |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 * |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 * Patrice Mandin |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 */ |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 #include <stdio.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 #include <sys/time.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 #include <signal.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
36 #include <unistd.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
37 #include <string.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 #include <errno.h> |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
40 #include <mint/cookie.h> |
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
41 #include <mint/sysvars.h> |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 #include <mint/osbind.h> |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
43 #include <mint/mintbind.h> |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
44 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
45 #include "SDL_timer.h" |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
46 #include "../SDL_timer_c.h" |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 #include "SDL_thread.h" |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 |
1396
428c8690cf73
Add missing include directories
Patrice Mandin <patmandin@gmail.com>
parents:
1361
diff
changeset
|
49 #include "SDL_vbltimer_s.h" |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 |
3883
cfe850b334e7
Also save/restore fpu register in vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
51 /* from audio/mint */ |
cfe850b334e7
Also save/restore fpu register in vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
52 void SDL_MintAudio_CheckFpu(void); |
cfe850b334e7
Also save/restore fpu register in vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
53 |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 /* The first ticks value of the application */ |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 static Uint32 start; |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
56 static SDL_bool read_hz200_from_vbl = SDL_FALSE; |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
57 static int mint_present; /* can we use Syield() ? */ |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 void SDL_StartTicks(void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 { |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
61 void *old_stack; |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
62 unsigned long dummy; |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 /* Set first ticks value */ |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
65 old_stack = (void *)Super(0); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
66 start = *((volatile long *)_hz_200); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
67 Super(old_stack); |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 start *= 5; /* One _hz_200 tic is 5ms */ |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
70 |
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
71 mint_present = (Getcookie(C_MiNT, &dummy) == C_FOUND); |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 Uint32 SDL_GetTicks (void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 { |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
76 Uint32 now = start; |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
78 if (read_hz200_from_vbl) { |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
79 now = SDL_Atari_hz200; |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
80 } else { |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
81 void *old_stack = (void *)Super(0); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
82 now = *((volatile long *)_hz_200); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
83 Super(old_stack); |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 return((now*5)-start); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
87 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 void SDL_Delay (Uint32 ms) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 { |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 Uint32 now; |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
93 now = SDL_GetTicks(); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
94 while ((SDL_GetTicks()-now)<ms){ |
1045
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
95 if (mint_present) { |
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
96 Syield(); |
63b8e93a3a52
Release CPU when waiting
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
97 } |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
98 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
100 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
101 /* Data to handle a single periodic alarm */ |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 static SDL_bool timer_installed=SDL_FALSE; |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
104 /* This is only called if the event thread is not running */ |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
105 int SDL_SYS_TimerInit(void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
106 { |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
107 void *old_stack; |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 |
3883
cfe850b334e7
Also save/restore fpu register in vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
109 SDL_MintAudio_CheckFpu(); |
cfe850b334e7
Also save/restore fpu register in vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
110 |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 /* Install RunTimer in vbl vector */ |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
112 old_stack = (void *)Super(0); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
113 timer_installed = !SDL_AtariVblInstall(SDL_ThreadedTimerCheck); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
114 Super(old_stack); |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
116 if (!timer_installed) { |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 return(-1); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
118 } |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
119 |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
120 read_hz200_from_vbl = SDL_TRUE; |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 return(SDL_SetTimerThreaded(0)); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 void SDL_SYS_TimerQuit(void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 { |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
126 /* Uninstall RunTimer vbl vector */ |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
127 if (timer_installed) { |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
128 void *old_stack = (void *)Super(0); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
129 SDL_AtariVblUninstall(SDL_ThreadedTimerCheck); |
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
130 Super(old_stack); |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
131 timer_installed = SDL_FALSE; |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
132 } |
3955
40b6b5744e05
Avoid switch to supervisor mode in SDL_GetTicks, by updating system counter from vbl interrupt
Patrice Mandin <patmandin@gmail.com>
parents:
3954
diff
changeset
|
133 read_hz200_from_vbl = SDL_FALSE; |
281
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
134 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
135 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
136 int SDL_SYS_StartTimer(void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
137 { |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
138 SDL_SetError("Internal logic error: MiNT uses vbl timer"); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
139 return(-1); |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 } |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 void SDL_SYS_StopTimer(void) |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 { |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 return; |
c5010ab8ba35
Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
145 } |
1635
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
146 |
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
147 #endif /* SDL_TIMER_MINT */ |