BIOS fixes
This commit is contained in:
parent
e50e187128
commit
7feb947830
@ -105,6 +105,7 @@ Bochs repository moved to the SVN version control !
|
|||||||
- win32paramdlg: dialog size now adjusted to support larger label text
|
- win32paramdlg: dialog size now adjusted to support larger label text
|
||||||
|
|
||||||
- SF patches applied
|
- SF patches applied
|
||||||
|
[3370604] Ctrl-Break support for the bochs BIOS by Nikolay Nikolov
|
||||||
[3302668] VMX preemption timer by Jianan Hao
|
[3302668] VMX preemption timer by Jianan Hao
|
||||||
[3327510] Fix wrong address translation in debugger by Jianan Hao
|
[3327510] Fix wrong address translation in debugger by Jianan Hao
|
||||||
[3323758] Ctrl-Break support for the Win32 gui by Nikolay Nikolov
|
[3323758] Ctrl-Break support for the Win32 gui by Nikolay Nikolov
|
||||||
@ -120,6 +121,7 @@ Bochs repository moved to the SVN version control !
|
|||||||
[3190995] add eth backend based on Slirp by Heikki Lindholm
|
[3190995] add eth backend based on Slirp by Heikki Lindholm
|
||||||
|
|
||||||
- these S.F. bugs were closed/fixed
|
- these S.F. bugs were closed/fixed
|
||||||
|
[3062054] Problems with BIOS pointing device services (int 15h)
|
||||||
[3277639] incompatible colours in palette
|
[3277639] incompatible colours in palette
|
||||||
[1788739] Abort on large memory setting
|
[1788739] Abort on large memory setting
|
||||||
[3012207] Int 13h FN 48h incorrect return values
|
[3012207] Int 13h FN 48h incorrect return values
|
||||||
|
@ -4257,7 +4257,7 @@ BX_DEBUG_INT15("case 1 or 5:\n");
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mouse_flags_2 = read_byte(ebda_seg, &EbdaData->mouse_flag2);
|
mouse_flags_2 = read_byte(ebda_seg, &EbdaData->mouse_flag2);
|
||||||
mouse_flags_2 = (mouse_flags_2 & 0x00) | regs.u.r8.bh;
|
mouse_flags_2 = (mouse_flags_2 & 0xF8) | regs.u.r8.bh;
|
||||||
mouse_flags_1 = 0x00;
|
mouse_flags_1 = 0x00;
|
||||||
write_byte(ebda_seg, &EbdaData->mouse_flag1, mouse_flags_1);
|
write_byte(ebda_seg, &EbdaData->mouse_flag1, mouse_flags_1);
|
||||||
write_byte(ebda_seg, &EbdaData->mouse_flag2, mouse_flags_2);
|
write_byte(ebda_seg, &EbdaData->mouse_flag2, mouse_flags_2);
|
||||||
@ -5110,16 +5110,37 @@ int09_function(DI, SI, BP, SP, BX, DX, CX, AX)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x46: /* Scroll Lock press */
|
case 0x46: /* Scroll Lock or Ctrl-Break press */
|
||||||
mf2_flags |= 0x10;
|
if ((mf2_state & 0x02) || (!(mf2_state & 0x10) && (shift_flags & 0x04))) {
|
||||||
write_byte(0x0040, 0x18, mf2_flags);
|
/* Ctrl-Break press */
|
||||||
shift_flags ^= 0x10;
|
mf2_state &= ~0x02;
|
||||||
write_byte(0x0040, 0x17, shift_flags);
|
write_byte(0x0040, 0x96, mf2_state);
|
||||||
|
write_byte(0x0040, 0x71, 0x80);
|
||||||
|
write_word(0x0040, 0x001C, read_word(0x0040, 0x001A));
|
||||||
|
|
||||||
|
ASM_START
|
||||||
|
int #0x1B
|
||||||
|
ASM_END
|
||||||
|
|
||||||
|
enqueue_key(0, 0);
|
||||||
|
} else {
|
||||||
|
/* Scroll Lock press */
|
||||||
|
mf2_flags |= 0x10;
|
||||||
|
write_byte(0x0040, 0x18, mf2_flags);
|
||||||
|
shift_flags ^= 0x10;
|
||||||
|
write_byte(0x0040, 0x17, shift_flags);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xc6: /* Scroll Lock release */
|
case 0xc6: /* Scroll Lock or Ctrl-Break release */
|
||||||
mf2_flags &= ~0x10;
|
if ((mf2_state & 0x02) || (!(mf2_state & 0x10) && (shift_flags & 0x04))) {
|
||||||
write_byte(0x0040, 0x18, mf2_flags);
|
/* Ctrl-Break release */
|
||||||
|
/* nothing to do */
|
||||||
|
} else {
|
||||||
|
/* Scroll Lock release */
|
||||||
|
mf2_flags &= ~0x10;
|
||||||
|
write_byte(0x0040, 0x18, mf2_flags);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user