clang-format in src/printer/
This commit is contained in:
@@ -68,16 +68,14 @@
|
||||
#endif
|
||||
|
||||
#ifndef PNG_Z_DEFAULT_STRATEGY
|
||||
#define PNG_Z_DEFAULT_STRATEGY 1
|
||||
# define PNG_Z_DEFAULT_STRATEGY 1
|
||||
#endif
|
||||
|
||||
# define PNGFUNC(x) png_ ## x
|
||||
|
||||
#define PNGFUNC(x) png_##x
|
||||
|
||||
#ifdef ENABLE_ESCP_LOG
|
||||
int png_do_log = ENABLE_ESCP_LOG;
|
||||
|
||||
|
||||
static void
|
||||
png_log(const char *fmt, ...)
|
||||
{
|
||||
@@ -90,24 +88,21 @@ png_log(const char *fmt, ...)
|
||||
}
|
||||
}
|
||||
#else
|
||||
#define png_log(fmt, ...)
|
||||
# define png_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
|
||||
static void
|
||||
error_handler(png_structp arg, const char *str)
|
||||
{
|
||||
png_log("PNG: stream 0x%08lx error '%s'\n", arg, str);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
warning_handler(png_structp arg, const char *str)
|
||||
{
|
||||
png_log("PNG: stream 0x%08lx warning '%s'\n", arg, str);
|
||||
}
|
||||
|
||||
|
||||
/* Write the given image as an 8-bit GrayScale PNG image file. */
|
||||
int
|
||||
png_write_gray(char *fn, int inv, uint8_t *pix, int16_t w, int16_t h)
|
||||
@@ -128,10 +123,11 @@ png_write_gray(char *fn, int inv, uint8_t *pix, int16_t w, int16_t h)
|
||||
error:
|
||||
png_log("PNG: fatal error, bailing out, error = %i\n", errno);
|
||||
if (png != NULL)
|
||||
PNGFUNC(destroy_write_struct)(&png, &info);
|
||||
PNGFUNC(destroy_write_struct)
|
||||
(&png, &info);
|
||||
if (fp != NULL)
|
||||
(void)fclose(fp);
|
||||
return(0);
|
||||
(void) fclose(fp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Initialize PNG stuff. */
|
||||
@@ -148,17 +144,19 @@ error:
|
||||
goto error;
|
||||
}
|
||||
|
||||
PNGFUNC(init_io)
|
||||
(png, fp);
|
||||
|
||||
PNGFUNC(init_io)(png, fp);
|
||||
|
||||
PNGFUNC(set_IHDR)(png, info, w, h, 8, PNG_COLOR_TYPE_GRAY,
|
||||
PNGFUNC(set_IHDR)
|
||||
(png, info, w, h, 8, PNG_COLOR_TYPE_GRAY,
|
||||
PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
|
||||
PNG_FILTER_TYPE_DEFAULT);
|
||||
|
||||
PNGFUNC(write_info)(png, info);
|
||||
PNGFUNC(write_info)
|
||||
(png, info);
|
||||
|
||||
/* Create a buffer for one scanline of pixels. */
|
||||
row = (png_bytep)malloc(PNGFUNC(get_rowbytes)(png, info));
|
||||
row = (png_bytep) malloc(PNGFUNC(get_rowbytes)(png, info));
|
||||
|
||||
/* Process all scanlines in the image. */
|
||||
for (y = 0; y < h; y++) {
|
||||
@@ -171,30 +169,32 @@ error:
|
||||
}
|
||||
|
||||
/* Write image to the file. */
|
||||
PNGFUNC(write_rows)(png, &row, 1);
|
||||
PNGFUNC(write_rows)
|
||||
(png, &row, 1);
|
||||
}
|
||||
|
||||
/* No longer need the row buffer. */
|
||||
free(row);
|
||||
|
||||
PNGFUNC(write_end)(png, NULL);
|
||||
PNGFUNC(write_end)
|
||||
(png, NULL);
|
||||
|
||||
PNGFUNC(destroy_write_struct)(&png, &info);
|
||||
PNGFUNC(destroy_write_struct)
|
||||
(&png, &info);
|
||||
|
||||
/* Clean up. */
|
||||
(void)fclose(fp);
|
||||
(void) fclose(fp);
|
||||
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
|
||||
|
||||
/* Write the given BITMAP-format image as an 8-bit RGBA PNG image file. */
|
||||
void
|
||||
png_write_rgb(char *fn, uint8_t *pix, int16_t w, int16_t h, uint16_t pitch, PALETTE palcol)
|
||||
{
|
||||
png_structp png = NULL;
|
||||
png_infop info = NULL;
|
||||
png_bytep* rows;
|
||||
png_bytep *rows;
|
||||
png_color palette[256];
|
||||
FILE *fp;
|
||||
int i;
|
||||
@@ -205,9 +205,10 @@ png_write_rgb(char *fn, uint8_t *pix, int16_t w, int16_t h, uint16_t pitch, PALE
|
||||
png_log("PNG: File %s could not be opened for writing!\n", fn);
|
||||
error:
|
||||
if (png != NULL)
|
||||
PNGFUNC(destroy_write_struct)(&png, &info);
|
||||
PNGFUNC(destroy_write_struct)
|
||||
(&png, &info);
|
||||
if (fp != NULL)
|
||||
(void)fclose(fp);
|
||||
(void) fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -226,17 +227,25 @@ error:
|
||||
}
|
||||
|
||||
/* Finalize the initing of png library */
|
||||
PNGFUNC(init_io)(png, fp);
|
||||
PNGFUNC(set_compression_level)(png, 9);
|
||||
PNGFUNC(init_io)
|
||||
(png, fp);
|
||||
PNGFUNC(set_compression_level)
|
||||
(png, 9);
|
||||
|
||||
/* set other zlib parameters */
|
||||
PNGFUNC(set_compression_mem_level)(png, 8);
|
||||
PNGFUNC(set_compression_strategy)(png, PNG_Z_DEFAULT_STRATEGY);
|
||||
PNGFUNC(set_compression_window_bits)(png, 15);
|
||||
PNGFUNC(set_compression_method)(png, 8);
|
||||
PNGFUNC(set_compression_buffer_size)(png, 8192);
|
||||
PNGFUNC(set_compression_mem_level)
|
||||
(png, 8);
|
||||
PNGFUNC(set_compression_strategy)
|
||||
(png, PNG_Z_DEFAULT_STRATEGY);
|
||||
PNGFUNC(set_compression_window_bits)
|
||||
(png, 15);
|
||||
PNGFUNC(set_compression_method)
|
||||
(png, 8);
|
||||
PNGFUNC(set_compression_buffer_size)
|
||||
(png, 8192);
|
||||
|
||||
PNGFUNC(set_IHDR)(png, info, w, h, 8, PNG_COLOR_TYPE_PALETTE,
|
||||
PNGFUNC(set_IHDR)
|
||||
(png, info, w, h, 8, PNG_COLOR_TYPE_PALETTE,
|
||||
PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
|
||||
PNG_FILTER_TYPE_DEFAULT);
|
||||
|
||||
@@ -246,23 +255,27 @@ error:
|
||||
palette[i].blue = palcol[i].b;
|
||||
}
|
||||
|
||||
PNGFUNC(set_PLTE)(png, info, palette, 256);
|
||||
PNGFUNC(set_PLTE)
|
||||
(png, info, palette, 256);
|
||||
|
||||
/* Create a buffer for scanlines of pixels. */
|
||||
rows = (png_bytep *)malloc(sizeof(png_bytep) * h);
|
||||
rows = (png_bytep *) malloc(sizeof(png_bytep) * h);
|
||||
for (i = 0; i < h; i++) {
|
||||
/* Create a buffer for this scanline. */
|
||||
rows[i] = (pix + (i * pitch));
|
||||
}
|
||||
|
||||
PNGFUNC(set_rows)(png, info, rows);
|
||||
PNGFUNC(set_rows)
|
||||
(png, info, rows);
|
||||
|
||||
PNGFUNC(write_png)(png, info, 0, NULL);
|
||||
PNGFUNC(write_png)
|
||||
(png, info, 0, NULL);
|
||||
|
||||
/* Clean up. */
|
||||
(void)fclose(fp);
|
||||
(void) fclose(fp);
|
||||
|
||||
PNGFUNC(destroy_write_struct)(&png, &info);
|
||||
PNGFUNC(destroy_write_struct)
|
||||
(&png, &info);
|
||||
|
||||
/* No longer need the row buffers. */
|
||||
free(rows);
|
||||
|
@@ -57,503 +57,501 @@
|
||||
#include <86box/plat.h>
|
||||
#include <86box/printer.h>
|
||||
|
||||
|
||||
static const uint16_t cp437Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
|
||||
0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
|
||||
0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
|
||||
0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
|
||||
0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp737Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,
|
||||
0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,
|
||||
0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,
|
||||
0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,
|
||||
0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,
|
||||
0x03c1,0x03c3,0x03c2,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03c9,0x03ac,0x03ad,0x03ae,0x03ca,0x03af,0x03cc,0x03cd,
|
||||
0x03cb,0x03ce,0x0386,0x0388,0x0389,0x038a,0x038c,0x038e,
|
||||
0x038f,0x00b1,0x2265,0x2264,0x03aa,0x03ab,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
|
||||
0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
|
||||
0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
|
||||
0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
|
||||
0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
|
||||
0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd,
|
||||
0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e,
|
||||
0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp775Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x0106,0x00fc,0x00e9,0x0101,0x00e4,0x0123,0x00e5,0x0107,
|
||||
0x0142,0x0113,0x0156,0x0157,0x012b,0x0179,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x014d,0x00f6,0x0122,0x00a2,0x015a,
|
||||
0x015b,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x00a4,
|
||||
0x0100,0x012a,0x00f3,0x017b,0x017c,0x017a,0x201d,0x00a6,
|
||||
0x00a9,0x00ae,0x00ac,0x00bd,0x00bc,0x0141,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x0104,0x010c,0x0118,
|
||||
0x0116,0x2563,0x2551,0x2557,0x255d,0x012e,0x0160,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x0172,0x016a,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x017d,
|
||||
0x0105,0x010d,0x0119,0x0117,0x012f,0x0161,0x0173,0x016b,
|
||||
0x017e,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x00d3,0x00df,0x014c,0x0143,0x00f5,0x00d5,0x00b5,0x0144,
|
||||
0x0136,0x0137,0x013b,0x013c,0x0146,0x0112,0x0145,0x2019,
|
||||
0x00ad,0x00b1,0x201c,0x00be,0x00b6,0x00a7,0x00f7,0x201e,
|
||||
0x00b0,0x2219,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107,
|
||||
0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a,
|
||||
0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4,
|
||||
0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6,
|
||||
0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118,
|
||||
0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d,
|
||||
0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b,
|
||||
0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144,
|
||||
0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019,
|
||||
0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e,
|
||||
0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp850Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
|
||||
0x00ff,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x0192,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
|
||||
0x00bf,0x00ae,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x00c0,
|
||||
0x00a9,0x2563,0x2551,0x2557,0x255d,0x00a2,0x00a5,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x00e3,0x00c3,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,
|
||||
0x00f0,0x00d0,0x00ca,0x00cb,0x00c8,0x0131,0x00cd,0x00ce,
|
||||
0x00cf,0x2518,0x250c,0x2588,0x2584,0x00a6,0x00cc,0x2580,
|
||||
0x00d3,0x00df,0x00d4,0x00d2,0x00f5,0x00d5,0x00b5,0x00fe,
|
||||
0x00de,0x00da,0x00db,0x00d9,0x00fd,0x00dd,0x00af,0x00b4,
|
||||
0x00ad,0x00b1,0x2017,0x00be,0x00b6,0x00a7,0x00f7,0x00b8,
|
||||
0x00b0,0x00a8,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
|
||||
0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
|
||||
0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
|
||||
0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
|
||||
0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
|
||||
0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
|
||||
0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
|
||||
0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
|
||||
0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
|
||||
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp852Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x016f,0x0107,0x00e7,
|
||||
0x0142,0x00eb,0x0150,0x0151,0x00ee,0x0179,0x00c4,0x0106,
|
||||
0x00c9,0x0139,0x013a,0x00f4,0x00f6,0x013d,0x013e,0x015a,
|
||||
0x015b,0x00d6,0x00dc,0x0164,0x0165,0x0141,0x00d7,0x010d,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x0104,0x0105,0x017d,0x017e,
|
||||
0x0118,0x0119,0x00ac,0x017a,0x010c,0x015f,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x011a,
|
||||
0x015e,0x2563,0x2551,0x2557,0x255d,0x017b,0x017c,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x0102,0x0103,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,
|
||||
0x0111,0x0110,0x010e,0x00cb,0x010f,0x0147,0x00cd,0x00ce,
|
||||
0x011b,0x2518,0x250c,0x2588,0x2584,0x0162,0x016e,0x2580,
|
||||
0x00d3,0x00df,0x00d4,0x0143,0x0144,0x0148,0x0160,0x0161,
|
||||
0x0154,0x00da,0x0155,0x0170,0x00fd,0x00dd,0x0163,0x00b4,
|
||||
0x00ad,0x02dd,0x02db,0x02c7,0x02d8,0x00a7,0x00f7,0x00b8,
|
||||
0x00b0,0x00a8,0x02d9,0x0171,0x0158,0x0159,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7,
|
||||
0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106,
|
||||
0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a,
|
||||
0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e,
|
||||
0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a,
|
||||
0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
|
||||
0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce,
|
||||
0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580,
|
||||
0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
|
||||
0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4,
|
||||
0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8,
|
||||
0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp855Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x0452,0x0402,0x0453,0x0403,0x0451,0x0401,0x0454,0x0404,
|
||||
0x0455,0x0405,0x0456,0x0406,0x0457,0x0407,0x0458,0x0408,
|
||||
0x0459,0x0409,0x045a,0x040a,0x045b,0x040b,0x045c,0x040c,
|
||||
0x045e,0x040e,0x045f,0x040f,0x044e,0x042e,0x044a,0x042a,
|
||||
0x0430,0x0410,0x0431,0x0411,0x0446,0x0426,0x0434,0x0414,
|
||||
0x0435,0x0415,0x0444,0x0424,0x0433,0x0413,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x0445,0x0425,0x0438,
|
||||
0x0418,0x2563,0x2551,0x2557,0x255d,0x0439,0x0419,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x043a,0x041a,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,
|
||||
0x043b,0x041b,0x043c,0x041c,0x043d,0x041d,0x043e,0x041e,
|
||||
0x043f,0x2518,0x250c,0x2588,0x2584,0x041f,0x044f,0x2580,
|
||||
0x042f,0x0440,0x0420,0x0441,0x0421,0x0442,0x0422,0x0443,
|
||||
0x0423,0x0436,0x0416,0x0432,0x0412,0x044c,0x042c,0x2116,
|
||||
0x00ad,0x044b,0x042b,0x0437,0x0417,0x0448,0x0428,0x044d,
|
||||
0x042d,0x0449,0x0429,0x0447,0x0427,0x00a7,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
|
||||
0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
|
||||
0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c,
|
||||
0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a,
|
||||
0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
|
||||
0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
|
||||
0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
|
||||
0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e,
|
||||
0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580,
|
||||
0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
|
||||
0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116,
|
||||
0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d,
|
||||
0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp857Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x0131,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
|
||||
0x0130,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x015e,0x015f,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x011e,0x011f,
|
||||
0x00bf,0x00ae,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x00c0,
|
||||
0x00a9,0x2563,0x2551,0x2557,0x255d,0x00a2,0x00a5,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x00e3,0x00c3,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,
|
||||
0x00ba,0x00aa,0x00ca,0x00cb,0x00c8,0x0000,0x00cd,0x00ce,
|
||||
0x00cf,0x2518,0x250c,0x2588,0x2584,0x00a6,0x00cc,0x2580,
|
||||
0x00d3,0x00df,0x00d4,0x00d2,0x00f5,0x00d5,0x00b5,0x0000,
|
||||
0x00d7,0x00da,0x00db,0x00d9,0x00ec,0x00ff,0x00af,0x00b4,
|
||||
0x00ad,0x00b1,0x0000,0x00be,0x00b6,0x00a7,0x00f7,0x00b8,
|
||||
0x00b0,0x00a8,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
|
||||
0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f,
|
||||
0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
|
||||
0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
|
||||
0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x0000, 0x00cd, 0x00ce,
|
||||
0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
|
||||
0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x0000,
|
||||
0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4,
|
||||
0x00ad, 0x00b1, 0x0000, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
|
||||
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp860Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e3,0x00e0,0x00c1,0x00e7,
|
||||
0x00ea,0x00ca,0x00e8,0x00cd,0x00d4,0x00ec,0x00c3,0x00c2,
|
||||
0x00c9,0x00c0,0x00c8,0x00f4,0x00f5,0x00f2,0x00da,0x00f9,
|
||||
0x00cc,0x00d5,0x00dc,0x00a2,0x00a3,0x00d9,0x20a7,0x00d3,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
|
||||
0x00bf,0x00d2,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7,
|
||||
0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2,
|
||||
0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9,
|
||||
0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
|
||||
0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp861Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00d0,0x00f0,0x00de,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00fe,0x00fb,0x00dd,
|
||||
0x00fd,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x20a7,0x0192,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00c1,0x00cd,0x00d3,0x00da,
|
||||
0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd,
|
||||
0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da,
|
||||
0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp862Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x05d0,0x05d1,0x05d2,0x05d3,0x05d4,0x05d5,0x05d6,0x05d7,
|
||||
0x05d8,0x05d9,0x05da,0x05db,0x05dc,0x05dd,0x05de,0x05df,
|
||||
0x05e0,0x05e1,0x05e2,0x05e3,0x05e4,0x05e5,0x05e6,0x05e7,
|
||||
0x05e8,0x05e9,0x05ea,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
|
||||
0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
|
||||
0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
|
||||
0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
|
||||
0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
|
||||
0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp863Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00c2,0x00e0,0x00b6,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x2017,0x00c0,0x00a7,
|
||||
0x00c9,0x00c8,0x00ca,0x00f4,0x00cb,0x00cf,0x00fb,0x00f9,
|
||||
0x00a4,0x00d4,0x00dc,0x00a2,0x00a3,0x00d9,0x00db,0x0192,
|
||||
0x00a6,0x00b4,0x00f3,0x00fa,0x00a8,0x00b8,0x00b3,0x00af,
|
||||
0x00ce,0x2310,0x00ac,0x00bd,0x00bc,0x00be,0x00ab,0x00bb,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7,
|
||||
0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9,
|
||||
0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192,
|
||||
0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af,
|
||||
0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp864Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x066a,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00b0,0x00b7,0x2219,0x221a,0x2592,0x2500,0x2502,0x253c,
|
||||
0x2524,0x252c,0x251c,0x2534,0x2510,0x250c,0x2514,0x2518,
|
||||
0x03b2,0x221e,0x03c6,0x00b1,0x00bd,0x00bc,0x2248,0x00ab,
|
||||
0x00bb,0xfef7,0xfef8,0x0000,0x0000,0xfefb,0xfefc,0x0000,
|
||||
0x00a0,0x00ad,0xfe82,0x00a3,0x00a4,0xfe84,0x0000,0x0000,
|
||||
0xfe8e,0xfe8f,0xfe95,0xfe99,0x060c,0xfe9d,0xfea1,0xfea5,
|
||||
0x0660,0x0661,0x0662,0x0663,0x0664,0x0665,0x0666,0x0667,
|
||||
0x0668,0x0669,0xfed1,0x061b,0xfeb1,0xfeb5,0xfeb9,0x061f,
|
||||
0x00a2,0xfe80,0xfe81,0xfe83,0xfe85,0xfeca,0xfe8b,0xfe8d,
|
||||
0xfe91,0xfe93,0xfe97,0xfe9b,0xfe9f,0xfea3,0xfea7,0xfea9,
|
||||
0xfeab,0xfead,0xfeaf,0xfeb3,0xfeb7,0xfebb,0xfebf,0xfec1,
|
||||
0xfec5,0xfecb,0xfecf,0x00a6,0x00ac,0x00f7,0x00d7,0xfec9,
|
||||
0x0640,0xfed3,0xfed7,0xfedb,0xfedf,0xfee3,0xfee7,0xfeeb,
|
||||
0xfeed,0xfeef,0xfef3,0xfebd,0xfecc,0xfece,0xfecd,0xfee1,
|
||||
0xfe7d,0x0651,0xfee5,0xfee9,0xfeec,0xfef0,0xfef2,0xfed0,
|
||||
0xfed5,0xfef5,0xfef6,0xfedd,0xfed9,0xfef1,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c,
|
||||
0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518,
|
||||
0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab,
|
||||
0x00bb, 0xfef7, 0xfef8, 0x0000, 0x0000, 0xfefb, 0xfefc, 0x0000,
|
||||
0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0x0000, 0x0000,
|
||||
0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5,
|
||||
0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
|
||||
0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f,
|
||||
0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d,
|
||||
0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9,
|
||||
0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1,
|
||||
0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9,
|
||||
0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb,
|
||||
0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1,
|
||||
0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0,
|
||||
0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp865Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
|
||||
0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
|
||||
0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
|
||||
0x00ff,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x20a7,0x0192,
|
||||
0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
|
||||
0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00a4,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
|
||||
0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
|
||||
0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
|
||||
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
|
||||
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
|
||||
0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192,
|
||||
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
|
||||
0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
|
||||
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
|
||||
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
static const uint16_t cp866Map[256] = {
|
||||
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
|
||||
0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,
|
||||
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
|
||||
0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,
|
||||
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
|
||||
0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,
|
||||
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
|
||||
0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,
|
||||
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
|
||||
0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,
|
||||
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
|
||||
0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,
|
||||
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
|
||||
0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,
|
||||
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
|
||||
0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,
|
||||
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
|
||||
0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
|
||||
0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
|
||||
0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
|
||||
0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
|
||||
0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
|
||||
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
|
||||
0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
|
||||
0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
|
||||
0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
|
||||
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
|
||||
0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
|
||||
0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
|
||||
0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
|
||||
0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040e,0x045e,
|
||||
0x00b0,0x2219,0x00b7,0x221a,0x2116,0x00a4,0x25a0,0x00a0
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
|
||||
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
|
||||
0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
|
||||
0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
|
||||
0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
|
||||
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
|
||||
0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
|
||||
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
|
||||
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
|
||||
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
|
||||
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
|
||||
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
|
||||
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
|
||||
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
|
||||
0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
|
||||
0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
|
||||
0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
|
||||
};
|
||||
|
||||
|
||||
static const struct {
|
||||
uint16_t code;
|
||||
const uint16_t *map;
|
||||
} maps[] = {
|
||||
// clang-format off
|
||||
// clang-format off
|
||||
{ 437, cp437Map },
|
||||
{ 737, cp737Map },
|
||||
{ 775, cp775Map },
|
||||
@@ -569,10 +567,9 @@ static const struct {
|
||||
{ 865, cp865Map },
|
||||
{ 866, cp866Map },
|
||||
{ -1, NULL }
|
||||
// clang-format on
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
/* Select a ASCII->Unicode mapping by CP number */
|
||||
void
|
||||
select_codepage(uint16_t code, uint16_t *curmap)
|
||||
|
@@ -73,9 +73,8 @@
|
||||
#include <86box/printer.h>
|
||||
#include <86box/prt_devs.h>
|
||||
|
||||
|
||||
/* Default page values (for now.) */
|
||||
#define COLOR_BLACK 7<<5
|
||||
#define COLOR_BLACK 7 << 5
|
||||
#define PAGE_WIDTH 8.5 /* standard U.S. Letter */
|
||||
#define PAGE_HEIGHT 11.0
|
||||
#define PAGE_LMARGIN 0.0
|
||||
@@ -86,7 +85,6 @@
|
||||
#define PAGE_CPI 10.0 /* standard 10 cpi */
|
||||
#define PAGE_LPI 6.0 /* standard 6 lpi */
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
# define PATH_FREETYPE_DLL "freetype.dll"
|
||||
#elif defined __APPLE__
|
||||
@@ -95,7 +93,6 @@
|
||||
# define PATH_FREETYPE_DLL "libfreetype.so.6"
|
||||
#endif
|
||||
|
||||
|
||||
/* FreeType library handles - global so they can be shared. */
|
||||
FT_Library ft_lib = NULL;
|
||||
void *ft_handle = NULL;
|
||||
@@ -116,20 +113,18 @@ static int (*ft_Load_Glyph)(FT_Face face, FT_UInt glyph_index,
|
||||
static int (*ft_Render_Glyph)(FT_GlyphSlot slot,
|
||||
FT_Render_Mode render_mode);
|
||||
|
||||
|
||||
static dllimp_t ft_imports[] = {
|
||||
{ "FT_Init_FreeType", &ft_Init_FreeType },
|
||||
{"FT_Init_FreeType", &ft_Init_FreeType },
|
||||
{ "FT_New_Face", &ft_New_Face },
|
||||
{ "FT_Done_Face", &ft_Done_Face },
|
||||
{ "FT_Set_Char_Size", &ft_Set_Char_Size },
|
||||
{ "FT_Set_Transform", &ft_Set_Transform },
|
||||
{ "FT_Get_Char_Index", &ft_Get_Char_Index },
|
||||
{ "FT_Get_Char_Index", &ft_Get_Char_Index},
|
||||
{ "FT_Load_Glyph", &ft_Load_Glyph },
|
||||
{ "FT_Render_Glyph", &ft_Render_Glyph },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
/* The fonts. */
|
||||
#define FONT_DEFAULT 0
|
||||
#define FONT_ROMAN 1
|
||||
@@ -181,12 +176,10 @@ static dllimp_t ft_imports[] = {
|
||||
#define TYPEFACE_SVBUSABA 30
|
||||
#define TYPEFACE_SVJITTRA 31
|
||||
|
||||
|
||||
/* Some helper macros. */
|
||||
#define PARAM16(x) (dev->esc_parms[x+1] * 256 + dev->esc_parms[x])
|
||||
#define PIXX ((unsigned)floor(dev->curr_x * dev->dpi + 0.5))
|
||||
#define PIXY ((unsigned)floor(dev->curr_y * dev->dpi + 0.5))
|
||||
|
||||
#define PARAM16(x) (dev->esc_parms[x + 1] * 256 + dev->esc_parms[x])
|
||||
#define PIXX ((unsigned) floor(dev->curr_x * dev->dpi + 0.5))
|
||||
#define PIXY ((unsigned) floor(dev->curr_y * dev->dpi + 0.5))
|
||||
|
||||
typedef struct {
|
||||
int8_t dirty; /* has the page been printed on? */
|
||||
@@ -199,7 +192,6 @@ typedef struct {
|
||||
uint8_t *pixels; /* grayscale pixel data */
|
||||
} psurface_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
|
||||
@@ -298,7 +290,6 @@ typedef struct {
|
||||
PALETTE palcol;
|
||||
} escp_t;
|
||||
|
||||
|
||||
static void
|
||||
update_font(escp_t *dev);
|
||||
static void
|
||||
@@ -316,71 +307,67 @@ print_bit_graph(escp_t *dev, uint8_t ch);
|
||||
static void
|
||||
new_page(escp_t *dev, int8_t save, int8_t resetx);
|
||||
|
||||
|
||||
/* Codepage table, needed for ESC t ( */
|
||||
static const uint16_t codepages[15] = {
|
||||
0, 437, 932, 850, 851, 853, 855, 860,
|
||||
863, 865, 852, 857, 862, 864, 866
|
||||
};
|
||||
|
||||
|
||||
/* "patches" to the codepage for the international charsets
|
||||
* 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
|
||||
* TODO: Implement the missing international charsets
|
||||
*/
|
||||
static const uint16_t intCharSets[15][12] = {
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 0 USA */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e },
|
||||
{0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 0 USA */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e},
|
||||
|
||||
{ 0x0023, 0x0024, 0x00e0, 0x00ba, 0x00e7, 0x00a7, /* 1 France */
|
||||
0x005e, 0x0060, 0x00e9, 0x00f9, 0x00e8, 0x00a8 },
|
||||
0x005e, 0x0060, 0x00e9, 0x00f9, 0x00e8, 0x00a8},
|
||||
|
||||
{ 0x0023, 0x0024, 0x00a7, 0x00c4, 0x00d6, 0x00dc, /* 2 Germany */
|
||||
0x005e, 0x0060, 0x00e4, 0x00f6, 0x00fc, 0x00df },
|
||||
0x005e, 0x0060, 0x00e4, 0x00f6, 0x00fc, 0x00df},
|
||||
|
||||
{ 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) */
|
||||
0x005e, 0x0060, 0x00e6, 0x00f8, 0x00e5, 0x007e },
|
||||
0x005e, 0x0060, 0x00e6, 0x00f8, 0x00e5, 0x007e},
|
||||
|
||||
{ 0x0023, 0x00a4, 0x00c9, 0x00c4, 0x00d6, 0x00c5, /* 5 Sweden */
|
||||
0x00dc, 0x00e9, 0x00e4, 0x00f6, 0x00e5, 0x00fc },
|
||||
0x00dc, 0x00e9, 0x00e4, 0x00f6, 0x00e5, 0x00fc},
|
||||
|
||||
{ 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 */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 8 Japan (English) */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 9 Norway */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 10 Denmark (2) */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 11 Spain (2) */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 12 Latin America */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x0040, 0x005b, 0x005c, 0x005d, /* 13 Korea */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e }, /* TODO */
|
||||
0x005e, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, /* TODO */
|
||||
|
||||
{ 0x0023, 0x0024, 0x00a7, 0x00c4, 0x0027, 0x0022, /* 14 Legal */
|
||||
0x00b6, 0x0060, 0x00a9, 0x00ae, 0x2020, 0x2122 }
|
||||
0x00b6, 0x0060, 0x00a9, 0x00ae, 0x2020, 0x2122}
|
||||
};
|
||||
|
||||
|
||||
#ifdef ENABLE_ESCP_LOG
|
||||
int escp_do_log = ENABLE_ESCP_LOG;
|
||||
|
||||
|
||||
static void
|
||||
escp_log(const char *fmt, ...)
|
||||
{
|
||||
@@ -393,10 +380,9 @@ escp_log(const char *fmt, ...)
|
||||
}
|
||||
}
|
||||
#else
|
||||
#define escp_log(fmt, ...)
|
||||
# define escp_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
|
||||
/* Dump the current page into a formatted file. */
|
||||
static void
|
||||
dump_page(escp_t *dev)
|
||||
@@ -408,7 +394,6 @@ dump_page(escp_t *dev)
|
||||
png_write_rgb(path, dev->page->pixels, dev->page->w, dev->page->h, dev->page->pitch, dev->palcol);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
new_page(escp_t *dev, int8_t save, int8_t resetx)
|
||||
{
|
||||
@@ -429,7 +414,6 @@ new_page(escp_t *dev, int8_t save, int8_t resetx)
|
||||
plat_tempfile(dev->page_fn, NULL, ".png");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
pulse_timer(void *priv)
|
||||
{
|
||||
@@ -443,7 +427,6 @@ pulse_timer(void *priv)
|
||||
timer_disable(&dev->pulse_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
timeout_timer(void *priv)
|
||||
{
|
||||
@@ -455,27 +438,25 @@ timeout_timer(void *priv)
|
||||
timer_disable(&dev->timeout_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
fill_palette(uint8_t redmax, uint8_t greenmax, uint8_t bluemax, uint8_t colorID, escp_t *dev)
|
||||
{
|
||||
uint8_t colormask;
|
||||
int i;
|
||||
|
||||
float red = (float)redmax / (float)30.9;
|
||||
float green = (float)greenmax / (float)30.9;
|
||||
float blue = (float)bluemax / (float)30.9;
|
||||
float red = (float) redmax / (float) 30.9;
|
||||
float green = (float) greenmax / (float) 30.9;
|
||||
float blue = (float) bluemax / (float) 30.9;
|
||||
|
||||
colormask = colorID<<=5;
|
||||
colormask = colorID <<= 5;
|
||||
|
||||
for(i = 0; i < 32; i++) {
|
||||
dev->palcol[i+colormask].r = 255 - (uint8_t)floor(red * (float)i);
|
||||
dev->palcol[i+colormask].g = 255 - (uint8_t)floor(green * (float)i);
|
||||
dev->palcol[i+colormask].b = 255 - (uint8_t)floor(blue * (float)i);
|
||||
for (i = 0; i < 32; i++) {
|
||||
dev->palcol[i + colormask].r = 255 - (uint8_t) floor(red * (float) i);
|
||||
dev->palcol[i + colormask].g = 255 - (uint8_t) floor(green * (float) i);
|
||||
dev->palcol[i + colormask].b = 255 - (uint8_t) floor(blue * (float) i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_printer(escp_t *dev)
|
||||
{
|
||||
@@ -529,11 +510,10 @@ reset_printer(escp_t *dev)
|
||||
dev->page->dirty = 0;
|
||||
|
||||
escp_log("ESC/P: width=%.1fin,height=%.1fin dpi=%i cpi=%i lpi=%i\n",
|
||||
dev->page_width, dev->page_height, (int)dev->dpi,
|
||||
(int)dev->cpi, (int)dev->lpi);
|
||||
dev->page_width, dev->page_height, (int) dev->dpi,
|
||||
(int) dev->cpi, (int) dev->lpi);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_printer_hard(escp_t *dev)
|
||||
{
|
||||
@@ -543,7 +523,6 @@ reset_printer_hard(escp_t *dev)
|
||||
reset_printer(dev);
|
||||
}
|
||||
|
||||
|
||||
/* Select a ASCII->Unicode mapping by CP number */
|
||||
static void
|
||||
init_codepage(escp_t *dev, uint16_t num)
|
||||
@@ -552,7 +531,6 @@ init_codepage(escp_t *dev, uint16_t num)
|
||||
select_codepage(num, dev->curr_cpmap);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
update_font(escp_t *dev)
|
||||
{
|
||||
@@ -572,7 +550,8 @@ update_font(escp_t *dev)
|
||||
|
||||
if (dev->print_quality == QUALITY_DRAFT)
|
||||
fn = FONT_FILE_DOTMATRIX;
|
||||
else switch (dev->lq_typeface) {
|
||||
else
|
||||
switch (dev->lq_typeface) {
|
||||
case TYPEFACE_ROMAN:
|
||||
fn = FONT_FILE_ROMAN;
|
||||
break;
|
||||
@@ -627,12 +606,10 @@ update_font(escp_t *dev)
|
||||
hpoints *= 10.0 / 20.0;
|
||||
vpoints *= 10.0 / 12.0;
|
||||
}
|
||||
}
|
||||
else if (dev->font_style & STYLE_CONDENSED)
|
||||
} else if (dev->font_style & STYLE_CONDENSED)
|
||||
hpoints /= 2.0;
|
||||
|
||||
if ((dev->font_style & STYLE_DOUBLEWIDTH) ||
|
||||
(dev->font_style & STYLE_DOUBLEWIDTHONELINE)) {
|
||||
if ((dev->font_style & STYLE_DOUBLEWIDTH) || (dev->font_style & STYLE_DOUBLEWIDTHONELINE)) {
|
||||
dev->actual_cpi /= 2.0;
|
||||
hpoints *= 2.0;
|
||||
}
|
||||
@@ -652,21 +629,19 @@ update_font(escp_t *dev)
|
||||
}
|
||||
|
||||
ft_Set_Char_Size(dev->fontface,
|
||||
(uint16_t)(hpoints * 64), (uint16_t)(vpoints * 64),
|
||||
(uint16_t) (hpoints * 64), (uint16_t) (vpoints * 64),
|
||||
dev->dpi, dev->dpi);
|
||||
|
||||
if ((dev->font_style & STYLE_ITALICS) ||
|
||||
(dev->char_tables[dev->curr_char_table] == 0)) {
|
||||
if ((dev->font_style & STYLE_ITALICS) || (dev->char_tables[dev->curr_char_table] == 0)) {
|
||||
/* Italics transformation. */
|
||||
matrix.xx = 0x10000L;
|
||||
matrix.xy = (FT_Fixed)(0.20 * 0x10000L);
|
||||
matrix.xy = (FT_Fixed) (0.20 * 0x10000L);
|
||||
matrix.yx = 0;
|
||||
matrix.yy = 0x10000L;
|
||||
ft_Set_Transform(dev->fontface, &matrix, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* This is the actual ESC/P interpreter. */
|
||||
static int
|
||||
process_char(escp_t *dev, uint8_t ch)
|
||||
@@ -880,24 +855,22 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
/* Collect vertical tabs. */
|
||||
if (dev->esc_pending == 0x42) {
|
||||
/* check if we're done */
|
||||
if ((ch == 0) ||
|
||||
(dev->num_vertical_tabs > 0 && dev->vertical_tabs[dev->num_vertical_tabs - 1] > (double)ch * dev->linespacing)) {
|
||||
if ((ch == 0) || (dev->num_vertical_tabs > 0 && dev->vertical_tabs[dev->num_vertical_tabs - 1] > (double) ch * dev->linespacing)) {
|
||||
dev->esc_pending = 0;
|
||||
} else {
|
||||
if (dev->num_vertical_tabs >= 0 && dev->num_vertical_tabs < 16)
|
||||
dev->vertical_tabs[dev->num_vertical_tabs++] = (double)ch * dev->linespacing;
|
||||
dev->vertical_tabs[dev->num_vertical_tabs++] = (double) ch * dev->linespacing;
|
||||
}
|
||||
}
|
||||
|
||||
/* Collect horizontal tabs. */
|
||||
if (dev->esc_pending == 0x44) {
|
||||
/* check if we're done... */
|
||||
if ((ch == 0) ||
|
||||
(dev->num_horizontal_tabs > 0 && dev->horizontal_tabs[dev->num_horizontal_tabs - 1] > (double)ch * (1.0 / dev->cpi))) {
|
||||
if ((ch == 0) || (dev->num_horizontal_tabs > 0 && dev->horizontal_tabs[dev->num_horizontal_tabs - 1] > (double) ch * (1.0 / dev->cpi))) {
|
||||
dev->esc_pending = 0;
|
||||
} else {
|
||||
if (dev->num_horizontal_tabs < 32)
|
||||
dev->horizontal_tabs[dev->num_horizontal_tabs++] = (double)ch * (1.0 / dev->cpi);
|
||||
dev->horizontal_tabs[dev->num_horizontal_tabs++] = (double) ch * (1.0 / dev->cpi);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -918,7 +891,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x0e: /* select double-width (one line) (ESC SO) */
|
||||
if (! dev->multipoint_mode) {
|
||||
if (!dev->multipoint_mode) {
|
||||
dev->hmi = -1;
|
||||
dev->font_style |= STYLE_DOUBLEWIDTHONELINE;
|
||||
update_font(dev);
|
||||
@@ -926,7 +899,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x0f: /* select condensed printing (ESC SI) */
|
||||
if (! dev->multipoint_mode && (dev->cpi != 15.0)) {
|
||||
if (!dev->multipoint_mode && (dev->cpi != 15.0)) {
|
||||
dev->hmi = -1;
|
||||
dev->font_style |= STYLE_CONDENSED;
|
||||
update_font(dev);
|
||||
@@ -941,8 +914,8 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
break;
|
||||
case 0x20: /* set intercharacter space (ESC SP) */
|
||||
if (! dev->multipoint_mode) {
|
||||
dev->extra_intra_space = (double)dev->esc_parms[0] / (dev->print_quality == QUALITY_DRAFT ? 120.0 : 180.0);
|
||||
if (!dev->multipoint_mode) {
|
||||
dev->extra_intra_space = (double) dev->esc_parms[0] / (dev->print_quality == QUALITY_DRAFT ? 120.0 : 180.0);
|
||||
dev->hmi = -1;
|
||||
update_font(dev);
|
||||
}
|
||||
@@ -984,7 +957,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
if (unit_size < 0)
|
||||
unit_size = 60.0;
|
||||
|
||||
new_x = dev->left_margin + ((double)PARAM16(0) / unit_size);
|
||||
new_x = dev->left_margin + ((double) PARAM16(0) / unit_size);
|
||||
if (new_x <= dev->right_margin)
|
||||
dev->curr_x = new_x;
|
||||
break;
|
||||
@@ -999,7 +972,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
case 0x2b: /* set n/360-inch line spacing (ESC +) */
|
||||
case 0x833: /* Set n/360-inch line spacing (FS 3) */
|
||||
dev->linespacing = (double)dev->esc_parms[0] / 360.0;
|
||||
dev->linespacing = (double) dev->esc_parms[0] / 360.0;
|
||||
break;
|
||||
|
||||
case 0x2d: /* turn underline on/off (ESC -) */
|
||||
@@ -1029,7 +1002,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x33: /* set n/180-inch line spacing (ESC 3) */
|
||||
dev->linespacing = (double)dev->esc_parms[0] / 180.0;
|
||||
dev->linespacing = (double) dev->esc_parms[0] / 180.0;
|
||||
break;
|
||||
|
||||
case 0x34: /* select italic font (ESC 4) */
|
||||
@@ -1080,12 +1053,12 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
case 0x41: /* set n/60-inch line spacing */
|
||||
case 0x841:
|
||||
dev->linespacing = (double)dev->esc_parms[0] / 60.0;
|
||||
dev->linespacing = (double) dev->esc_parms[0] / 60.0;
|
||||
break;
|
||||
|
||||
case 0x43: /* set page length in lines (ESC C) */
|
||||
if (dev->esc_parms[0] != 0) {
|
||||
dev->page_height = dev->bottom_margin = (double)dev->esc_parms[0] * dev->linespacing;
|
||||
dev->page_height = dev->bottom_margin = (double) dev->esc_parms[0] * dev->linespacing;
|
||||
} else { /* == 0 => Set page length in inches */
|
||||
dev->esc_parms_req = 1;
|
||||
dev->esc_parms_curr = 0;
|
||||
@@ -1113,7 +1086,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x4a: /* advance print pos vertically (ESC J n) */
|
||||
dev->curr_y += (double)((double)dev->esc_parms[0] / 180.0);
|
||||
dev->curr_y += (double) ((double) dev->esc_parms[0] / 180.0);
|
||||
if (dev->curr_y > dev->bottom_margin)
|
||||
new_page(dev, 1, 0);
|
||||
break;
|
||||
@@ -1137,7 +1110,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
case 0x4e: /* set bottom margin (ESC N) */
|
||||
dev->top_margin = 0.0;
|
||||
dev->bottom_margin = (double)dev->esc_parms[0] * dev->linespacing;
|
||||
dev->bottom_margin = (double) dev->esc_parms[0] * dev->linespacing;
|
||||
break;
|
||||
|
||||
case 0x4f: /* cancel bottom (and top) margin */
|
||||
@@ -1153,7 +1126,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x51: /* set right margin */
|
||||
dev->right_margin = ((double)dev->esc_parms[0] - 1.0) / dev->cpi;
|
||||
dev->right_margin = ((double) dev->esc_parms[0] - 1.0) / dev->cpi;
|
||||
break;
|
||||
|
||||
case 0x52: /* select an intl character set (ESC R) */
|
||||
@@ -1208,20 +1181,20 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
dev->multipoint_mode = 1;
|
||||
/* Copy currently non-multipoint CPI if no value was set so far. */
|
||||
if (dev->multipoint_cpi == 0.0) {
|
||||
dev->multipoint_cpi= dev->cpi;
|
||||
dev->multipoint_cpi = dev->cpi;
|
||||
}
|
||||
if (dev->esc_parms[0] > 0) { /* set CPI */
|
||||
if (dev->esc_parms[0] == 1) {
|
||||
/* Proportional spacing. */
|
||||
dev->font_style |= STYLE_PROP;
|
||||
} else if (dev->esc_parms[0] >= 5)
|
||||
dev->multipoint_cpi = 360.0 / (double)dev->esc_parms[0];
|
||||
dev->multipoint_cpi = 360.0 / (double) dev->esc_parms[0];
|
||||
}
|
||||
if (dev->multipoint_size == 0.0)
|
||||
dev->multipoint_size = 10.5;
|
||||
if (PARAM16(1) > 0) {
|
||||
/* set points */
|
||||
dev->multipoint_size = ((double)PARAM16(1)) / 2.0;
|
||||
dev->multipoint_size = ((double) PARAM16(1)) / 2.0;
|
||||
}
|
||||
update_font(dev);
|
||||
break;
|
||||
@@ -1241,7 +1214,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
unit_size = dev->defined_unit;
|
||||
if (unit_size < 0)
|
||||
unit_size = (dev->print_quality == QUALITY_DRAFT ? 120.0 : 180.0);
|
||||
dev->curr_x += ((double)rel_move / unit_size);
|
||||
dev->curr_x += ((double) rel_move / unit_size);
|
||||
break;
|
||||
|
||||
case 0x61: /* select justification (ESC a) */
|
||||
@@ -1249,7 +1222,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x63: /* set horizontal motion index (HMI) (ESC c) */
|
||||
dev->hmi = (double)PARAM16(0) / 360.0;
|
||||
dev->hmi = (double) PARAM16(0) / 360.0;
|
||||
dev->extra_intra_space = 0.0;
|
||||
break;
|
||||
|
||||
@@ -1266,7 +1239,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x6a: // Reverse paper feed (ESC j)
|
||||
reverse = (double)PARAM16(0) / (double)216.0;
|
||||
reverse = (double) PARAM16(0) / (double) 216.0;
|
||||
reverse = dev->curr_y - reverse;
|
||||
if (reverse < dev->left_margin)
|
||||
dev->curr_y = dev->left_margin;
|
||||
@@ -1282,7 +1255,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x6c: /* set left margin (ESC 1) */
|
||||
dev->left_margin = ((double)dev->esc_parms[0] - 1.0) / dev->cpi;
|
||||
dev->left_margin = ((double) dev->esc_parms[0] - 1.0) / dev->cpi;
|
||||
if (dev->curr_x < dev->left_margin)
|
||||
dev->curr_x = dev->left_margin;
|
||||
break;
|
||||
@@ -1322,7 +1295,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x77: /* turn double-height printing on/off (ESC w) */
|
||||
if (! dev->multipoint_mode) {
|
||||
if (!dev->multipoint_mode) {
|
||||
if (dev->esc_parms[0] == 0 || dev->esc_parms[0] == '0')
|
||||
dev->font_style &= ~STYLE_DOUBLEHEIGHT;
|
||||
if (dev->esc_parms[0] == 1 || dev->esc_parms[0] == '1')
|
||||
@@ -1346,7 +1319,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
/* Our special command markers. */
|
||||
case 0x0100: /* set page length in inches (ESC C NUL) */
|
||||
dev->page_height = (double)dev->esc_parms[0];
|
||||
dev->page_height = (double) dev->esc_parms[0];
|
||||
dev->bottom_margin = dev->page_height;
|
||||
dev->top_margin = 0.0;
|
||||
break;
|
||||
@@ -1381,7 +1354,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x0242: /* bar code setup and print (ESC (B) */
|
||||
//ERRLOG("ESC/P: Barcode printing not supported.\n");
|
||||
// ERRLOG("ESC/P: Barcode printing not supported.\n");
|
||||
|
||||
/* Find out how many bytes to skip. */
|
||||
dev->esc_parms_req = PARAM16(0);
|
||||
@@ -1389,21 +1362,21 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
break;
|
||||
|
||||
case 0x0243: /* set page length in defined unit (ESC (C) */
|
||||
if (dev->esc_parms[0] && (dev->defined_unit> 0)) {
|
||||
dev->page_height = dev->bottom_margin = (double)PARAM16(2) * dev->defined_unit;
|
||||
if (dev->esc_parms[0] && (dev->defined_unit > 0)) {
|
||||
dev->page_height = dev->bottom_margin = (double) PARAM16(2) * dev->defined_unit;
|
||||
dev->top_margin = 0.0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x0255: /* set unit (ESC (U) */
|
||||
dev->defined_unit = 3600.0 / (double)dev->esc_parms[2];
|
||||
dev->defined_unit = 3600.0 / (double) dev->esc_parms[2];
|
||||
break;
|
||||
|
||||
case 0x0256: /* set abse vertical print pos (ESC (V) */
|
||||
unit_size = dev->defined_unit;
|
||||
if (unit_size < 0)
|
||||
unit_size = 360.0;
|
||||
new_y = dev->top_margin + (double)PARAM16(2) * unit_size;
|
||||
new_y = dev->top_margin + (double) PARAM16(2) * unit_size;
|
||||
if (new_y > dev->bottom_margin)
|
||||
new_page(dev, 1, 0);
|
||||
else
|
||||
@@ -1416,8 +1389,8 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
|
||||
case 0x0263: /* set page format (ESC (c) */
|
||||
if (dev->defined_unit > 0.0) {
|
||||
new_top = (double)PARAM16(2) * dev->defined_unit;
|
||||
new_bottom = (double)PARAM16(4) * dev->defined_unit;
|
||||
new_top = (double) PARAM16(2) * dev->defined_unit;
|
||||
new_bottom = (double) PARAM16(4) * dev->defined_unit;
|
||||
if (new_top >= new_bottom)
|
||||
break;
|
||||
if (new_top < dev->page_height)
|
||||
@@ -1434,7 +1407,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
unit_size = dev->defined_unit;
|
||||
if (unit_size < 0.0)
|
||||
unit_size = 360.0;
|
||||
new_y = dev->curr_y + (double)((int16_t)PARAM16(2)) * unit_size;
|
||||
new_y = dev->curr_y + (double) ((int16_t) PARAM16(2)) * unit_size;
|
||||
if (new_y > dev->top_margin) {
|
||||
if (new_y > dev->bottom_margin)
|
||||
new_page(dev, 1, 0);
|
||||
@@ -1542,7 +1515,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
return 1;
|
||||
|
||||
case 0x0e: /* select Real64-width printing (one line) (SO) */
|
||||
if (! dev->multipoint_mode) {
|
||||
if (!dev->multipoint_mode) {
|
||||
dev->hmi = -1;
|
||||
dev->font_style |= STYLE_DOUBLEWIDTHONELINE;
|
||||
update_font(dev);
|
||||
@@ -1550,7 +1523,7 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
return 1;
|
||||
|
||||
case 0x0f: /* select condensed printing (SI) */
|
||||
if (! dev->multipoint_mode) {
|
||||
if (!dev->multipoint_mode) {
|
||||
dev->hmi = -1;
|
||||
dev->font_style |= STYLE_CONDENSED;
|
||||
update_font(dev);
|
||||
@@ -1596,7 +1569,6 @@ process_char(escp_t *dev, uint8_t ch)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handle_char(escp_t *dev, uint8_t ch)
|
||||
{
|
||||
@@ -1646,7 +1618,7 @@ handle_char(escp_t *dev, uint8_t ch)
|
||||
}
|
||||
|
||||
pen_x = PIXX + dev->fontface->glyph->bitmap_left;
|
||||
pen_y = (uint16_t)(PIXY - dev->fontface->glyph->bitmap_top + dev->fontface->size->metrics.ascender / 64);
|
||||
pen_y = (uint16_t) (PIXY - dev->fontface->glyph->bitmap_top + dev->fontface->size->metrics.ascender / 64);
|
||||
|
||||
if (dev->font_style & STYLE_SUBSCRIPT)
|
||||
pen_y += dev->fontface->glyph->bitmap.rows / 2;
|
||||
@@ -1692,9 +1664,9 @@ handle_char(escp_t *dev, uint8_t ch)
|
||||
line_y = PIXY;
|
||||
|
||||
if (dev->font_style & STYLE_UNDERLINE)
|
||||
line_y = (PIXY + (uint16_t)(dev->fontface->size->metrics.height * 0.9));
|
||||
line_y = (PIXY + (uint16_t) (dev->fontface->size->metrics.height * 0.9));
|
||||
if (dev->font_style & STYLE_STRIKETHROUGH)
|
||||
line_y = (PIXY + (uint16_t)(dev->fontface->size->metrics.height * 0.45));
|
||||
line_y = (PIXY + (uint16_t) (dev->fontface->size->metrics.height * 0.45));
|
||||
if (dev->font_style & STYLE_OVERSCORE)
|
||||
line_y = PIXY - ((dev->font_score == SCORE_DOUBLE || dev->font_score == SCORE_DOUBLEBROKEN) ? 5 : 0);
|
||||
|
||||
@@ -1712,7 +1684,6 @@ handle_char(escp_t *dev, uint8_t ch)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* TODO: This can be optimized quite a bit... I'm just too lazy right now ;-) */
|
||||
static void
|
||||
blit_glyph(escp_t *dev, unsigned destx, unsigned desty, int8_t add)
|
||||
@@ -1729,8 +1700,8 @@ blit_glyph(escp_t *dev, unsigned destx, unsigned desty, int8_t add)
|
||||
for (x = 0; x < bitmap->width; x++) {
|
||||
src = *(bitmap->buffer + x + y * bitmap->pitch);
|
||||
/* ignore background, and respect page size */
|
||||
if (src > 0 && (destx + x < (unsigned)dev->page->w) && (desty + y < (unsigned)dev->page->h)) {
|
||||
dst = (uint8_t *)dev->page->pixels + (x + destx) + (y + desty) * dev->page->pitch;
|
||||
if (src > 0 && (destx + x < (unsigned) dev->page->w) && (desty + y < (unsigned) dev->page->h)) {
|
||||
dst = (uint8_t *) dev->page->pixels + (x + destx) + (y + desty) * dev->page->pitch;
|
||||
src >>= 3;
|
||||
|
||||
if (add) {
|
||||
@@ -1741,13 +1712,12 @@ blit_glyph(escp_t *dev, unsigned destx, unsigned desty, int8_t add)
|
||||
*dst |= dev->color;
|
||||
}
|
||||
} else
|
||||
*dst = src|dev->color;
|
||||
*dst = src | dev->color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Draw anti-aliased line. */
|
||||
static void
|
||||
draw_hline(escp_t *dev, unsigned from_x, unsigned to_x, unsigned y, int8_t broken)
|
||||
@@ -1760,16 +1730,15 @@ draw_hline(escp_t *dev, unsigned from_x, unsigned to_x, unsigned y, int8_t broke
|
||||
/* Skip parts if broken line or going over the border. */
|
||||
if ((!broken || (x % breakmod <= gapstart)) && (x < dev->page->w)) {
|
||||
if (y > 0 && (y - 1) < dev->page->h)
|
||||
*((uint8_t*)dev->page->pixels + x + (y - 1) * (unsigned)dev->page->pitch) = 240;
|
||||
*((uint8_t *) dev->page->pixels + x + (y - 1) * (unsigned) dev->page->pitch) = 240;
|
||||
if (y < dev->page->h)
|
||||
*((uint8_t*)dev->page->pixels + x + y * (unsigned)dev->page->pitch) = !broken ? 255 : 240;
|
||||
*((uint8_t *) dev->page->pixels + x + y * (unsigned) dev->page->pitch) = !broken ? 255 : 240;
|
||||
if (y + 1 < dev->page->h)
|
||||
*((uint8_t*)dev->page->pixels + x + (y + 1) * (unsigned)dev->page->pitch) = 240;
|
||||
*((uint8_t *) dev->page->pixels + x + (y + 1) * (unsigned) dev->page->pitch) = 240;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
setup_bit_image(escp_t *dev, uint8_t density, uint16_t num_columns)
|
||||
{
|
||||
@@ -1882,7 +1851,6 @@ setup_bit_image(escp_t *dev, uint8_t density, uint16_t num_columns)
|
||||
dev->bg_bytes_read = 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
print_bit_graph(escp_t *dev, uint8_t ch)
|
||||
{
|
||||
@@ -1917,13 +1885,13 @@ print_bit_graph(escp_t *dev, uint8_t ch)
|
||||
/* draw a "pixel" */
|
||||
for (xx = 0; xx < pixel_w; xx++) {
|
||||
for (yy = 0; yy < pixel_h; yy++) {
|
||||
if (((PIXX + xx) < (unsigned)dev->page->w) && ((PIXY + yy) < (unsigned)dev->page->h))
|
||||
*((uint8_t *)dev->page->pixels + (PIXX + xx) + (PIXY + yy)*dev->page->pitch) |= (dev->color | 0x1f);
|
||||
if (((PIXX + xx) < (unsigned) dev->page->w) && ((PIXY + yy) < (unsigned) dev->page->h))
|
||||
*((uint8_t *) dev->page->pixels + (PIXX + xx) + (PIXY + yy) * dev->page->pitch) |= (dev->color | 0x1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dev->curr_y += 1.0 / (double)dev->bg_v_density;
|
||||
dev->curr_y += 1.0 / (double) dev->bg_v_density;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1939,11 +1907,10 @@ print_bit_graph(escp_t *dev, uint8_t ch)
|
||||
dev->curr_x += 1.0 / dev->bg_h_density;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
write_data(uint8_t val, void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
|
||||
if (dev == NULL)
|
||||
return;
|
||||
@@ -1951,11 +1918,10 @@ write_data(uint8_t val, void *priv)
|
||||
dev->data = val;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
write_ctrl(uint8_t val, void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
|
||||
if (dev == NULL)
|
||||
return;
|
||||
@@ -1990,29 +1956,26 @@ write_ctrl(uint8_t val, void *priv)
|
||||
dev->autofeed = ((val & 0x02) > 0);
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
read_data(void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
|
||||
return dev->data;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
read_ctrl(void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
|
||||
return 0xe0 | (dev->autofeed ? 0x02 : 0x00) | (dev->ctrl & 0xfd);
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
read_status(void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
uint8_t ret = 0x1f;
|
||||
|
||||
ret |= 0x80;
|
||||
@@ -2020,10 +1983,9 @@ read_status(void *priv)
|
||||
if (!dev->ack)
|
||||
ret |= 0x40;
|
||||
|
||||
return(ret);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
escp_init(void *lpt)
|
||||
{
|
||||
@@ -2036,7 +1998,7 @@ escp_init(void *lpt)
|
||||
ft_handle = dynld_module(fn, ft_imports);
|
||||
if (ft_handle == NULL) {
|
||||
ui_msgbox_header(MBX_ERROR, (wchar_t *) IDS_2110, (wchar_t *) IDS_2131);
|
||||
return(NULL);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2046,20 +2008,20 @@ escp_init(void *lpt)
|
||||
ui_msgbox_header(MBX_ERROR, (wchar_t *) IDS_2110, (wchar_t *) IDS_2131);
|
||||
dynld_close(ft_lib);
|
||||
ft_lib = NULL;
|
||||
return(NULL);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialize a device instance. */
|
||||
dev = (escp_t *)malloc(sizeof(escp_t));
|
||||
dev = (escp_t *) malloc(sizeof(escp_t));
|
||||
memset(dev, 0x00, sizeof(escp_t));
|
||||
dev->ctrl = 0x04;
|
||||
dev->lpt = lpt;
|
||||
|
||||
/* Create a full pathname for the font files. */
|
||||
if(strlen(exe_path) >= sizeof(dev->fontpath)) {
|
||||
if (strlen(exe_path) >= sizeof(dev->fontpath)) {
|
||||
free(dev);
|
||||
return(NULL);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
strcpy(dev->fontpath, exe_path);
|
||||
@@ -2068,7 +2030,7 @@ escp_init(void *lpt)
|
||||
|
||||
/* Create the full path for the page images. */
|
||||
path_append_filename(dev->pagepath, usr_path, "printer");
|
||||
if (! plat_dir_check(dev->pagepath))
|
||||
if (!plat_dir_check(dev->pagepath))
|
||||
plat_dir_create(dev->pagepath);
|
||||
path_slash(dev->pagepath);
|
||||
|
||||
@@ -2077,11 +2039,11 @@ escp_init(void *lpt)
|
||||
dev->dpi = PAGE_DPI;
|
||||
|
||||
/* Create 8-bit grayscale buffer for the page. */
|
||||
dev->page = (psurface_t *)malloc(sizeof(psurface_t));
|
||||
dev->page->w = (int)(dev->dpi * dev->page_width);
|
||||
dev->page->h = (int)(dev->dpi * dev->page_height);
|
||||
dev->page = (psurface_t *) malloc(sizeof(psurface_t));
|
||||
dev->page->w = (int) (dev->dpi * dev->page_width);
|
||||
dev->page->h = (int) (dev->dpi * dev->page_height);
|
||||
dev->page->pitch = dev->page->w;
|
||||
dev->page->pixels = (uint8_t *)malloc(dev->page->pitch * dev->page->h);
|
||||
dev->page->pixels = (uint8_t *) malloc(dev->page->pitch * dev->page->h);
|
||||
memset(dev->page->pixels, 0x00, dev->page->pitch * dev->page->h);
|
||||
|
||||
/* Initialize parameters. */
|
||||
@@ -2092,17 +2054,17 @@ escp_init(void *lpt)
|
||||
}
|
||||
|
||||
/* 0 = all white needed for logic 000 */
|
||||
fill_palette( 0, 0, 0, 1, dev);
|
||||
fill_palette(0, 0, 0, 1, dev);
|
||||
/* 1 = magenta* 001 */
|
||||
fill_palette( 0, 255, 0, 1, dev);
|
||||
fill_palette(0, 255, 0, 1, dev);
|
||||
/* 2 = cyan* 010 */
|
||||
fill_palette(255, 0, 0, 2, dev);
|
||||
/* 3 = "violet" 011 */
|
||||
fill_palette(255, 255, 0, 3, dev);
|
||||
/* 4 = yellow* 100 */
|
||||
fill_palette( 0, 0, 255, 4, dev);
|
||||
fill_palette(0, 0, 255, 4, dev);
|
||||
/* 5 = red 101 */
|
||||
fill_palette( 0, 255, 255, 5, dev);
|
||||
fill_palette(0, 255, 255, 5, dev);
|
||||
/* 6 = green 110 */
|
||||
fill_palette(255, 0, 255, 6, dev);
|
||||
/* 7 = black 111 */
|
||||
@@ -2120,16 +2082,16 @@ escp_init(void *lpt)
|
||||
timer_add(&dev->pulse_timer, pulse_timer, dev, 0);
|
||||
timer_add(&dev->timeout_timer, timeout_timer, dev, 0);
|
||||
|
||||
return(dev);
|
||||
return (dev);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
escp_close(void *priv)
|
||||
{
|
||||
escp_t *dev = (escp_t *)priv;
|
||||
escp_t *dev = (escp_t *) priv;
|
||||
|
||||
if (dev == NULL) return;
|
||||
if (dev == NULL)
|
||||
return;
|
||||
|
||||
if (dev->page != NULL) {
|
||||
/* Print last page if it contains data. */
|
||||
@@ -2144,7 +2106,6 @@ escp_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const lpt_device_t lpt_prt_escp_device = {
|
||||
.name = "Generic ESC/P Dot-Matrix",
|
||||
.internal_name = "dot_matrix",
|
||||
|
@@ -33,32 +33,29 @@
|
||||
#include <86box/ui.h>
|
||||
#include <86box/prt_devs.h>
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
# define GSDLLAPI __stdcall
|
||||
#else
|
||||
# define GSDLLAPI
|
||||
#endif
|
||||
|
||||
|
||||
#define GS_ARG_ENCODING_UTF8 1
|
||||
#define gs_error_Quit -101
|
||||
|
||||
#ifdef _WIN32
|
||||
#if (!(defined __amd64__ || defined _M_X64 || defined __aarch64__ || defined _M_ARM64))
|
||||
# if (!(defined __amd64__ || defined _M_X64 || defined __aarch64__ || defined _M_ARM64))
|
||||
# define PATH_GHOSTSCRIPT_DLL "gsdll32.dll"
|
||||
#else
|
||||
# else
|
||||
# define PATH_GHOSTSCRIPT_DLL "gsdll64.dll"
|
||||
#endif
|
||||
# endif
|
||||
#elif defined __APPLE__
|
||||
#define PATH_GHOSTSCRIPT_DLL "libgs.dylib"
|
||||
# define PATH_GHOSTSCRIPT_DLL "libgs.dylib"
|
||||
#else
|
||||
#define PATH_GHOSTSCRIPT_DLL "libgs.so.9"
|
||||
# define PATH_GHOSTSCRIPT_DLL "libgs.so.9"
|
||||
#endif
|
||||
|
||||
#define POSTSCRIPT_BUFFER_LENGTH 65536
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const char *name;
|
||||
@@ -92,16 +89,15 @@ typedef struct gsapi_revision_s {
|
||||
long revisiondate;
|
||||
} gsapi_revision_t;
|
||||
|
||||
|
||||
static int (GSDLLAPI *gsapi_revision)(gsapi_revision_t *pr, int len);
|
||||
static int (GSDLLAPI *gsapi_new_instance)(void **pinstance, void *caller_handle);
|
||||
static void (GSDLLAPI *gsapi_delete_instance)(void *instance);
|
||||
static int (GSDLLAPI *gsapi_set_arg_encoding)(void *instance, int encoding);
|
||||
static int (GSDLLAPI *gsapi_init_with_args)(void *instance, int argc, char **argv);
|
||||
static int (GSDLLAPI *gsapi_exit)(void *instance);
|
||||
static int(GSDLLAPI *gsapi_revision)(gsapi_revision_t *pr, int len);
|
||||
static int(GSDLLAPI *gsapi_new_instance)(void **pinstance, void *caller_handle);
|
||||
static void(GSDLLAPI *gsapi_delete_instance)(void *instance);
|
||||
static int(GSDLLAPI *gsapi_set_arg_encoding)(void *instance, int encoding);
|
||||
static int(GSDLLAPI *gsapi_init_with_args)(void *instance, int argc, char **argv);
|
||||
static int(GSDLLAPI *gsapi_exit)(void *instance);
|
||||
|
||||
static dllimp_t ghostscript_imports[] = {
|
||||
// clang-format off
|
||||
// clang-format off
|
||||
{ "gsapi_revision", &gsapi_revision },
|
||||
{ "gsapi_new_instance", &gsapi_new_instance },
|
||||
{ "gsapi_delete_instance", &gsapi_delete_instance },
|
||||
@@ -109,12 +105,11 @@ static dllimp_t ghostscript_imports[] = {
|
||||
{ "gsapi_init_with_args", &gsapi_init_with_args },
|
||||
{ "gsapi_exit", &gsapi_exit },
|
||||
{ NULL, NULL }
|
||||
// clang-format on
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static void *ghostscript_handle = NULL;
|
||||
|
||||
|
||||
static void
|
||||
reset_ps(ps_t *dev)
|
||||
{
|
||||
@@ -130,7 +125,6 @@ reset_ps(ps_t *dev)
|
||||
timer_disable(&dev->timeout_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
pulse_timer(void *priv)
|
||||
{
|
||||
@@ -144,7 +138,6 @@ pulse_timer(void *priv)
|
||||
timer_disable(&dev->pulse_timer);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
convert_to_pdf(ps_t *dev)
|
||||
{
|
||||
@@ -193,7 +186,6 @@ convert_to_pdf(ps_t *dev)
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
write_buffer(ps_t *dev, bool finish)
|
||||
{
|
||||
@@ -231,7 +223,6 @@ write_buffer(ps_t *dev, bool finish)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
timeout_timer(void *priv)
|
||||
{
|
||||
@@ -242,7 +233,6 @@ timeout_timer(void *priv)
|
||||
timer_disable(&dev->timeout_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ps_write_data(uint8_t val, void *p)
|
||||
{
|
||||
@@ -254,7 +244,6 @@ ps_write_data(uint8_t val, void *p)
|
||||
dev->data = (char) val;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
process_data(ps_t *dev)
|
||||
{
|
||||
@@ -293,7 +282,6 @@ process_data(ps_t *dev)
|
||||
dev->buffer[dev->buffer_pos] = 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ps_write_ctrl(uint8_t val, void *p)
|
||||
{
|
||||
@@ -326,7 +314,6 @@ ps_write_ctrl(uint8_t val, void *p)
|
||||
dev->ctrl = val;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
ps_read_status(void *p)
|
||||
{
|
||||
@@ -336,10 +323,9 @@ ps_read_status(void *p)
|
||||
if (!dev->ack)
|
||||
ret |= 0x40;
|
||||
|
||||
return(ret);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
ps_init(void *lpt)
|
||||
{
|
||||
@@ -364,7 +350,7 @@ ps_init(void *lpt)
|
||||
}
|
||||
}
|
||||
|
||||
/* Cache print folder path. */
|
||||
/* Cache print folder path. */
|
||||
memset(dev->printer_path, 0x00, sizeof(dev->printer_path));
|
||||
path_append_filename(dev->printer_path, usr_path, "printer");
|
||||
if (!plat_dir_check(dev->printer_path))
|
||||
@@ -376,10 +362,9 @@ ps_init(void *lpt)
|
||||
|
||||
reset_ps(dev);
|
||||
|
||||
return(dev);
|
||||
return (dev);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ps_close(void *p)
|
||||
{
|
||||
@@ -399,7 +384,6 @@ ps_close(void *p)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const lpt_device_t lpt_prt_ps_device = {
|
||||
.name = "Generic PostScript Printer",
|
||||
.internal_name = "postscript",
|
||||
|
@@ -66,10 +66,8 @@
|
||||
#include <86box/printer.h>
|
||||
#include <86box/prt_devs.h>
|
||||
|
||||
|
||||
#define FULL_PAGE 1 /* set if no top/bot margins */
|
||||
|
||||
|
||||
/* Default page values (for now.) */
|
||||
#define PAGE_WIDTH 8.5 /* standard U.S. Letter */
|
||||
#define PAGE_HEIGHT 11
|
||||
@@ -85,7 +83,6 @@
|
||||
#define PAGE_CPI 10.0 /* standard 10 cpi */
|
||||
#define PAGE_LPI 6.0 /* standard 6 lpi */
|
||||
|
||||
|
||||
typedef struct {
|
||||
int8_t dirty; /* has the page been printed on? */
|
||||
char pad;
|
||||
@@ -96,11 +93,10 @@ typedef struct {
|
||||
char *chars; /* character data */
|
||||
} psurface_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
|
||||
void * lpt;
|
||||
void *lpt;
|
||||
|
||||
/* Output file name. */
|
||||
char filename[1024];
|
||||
@@ -139,7 +135,6 @@ typedef struct {
|
||||
uint8_t ctrl;
|
||||
} prnt_t;
|
||||
|
||||
|
||||
/* Dump the current page into a formatted file. */
|
||||
static void
|
||||
dump_page(prnt_t *dev)
|
||||
@@ -152,7 +147,7 @@ dump_page(prnt_t *dev)
|
||||
/* Create the full path for this file. */
|
||||
memset(path, 0x00, sizeof(path));
|
||||
path_append_filename(path, usr_path, "printer");
|
||||
if (! plat_dir_check(path))
|
||||
if (!plat_dir_check(path))
|
||||
plat_dir_create(path);
|
||||
path_slash(path);
|
||||
strcat(path, dev->filename);
|
||||
@@ -160,7 +155,7 @@ dump_page(prnt_t *dev)
|
||||
/* Create the file. */
|
||||
fp = plat_fopen(path, "a");
|
||||
if (fp == NULL) {
|
||||
//ERRLOG("PRNT: unable to create print page '%s'\n", path);
|
||||
// ERRLOG("PRNT: unable to create print page '%s'\n", path);
|
||||
return;
|
||||
}
|
||||
fseek(fp, 0, SEEK_END);
|
||||
@@ -186,7 +181,6 @@ dump_page(prnt_t *dev)
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
new_page(prnt_t *dev)
|
||||
{
|
||||
@@ -200,7 +194,6 @@ new_page(prnt_t *dev)
|
||||
dev->page->dirty = 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
pulse_timer(void *priv)
|
||||
{
|
||||
@@ -214,7 +207,6 @@ pulse_timer(void *priv)
|
||||
timer_disable(&dev->pulse_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
timeout_timer(void *priv)
|
||||
{
|
||||
@@ -226,7 +218,6 @@ timeout_timer(void *priv)
|
||||
timer_disable(&dev->timeout_timer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_printer(prnt_t *dev)
|
||||
{
|
||||
@@ -243,7 +234,7 @@ reset_printer(prnt_t *dev)
|
||||
|
||||
/* Default page layout. */
|
||||
dev->max_chars = (int) ((dev->page_width - dev->left_margin - dev->right_margin) * dev->cpi);
|
||||
dev->max_lines = (int) ((dev->page_height -dev->top_margin - dev->bot_margin) * dev->lpi);
|
||||
dev->max_lines = (int) ((dev->page_height - dev->top_margin - dev->bot_margin) * dev->lpi);
|
||||
|
||||
dev->curr_x = dev->curr_y = 0;
|
||||
|
||||
@@ -257,7 +248,6 @@ reset_printer(prnt_t *dev)
|
||||
timer_disable(&dev->timeout_timer);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
process_char(prnt_t *dev, uint8_t ch)
|
||||
{
|
||||
@@ -294,7 +284,7 @@ process_char(prnt_t *dev, uint8_t ch)
|
||||
|
||||
case 0x0d: /* Carriage Return (CR) */
|
||||
dev->curr_x = 0;
|
||||
if (! dev->autofeed)
|
||||
if (!dev->autofeed)
|
||||
return 1;
|
||||
/*FALLTHROUGH*/
|
||||
|
||||
@@ -341,16 +331,16 @@ process_char(prnt_t *dev, uint8_t ch)
|
||||
}
|
||||
|
||||
/* Just a printable character. */
|
||||
return(0);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handle_char(prnt_t *dev)
|
||||
{
|
||||
uint8_t ch = dev->data;
|
||||
|
||||
if (dev->page == NULL) return;
|
||||
if (dev->page == NULL)
|
||||
return;
|
||||
|
||||
if (process_char(dev, ch) == 1) {
|
||||
/* Command was processed. */
|
||||
@@ -369,24 +359,24 @@ handle_char(prnt_t *dev)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
write_data(uint8_t val, void *priv)
|
||||
{
|
||||
prnt_t *dev = (prnt_t *)priv;
|
||||
prnt_t *dev = (prnt_t *) priv;
|
||||
|
||||
if (dev == NULL) return;
|
||||
if (dev == NULL)
|
||||
return;
|
||||
|
||||
dev->data = val;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
write_ctrl(uint8_t val, void *priv)
|
||||
{
|
||||
prnt_t *dev = (prnt_t *)priv;
|
||||
prnt_t *dev = (prnt_t *) priv;
|
||||
|
||||
if (dev == NULL) return;
|
||||
if (dev == NULL)
|
||||
return;
|
||||
|
||||
/* set autofeed value */
|
||||
dev->autofeed = val & 0x02 ? 1 : 0;
|
||||
@@ -417,11 +407,10 @@ write_ctrl(uint8_t val, void *priv)
|
||||
dev->ctrl = val;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
read_status(void *priv)
|
||||
{
|
||||
prnt_t *dev = (prnt_t *)priv;
|
||||
prnt_t *dev = (prnt_t *) priv;
|
||||
uint8_t ret = 0x1f;
|
||||
|
||||
ret |= 0x80;
|
||||
@@ -429,17 +418,16 @@ read_status(void *priv)
|
||||
if (!dev->ack)
|
||||
ret |= 0x40;
|
||||
|
||||
return(ret);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
prnt_init(void *lpt)
|
||||
{
|
||||
prnt_t *dev;
|
||||
|
||||
/* Initialize a device instance. */
|
||||
dev = (prnt_t *)malloc(sizeof(prnt_t));
|
||||
dev = (prnt_t *) malloc(sizeof(prnt_t));
|
||||
memset(dev, 0x00, sizeof(prnt_t));
|
||||
dev->ctrl = 0x04;
|
||||
dev->lpt = lpt;
|
||||
@@ -448,23 +436,22 @@ prnt_init(void *lpt)
|
||||
reset_printer(dev);
|
||||
|
||||
/* Create a page buffer. */
|
||||
dev->page = (psurface_t *)malloc(sizeof(psurface_t));
|
||||
dev->page = (psurface_t *) malloc(sizeof(psurface_t));
|
||||
dev->page->w = dev->max_chars;
|
||||
dev->page->h = dev->max_lines;
|
||||
dev->page->chars = (char *)malloc(dev->page->w * dev->page->h);
|
||||
dev->page->chars = (char *) malloc(dev->page->w * dev->page->h);
|
||||
memset(dev->page->chars, 0x00, dev->page->w * dev->page->h);
|
||||
|
||||
timer_add(&dev->pulse_timer, pulse_timer, dev, 0);
|
||||
timer_add(&dev->timeout_timer, timeout_timer, dev, 0);
|
||||
|
||||
return(dev);
|
||||
return (dev);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
prnt_close(void *priv)
|
||||
{
|
||||
prnt_t *dev = (prnt_t *)priv;
|
||||
prnt_t *dev = (prnt_t *) priv;
|
||||
|
||||
if (dev == NULL)
|
||||
return;
|
||||
@@ -482,7 +469,6 @@ prnt_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const lpt_device_t lpt_prt_text_device = {
|
||||
.name = "Generic Text Printer",
|
||||
.internal_name = "text_prt",
|
||||
|
Reference in New Issue
Block a user