1
0
Fork 0

add dos keyboard layout support

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2715
This commit is contained in:
Sebastian Strohhäcker 2006-10-27 13:37:14 +00:00
parent 712a055b7b
commit 76478e8cec
12 changed files with 3127 additions and 13 deletions

View file

@ -101,6 +101,9 @@
#define BIOS_VIDEO_SAVEPTR 0x4a8
/* maximum of scancodes handled by keyboard bios routines */
#define MAX_SCAN_CODE 0x58
/* The Section handling Bios Disk Access */
#define BIOS_MAX_DISK 10
@ -170,4 +173,8 @@ void INT2F_StartUp(void);
void INT33_StartUp(void);
void INT13_StartUp(void);
bool BIOS_AddKeyToBuffer(Bit16u code);
void INT10_ReloadRomFonts();
#endif

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: dos_inc.h,v 1.61 2006-06-30 12:47:06 c2woody Exp $ */
/* $Id: dos_inc.h,v 1.62 2006-10-27 13:37:13 c2woody Exp $ */
#ifndef DOSBOX_DOS_INC_H
#define DOSBOX_DOS_INC_H
@ -187,6 +187,20 @@ void DOS_SetupTables(void);
/* Internal DOS Setup Programs */
void DOS_SetupPrograms(void);
/* Initialize Keyboard Layout */
void DOS_KeyboardLayout_Init(Section* sec);
bool DOS_LayoutKey(Bitu key, Bit8u flags1, Bit8u flags2, Bit8u flags3);
enum {
KEYB_NOERROR=0,
KEYB_FILENOTFOUND,
KEYB_INVALIDFILE,
KEYB_LAYOUTNOTFOUND,
KEYB_INVALIDCPFILE
};
INLINE Bit16u long2para(Bit32u size) {
if (size>0xFFFF0) return 0xffff;
if (size&0xf) return (Bit16u)((size>>4)+1);
@ -605,6 +619,7 @@ struct DOS_Block {
RealPt dcbs;
Bit8u* country;//Will be copied to dos memory. resides in real mem
} tables;
Bit16u loaded_codepage;
};
extern DOS_Block dos;