Added numlock/capslock state checks on startup of dosbox
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2049
This commit is contained in:
parent
767a418daa
commit
9df1cb8253
2 changed files with 21 additions and 5 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: sdlmain.cpp,v 1.80 2004-10-02 11:31:47 qbix79 Exp $ */
|
||||
/* $Id: sdlmain.cpp,v 1.81 2004-11-09 21:35:50 qbix79 Exp $ */
|
||||
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
|
@ -194,6 +194,9 @@ static SDL_Block sdl;
|
|||
static void CaptureMouse(void);
|
||||
|
||||
extern char * RunningProgram;
|
||||
//Globals for keyboard initialisation
|
||||
bool startup_state_numlock=false;
|
||||
bool startup_state_capslock=false;
|
||||
void GFX_SetTitle(Bits cycles,Bits frameskip,bool paused){
|
||||
char title[200]={0};
|
||||
static Bits internal_cycles=0;
|
||||
|
@ -825,7 +828,7 @@ static void GUI_StartUp(Section * sec) {
|
|||
sdl.desktop.height=768;
|
||||
#endif
|
||||
}
|
||||
sdl.mouse.autoenable=section->Get_bool("autolock");
|
||||
sdl.mouse.autoenable=section->Get_bool("autolock");
|
||||
sdl.mouse.autolock=false;
|
||||
sdl.mouse.sensitivity=section->Get_int("sensitivity");
|
||||
const char * output=section->Get_string("output");
|
||||
|
@ -893,6 +896,10 @@ static void GUI_StartUp(Section * sec) {
|
|||
#else
|
||||
MAPPER_AddHandler(PauseDOSBox,MK_pause,0,"pause","Pause");
|
||||
#endif
|
||||
/* Get Keyboard state of numlock and capslock */
|
||||
SDLMod keystate = SDL_GetModState();
|
||||
if(keystate&KMOD_NUM) startup_state_numlock = true;
|
||||
if(keystate&KMOD_CAPS) startup_state_capslock = true;
|
||||
}
|
||||
|
||||
void Mouse_AutoLock(bool enable) {
|
||||
|
|
|
@ -438,17 +438,26 @@ static Bitu INT16_Handler(void) {
|
|||
return CBRET_NONE;
|
||||
}
|
||||
|
||||
//Keyboard initialisation. src/gui/sdlmain.cpp
|
||||
extern bool startup_state_numlock;
|
||||
extern bool startup_state_capslock;
|
||||
|
||||
static void InitBiosSegment(void) {
|
||||
/* Setup the variables for keyboard in the bios data segment */
|
||||
mem_writew(BIOS_KEYBOARD_BUFFER_START,0x1e);
|
||||
mem_writew(BIOS_KEYBOARD_BUFFER_END,0x3e);
|
||||
mem_writew(BIOS_KEYBOARD_BUFFER_HEAD,0x1e);
|
||||
mem_writew(BIOS_KEYBOARD_BUFFER_TAIL,0x1e);
|
||||
mem_writeb(BIOS_KEYBOARD_FLAGS1,0);
|
||||
Bit8u flag1 = 0;
|
||||
Bit8u leds = 16; /* Ack recieved */
|
||||
if(startup_state_capslock) { flag1|=0x40; leds|=0x04;}
|
||||
if(startup_state_numlock){ flag1|=0x20; leds|=0x02;}
|
||||
mem_writeb(BIOS_KEYBOARD_FLAGS1,flag1);
|
||||
mem_writeb(BIOS_KEYBOARD_FLAGS2,0);
|
||||
mem_writeb(BIOS_KEYBOARD_FLAGS3,16); /* Enhanced keyboard installed */
|
||||
mem_writeb(BIOS_KEYBOARD_FLAGS3,16); /* Enhanced keyboard installed */
|
||||
mem_writeb(BIOS_KEYBOARD_TOKEN,0);
|
||||
mem_writeb(BIOS_KEYBOARD_LEDS,16);
|
||||
mem_writeb(BIOS_KEYBOARD_LEDS,leds);
|
||||
|
||||
}
|
||||
|
||||
void BIOS_SetupKeyboard(void) {
|
||||
|
|
Loading…
Add table
Reference in a new issue