1
0
Fork 0

int 8 is now saving ds,dx,ax before calling int 1c

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@452
This commit is contained in:
Ulf Wohlers 2002-10-27 10:48:47 +00:00
parent 34c9a28c3e
commit c2b1f89fa2

View file

@ -104,9 +104,19 @@ static Bitu INT8_Handler(void) {
/* decrease floppy motor timer */
Bit8u val = mem_readb(BIOS_DISK_MOTOR_TIMEOUT);
if (val>0) mem_writeb(BIOS_DISK_MOTOR_TIMEOUT,val-1);
/* and running drive */
mem_writeb(BIOS_DRIVE_RUNNING,mem_readb(BIOS_DRIVE_RUNNING) & 0xF0);
// Save ds,dx,ax
Bit16u oldds = SegValue(ds);
Bit16u olddx = reg_dx;
Bit16u oldax = reg_ax;
// run int 1c
CALLBACK_RunRealInt(0x1c);
IO_Write(0x20,0x20);
// restore old values
SegSet16(ds,oldds);
reg_dx = olddx;
reg_ax = oldax;
return CBRET_NONE;
};