[AD] os_multitasking vs. i_love_bill. a deathmatch. |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
hi! i was going to remove the i_love_bill variable and use the
os_multitasking variable which is cross-platform and has a more informative
name. these variables has almost the exact same function so keeping both
seems a little dumb to me.
now some background matherial...
according to the changelog: Scott Harrison added code to detect OpenDOS, and
use the i_love_bill mode if their version of EMM386 is in use.
according to the allegro docs: When running in clean DOS mode, the timer
handler dynamically reprograms the clock chip to generate interrupts at
exactly the right times, which gives an extremely high accuracy.
Unfortunately, this constant speed adjustment doesn't work under most
multitasking systems (notably Windows), so there is an alternative mode that
just locks the hardware timer interrupt to a speed of 200 ticks per second.
This reduces the accuracy of the timer (for instance, rest() will round the
delay time to the nearest 5 milliseconds), and prevents the vertical retrace
simulator from working, but on the plus side, it makes Allegro programs work
under Windows. This flag is set by allegro_init() if it detects the presence
of a multitasking OS, and enables the fixed rate timer mode.
as you can see opendos is a special case. anyone know if this OS has
multitasking capabilities or just have a horrible memory manager? i_love_bill
has traditionally only been used in allegro for setting the timer max
frequency, so setting os_multitasking = TRUE for OpenDOS shouldn't be such a
bad thing to do. any objections? this is a rather small API change.
-henrik