CP857 mod

This commit is contained in:
Wengier 2020-07-30 10:48:44 -04:00
parent 15870cb7bf
commit a9c954cb41
4 changed files with 39 additions and 38 deletions

View File

@ -1,9 +1,9 @@
/* single-byte charset to unicode. 0x0000 means no mapping */
const uint16_t cp857_to_unicode[256] = {
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, /* 0x00-0x07 */
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f, /* 0x08-0x0F */
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, /* 0x10-0x17 */
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f, /* 0x18-0x1F */
0x0000,0x263a,0x263b,0x2665,0x2666,0x2663,0x2660,0x2022, /* 0x00-0x07 */
0x25d8,0x25cb,0x25d9,0x2642,0x2640,0x266a,0x266b,0x263c, /* 0x08-0x0F */
0x25ba,0x25c4,0x2195,0x203c,0x00b6,0x00a7,0x25ac,0x21a8, /* 0x10-0x17 */
0x2191,0x2193,0x2192,0x2190,0x221f,0x2194,0x25b2,0x25bc, /* 0x18-0x1F */
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, /* 0x20-0x27 */
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, /* 0x28-0x2F */
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, /* 0x30-0x37 */

View File

@ -15,38 +15,39 @@
#
# The entries are in cp857_DOSTurkish order
#
# DOSBox-X: This has been modified to reflect the actual character codes on IBM PC MS-DOS CP437
0x00 0x0000 #NULL
0x01 0x0001 #START OF HEADING
0x02 0x0002 #START OF TEXT
0x03 0x0003 #END OF TEXT
0x04 0x0004 #END OF TRANSMISSION
0x05 0x0005 #ENQUIRY
0x06 0x0006 #ACKNOWLEDGE
0x07 0x0007 #BELL
0x08 0x0008 #BACKSPACE
0x09 0x0009 #HORIZONTAL TABULATION
0x0a 0x000a #LINE FEED
0x0b 0x000b #VERTICAL TABULATION
0x0c 0x000c #FORM FEED
0x0d 0x000d #CARRIAGE RETURN
0x0e 0x000e #SHIFT OUT
0x0f 0x000f #SHIFT IN
0x10 0x0010 #DATA LINK ESCAPE
0x11 0x0011 #DEVICE CONTROL ONE
0x12 0x0012 #DEVICE CONTROL TWO
0x13 0x0013 #DEVICE CONTROL THREE
0x14 0x0014 #DEVICE CONTROL FOUR
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
0x16 0x0016 #SYNCHRONOUS IDLE
0x17 0x0017 #END OF TRANSMISSION BLOCK
0x18 0x0018 #CANCEL
0x19 0x0019 #END OF MEDIUM
0x1a 0x001a #SUBSTITUTE
0x1b 0x001b #ESCAPE
0x1c 0x001c #FILE SEPARATOR
0x1d 0x001d #GROUP SEPARATOR
0x1e 0x001e #RECORD SEPARATOR
0x1f 0x001f #UNIT SEPARATOR
0x01 0x263A #START OF HEADING
0x02 0x263B #START OF TEXT
0x03 0x2665 #END OF TEXT
0x04 0x2666 #END OF TRANSMISSION
0x05 0x2663 #ENQUIRY
0x06 0x2660 #ACKNOWLEDGE
0x07 0x2022 #BELL
0x08 0x25D8 #BACKSPACE
0x09 0x25CB #HORIZONTAL TABULATION
0x0a 0x25D9 #LINE FEED
0x0b 0x2642 #VERTICAL TABULATION
0x0c 0x2640 #FORM FEED
0x0d 0x266A #CARRIAGE RETURN
0x0e 0x266B #SHIFT OUT
0x0f 0x263C #SHIFT IN
0x10 0x25BA #DATA LINK ESCAPE
0x11 0x25C4 #DEVICE CONTROL ONE
0x12 0x2195 #DEVICE CONTROL TWO
0x13 0x203C #DEVICE CONTROL THREE
0x14 0x00B6 #DEVICE CONTROL FOUR
0x15 0x00A7 #NEGATIVE ACKNOWLEDGE
0x16 0x25AC #SYNCHRONOUS IDLE
0x17 0x21A8 #END OF TRANSMISSION BLOCK
0x18 0x2191 #CANCEL
0x19 0x2193 #END OF MEDIUM
0x1a 0x2192 #SUBSTITUTE
0x1b 0x2190 #ESCAPE
0x1c 0x221F #FILE SEPARATOR
0x1d 0x2194 #GROUP SEPARATOR
0x1e 0x25B2 #RECORD SEPARATOR
0x1f 0x25BC #UNIT SEPARATOR
0x20 0x0020 #SPACE
0x21 0x0021 #EXCLAMATION MARK
0x22 0x0022 #QUOTATION MARK

View File

@ -1875,7 +1875,7 @@ static Bitu DOS_21Handler(void) {
mem_writeb(data + 0x00,reg_al);
mem_writew(data + 0x01,0x26);
if (!countryNo) {
#ifdef WIN32
#if defined(WIN32)
char buffer[128];
if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ICOUNTRY, buffer, 128))
{
@ -2706,7 +2706,7 @@ public:
dos.breakcheck=true;
else if (!strcasecmp(dosbreak, "off"))
dos.breakcheck=false;
#ifdef WIN32
#if defined(WIN32)
char *numlock = (char *)config_section->Get_string("numlock");
if ((!strcasecmp(numlock, "off")&&startup_state_numlock) || (!strcasecmp(numlock, "on")&&!startup_state_numlock))
SetNumLock();

View File

@ -478,7 +478,7 @@ void DOS_Shell::Run(void) {
if (machine == MCH_HERC || machine == MCH_MDA) WriteOut(MSG_Get("SHELL_STARTUP_HERC"));
WriteOut(MSG_Get("SHELL_STARTUP_END"));
if (!countryNo) {
#if defined(WIN32)
#if defined(WIN32)
char buffer[128];
if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ICOUNTRY, buffer, 128)) {
countryNo = Bit16u(atoi(buffer));