1
0
Fork 0

changed int 25 and int 26 to act like real int 25.

Hopefully not all is broken


Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@803
This commit is contained in:
Peter Veenstra 2003-03-27 19:46:05 +00:00
parent e7f3e596de
commit d995943148

View file

@ -28,6 +28,7 @@
#include "regs.h"
#include "dos_inc.h"
#include "setup.h"
#include "cpu.h"
DOS_Block dos;
DOS_InfoBlock dos_infoblock;
@ -861,11 +862,12 @@ static Bitu DOS_27Handler(void)
return CBRET_NONE;
}
static Bitu DOS_25Handler(void) {
flags.type=t_UNKNOWN;
if(Drives[reg_al]==0){
reg_ax=0x8002;
CALLBACK_SCF(true);
flags.cf=true;
}else{
CALLBACK_SCF(false);
flags.cf=false;
reg_ax=0;
if((reg_cx != 1) ||(reg_dx != 1))
LOG(LOG_DOSMISC,"int 25 called but not as diskdetection");
@ -874,11 +876,13 @@ static Bitu DOS_25Handler(void) {
}
static Bitu DOS_26Handler(void) {
LOG(LOG_DOSMISC,"int 26 called: hope for the best!");
flags.type=t_UNKNOWN;
if(Drives[reg_al]==0){
reg_ax=0x8002;
CALLBACK_SCF(true);
flags.cf=true;
}else{
CALLBACK_SCF(false);
flags.cf=false;
reg_ax=0;
}
return CBRET_NONE;
@ -912,7 +916,7 @@ void DOS_Init(Section* sec) {
RealSetVec(0x25,CALLBACK_RealPointer(call_25));
call_26=CALLBACK_Allocate();
CALLBACK_Setup(call_26,DOS_21Handler,CB_RETF);
CALLBACK_Setup(call_26,DOS_26Handler,CB_RETF);
RealSetVec(0x26,CALLBACK_RealPointer(call_26));
call_27=CALLBACK_Allocate();