add code pages

This commit is contained in:
Wengier 2021-12-11 03:56:10 -05:00
parent 4488202db2
commit 11d84f6a7c
20 changed files with 686 additions and 12 deletions

View File

@ -11,6 +11,8 @@
- Added config options (in "ethernet, slirp" section)
"tcp_port_forwards" and "tcp_port_forwards" for port
forwarding when using the Slirp backend. (kcgen)
- Added code pages 737 (Greek) and 775 (Baltic) for
the guest-to-host code page conversions. (Wengier)
- Added UTF8 and UTF16 commands to convert UTF-8 and
UTF-16 text to view in the current code page. For
example, the command "UTF8 < UTF8TEXT.TXT" will

274
contrib/mappings/CP737.TXT Normal file
View File

@ -0,0 +1,274 @@
#
# Name: cp737_DOSGreek to Unicode table
# Unicode version: 2.0
# Table version: 2.00
# Table format: Format A
# Date: 04/24/96
# Contact: Shawn.Steele@microsoft.com
#
# General notes: none
#
# Format: Three tab-separated columns
# Column #1 is the cp737_DOSGreek code (in hex)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 is the Unicode name (follows a comment sign, '#')
#
# The entries are in cp737_DOSGreek order
#
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
0x20 0x0020 #SPACE
0x21 0x0021 #EXCLAMATION MARK
0x22 0x0022 #QUOTATION MARK
0x23 0x0023 #NUMBER SIGN
0x24 0x0024 #DOLLAR SIGN
0x25 0x0025 #PERCENT SIGN
0x26 0x0026 #AMPERSAND
0x27 0x0027 #APOSTROPHE
0x28 0x0028 #LEFT PARENTHESIS
0x29 0x0029 #RIGHT PARENTHESIS
0x2a 0x002a #ASTERISK
0x2b 0x002b #PLUS SIGN
0x2c 0x002c #COMMA
0x2d 0x002d #HYPHEN-MINUS
0x2e 0x002e #FULL STOP
0x2f 0x002f #SOLIDUS
0x30 0x0030 #DIGIT ZERO
0x31 0x0031 #DIGIT ONE
0x32 0x0032 #DIGIT TWO
0x33 0x0033 #DIGIT THREE
0x34 0x0034 #DIGIT FOUR
0x35 0x0035 #DIGIT FIVE
0x36 0x0036 #DIGIT SIX
0x37 0x0037 #DIGIT SEVEN
0x38 0x0038 #DIGIT EIGHT
0x39 0x0039 #DIGIT NINE
0x3a 0x003a #COLON
0x3b 0x003b #SEMICOLON
0x3c 0x003c #LESS-THAN SIGN
0x3d 0x003d #EQUALS SIGN
0x3e 0x003e #GREATER-THAN SIGN
0x3f 0x003f #QUESTION MARK
0x40 0x0040 #COMMERCIAL AT
0x41 0x0041 #LATIN CAPITAL LETTER A
0x42 0x0042 #LATIN CAPITAL LETTER B
0x43 0x0043 #LATIN CAPITAL LETTER C
0x44 0x0044 #LATIN CAPITAL LETTER D
0x45 0x0045 #LATIN CAPITAL LETTER E
0x46 0x0046 #LATIN CAPITAL LETTER F
0x47 0x0047 #LATIN CAPITAL LETTER G
0x48 0x0048 #LATIN CAPITAL LETTER H
0x49 0x0049 #LATIN CAPITAL LETTER I
0x4a 0x004a #LATIN CAPITAL LETTER J
0x4b 0x004b #LATIN CAPITAL LETTER K
0x4c 0x004c #LATIN CAPITAL LETTER L
0x4d 0x004d #LATIN CAPITAL LETTER M
0x4e 0x004e #LATIN CAPITAL LETTER N
0x4f 0x004f #LATIN CAPITAL LETTER O
0x50 0x0050 #LATIN CAPITAL LETTER P
0x51 0x0051 #LATIN CAPITAL LETTER Q
0x52 0x0052 #LATIN CAPITAL LETTER R
0x53 0x0053 #LATIN CAPITAL LETTER S
0x54 0x0054 #LATIN CAPITAL LETTER T
0x55 0x0055 #LATIN CAPITAL LETTER U
0x56 0x0056 #LATIN CAPITAL LETTER V
0x57 0x0057 #LATIN CAPITAL LETTER W
0x58 0x0058 #LATIN CAPITAL LETTER X
0x59 0x0059 #LATIN CAPITAL LETTER Y
0x5a 0x005a #LATIN CAPITAL LETTER Z
0x5b 0x005b #LEFT SQUARE BRACKET
0x5c 0x005c #REVERSE SOLIDUS
0x5d 0x005d #RIGHT SQUARE BRACKET
0x5e 0x005e #CIRCUMFLEX ACCENT
0x5f 0x005f #LOW LINE
0x60 0x0060 #GRAVE ACCENT
0x61 0x0061 #LATIN SMALL LETTER A
0x62 0x0062 #LATIN SMALL LETTER B
0x63 0x0063 #LATIN SMALL LETTER C
0x64 0x0064 #LATIN SMALL LETTER D
0x65 0x0065 #LATIN SMALL LETTER E
0x66 0x0066 #LATIN SMALL LETTER F
0x67 0x0067 #LATIN SMALL LETTER G
0x68 0x0068 #LATIN SMALL LETTER H
0x69 0x0069 #LATIN SMALL LETTER I
0x6a 0x006a #LATIN SMALL LETTER J
0x6b 0x006b #LATIN SMALL LETTER K
0x6c 0x006c #LATIN SMALL LETTER L
0x6d 0x006d #LATIN SMALL LETTER M
0x6e 0x006e #LATIN SMALL LETTER N
0x6f 0x006f #LATIN SMALL LETTER O
0x70 0x0070 #LATIN SMALL LETTER P
0x71 0x0071 #LATIN SMALL LETTER Q
0x72 0x0072 #LATIN SMALL LETTER R
0x73 0x0073 #LATIN SMALL LETTER S
0x74 0x0074 #LATIN SMALL LETTER T
0x75 0x0075 #LATIN SMALL LETTER U
0x76 0x0076 #LATIN SMALL LETTER V
0x77 0x0077 #LATIN SMALL LETTER W
0x78 0x0078 #LATIN SMALL LETTER X
0x79 0x0079 #LATIN SMALL LETTER Y
0x7a 0x007a #LATIN SMALL LETTER Z
0x7b 0x007b #LEFT CURLY BRACKET
0x7c 0x007c #VERTICAL LINE
0x7d 0x007d #RIGHT CURLY BRACKET
0x7e 0x007e #TILDE
0x7f 0x007f #DELETE
0x80 0x0391 #GREEK CAPITAL LETTER ALPHA
0x81 0x0392 #GREEK CAPITAL LETTER BETA
0x82 0x0393 #GREEK CAPITAL LETTER GAMMA
0x83 0x0394 #GREEK CAPITAL LETTER DELTA
0x84 0x0395 #GREEK CAPITAL LETTER EPSILON
0x85 0x0396 #GREEK CAPITAL LETTER ZETA
0x86 0x0397 #GREEK CAPITAL LETTER ETA
0x87 0x0398 #GREEK CAPITAL LETTER THETA
0x88 0x0399 #GREEK CAPITAL LETTER IOTA
0x89 0x039a #GREEK CAPITAL LETTER KAPPA
0x8a 0x039b #GREEK CAPITAL LETTER LAMDA
0x8b 0x039c #GREEK CAPITAL LETTER MU
0x8c 0x039d #GREEK CAPITAL LETTER NU
0x8d 0x039e #GREEK CAPITAL LETTER XI
0x8e 0x039f #GREEK CAPITAL LETTER OMICRON
0x8f 0x03a0 #GREEK CAPITAL LETTER PI
0x90 0x03a1 #GREEK CAPITAL LETTER RHO
0x91 0x03a3 #GREEK CAPITAL LETTER SIGMA
0x92 0x03a4 #GREEK CAPITAL LETTER TAU
0x93 0x03a5 #GREEK CAPITAL LETTER UPSILON
0x94 0x03a6 #GREEK CAPITAL LETTER PHI
0x95 0x03a7 #GREEK CAPITAL LETTER CHI
0x96 0x03a8 #GREEK CAPITAL LETTER PSI
0x97 0x03a9 #GREEK CAPITAL LETTER OMEGA
0x98 0x03b1 #GREEK SMALL LETTER ALPHA
0x99 0x03b2 #GREEK SMALL LETTER BETA
0x9a 0x03b3 #GREEK SMALL LETTER GAMMA
0x9b 0x03b4 #GREEK SMALL LETTER DELTA
0x9c 0x03b5 #GREEK SMALL LETTER EPSILON
0x9d 0x03b6 #GREEK SMALL LETTER ZETA
0x9e 0x03b7 #GREEK SMALL LETTER ETA
0x9f 0x03b8 #GREEK SMALL LETTER THETA
0xa0 0x03b9 #GREEK SMALL LETTER IOTA
0xa1 0x03ba #GREEK SMALL LETTER KAPPA
0xa2 0x03bb #GREEK SMALL LETTER LAMDA
0xa3 0x03bc #GREEK SMALL LETTER MU
0xa4 0x03bd #GREEK SMALL LETTER NU
0xa5 0x03be #GREEK SMALL LETTER XI
0xa6 0x03bf #GREEK SMALL LETTER OMICRON
0xa7 0x03c0 #GREEK SMALL LETTER PI
0xa8 0x03c1 #GREEK SMALL LETTER RHO
0xa9 0x03c3 #GREEK SMALL LETTER SIGMA
0xaa 0x03c2 #GREEK SMALL LETTER FINAL SIGMA
0xab 0x03c4 #GREEK SMALL LETTER TAU
0xac 0x03c5 #GREEK SMALL LETTER UPSILON
0xad 0x03c6 #GREEK SMALL LETTER PHI
0xae 0x03c7 #GREEK SMALL LETTER CHI
0xaf 0x03c8 #GREEK SMALL LETTER PSI
0xb0 0x2591 #LIGHT SHADE
0xb1 0x2592 #MEDIUM SHADE
0xb2 0x2593 #DARK SHADE
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
0xdb 0x2588 #FULL BLOCK
0xdc 0x2584 #LOWER HALF BLOCK
0xdd 0x258c #LEFT HALF BLOCK
0xde 0x2590 #RIGHT HALF BLOCK
0xdf 0x2580 #UPPER HALF BLOCK
0xe0 0x03c9 #GREEK SMALL LETTER OMEGA
0xe1 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS
0xe2 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS
0xe3 0x03ae #GREEK SMALL LETTER ETA WITH TONOS
0xe4 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA
0xe5 0x03af #GREEK SMALL LETTER IOTA WITH TONOS
0xe6 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS
0xe7 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS
0xe8 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA
0xe9 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS
0xea 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS
0xeb 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS
0xec 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS
0xed 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS
0xee 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS
0xef 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS
0xf0 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS
0xf1 0x00b1 #PLUS-MINUS SIGN
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
0xf3 0x2264 #LESS-THAN OR EQUAL TO
0xf4 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
0xf5 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
0xf6 0x00f7 #DIVISION SIGN
0xf7 0x2248 #ALMOST EQUAL TO
0xf8 0x00b0 #DEGREE SIGN
0xf9 0x2219 #BULLET OPERATOR
0xfa 0x00b7 #MIDDLE DOT
0xfb 0x221a #SQUARE ROOT
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
0xfd 0x00b2 #SUPERSCRIPT TWO
0xfe 0x25a0 #BLACK SQUARE
0xff 0x00a0 #NO-BREAK SPACE


275
contrib/mappings/CP775.TXT Normal file
View File

@ -0,0 +1,275 @@
#
# Name: cp775_DOSBaltRim to Unicode table
# Unicode version: 2.0
# Table version: 2.00
# Table format: Format A
# Date: 04/24/96
# Contact: Shawn.Steele@microsoft.com
#
# General notes: none
#
# Format: Three tab-separated columns
# Column #1 is the cp775_DOSBaltRim code (in hex)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 is the Unicode name (follows a comment sign, '#')
#
# The entries are in cp775_DOSBaltRim order
#
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
0x20 0x0020 #SPACE
0x21 0x0021 #EXCLAMATION MARK
0x22 0x0022 #QUOTATION MARK
0x23 0x0023 #NUMBER SIGN
0x24 0x0024 #DOLLAR SIGN
0x25 0x0025 #PERCENT SIGN
0x26 0x0026 #AMPERSAND
0x27 0x0027 #APOSTROPHE
0x28 0x0028 #LEFT PARENTHESIS
0x29 0x0029 #RIGHT PARENTHESIS
0x2a 0x002a #ASTERISK
0x2b 0x002b #PLUS SIGN
0x2c 0x002c #COMMA
0x2d 0x002d #HYPHEN-MINUS
0x2e 0x002e #FULL STOP
0x2f 0x002f #SOLIDUS
0x30 0x0030 #DIGIT ZERO
0x31 0x0031 #DIGIT ONE
0x32 0x0032 #DIGIT TWO
0x33 0x0033 #DIGIT THREE
0x34 0x0034 #DIGIT FOUR
0x35 0x0035 #DIGIT FIVE
0x36 0x0036 #DIGIT SIX
0x37 0x0037 #DIGIT SEVEN
0x38 0x0038 #DIGIT EIGHT
0x39 0x0039 #DIGIT NINE
0x3a 0x003a #COLON
0x3b 0x003b #SEMICOLON
0x3c 0x003c #LESS-THAN SIGN
0x3d 0x003d #EQUALS SIGN
0x3e 0x003e #GREATER-THAN SIGN
0x3f 0x003f #QUESTION MARK
0x40 0x0040 #COMMERCIAL AT
0x41 0x0041 #LATIN CAPITAL LETTER A
0x42 0x0042 #LATIN CAPITAL LETTER B
0x43 0x0043 #LATIN CAPITAL LETTER C
0x44 0x0044 #LATIN CAPITAL LETTER D
0x45 0x0045 #LATIN CAPITAL LETTER E
0x46 0x0046 #LATIN CAPITAL LETTER F
0x47 0x0047 #LATIN CAPITAL LETTER G
0x48 0x0048 #LATIN CAPITAL LETTER H
0x49 0x0049 #LATIN CAPITAL LETTER I
0x4a 0x004a #LATIN CAPITAL LETTER J
0x4b 0x004b #LATIN CAPITAL LETTER K
0x4c 0x004c #LATIN CAPITAL LETTER L
0x4d 0x004d #LATIN CAPITAL LETTER M
0x4e 0x004e #LATIN CAPITAL LETTER N
0x4f 0x004f #LATIN CAPITAL LETTER O
0x50 0x0050 #LATIN CAPITAL LETTER P
0x51 0x0051 #LATIN CAPITAL LETTER Q
0x52 0x0052 #LATIN CAPITAL LETTER R
0x53 0x0053 #LATIN CAPITAL LETTER S
0x54 0x0054 #LATIN CAPITAL LETTER T
0x55 0x0055 #LATIN CAPITAL LETTER U
0x56 0x0056 #LATIN CAPITAL LETTER V
0x57 0x0057 #LATIN CAPITAL LETTER W
0x58 0x0058 #LATIN CAPITAL LETTER X
0x59 0x0059 #LATIN CAPITAL LETTER Y
0x5a 0x005a #LATIN CAPITAL LETTER Z
0x5b 0x005b #LEFT SQUARE BRACKET
0x5c 0x005c #REVERSE SOLIDUS
0x5d 0x005d #RIGHT SQUARE BRACKET
0x5e 0x005e #CIRCUMFLEX ACCENT
0x5f 0x005f #LOW LINE
0x60 0x0060 #GRAVE ACCENT
0x61 0x0061 #LATIN SMALL LETTER A
0x62 0x0062 #LATIN SMALL LETTER B
0x63 0x0063 #LATIN SMALL LETTER C
0x64 0x0064 #LATIN SMALL LETTER D
0x65 0x0065 #LATIN SMALL LETTER E
0x66 0x0066 #LATIN SMALL LETTER F
0x67 0x0067 #LATIN SMALL LETTER G
0x68 0x0068 #LATIN SMALL LETTER H
0x69 0x0069 #LATIN SMALL LETTER I
0x6a 0x006a #LATIN SMALL LETTER J
0x6b 0x006b #LATIN SMALL LETTER K
0x6c 0x006c #LATIN SMALL LETTER L
0x6d 0x006d #LATIN SMALL LETTER M
0x6e 0x006e #LATIN SMALL LETTER N
0x6f 0x006f #LATIN SMALL LETTER O
0x70 0x0070 #LATIN SMALL LETTER P
0x71 0x0071 #LATIN SMALL LETTER Q
0x72 0x0072 #LATIN SMALL LETTER R
0x73 0x0073 #LATIN SMALL LETTER S
0x74 0x0074 #LATIN SMALL LETTER T
0x75 0x0075 #LATIN SMALL LETTER U
0x76 0x0076 #LATIN SMALL LETTER V
0x77 0x0077 #LATIN SMALL LETTER W
0x78 0x0078 #LATIN SMALL LETTER X
0x79 0x0079 #LATIN SMALL LETTER Y
0x7a 0x007a #LATIN SMALL LETTER Z
0x7b 0x007b #LEFT CURLY BRACKET
0x7c 0x007c #VERTICAL LINE
0x7d 0x007d #RIGHT CURLY BRACKET
0x7e 0x007e #TILDE
0x7f 0x007f #DELETE
0x80 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
0x83 0x0101 #LATIN SMALL LETTER A WITH MACRON
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
0x85 0x0123 #LATIN SMALL LETTER G WITH CEDILLA
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
0x87 0x0107 #LATIN SMALL LETTER C WITH ACUTE
0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE
0x89 0x0113 #LATIN SMALL LETTER E WITH MACRON
0x8a 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA
0x8b 0x0157 #LATIN SMALL LETTER R WITH CEDILLA
0x8c 0x012b #LATIN SMALL LETTER I WITH MACRON
0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
0x91 0x00e6 #LATIN SMALL LIGATURE AE
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
0x93 0x014d #LATIN SMALL LETTER O WITH MACRON
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
0x95 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA
0x96 0x00a2 #CENT SIGN
0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE
0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
0x9c 0x00a3 #POUND SIGN
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
0x9e 0x00d7 #MULTIPLICATION SIGN
0x9f 0x00a4 #CURRENCY SIGN
0xa0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON
0xa1 0x012a #LATIN CAPITAL LETTER I WITH MACRON
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
0xa3 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xa4 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE
0xa5 0x017a #LATIN SMALL LETTER Z WITH ACUTE
0xa6 0x201d #RIGHT DOUBLE QUOTATION MARK
0xa7 0x00a6 #BROKEN BAR
0xa8 0x00a9 #COPYRIGHT SIGN
0xa9 0x00ae #REGISTERED SIGN
0xaa 0x00ac #NOT SIGN
0xab 0x00bd #VULGAR FRACTION ONE HALF
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
0xad 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xb0 0x2591 #LIGHT SHADE
0xb1 0x2592 #MEDIUM SHADE
0xb2 0x2593 #DARK SHADE
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
0xb5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
0xb6 0x010c #LATIN CAPITAL LETTER C WITH CARON
0xb7 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
0xb8 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
0xbd 0x012e #LATIN CAPITAL LETTER I WITH OGONEK
0xbe 0x0160 #LATIN CAPITAL LETTER S WITH CARON
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0xc6 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK
0xc7 0x016a #LATIN CAPITAL LETTER U WITH MACRON
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xcf 0x017d #LATIN CAPITAL LETTER Z WITH CARON
0xd0 0x0105 #LATIN SMALL LETTER A WITH OGONEK
0xd1 0x010d #LATIN SMALL LETTER C WITH CARON
0xd2 0x0119 #LATIN SMALL LETTER E WITH OGONEK
0xd3 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE
0xd4 0x012f #LATIN SMALL LETTER I WITH OGONEK
0xd5 0x0161 #LATIN SMALL LETTER S WITH CARON
0xd6 0x0173 #LATIN SMALL LETTER U WITH OGONEK
0xd7 0x016b #LATIN SMALL LETTER U WITH MACRON
0xd8 0x017e #LATIN SMALL LETTER Z WITH CARON
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
0xdb 0x2588 #FULL BLOCK
0xdc 0x2584 #LOWER HALF BLOCK
0xdd 0x258c #LEFT HALF BLOCK
0xde 0x2590 #RIGHT HALF BLOCK
0xdf 0x2580 #UPPER HALF BLOCK
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN)
0xe2 0x014c #LATIN CAPITAL LETTER O WITH MACRON
0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE
0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
0xe6 0x00b5 #MICRO SIGN
0xe7 0x0144 #LATIN SMALL LETTER N WITH ACUTE
0xe8 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA
0xe9 0x0137 #LATIN SMALL LETTER K WITH CEDILLA
0xea 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA
0xeb 0x013c #LATIN SMALL LETTER L WITH CEDILLA
0xec 0x0146 #LATIN SMALL LETTER N WITH CEDILLA
0xed 0x0112 #LATIN CAPITAL LETTER E WITH MACRON
0xee 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA
0xef 0x2019 #RIGHT SINGLE QUOTATION MARK
0xf0 0x00ad #SOFT HYPHEN
0xf1 0x00b1 #PLUS-MINUS SIGN
0xf2 0x201c #LEFT DOUBLE QUOTATION MARK
0xf3 0x00be #VULGAR FRACTION THREE QUARTERS
0xf4 0x00b6 #PILCROW SIGN
0xf5 0x00a7 #SECTION SIGN
0xf6 0x00f7 #DIVISION SIGN
0xf7 0x201e #DOUBLE LOW-9 QUOTATION MARK
0xf8 0x00b0 #DEGREE SIGN
0xf9 0x2219 #BULLET OPERATOR
0xfa 0x00b7 #MIDDLE DOT
0xfb 0x00b9 #SUPERSCRIPT ONE
0xfc 0x00b3 #SUPERSCRIPT THREE
0xfd 0x00b2 #SUPERSCRIPT TWO
0xfe 0x25a0 #BLACK SQUARE
0xff 0x00a0 #NO-BREAK SPACE


View File

@ -1,5 +1,7 @@
#!/bin/bash
./sb2u.pl cp437_to_unicode <CP437.TXT >../../include/cp437_uni.h || exit 1
./sb2u.pl cp737_to_unicode <CP737.TXT >../../include/cp737_uni.h || exit 1
./sb2u.pl cp775_to_unicode <CP775.TXT >../../include/cp775_uni.h || exit 1
./sb2u.pl cp808_to_unicode <CP808.TXT >../../include/cp808_uni.h || exit 1
./sb2u.pl cp850_to_unicode <CP850.TXT >../../include/cp850_uni.h || exit 1
./sb2u.pl cp852_to_unicode <CP852.TXT >../../include/cp852_uni.h || exit 1

View File

@ -2120,9 +2120,13 @@ CHCP [nnn [file]]
Supported code pages for changing in the TrueType font output:
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Also double-byte code pages including 932, 936, 949, and 950.
Windows code pages: 1250,1251,1252,1253,1254,1255,1256,1257,1258
Also double-byte code pages, including 932, 936, 949, and 950.
Customized code pages are supported by providing code page files.
.
:SHELL_CMD_CHCP_ACTIVE

View File

@ -2115,10 +2115,15 @@ CHCP [nnn]
nnn Especifica un nº de código de página.
Códigos de página compatibles para la salida de fuente TrueType:
437,808,850,852,853,855,857,858,860,861,862,863,864,865,866,869,872,874
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Páginas de códigos de Windows: 1250,1251,1252,1253,1254,1255,1256,1257,1258
También páginas de códigos de doble byte incluyendo 932,936,949,950.
Las páginas de códigos personalizadas son compatibles al proporcionar archivos de páginas de códigos.
.
:SHELL_CMD_CHCP_ACTIVE
Página de códigos activa (codepage): %d

View File

@ -2124,10 +2124,14 @@ CHCP [nnn [fichier]]
Pages de code prises en charge pour être modifiées dans la sortie
de la police TrueType :
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Pages de codes Windows: 1250,1251,1252,1253,1254,1255,1256,1257,1258
Également des pages de code à double octet, notamment 932, 936, 949 et 950.
Les pages de codes personnalisées sont prises en charge en fournissant des fichiers de pages de codes.
.
:SHELL_CMD_CHCP_ACTIVE
Page de code active : %d

View File

@ -2109,10 +2109,14 @@ CHCP [nnn [file]]
TrueType フォント出力への変更をサポートするコードページ:
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Windows コードページ: 1250,1251,1252,1253,1254,1255,1256,1257,1258
932, 936, 949, 950 等の2バイト言語のコードページもサポートします。
カスタマイズされたコードページは、コードページファイルを提供することでサポートされます。
.
:SHELL_CMD_CHCP_ACTIVE
現在のコードページ: %d

View File

@ -2122,10 +2122,14 @@ CHCP [nnn [dosya]]
TrueType yazıtipi çıktısında desteklenen kod sayfaları aşağıdaki gibidir:
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Windows kod sayfaları: 1250,1251,1252,1253,1254,1255,1256,1257,1258
Ek olarak 932, 936, 949 ve 950 numaralı çoklu bit kod sayfaları da desteklenir.
Özel kod sayfaları, kod sayfası dosyaları sağlanarak desteklenir.
.
:SHELL_CMD_CHCP_ACTIVE
Etkin kod sayfası: %d

View File

@ -2058,10 +2058,14 @@ CHCP [nnn [文件]]
TrueType 字体输出方式所支持的代码页包括:
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Windows 代码页: 1250,1251,1252,1253,1254,1255,1256,1257,1258
以及双字节代码页,包括: 932, 936, 949, 950
通过提供代码页文件支持自定义代码页.
.
:SHELL_CMD_CHCP_ACTIVE
活动的代码页: %d

View File

@ -2062,10 +2062,14 @@ CHCP [nnn [檔案]]
在 TrueType 字型輸出方式所支援變更的字碼頁包括:
437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258
437,737,775,808,850,852,853,855,857,858,860-866,869,872,874
Windows 字碼頁: 1250,1251,1252,1253,1254,1255,1256,1257,1258
以及雙位元組字碼頁, 包括: 932, 936, 949, 950
通過提供字碼頁檔案支援自訂字碼頁.
.
:SHELL_CMD_CHCP_ACTIVE
作用中的字碼頁: %d

View File

@ -2162,6 +2162,7 @@ timeout = 0
#DOSBOX-X-ADV:# but does not properly preserve CPU registers. Diagnostic function only (default off).
# keyboardlayout: Language code of the keyboard layout (or none).
# customcodepage: Set a custom code page for CHCP command and specify a SBCS code page file, following the standard SBCS code page format.
# Examples of SBCS code pages are available from the Unicode Consortium website: https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/
# dbcs: Enable DBCS table and Chinese, Japanese, Korean support for the TrueType font (TTF) output.
# CAUTION: Some software will crash without the DBCS table, including the Open Watcom installer.
#DOSBOX-X-ADV:# filenamechar: Enable DOS filename char table.

View File

@ -1044,6 +1044,7 @@ timeout = 0
# int33: Enable INT 33H for mouse support.
# keyboardlayout: Language code of the keyboard layout (or none).
# customcodepage: Set a custom code page for CHCP command and specify a SBCS code page file, following the standard SBCS code page format.
# Examples of SBCS code pages are available from the Unicode Consortium website: https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/
# dbcs: Enable DBCS table and Chinese, Japanese, Korean support for the TrueType font (TTF) output.
# CAUTION: Some software will crash without the DBCS table, including the Open Watcom installer.
# dos clipboard device enable: If enabled, a DOS device will be added for bidirectional communications with the shared clipboard.

View File

@ -2110,6 +2110,7 @@ timeout = 0
# but does not properly preserve CPU registers. Diagnostic function only (default off).
# keyboardlayout: Language code of the keyboard layout (or none).
# customcodepage: Set a custom code page for CHCP command and specify a SBCS code page file, following the standard SBCS code page format.
# Examples of SBCS code pages are available from the Unicode Consortium website: https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/
# dbcs: Enable DBCS table and Chinese, Japanese, Korean support for the TrueType font (TTF) output.
# CAUTION: Some software will crash without the DBCS table, including the Open Watcom installer.
# filenamechar: Enable DOS filename char table.

35
include/cp737_uni.h Normal file
View File

@ -0,0 +1,35 @@
/* single-byte charset to unicode. 0x0000 means no mapping */
const uint16_t cp737_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 */
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 */
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, /* 0x38-0x3F */
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0x40-0x47 */
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, /* 0x48-0x4F */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0x50-0x57 */
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, /* 0x58-0x5F */
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, /* 0x60-0x67 */
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, /* 0x68-0x6F */
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, /* 0x70-0x77 */
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, /* 0x78-0x7F */
0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398, /* 0x80-0x87 */
0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0, /* 0x88-0x8F */
0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9, /* 0x90-0x97 */
0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8, /* 0x98-0x9F */
0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0, /* 0xA0-0xA7 */
0x03c1,0x03c3,0x03c2,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8, /* 0xA8-0xAF */
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, /* 0xB0-0xB7 */
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510, /* 0xB8-0xBF */
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f, /* 0xC0-0xC7 */
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567, /* 0xC8-0xCF */
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b, /* 0xD0-0xD7 */
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580, /* 0xD8-0xDF */
0x03c9,0x03ac,0x03ad,0x03ae,0x03ca,0x03af,0x03cc,0x03cd, /* 0xE0-0xE7 */
0x03cb,0x03ce,0x0386,0x0388,0x0389,0x038a,0x038c,0x038e, /* 0xE8-0xEF */
0x038f,0x00b1,0x2265,0x2264,0x03aa,0x03ab,0x00f7,0x2248, /* 0xF0-0xF7 */
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 /* 0xF8-0xFF */
};

35
include/cp775_uni.h Normal file
View File

@ -0,0 +1,35 @@
/* single-byte charset to unicode. 0x0000 means no mapping */
const uint16_t cp775_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 */
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 */
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, /* 0x38-0x3F */
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0x40-0x47 */
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, /* 0x48-0x4F */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0x50-0x57 */
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, /* 0x58-0x5F */
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, /* 0x60-0x67 */
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, /* 0x68-0x6F */
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, /* 0x70-0x77 */
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, /* 0x78-0x7F */
0x0106,0x00fc,0x00e9,0x0101,0x00e4,0x0123,0x00e5,0x0107, /* 0x80-0x87 */
0x0142,0x0113,0x0156,0x0157,0x012b,0x0179,0x00c4,0x00c5, /* 0x88-0x8F */
0x00c9,0x00e6,0x00c6,0x014d,0x00f6,0x0122,0x00a2,0x015a, /* 0x90-0x97 */
0x015b,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x00a4, /* 0x98-0x9F */
0x0100,0x012a,0x00f3,0x017b,0x017c,0x017a,0x201d,0x00a6, /* 0xA0-0xA7 */
0x00a9,0x00ae,0x00ac,0x00bd,0x00bc,0x0141,0x00ab,0x00bb, /* 0xA8-0xAF */
0x2591,0x2592,0x2593,0x2502,0x2524,0x0104,0x010c,0x0118, /* 0xB0-0xB7 */
0x0116,0x2563,0x2551,0x2557,0x255d,0x012e,0x0160,0x2510, /* 0xB8-0xBF */
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x0172,0x016a, /* 0xC0-0xC7 */
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x017d, /* 0xC8-0xCF */
0x0105,0x010d,0x0119,0x0117,0x012f,0x0161,0x0173,0x016b, /* 0xD0-0xD7 */
0x017e,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580, /* 0xD8-0xDF */
0x00d3,0x00df,0x014c,0x0143,0x00f5,0x00d5,0x00b5,0x0144, /* 0xE0-0xE7 */
0x0136,0x0137,0x013b,0x013c,0x0146,0x0112,0x0145,0x2019, /* 0xE8-0xEF */
0x00ad,0x00b1,0x201c,0x00be,0x00b6,0x00a7,0x00f7,0x201e, /* 0xF0-0xF7 */
0x00b0,0x2219,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0 /* 0xF8-0xFF */
};

View File

@ -1538,8 +1538,8 @@ void DOS_KeyboardLayout_Init() {
static const std::set<int> supportedCodepages =
{
437, 808, 850, 852, 853, 855, 857, 858, 860, 861, 862, 863, 864, 865, 866, 869, 872, 874, 932,
936, 949, 950, 951, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258
437, 737, 775, 808, 850, 852, 853, 855, 857, 858, 860, 861, 862, 863, 864, 865, 866, 869, 872, 874,
932, 936, 949, 950, 951, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258
};
bool isSupportedCP(int cp)

View File

@ -73,6 +73,8 @@
#include "../libs/physfs/physfs_unicode.c"
#include "cp437_uni.h"
#include "cp737_uni.h"
#include "cp775_uni.h"
#include "cp808_uni.h"
#include "cp850_uni.h"
#include "cp852_uni.h"
@ -487,6 +489,10 @@ bool CodePageHostToGuestUTF16(char *d/*CROSS_LEN*/,const uint16_t *s/*CROSS_LEN*
switch (dos.loaded_codepage) {
case 437:
return String_HOST_TO_SBCS_UTF16<uint16_t>(d,s,cp437_to_unicode,sizeof(cp437_to_unicode)/sizeof(cp437_to_unicode[0]));
case 737:
return String_HOST_TO_SBCS_UTF16<uint16_t>(d,s,cp737_to_unicode,sizeof(cp737_to_unicode)/sizeof(cp737_to_unicode[0]));
case 775:
return String_HOST_TO_SBCS_UTF16<uint16_t>(d,s,cp775_to_unicode,sizeof(cp775_to_unicode)/sizeof(cp775_to_unicode[0]));
case 808:
return String_HOST_TO_SBCS_UTF16<uint16_t>(d,s,cp808_to_unicode,sizeof(cp808_to_unicode)/sizeof(cp808_to_unicode[0]));
case 850:
@ -571,6 +577,10 @@ bool CodePageHostToGuestUTF8(char *d/*CROSS_LEN*/,const char *s/*CROSS_LEN*/) {
switch (dos.loaded_codepage) {
case 437:
return String_HOST_TO_SBCS_UTF8<uint16_t>(d,s,cp437_to_unicode,sizeof(cp437_to_unicode)/sizeof(cp437_to_unicode[0]));
case 737:
return String_HOST_TO_SBCS_UTF8<uint16_t>(d,s,cp737_to_unicode,sizeof(cp737_to_unicode)/sizeof(cp737_to_unicode[0]));
case 775:
return String_HOST_TO_SBCS_UTF8<uint16_t>(d,s,cp775_to_unicode,sizeof(cp775_to_unicode)/sizeof(cp775_to_unicode[0]));
case 808:
return String_HOST_TO_SBCS_UTF8<uint16_t>(d,s,cp808_to_unicode,sizeof(cp808_to_unicode)/sizeof(cp808_to_unicode[0]));
case 850:
@ -655,6 +665,10 @@ bool CodePageGuestToHostUTF16(uint16_t *d/*CROSS_LEN*/,const char *s/*CROSS_LEN*
switch (dos.loaded_codepage) {
case 437:
return String_SBCS_TO_HOST_UTF16<uint16_t>(d,s,cp437_to_unicode,sizeof(cp437_to_unicode)/sizeof(cp437_to_unicode[0]));
case 737:
return String_SBCS_TO_HOST_UTF16<uint16_t>(d,s,cp737_to_unicode,sizeof(cp737_to_unicode)/sizeof(cp737_to_unicode[0]));
case 775:
return String_SBCS_TO_HOST_UTF16<uint16_t>(d,s,cp775_to_unicode,sizeof(cp775_to_unicode)/sizeof(cp775_to_unicode[0]));
case 808:
return String_SBCS_TO_HOST_UTF16<uint16_t>(d,s,cp808_to_unicode,sizeof(cp808_to_unicode)/sizeof(cp808_to_unicode[0]));
case 850:
@ -739,6 +753,10 @@ bool CodePageGuestToHostUTF8(char *d/*CROSS_LEN*/,const char *s/*CROSS_LEN*/) {
switch (dos.loaded_codepage) {
case 437:
return String_SBCS_TO_HOST_UTF8<uint16_t>(d,s,cp437_to_unicode,sizeof(cp437_to_unicode)/sizeof(cp437_to_unicode[0]));
case 737:
return String_SBCS_TO_HOST_UTF8<uint16_t>(d,s,cp737_to_unicode,sizeof(cp737_to_unicode)/sizeof(cp737_to_unicode[0]));
case 775:
return String_SBCS_TO_HOST_UTF8<uint16_t>(d,s,cp775_to_unicode,sizeof(cp775_to_unicode)/sizeof(cp775_to_unicode[0]));
case 808:
return String_SBCS_TO_HOST_UTF8<uint16_t>(d,s,cp808_to_unicode,sizeof(cp808_to_unicode)/sizeof(cp808_to_unicode[0]));
case 850:

View File

@ -4282,7 +4282,8 @@ void DOSBOX_SetupConfigSections(void) {
Pstring->SetBasic(true);
Pstring = secprop->Add_string("customcodepage",Property::Changeable::WhenIdle, "");
Pstring->Set_help("Set a custom code page for CHCP command and specify a SBCS code page file, following the standard SBCS code page format.");
Pstring->Set_help("Set a custom code page for CHCP command and specify a SBCS code page file, following the standard SBCS code page format.\n"
"Examples of SBCS code pages are available from the Unicode Consortium website: https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/");
Pstring->SetBasic(true);
Pbool = secprop->Add_bool("dbcs",Property::Changeable::OnlyAtStart,true);

View File

@ -1531,7 +1531,7 @@ void SHELL_Init() {
MSG_Add("SHELL_CMD_ALIAS_HELP", "Defines or displays aliases.\n");
MSG_Add("SHELL_CMD_ALIAS_HELP_LONG", "ALIAS [name[=value] ... ]\n\nType ALIAS without parameters to display the list of aliases in the form:\n`ALIAS NAME = VALUE'\n");
MSG_Add("SHELL_CMD_CHCP_HELP", "Displays or changes the current DOS code page.\n");
MSG_Add("SHELL_CMD_CHCP_HELP_LONG", "CHCP [nnn [file]]\n\n nnn Specifies a code page number.\n file Specifies a code page file.\n\nSupported code pages for changing in the TrueType font output:\n\n437,808,850,852,853,855,857,858,860-866,869,872,874,1250-1258\n\nAlso double-byte code pages including 932, 936, 949, and 950.\n");
MSG_Add("SHELL_CMD_CHCP_HELP_LONG", "CHCP [nnn [file]]\n\n nnn Specifies a code page number.\n file Specifies a code page file.\n\nSupported code pages for changing in the TrueType font output:\n\n437,737,775,808,850,852,853,855,857,858,860-866,869,872,874\n\nWindows code pages: 1250,1251,1252,1253,1254,1255,1256,1257,1258\n\nAlso double-byte code pages including 932, 936, 949, and 950.\n");
MSG_Add("SHELL_CMD_CHCP_ACTIVE", "Active code page: %d\n");
MSG_Add("SHELL_CMD_CHCP_MISSING", "ASCII characters not defined in TTF font: %d\n");
MSG_Add("SHELL_CMD_CHCP_INVALID", "Invalid code page number - %s\n");