Важная информация

User Tag List

Страница 3 из 10 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 92

Тема: УКНЦ параллельный порт

  1. #21
    Master
    Регистрация
    12.04.2009
    Адрес
    Одесса
    Сообщений
    617
    Спасибо Благодарностей отдано 
    311
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, да. У нас собралось много действительно удобных самостоятельных программок для показа/редактирования пиксельных шрифтов от разных принтеров, и даже если пусть они все хранят данные в своём формате, собрать и привести к общему знаменателю будет вполне реально.
    Но проблемка даже не столько в отрисовке... Посадить рендерер потока на свой виртуальный СОМ-порт или виртуальный порт принтера в виде отдельной рисующей программы прямо на виртуальный рулон из полученных данных.
    Вот типичное описание команды из доки по принтеру:
    ESC P - включение шрифта "пика"
    Кодирование: CHR$(27); "Р".
    Функция: шрифт "элита", включенный по коду ESC M, завершается, а ПУ возвращается к шрифту "пика".
    Принять во внимание: SI, ESC SI, ESC Е, ESC М, ESC !;
    жирный и сжатый шрифты имеют более высокий приоритет /см. ESC !/.
    Сама реализация означает повторить все такие зависимости. Наверняка нюансов по каждой прошивке для каждого принтера будет целая куча .
    Последний раз редактировалось anasana; 14.06.2011 в 15:28.
    LodeDome: http://lodedome.no-ip.com/lodedome.php - Lode Runner 2010 Game Archive. KryoFlux, FluxEngine, Gotek boards
    Ищу пересылкой любые (неисправные/дефективные/некомплектные) платы и узлы корпуса Электроники-85 (МС-0585); дискеты 5,25".
    По_трошки: Поиск, УКНЦ, БК0010, МС1502, П-н 128, Вектор 06Ц, C64, MAC LC475, Львов ПК-01, ДВК-3Ш (ВМ2, ВМ3, MX, MY, КСМ, КЦГД, КТлК, MY4)
    Контакты: скайп: ana-sana, почта: [email protected], email: [email protected], TG: https://t.me/adesodesa

  2. #22
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,995
    Спасибо Благодарностей отдано 
    1,059
    Спасибо Благодарностей получено 
    1,223
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от anasana Посмотреть сообщение
    Я вроде уже был сделал в лоб импорт шрифтов из этих ПЗушек от Роботронов, а потом подотвлёкся на запил других частей эмуля.
    "Девятая иголка" хранится в каждом последнем байте знакоместа (хотя возможно что это просто зависит от того как я выбрал смещение к "первому" символу от начала файла с дампом) и как бы "заворачивается" под соответствующий символ.
    P.S. В моём Robotron СМ 6329.01М там 5 ПЗУшек, я в снятых дампах разглядел только один набор символов (он соптимизирован в самую первую, всё содержимое выглядит как на скриншоте в аттаче)... А где там хранятся ещё два набора? Как по мне визуально в остальных - всё как программный "мусор" микрокода.
    Это очень ценно, спасибо.
    На этом можно сделать уже как минимум печать "нормальным" шрифтом.
    Возможно конечно что шрифт действительно единственный, а остальные два получаются из него "эффектами".
    Но так и не понял как там получается девятая иголка -- можно на примере конкретного символа?

  3. #23
    Master
    Регистрация
    12.04.2009
    Адрес
    Одесса
    Сообщений
    617
    Спасибо Благодарностей отдано 
    311
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А я не могу объяснить как именно.
    Легче описать так: например если в файле 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:;<=>?юабцдефгхийклмноп ярстужвьызшэщчъЮАБЦДЕФГХИ ЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧ";
    Последний раз редактировалось anasana; 14.06.2011 в 16:32.
    LodeDome: http://lodedome.no-ip.com/lodedome.php - Lode Runner 2010 Game Archive. KryoFlux, FluxEngine, Gotek boards
    Ищу пересылкой любые (неисправные/дефективные/некомплектные) платы и узлы корпуса Электроники-85 (МС-0585); дискеты 5,25".
    По_трошки: Поиск, УКНЦ, БК0010, МС1502, П-н 128, Вектор 06Ц, C64, MAC LC475, Львов ПК-01, ДВК-3Ш (ВМ2, ВМ3, MX, MY, КСМ, КЦГД, КТлК, MY4)
    Контакты: скайп: ana-sana, почта: [email protected], email: [email protected], TG: https://t.me/adesodesa

  4. #24
    Moderator
    Регистрация
    09.01.2006
    Адрес
    Bryansk
    Сообщений
    1,336
    Спасибо Благодарностей отдано 
    40
    Спасибо Благодарностей получено 
    139
    Поблагодарили
    106 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от anasana Посмотреть сообщение
    Сама реализация означает повторить все такие зависимости. Наверняка нюансов по каждой прошивке для каждого принтера будет целая куча .
    О! Да еще каких нюансов: у меня где-то лежит файлик, где с помощью ESC последовательностей в одной строке печатается 2 - из надстрочных и подстрочных букв
    УКНЦ, ДВК-3, Ленинград-1 (48 кб)

  5. #25
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,995
    Спасибо Благодарностей отдано 
    1,059
    Спасибо Благодарностей получено 
    1,223
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Используя наработки anasana, расшифровал шрифт, перевёл его в более удобную форму и попробовал для примера выдать в SVG. Результат во вложении.

    UPD: Кому лень открывать, вот рендерёный вариант:
    Вложения Вложения
    • Тип файла: zip a.svg.zip (5.8 Кб, Просмотров: 130)
    Последний раз редактировалось nzeemin; 14.06.2011 в 18:39.

  6. #26
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,393
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    57 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, красота
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  7. #27
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    345
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    398 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Arseny Посмотреть сообщение
    О! Да еще каких нюансов: у меня где-то лежит файлик, где с помощью ESC последовательностей в одной строке печатается 2 - из надстрочных и подстрочных букв
    Да нюансы довольно простые - существует буфер, который заполняется символами. При определенных ситуациях этот буфер высвобождается, например при передвижении печатающей головки не в направлении печати (назад или вертикально), смене шрифта, ну и т.д. и т.п. При смене шрифта надо учитывать приоритетность режимов шрифта (жирный, пика, элита, разреженный). При передвижении головки надо контролировать выход за границу листа, чтобы начать новую страницу.
    Ну а всякие режимы типа жирного, наклонного, надстрочный, подстрочный, делаются из этого же шрифта программным способом, главное понять алгоритм.

    Ну и по поводу трех наборов по 95 символов, тут все просто - наборы КОИ-7 Н0 (большие и маленькие латинские буквы), КОИ-7 Н1 (большие и маленькие русские буквы) и КОИ-7 Н0/1 (большие латинские и русские буквы).

  8. #28
    Master
    Регистрация
    05.03.2010
    Адрес
    Санкт-Петербург
    Сообщений
    781
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я извиняюсь, что не вовремя, каким на мой взгляд должен быть эмулятор принтера:
    В виде окна терминала т.е. как в терминале печатаемые символы появлялись последовательно. Сохранение напечатанных листов.
    Возможность подключения(замены) прошивки(принтера) в виде плагинов(модулей) - много программ для УКНЦ под принтер Epson D100.
    ЗВУК - у кого есть принтер, записать тест принтера, потом можно запись разделить на семплы(в соответствии с печатаемым символом) и подставлять в процессе эмуляции
    Не очень много хотелок?

  9. #29
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vamos Посмотреть сообщение
    ЗВУК - у кого есть принтер, записать тест принтера, потом можно запись разделить на семплы(в соответствии с печатаемым символом) и подставлять в процессе эмуляции
    Поскольку звук издают всего 9 бьющих по бумаге иголок - можно (насколько я понимаю) полностью имитировать звуковой поток печати, имея лишь 9 вариантов звуков печати столбца.

    Вряд ли звук печати столбца сильно зависит от позиций бьющих иголок - скорее только от их общего числа.

  10. #30
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,393
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    57 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не забудьте про принтер МС6313 - есть аж два варианта прошивок
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

Страница 3 из 10 ПерваяПервая 1234567 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. порт принтера?
    от Atari в разделе Несортированное железо
    Ответов: 0
    Последнее: 03.04.2011, 17:13
  2. Порт управления ПЗУ
    от skyther в разделе Память
    Ответов: 5
    Последнее: 23.04.2007, 19:09
  3. Лишний порт
    от Jukov в разделе Несортированное железо
    Ответов: 2
    Последнее: 17.12.2005, 15:01
  4. порт lpt
    от iliasam в разделе Устройства ввода
    Ответов: 15
    Последнее: 24.05.2005, 00:20

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •