А я не могу объяснить как именно.
Легче описать так: например если в файле 1_1.$OM посмотреть на изображение русской буквы "у"-маленькая, то между буквой у и т видна какая-то "лишняя" фигня из одного пикселя - так вот это и есть крючочек нижнего хвостика этой буквы "у", печатаемого девятой иголкой, весь этот байт побитно как бы "разворачивают" на 90 градусов под бкуву у...
Как-то так . Аналогичным образрм печатается ";".
На приложенный ранее скрин для эксперимента я вывел содержимое ПЗУ вот таким кодом:
Код:
COLORREF black = PALETTERGB(0, 0, 0);
COLORREF white = PALETTERGB(0xFF, 0xFF, 0xFF);
COLORREF cr;
byte PRNROM[2048];
FILE *fptr;
PRNROM[2048];
int ii = 0;
fopen_s(&fptr,"robotron_font.rom","rb");
if (fptr != NULL) {
for (ii=0; ii<2048; ii++)
PRNROM[ii] = getc(fptr);
fclose(fptr);
}
int x = 0; // Левый верхний угол
y = 120;
for (int j = 0; j < 127; j++) { //127
for (int b = 0; b < 8; b++) {
int bit = (PRNROM[j*10-2] >> b) & 1; bit ? cr = white : cr = black;
SetPixel(dc, j*10-1 + b, y + 1, cr);
}
for (int i = 1; i < 10; i++) {
for (int b = 0; b < 8; b++) {
int bit = (PRNROM[j*10+i-2] >> b) & 1; bit ? cr = white : cr = black;
SetPixel(dc, j*10+i-2, y - b, cr);
}
}
}
y = 130;
for (int j = 127; j < 255; j++) {
for (int b = 0; b < 8; b++) {
int bit = (PRNROM[j*10-2] >> b) & 1; bit ? cr = white : cr = black;
SetPixel(dc, j*10-1 + b - 680, y + 1, cr);
}
for (int i = 1; i < 10; i++) {
for (int b = 0; b < 8; b++) {
int bit = (PRNROM[j*10+i-2] >> b) & 1; bit ? cr = white : cr = black;
SetPixel(dc, j*10+i-2 - 680, y - b, cr);
}
}
}
Хотя нет, это уже вывод от какого-то другого моего эксперимента, это я уже видимо мостил печать в зависимости от кода выбора языка. Но суть от этого не меняется.
if (c == 0x0F) // Принтер использует кодировку англ. раскладкой
iss = ar1;
else if (c == 0x0E) // Кодировка рус.
iss = ar2;
unsigned char ar1[] = " !\"#0%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]0_`abcdefghijklmnopqrstuvwxyz{|}0";
unsigned char ar2[] = " !\"#0%&'()*+,-./0123456789:;<=>?юабцдефгхийклмноп ярстужвьызшэщчъЮАБЦДЕФГХИ ЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧ";