1
0
Fork 0

Added faked support for set event wait flag int 15 call.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@390
This commit is contained in:
Sjoerd van der Berg 2002-10-21 21:59:33 +00:00
parent 328814cf22
commit 9a4a06ff30

View file

@ -22,7 +22,7 @@
#include "callback.h"
#include "inout.h"
#include "mem.h"
#include "timer.h"
static Bitu call_int1a,call_int11,call_int8,call_int17,call_int12,call_int15,call_int1c;
@ -136,6 +136,12 @@ static Bitu INT17_Handler(void) {
return CBRET_NONE;
};
static void WaitFlagEvent(void) {
PhysPt where=Real2Phys(mem_readd(BIOS_WAIT_FLAG_POINTER));
mem_writeb(where,mem_readb(where)|0x80);
mem_writeb(BIOS_WAIT_FLAG_ACTIVE,0);
}
static Bitu INT15_Handler(void) {
switch (reg_ah) {
case 0x06:
@ -149,6 +155,12 @@ static Bitu INT15_Handler(void) {
/* Carry should be set but let's just set it just in case */
CALLBACK_SCF(true);
break;
case 0x83: /* BIOS - SET EVENT WAIT INTERVAL */
mem_writed(BIOS_WAIT_FLAG_POINTER,RealMake(SegValue(es),reg_bx));
mem_writed(BIOS_WAIT_FLAG_COUNT,reg_cx<<16|reg_dx);
mem_writeb(BIOS_WAIT_FLAG_ACTIVE,1);
TIMER_RegisterDelayHandler(&WaitFlagEvent,reg_cx<<16|reg_dx);
break;
case 0x84: /* BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS) */
//Does anyone even use this?
LOG_WARN("INT15:84:Bios Joystick functionality not done");
@ -181,6 +193,8 @@ static Bitu INT15_Handler(void) {
break;
default:
LOG_WARN("INT15:Unknown call %2X",reg_ah);
reg_ah=0x86;
CALLBACK_SCF(false);
}
return CBRET_NONE;
};