ESC/P: it's actually ESC/P 2, fill international character sets
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
* using the ISA,EISA,VLB,MCA and PCI system buses, roughly
|
* using the ISA,EISA,VLB,MCA and PCI system buses, roughly
|
||||||
* spanning the era between 1981 and 1995.
|
* spanning the era between 1981 and 1995.
|
||||||
*
|
*
|
||||||
* Implementation of the Generic ESC/P Dot-Matrix printer.
|
* Implementation of the Generic ESC/P 2 Dot-Matrix printer.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@@ -283,10 +283,9 @@ static const uint16_t codepages[15] = {
|
|||||||
/* "patches" to the codepage for the international charsets
|
/* "patches" to the codepage for the international charsets
|
||||||
* these bytes patch the following 12 positions of the char table, in order:
|
* these bytes patch the following 12 positions of the char table, in order:
|
||||||
* 0x23 0x24 0x40 0x5b 0x5c 0x5d 0x5e 0x60 0x7b 0x7c 0x7d 0x7e
|
* 0x23 0x24 0x40 0x5b 0x5c 0x5d 0x5e 0x60 0x7b 0x7c 0x7d 0x7e
|
||||||
* TODO: Implement the missing international charsets
|
|
||||||
*/
|
*/
|
||||||
static const uint16_t intCharSets[15][12] = {
|
static const uint16_t intCharSets[15][12] = {
|
||||||
{0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 0 USA */
|
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 0 USA */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x00e0, 0x00ba, 0x00e7, 0x00a7, /* 1 France */
|
{ 0x0023, 0x0024, 0x00e0, 0x00ba, 0x00e7, 0x00a7, /* 1 France */
|
||||||
@@ -298,7 +297,7 @@ static const uint16_t intCharSets[15][12] = {
|
|||||||
{ 0x00a3, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 3 UK */
|
{ 0x00a3, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 3 UK */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x00c6, 0x00d8, 0x00c5, /* 4 Denmark (1) */
|
{ 0x0023, 0x0024, 0x0040, 0x00c6, 0x00d8, 0x00c5, /* 4 Denmark I */
|
||||||
0x005e, 0x0060, 0x00e6, 0x00f8, 0x00e5, 0x007e},
|
0x005e, 0x0060, 0x00e6, 0x00f8, 0x00e5, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x00a4, 0x00c9, 0x00c4, 0x00d6, 0x00c5, /* 5 Sweden */
|
{ 0x0023, 0x00a4, 0x00c9, 0x00c4, 0x00d6, 0x00c5, /* 5 Sweden */
|
||||||
@@ -307,28 +306,28 @@ static const uint16_t intCharSets[15][12] = {
|
|||||||
{ 0x0023, 0x0024, 0x0040, 0x00ba, 0x005c, 0x00e9, /* 6 Italy */
|
{ 0x0023, 0x0024, 0x0040, 0x00ba, 0x005c, 0x00e9, /* 6 Italy */
|
||||||
0x005e, 0x00f9, 0x00e0, 0x00f2, 0x00e8, 0x00ec},
|
0x005e, 0x00f9, 0x00e0, 0x00f2, 0x00e8, 0x00ec},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 7 Spain 1 */
|
{ 0x20a7, 0x0024, 0x0040, 0x00a1, 0x00d1, 0x00bf, /* 7 Spain I */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x005e, 0x0060, 0x00a8, 0x00f1, 0x007d, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 8 Japan (English) */
|
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x00a5, 0x005d, /* 8 Japan (Eng) */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 9 Norway */
|
{ 0x0023, 0x00a4, 0x00c9, 0x00c6, 0x00d8, 0x00c5, /* 9 Norway */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x00dc, 0x00e9, 0x00e6, 0x00f8, 0x00e5, 0x00fc},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 10 Denmark (2) */
|
{ 0x0023, 0x0024, 0x00c9, 0x00c6, 0x00d8, 0x00c5, /* 10 Denmark II */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x00dc, 0x00e9, 0x00e6, 0x00f8, 0x00e5, 0x00fc},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 11 Spain (2) */
|
{ 0x0023, 0x0024, 0x00e1, 0x00a1, 0x00d1, 0x00bf, /* 11 Spain II */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x00e9, 0x0060, 0x00ed, 0x00f1, 0x00f3, 0x00fa},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 12 Latin America */
|
{ 0x0023, 0x0024, 0x00e1, 0x00a1, 0x00d1, 0x00bf, /* 12 Lat America */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x00e9, 0x00fc, 0x00ed, 0x00f1, 0x00f3, 0x00fa},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 13 Korea */
|
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x20a9, 0x005d, /* 13 Korea */
|
||||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
||||||
|
|
||||||
{ 0x0023, 0x0024, 0x00a7, 0x00c4, 0x0027, 0x0022, /* 14 Legal */
|
{ 0x0023, 0x0024, 0x00a7, 0x00ba, 0x2019, 0x201d, /* 64 Legal */
|
||||||
0x00b6, 0x0060, 0x00a9, 0x00ae, 0x2020, 0x2122}
|
0x00b6, 0x0060, 0x00a9, 0x00ae, 0x2020, 0x2122}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1099,8 +1098,8 @@ process_char(escp_t *dev, uint8_t ch)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x52: /* select an intl character set (ESC R) */
|
case 0x52: /* select an intl character set (ESC R) */
|
||||||
if (dev->esc_parms[0] <= 13 || dev->esc_parms[0] == '@') {
|
if (dev->esc_parms[0] <= 13 || dev->esc_parms[0] == 64) {
|
||||||
if (dev->esc_parms[0] == '@')
|
if (dev->esc_parms[0] == 64)
|
||||||
dev->esc_parms[0] = 14;
|
dev->esc_parms[0] = 14;
|
||||||
|
|
||||||
dev->curr_cpmap[0x23] = intCharSets[dev->esc_parms[0]][0];
|
dev->curr_cpmap[0x23] = intCharSets[dev->esc_parms[0]][0];
|
||||||
@@ -2124,7 +2123,7 @@ static const device_config_t lpt_prt_escp_config[] = {
|
|||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
const device_t prt_escp_device = {
|
const device_t prt_escp_device = {
|
||||||
.name = "Generic ESC/P Dot-Matrix Printer",
|
.name = "Generic ESC/P 2 Dot-Matrix Printer",
|
||||||
.internal_name = "dot_matrix",
|
.internal_name = "dot_matrix",
|
||||||
.flags = DEVICE_LPT,
|
.flags = DEVICE_LPT,
|
||||||
.local = 0,
|
.local = 0,
|
||||||
@@ -2142,7 +2141,7 @@ const device_t prt_escp_device = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const lpt_device_t lpt_prt_escp_device = {
|
const lpt_device_t lpt_prt_escp_device = {
|
||||||
.name = "Generic ESC/P Dot-Matrix Printer",
|
.name = "Generic ESC/P 2 Dot-Matrix Printer",
|
||||||
.internal_name = "dot_matrix",
|
.internal_name = "dot_matrix",
|
||||||
.init = escp_init,
|
.init = escp_init,
|
||||||
.close = escp_close,
|
.close = escp_close,
|
||||||
|
|||||||
Reference in New Issue
Block a user