Hi, Nils
On 1/5/06, Nils Labugt wrote:
> I have found the offending code in MPXSRC/NEWFUNC/TIMER.C:
>
> void newfunc_newhandler08_init(void)
> {
> #ifdef __DOS__
> if(!oldint08_handler){
> oldint08_handler=(void (__far __interrupt
> *)())pds_dos_getvect(MPXPLAY_TIMER_INT);
> pds_dos_setvect(MPXPLAY_TIMER_INT,newhandler_08);
> outp(0x43, 0x34);
> outp(0x40, (INT08_DIVISOR_NEW&0xff));
> outp(0x40, (INT08_DIVISOR_NEW>>8));
> }
> #endif
> }
>
> void newfunc_newhandler08_close(void)
> {
> funcbit_disable(intsoundcontrol,INTSOUND_DECODER);
> mpxplay_timer_close();
> #ifdef __DOS__
> if(oldint08_handler){
> pds_dos_setvect(MPXPLAY_TIMER_INT,oldint08_handler);
> outp(0x43, 0x34);
> outp(0x40, 0x00);
> outp(0x40, 0x00);
> }
> #endif
> }
>
> The first function replaces the timer interrupt handler and reprograms
> the PIT with a new time constant, while the second function restores the
> old handler and the "old" DOS (not fd32) time constant. It is the
> reprogramming of the PIT that makes the sanity test in OSLib fail and
> causes the panic.
So, can it sense the pit has been reprogrammed by external application
automatically, and recover from that? Or we have to ask the
application to support us?
BTW: I found that the boot.h is missed in the arch/i386/boot.c
Hanzac
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
freedos-32-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-32-dev