Просмотр полной версии : УКНЦ параллельный порт
Просветите кто-нибудь подробно про параллельный порт УКНЦ.
Вот что имеем из ТО:
7.4.4. Регистры параллельного программируемого интерфейса
Программисту устройство параллельного программируемого интерфейса представлено четырьмя байтовыми регистрами (все регистры имеют формат 0-7 бит) с адресами:
177100 - порт А
W/R 177101 - порт B
177102 - порт С
177103 - управляющий байт
Все разряды портов выведены на интерфейсный разъем.
Особенностью работы с регистрами является требование обращения к указанным адресам с передачей информации в младшем байте (в т.ч. по нечетным адресам).
Подробно работа с микросхемой описана в ОАБ.142.400
Также имеем код ПЗУ:
; П/п вывода символа на принтер
135722$:MOV R5,-(SP)
MOV SP,R5
BIT #2,177101$ ; Принтер в состоянии ON-LINE ?
BEQ 136000$ ; Нет
135736$:BIT #200,177101$ ; Бит подтверждения сброшен ?
BNE 135736$ ; Нет
MOV 4(R5),177100$ ; Послать код символа на линию данных
BIC #200,177102$ ; Установить сигнал строба
135762$:BIT #200,177101$ ; Получен сигнал подтверждения ?
BEQ 135762$ ; Нет
MOV #200,177102$ ; Сбросить сигнал строба
136000$:JMP 136056$
; П/п инициализации параллельного порта
136004$:MOV R5,-(SP)
MOV SP,R5
MOV #174,177103$
MOV #200,177102$
JMP 136056$
Порты 177100--177102 -- это порты A-C микросхемы 580ВВ55, а порт 177103 -- это управляющий байт ВВ55. Все данные этих четырёх портов передаются инверсно (особенность шины данных).
177100 -- порт A -- output: данные
177101 -- порт B -- input
bit 0 - A4 -- конец бумаги
bit 1 - A0 -- on-line -- готовность приёмника
bit 3 - A2 -- ошибка принтера
bit 7 - AC -- запрос передачи
177102 -- порт C --
upper output
bit 7 - SC -- strobe
lower input
177103 -- управляющий байт ВВ55
bit 7 - Mode set flag (1=active)
bit 6-5 - Group A Mode selection
bit 4 - Port A direction (1=input 0=output)
bit 3 - Port C upper direction (1=input 0=output)
bit 2 - Group B Mode selection
bit 1 - Port B direction (1=input 0=output)
bit 0 - Port C lower direction (1=input 0=output)
При инициализации порта байтом #174 в ВВ55 приходят биты 10000011, т.е. задаётся режим:
port A output, port C upper output, port B input, port C lower input.
В принципе, на этом уже можно написать эмуляцию принтера, но если захочется чего-то большего -- нужен будет маппинг остальных сигналов на порты ВВ55.
В принципе самый минимум описан правильно. Тут главное разделить аппаратную часть (сама микросхема 580ВВ55А) и протокол принтера ИРПР, который делается программным способом. Соответственно существуют драйверы, которые реализуют протокол Centronix.
Сама аппаратная реализация сделана на микросхеме 580ВВ55А, которая является 8-разрядной и к тому же с прямой логикой (в отличии от инверсной шины QBUS). Т.к. микросхема 8-разрядная, то старший байт не используется, а адреса регистров кратны единице, а не двум. Микросхема 580ВВ55А имеет четыре регистра - порт A, порт B, порт C и управляющий байт. Соответственно:
177100 - порт A
177101 - порт B
177102 - порт C
177103 - управляющий байт
Обращение к этим регистрам должно быть пословным, при этом старший байт всегда читается как ноль. В случае байтового чтения нормально читаются только регистры 177100 и 177102, при байтовом чтении 177101 и 177103 всегда читается ноль. При байтовой записи также нормально записываются только 177100 и 177102, а в 177101 и 177103 всегда пишется ноль.
Управляющий байт задает режимы работы портов. В УКНЦ задаются - порт A на запись, порт B на чтение, младшая часть порта C (разряды 0-3) на чтение, старшая часть порта C (разряды 4-7) на запись. Осуществляется это записью в порт значения 0174, соответственно в прямом коде это будет 0x83. Эти двенадцать линий выводятся на разъем ПУ, к которому подключается принтер. А вот уже реализация отдельных разрядов портов зависит от используемого интерфейса (ИРПР, ИРПР-М, Centronix) и принтера. В УКНЦ программным способом реализован интерфейс ИРПР (он же IFSP) для принтера Robotron.
Для начала надо ознакомится с реализацией интерфейса ИРПР из документации к принтеру Robotron (стр. 63-65). Саму документацию выкладывал KALDYH в этой теме (http://zx.pk.ru/showthread.php?t=9276). В УКНЦ соответственно в порт A записывается код символа для вывода. Т.к. ИРПР также инверсный, как и QBUS, то записывается прямой код символа, для Centronix'а надо записывать инверсный код. В порту B используются только биты 0 (конец бумаги, сигнал A4), 1 (готовность приемника, сигнал A0), 3 (ошибка принтера, сигнал A2) и 7 (запрос передачи, сигнал AC). В порту С используется только бит 7 (строб, сигнал SC).
Для минимума реализации в порту B можно использовать только биты 1 и 7, в порту C - бит 7. Если виртуальный принтер в эмуляторе включен, то должен быть установлен сигнал A0 (бит 1 порта B). При готовности приема символа принтер сбрасывает сигнал AC (бит 7 порта B). Этот сигнал сбрасывается принтером только при установленном сигнале строба SC (бит 7 порта C), вот поэтому при инициализации туда и записывается 0200. Далее в порт A записывается символ и сбрасывается бит 7 в порту C. В ответ на это принтер принимает переданный символ и устанавливает бит 7 порта B. В ответ на это надо установить бит 7 порта C, после чего принтер сбрасывает бит 7 в порту B. Готовы к приему следующего символа.
Alex_K, отличное описание, с этим уже можно сделать эмуляцию ИРПР как минимум.
Ещё пара вопросов:
1. Что выдаётся при чтении из портов 177100 и 177103?
2. Какова обычно скорость передачи данных? Ну или более конкретно, сколько времени должно проходить между сбросом строба (на линиях данных выставлен байт) до выставления подтверждения приёма?
Alex_K, отличное описание, с этим уже можно сделать эмуляцию ИРПР как минимум.
Ещё пара вопросов:
1. Что выдаётся при чтении из портов 177100 и 177103?
2. Какова обычно скорость передачи данных? Ну или более конкретно, сколько времени должно проходить между сбросом строба (на линиях данных выставлен байт) до выставления подтверждения приёма?
1. Из 177100 читается тоже, что в него и записали. После инициализации через регистр 177103 в нем оказывается 0377. По чтению 177103 не определен. Но как показывает практика читается из него то же, что из 177102. Кстати записать в 177102 можно только биты 4-7, они же и прочитаются. Биты 0-3 в подключении не используются, соответственно читается ноль.
2. А скорость передачи данных зависит от принтера. Сперва он может быстренько заполнить свой буфер, а потом будут небольшие паузы во время печати. Так что здесь завязываться на какие-то времена не стоит, это не дисковод и не стык С2. Чем быстрее, тем лучше. Есть протокол ИРПР, вот по нему можно и работать.
В принципе, в черновом варианте уже реализовал.
Например, из кассетного Бейсика команда LPRINT "A" выдаёт последовательность байт:
<41><0d><0a><0d>
Почему-то при запуске эмулятора на принтер уходит байт 0, возможно так и должно быть, но скорее всего это неправильное начальное состояние регистров.
UPD: Да, действительно, неправильная инициализация была.
Почему-то при запуске эмулятора на принтер уходит байт 0, возможно так и должно быть, но скорее всего это неправильное начальное состояние регистров.
Такого не должно быть. Он уходит во время работы п/п инициализации по адресу 136004? Если так, то неправильно обрабатываются сигналы. Значение бита 7 в порту C вначале равно нулю и оно не дает установится сигналу готовность к приему в принтере. Когда при инициализации этот бит устанавливается в 1, то и принтер тогда сбрасывает бит 7 в порту B, что означает готовность к приему.
Alex_K, с нулём в начале вроде как разобрался.
С этими байтиками для принтера конечно много чего можно интересного сделать. Но за сегодня-завтра я скорее всего успею только сделать так чтобы они в файлик сваливались.
С этими байтиками для принтера конечно много чего можно интересного сделать. Но за сегодня-завтра я скорее всего успею только сделать так чтобы они в файлик сваливались.
Да этого вроде как и достаточно. А уже потом можно применить всякие конвертеры, либо делать программу просмотра в графическом виде (а это эмулятор принтера).
Во вложении -- версия с минимальной поддержкой принтера.
В меню Emulator появился пункт Parallel. При включении пункта создаётся файл printer.log. Состояние пункта сохраняется между запусками. Соответственно, при следующем запуске файл перетирается -- будьте осторожны. Flush (сброс буфера в файл на диске) делается при приостановке эмулятора и при закрытии программы.
UPD: http://ukncbtl.googlecode.com/files/UKNCBTL-beta20.zip
Получил в printer.log запись "funkcionalxnyj test uk nc"
Flush (сброс буфера в файл на диске) делается при приостановке эмулятора и при закрытии программы.
вот тут я чего-то не понял, что и как ?
вот тут я чего-то не понял, что и как ?
Я это к тому, что можно открыть printer.log допустим на просмотр в Far'е и смотреть сразу результат выдачи. Но файловый ввод-вывод работает через буфер, чтобы не писать на диск каждый байт отдельно. В результате допустим сделал LPRINT<Ввод>, а результата сразу не видно. Тогда можно приостановить эмулятор (отжать Run на тулбаре), сработает сброс буфера и добавленные в файл байтики станут видны.
Теперь бы схему заглушки на порт принтера. На старом ноуте LPT порт есть, вот самого принтера нет. Адаптер USB-LPT сейчас можно где-то найти?
Когда-то давно у меня была написана на C++ утилита PrnView -- эмулятор матричных принтеров Epson с языком ESC/P. Выводила она только графику -- использовалась для отладки тракта печати под Windows, а винда встроенными матричными шрифтами не печатает. Но все расчёты по позиционированию головки там были отлажены.
В принципе, можно засесть и добавить туда имитацию печати символов.
UPD: Добавил PrnView в аттач. Та самая версия, 1998 года. Как ни странно, под Windows 7 тоже работает.
В принципе, можно засесть и добавить туда имитацию печати символов.
Было бы супер, т.е. символов которые в ПЗУ принтера в графическом виде.
Было бы супер, т.е. символов которые в ПЗУ принтера в графическом виде.
Хе-хе... да, наверное было бы супер. А есть идеи как извлечь оттуда эти символы?
Например, в ПЗУ принтера Robotron СМ 6329 находится 3 набора по 95 символов, 9x9 точек каждый.
Как вариант, можно было бы напечатать все символы шрифта, и под сканер с высоким разрешением. После этого рассматриваем и выписываем битики. Есть желающие заняться?
Более близкий путь -- это печатать одним из имеющихся в Windows моноширинных шрифтов. Не идеально, зато реализуемо.
Хе-хе... да, наверное было бы супер. А есть идеи как извлечь оттуда эти символы?
Например, в ПЗУ принтера Robotron СМ 6329 находится 3 набора по 95 символов, 9x9 точек каждый.
Вот здесь (http://zx.pk.ru/showpost.php?p=289039&postcount=7) BYTEMAN выкладывал прошивку Robotron K6313. Как я понял, рисунки символов находятся со смещения 0x31B0, они в инверсном виде, ну и соответственно в виде столбцов. Осталось только разобраться по сколько байт выделяется на каждый символ, как программируется девятая иголка. Ну и русского шрифта там скорее всего нету.
Хе-хе... да, наверное было бы супер. А есть идеи как извлечь оттуда эти символы?
Например, в ПЗУ принтера Robotron СМ 6329 находится 3 набора по 95 символов, 9x9 точек каждый.
Как вариант, можно было бы напечатать все символы шрифта, и под сканер с высоким разрешением. После этого рассматриваем и выписываем битики. Есть желающие заняться?
Более близкий путь -- это печатать одним из имеющихся в Windows моноширинных шрифтов. Не идеально, зато реализуемо.
Кто мешает печатать точечным TTF-ом?
Например одним из этих: http://forum.rudtp.ru/attachment.php?attachmentid=17804&d=1133877694
Естественно их придется сначала добавить в Винду.
Я вроде уже был сделал в лоб импорт шрифтов из этих ПЗушек от Роботронов, а потом подотвлёкся на запил других частей эмуля.
"Девятая иголка" хранится в каждом последнем байте знакоместа (хотя возможно что это просто зависит от того как я выбрал смещение к "первому" символу от начала файла с дампом) и как бы "заворачивается" под соответствующий символ.
P.S. В моём Robotron СМ 6329.01М там 5 ПЗУшек, я в снятых дампах разглядел только один набор символов (он соптимизирован в самую первую, всё содержимое выглядит как на скриншоте в аттаче)... А где там хранятся ещё два набора? Как по мне визуально в остальных - всё как программный "мусор" микрокода.
Bold, condenced, italic, wid-ы генерятся программно по матрице знакоданных. Вот эту муть обработки команд самому программно как реализовывать??? На экране при всяких "совместных полужирных командных растяжениях" почти всех этих режимов без искажений же не показать из за несовместимых DPI. Так?
P.P.S. Эмулятор матричного принтера (а так же "виртуальное" полотно для плоттера серий МС6501, да и ряда других) с исходным кодом очень сильно надо было бы иметь в хозяйстве...
"Девятая иголка" хранится в каждом последнем байте знакоместа (хотя возможно что это просто зависит от того как я выбрал смещение к "первому" символу от начала файла с дампом) и как бы "заворачивается" под соответствующий символ.
Насчет шрифтов - вот, может прога (для доса) пригодится - делал когда-то специально для всяких ПЗУшно-шрифтовых дел. Скачать можно отсюда (http://pdp-11.org.ru/~form/dos/) (rv.zip).
Если постараться, можно попробовать вспомнить алгоритм описания шрифтов в библиотеке и создавать новые.
У меня такая ещё мысль.
Эмулятор принтера -- это в любом случае отдельная от эмулятора собственно компьютера вещь (хотя конечно была бы удобна интеграция, чтобы быстро смотреть результат). Так вот, эмулятор принтера в принципе состоит из двух основных компонент: это интерпретатор входного потока (с расчётом позиционирования) и рендерер (изображение полученных объектов).
На выходе интерпретатора матричного принтера в общем-то идут только команды вертикального сдвига бумаги плюс команда "стукнуть иглой" в заданной точке (кружок некоторого небольшого радиуса).
Идея собственно в том чтобы съэкономить время на реализации рендерера, использовав уже имеющиеся.
Например, то что идёт от интерпретатора можно легко преобразовать в формат SVG, для которого уже есть масса готовых рендереров. Ну или какой-нибудь PostScript, но думаю что там возни заметно больше.
В общем, да. У нас собралось много действительно удобных самостоятельных программок для показа/редактирования пиксельных шрифтов от разных принтеров, и даже если пусть они все хранят данные в своём формате, собрать и привести к общему знаменателю будет вполне реально.
Но проблемка даже не столько в отрисовке... Посадить рендерер потока на свой виртуальный СОМ-порт или виртуальный порт принтера в виде отдельной рисующей программы прямо на виртуальный рулон из полученных данных.
Вот типичное описание команды из доки по принтеру:
ESC P - включение шрифта "пика"
Кодирование: CHR$(27); "Р".
Функция: шрифт "элита", включенный по коду ESC M, завершается, а ПУ возвращается к шрифту "пика".
Принять во внимание: SI, ESC SI, ESC Е, ESC М, ESC !;
жирный и сжатый шрифты имеют более высокий приоритет /см. ESC !/.
Сама реализация означает повторить все такие зависимости. Наверняка нюансов по каждой прошивке для каждого принтера будет целая куча :(.
Я вроде уже был сделал в лоб импорт шрифтов из этих ПЗушек от Роботронов, а потом подотвлёкся на запил других частей эмуля.
"Девятая иголка" хранится в каждом последнем байте знакоместа (хотя возможно что это просто зависит от того как я выбрал смещение к "первому" символу от начала файла с дампом) и как бы "заворачивается" под соответствующий символ.
P.S. В моём Robotron СМ 6329.01М там 5 ПЗУшек, я в снятых дампах разглядел только один набор символов (он соптимизирован в самую первую, всё содержимое выглядит как на скриншоте в аттаче)... А где там хранятся ещё два набора? Как по мне визуально в остальных - всё как программный "мусор" микрокода.
Это очень ценно, спасибо.
На этом можно сделать уже как минимум печать "нормальным" шрифтом.
Возможно конечно что шрифт действительно единственный, а остальные два получаются из него "эффектами".
Но так и не понял как там получается девятая иголка -- можно на примере конкретного символа?
А я не могу объяснить как именно.
Легче описать так: например если в файле 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:;<=>?юабцдефгхийклмнопярстужв ызшэщчъЮАБЦДЕФГХИЙКЛМНОП РСТУЖВЬЫЗШЭЩЧ";
Сама реализация означает повторить все такие зависимости. Наверняка нюансов по каждой прошивке для каждого принтера будет целая куча :(.
О! Да еще каких нюансов: у меня где-то лежит файлик, где с помощью ESC последовательностей в одной строке печатается 2 - из надстрочных и подстрочных букв ;)
Используя наработки anasana, расшифровал шрифт, перевёл его в более удобную форму и попробовал для примера выдать в SVG. Результат во вложении.
UPD: Кому лень открывать, вот рендерёный вариант:
http://img-fotki.yandex.ru/get/5507/nzeemin.6/0_59ed0_c47f8d74_orig
О! Да еще каких нюансов: у меня где-то лежит файлик, где с помощью ESC последовательностей в одной строке печатается 2 - из надстрочных и подстрочных букв ;)
Да нюансы довольно простые - существует буфер, который заполняется символами. При определенных ситуациях этот буфер высвобождается, например при передвижении печатающей головки не в направлении печати (назад или вертикально), смене шрифта, ну и т.д. и т.п. При смене шрифта надо учитывать приоритетность режимов шрифта (жирный, пика, элита, разреженный). При передвижении головки надо контролировать выход за границу листа, чтобы начать новую страницу.
Ну а всякие режимы типа жирного, наклонного, надстрочный, подстрочный, делаются из этого же шрифта программным способом, главное понять алгоритм.
Ну и по поводу трех наборов по 95 символов, тут все просто - наборы КОИ-7 Н0 (большие и маленькие латинские буквы), КОИ-7 Н1 (большие и маленькие русские буквы) и КОИ-7 Н0/1 (большие латинские и русские буквы).
Я извиняюсь, что не вовремя, каким на мой взгляд должен быть эмулятор принтера:
В виде окна терминала т.е. как в терминале печатаемые символы появлялись последовательно. Сохранение напечатанных листов.
Возможность подключения(замены) прошивки(принтера) в виде плагинов(модулей) - много программ для УКНЦ под принтер Epson D100.
ЗВУК - у кого есть принтер, записать тест принтера, потом можно запись разделить на семплы(в соответствии с печатаемым символом) и подставлять в процессе эмуляции:v2_dizzy_roll:
Не очень много хотелок?:)
ЗВУК - у кого есть принтер, записать тест принтера, потом можно запись разделить на семплы(в соответствии с печатаемым символом) и подставлять в процессе эмуляцииПоскольку звук издают всего 9 бьющих по бумаге иголок - можно (насколько я понимаю) полностью имитировать звуковой поток печати, имея лишь 9 вариантов звуков печати столбца.
Вряд ли звук печати столбца сильно зависит от позиций бьющих иголок - скорее только от их общего числа.
Не забудьте про принтер МС6313 - есть аж два варианта прошивок :)
Поскольку звук издают всего 9 бьющих по бумаге иголок - можно (насколько я понимаю) полностью имитировать звуковой поток печати, имея лишь 9 вариантов звуков печати столбца.
Это вопрос программной реализации, что проще, из имеющихся в буфере кодов символов подготовить звуковую схему для стороки, или собирать схему из 9 семплов на символ в соответствии с ПЗУ принтера.
Не забудьте про принтер МС6313
аа... это который струйный или термо?
аа... это который струйный или термо?
Неа, обычный матричник.
Во вложении ESCParser.exe -- первая и очень примитивная версия конвертора.
По сути взял код от PrnView 1998 года и добавил вывод шрифта. Шрифт только один, команд переключения шрифтов не понимает, зато знает как печатать графику (через ESC *). В общим, для всяких Hello World этого уже хватит.
Запукать так:
ESCParser InputFile > OutputFile.svg
В качестве InputFile конечно можно использовать printer.log от UKNCBTL.
Дальше буду наращивать возможности понимания утилитой ESC/P команд.
Какие причины для выбора такого формата SVG, размер получился не маленький и просмоторщиков нет, только плагин для браузеров.
Попробовал, при помощи HARDCO.SAV (копия экрана) для Epson D100, на экране был каталог, вот что получилось
Какие причины для выбора такого формата SVG, размер получился не маленький и просмоторщиков нет, только плагин для браузеров.
Попробовал, при помощи HARDCO.SAV (копия экрана) для Epson D100, на экране был каталог, вот что получилось
Да, размер не маленький, но и качество-то неплохое. SVG сейчас поддерживается всеми основными браузерами.
Предложите другой формат. Вообще я думал сделать на выходе заменяемый "драйвер", чтобы была возможность выдавать результат в разных форматах.
По поводу результата конвертации копии экрана -- да, поддерживается пока слишком мало кодов, но мы работаем над этим. (Кстати, а можно исходный printer.log?)
Картинка для иллюстрации прогресса:
http://img-fotki.yandex.ru/get/5708/nzeemin.6/0_59fdd_cab05958_L
С качеством спорить не буду, удобство работы с изображением в браузере сомнительное, был бы не большой специальный просмотрщик типа фотоэдитора.
Vamos, посмотрел начало приложенного printer.log, так походу причина в том что у D100M своя система команд, несовместимая с Robotron.
причина в том что у D100M своя система команд, несовместимая с Robotron.
Еще и шрифты свои. Из тех образов дисков, что под рукой были, программы печати все для D100. Покопаюсь, поищу для Robotron. Названия подскажите пожалуйста.
Ну вот, основные операции со шрифтами сделаны.
Пока не обрабатываются коды, связанные с табуляцией, размером страницы итп. Не выверены все нюансы типа что приоритетов шрифтов и что такой-то код давит другой-то код -- это ещё предстоит. Обрабатывается только первая страница, остальные игнорируются. А, забыл -- кодировки тоже пока не сделаны, сорри.
http://img-fotki.yandex.ru/get/5907/nzeemin.6/0_5a086_c6057681_L
nzeemin, а сульфат свинца зачем? :)
---------- Post added at 18:23 ---------- Previous post was at 18:21 ----------
верхний индекс скорее Z чем 2, не удачный шрифт?
nzeemin, а сульфат свинца зачем? :)
верхний индекс скорее Z чем 2, не удачный шрифт?
Это всё примеры из руководства к принтеру, я их набиваю в один сэмпл в hex-редакторе и прогоняю для проверки.
Поскольку количество иголок и расстояние между ними не меняется, то как я понимаю, над- и под-строчные символы получаются из обычных -- просто соседние строчки объединяются через OR. Конечно при этом получается что рассмотреть какой там символ -- затруднительно.
Vamos, специально для вас!
Сделал в ESCParser заменяемый драйвер. Во вложении -- версия с драйвером для PostScript. Пользоваться точно также, расширение получаемого файла -- .ps
Для просмотра .ps можно использовать например связку GsView + Ghostscript, и то и другое бесплатное. Кроме того, этот вьювер умеет печатать на многие принтеры и даже генерировать PDF.
Чуть позже сделаю выбор драйвера через командную строку.
В принципе, можно добавить поддержку и других форматов, например, XPS.
UPD: http://ukncbtl.googlecode.com/files/ESCParser.zip
Ну и по поводу трех наборов по 95 символов, тут все просто - наборы КОИ-7 Н0 (большие и маленькие латинские буквы), КОИ-7 Н1 (большие и маленькие русские буквы) и КОИ-7 Н0/1 (большие латинские и русские буквы).
Что-то я не воткну как эти наборы выбираются.
Понятно что есть код ESC R n, где n задаёт набор, но какое n какому набору соответствует?
Вижу ещё что влияют переключатели 8-1, 8-2, 9-1, 9-2.
Также есть фраза "Буквы, числа и специальные символы адресуются от 32
до 126 и от 160 до 254." -- про диапазон 32-126 всё понятно, а что с кодами 160-254 -- мапятся так же как нижние или по-другому?
---------- Post added at 21:55 ---------- Previous post was at 21:36 ----------
Если я правильно понял, то передача символа в диапазоне 160-254 выбирает для него "альтернативный" набор знаков, т.е. по сути это получается КОИ-8.
---------- Post added at 22:12 ---------- Previous post was at 21:55 ----------
С форматом SVG облом: разбиение на страницы поддерживается только в версии 1.2 стандарта, которая пока в черновом варианте.
Во вложении новая версия ESCParser -- с разбиением на страницы и минимальной поддержкой кодировок.
Использовать так:
ESCParser -ps printer.log > DOC.ps
либо так:
ESCParser -svg printer.log > DOC.svg
Для PostScript генерирует многостраничный файл, для SVG накладывает все страницы друг на друга.
UPD: http://ukncbtl.googlecode.com/files/ESCParser.zip
До кучи, наткнулся ещё вот на такую страничку с описанием принтера:
WIP: Epson EX-800 Dot Matrix printer
http://mess.redump.net/wip:ex800
Там лежит прошивка, даташит на процессор и немного дизасма.
shattered
03.03.2014, 00:07
Я рассказал MESSdevs про escparser и вот
http://rbelmont.mameworld.info/wipimg/mess/messprint.png
Это Print Shop в Apple II -- http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=93067#Post93067
Поскольку Google Code приказал долго жить, ссылки на утилиту ESCParser протухли.
Выкладываю текущую версию (не изменялась с марта 2015 года).
ссылки на утилиту ESCParser протухли.
Могу у себя выделить место чтобы не протухало. Если что, в личку.
Обновил утилиту ESCParser -- добавил выдачу в PDF.
А можете еще каких шрифтов сделать *.ttf от роботрона или D100M например?
А можете еще каких шрифтов сделать *.ttf от роботрона или D100M например?
если так подходить, надо реально эмулировать реальное печатное устройство, что бы управлялось ПО от RT-11
драйвером LP и другими вспомогательными утилитами и редакторами УК-НЦшными, даже не представляю нужно ли
это кому-то? И возможность такой работы?
А можете еще каких шрифтов сделать *.ttf от роботрона или D100M например?
TTF никогда не занимался, это в стороне от моих интересов.
Что же до эмуляции других принтеров -- нужны описания от них + прошивки.
В данном случае шрифт был взят именно из ПЗУшки принтера.
В данном случае шрифт был взят именно из ПЗУшки принтера.
Это я помню, потому и спросил, интересуют именно шрифты в TTF, эмуляция не нужна, или расскажите технологию как из ПЗУ сделать TTF.
Обновил утилиту ESCParser
http://f23.ifotki_.info/org/f234ef7a3a8a146099318c3c2a5521a85a9a41290854881.pn g
Бледновато (вид в PDF формате), утилита мощно конвертит, как то повлиять на пропечатку нельзя?(там же был двойной
проход у Роботрона (КП или КАЧ- у нашей Электроники) ?
- - - Добавлено - - -
Шрифт прямо УРА-РОБОТРОНУ! )))
- - - Добавлено - - -
Наверное надо полноценный виртуальный роботрончик по кнопочке с принтером заводить )
Следить что бы лента не пересыхала, но и что бы настройки драйвера на него влияли.
- - - Добавлено - - -
Тогда можно будет попечатать PC редактором, Райтером и другие вспомогательные программы использовать.
Только вот опять же вопрос - кому и зачем это может быть нужно?
- - - Добавлено - - -
проблемок несколько выскочило
1. размер первой части теста при конвертации съедаеца
2. у меня по непонятным пока причинам печать идёт только в случае если система
загружена с дискеты, а не с ЖД (иначе эмулятор начинает греть комп, не повисает и
курсор мигает, но дождаться оконч. печати не удалось).
пока так.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
test pu test pu
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
t e s t 1
pppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppp
pppppppppppppppppppppppppppppppppppppppppppppppppp ppppppppppppppppppppppppp
pppppppppppppppppppppppppppppppppppppppppppppppppp ppppppppppppppppppppppppp
! " # $ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
H I J K L M N O P Q R S T U Y W h Y Z [
\ ] ^ _ ` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
! " # $ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? ` a b c d e f g
h i j k l m n o p q r s t u v e x y z {
| } ~ _ ` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
! " # $ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z ]
\ [ ^ _ ` A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z { } ~
T E s t 2
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??``aabbccddeeffgghh
iijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~__``aa bbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??``aabbccddeeffgghh
iijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~__``aa bbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWHHYYZZ{{ }}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
iijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~__``aa bbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aaBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??``aabbccddeeffgghh
iijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~__``aa bbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??``aabbccddeeffgghh
iijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~__``aa bbccddeeffgghhiijjkkllmmnnoopp
qqrrssttuuvvwwxxyyzz{{||}}~~
################################################## ##############################
t e s t p u o k o n ~ e n
blagodar` za prawilxno wypolnennu` rabotu
################################################## ##############################
http://f23.ifotki_.info/org/97d4e8353bffb67d6468db6b4e8a14615a9a41290857204.pn g
1. размер первой части теста при конвертации съедаеца
мне тут пришло в голову, что в плане количества символов и масштаба шрифта никакой ошибки нет,
тем более тест не родной для Роботрона, он от рулонного игольчатого совсем совсем другого принтера.
В общем тема с принтерами, лентами, глюками печати, зажёванной бумагой, вымазанной "мордой",
сменной лентой - та ещё муть ) не приветливое устройство ленточный игольчатый принтер ) да ну их! )
- - - Добавлено - - -
учитывая помноженное на это кол-во вариантов драйверов LP.SYS и вспомог. утилит и программ для печати * на кол-во вариантов настроек драйвера и перемычек на принтере ))) Это же космос.
MacBuster
19.10.2017, 23:48
Удаление в знак протеста против действий MM
@nzeemin (http://zx-pk.ru/members/935-nzeemin.html) спасибо за добавление выхлопа в pdf-ку!!
Я ещё в том давнем твоём релизе был экспериментировал, приаттачил свои игровые правки и тестовые формы.
Ещё по идее неплохо было бы проверить попадание в стандартный образец листа с перфорацией, типа такого:
http://agentpalmer.com/wp-content/uploads/2011/12/DotMatrixPaper.png
http://rgho.st/8D8f87tSz, но такое ещё надо отсканировать что бы получился точный размер в мм.
anasana, отлично, спасибо.
В конце явно выдаётся лишний символ "!" -- буду искать.
Про лист с линейками и перфорацией -- где бы посмотреть инфу по размерам?
надо бы поискать, я когда в банке работал куча была такого типа разнообразных с перфорацией для рулонных выписок.
в доках вообще многое так написано мутно, что любой код больше напоминает заметки to-do на что обратить внимание :)
я пока экспериментировал с графикой, италиком и табуляциями
В аттаче пара моих тестов.
printer.Hello.log -- это сборная солянка для демонстрации сразу всего.
printer.Pict2.log -- это напечатанный PCX файл, полученный из скана рисунка на бумаге.
Может это
Ну в общем да, так то я уже нашёл.
У них это называется "continuous stationery", "continuous paper" -- "фальцованная бумага".
Отверстия по краю -- это "tractor feed holes".
Размер листа -- 9.5 x 11 дюймов либо 15 x 11 дюймов, полоска с дырками по краям широной в 1/2 дюйма, расстояние между отверстиями -- тоже 1/2 дюйма.
Для разлинованной бумаги высота каждой полоски -- 1/6 дюйма, т.е. печать 6 строк на дюйм -- 6 lpi.
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BB%D1%8C%D1%86%D0%BE%D0%B2%D0%B0%D 0%BD%D0%BD%D0%B0%D1%8F_%D0%B1%D1%83%D0%BC%D0%B0%D0 %B3%D0%B0
Использовать так:
ESCParser -ps printer.log > DOC.ps
либо так:
ESCParser -svg printer.log > DOC.svg
Всё таки вопрос - вот SVG - нормальный тёмненький,
а PDF - совсем совсем бледный? Может там ленту сменить пора? )
http://f23.ifotki_.info/org/d389c4f4c19d6db9a2387a5f56c53b1e5a9a41291229418.pn g
Всё таки вопрос - вот SVG - нормальный тёмненький,
а PDF - совсем совсем бледный?
hobot, посмотрю это тоже.
Я проверяю PDF в Chrome / Edge, думаю вы в чём-то другом типа Acrobat Reader -- проверю во всех.
И я так смотрю, с появлением PDF по сути вам PostScript и SVG не нужен уже.
Добавил zlib, теперь для всех страниц используется сжатие, размер готового PDF уменьшился в 4-5 раз.
Пофиксил баг с лишним символом "!" в конце файла.
Небольшие замечания:
1. Большой левый отступ. При использовании формата A4 длина строки составляет 8 дюймов, это равно 80 символам в строке при использовании размера "пика" (1/10"). В pdf-ке реально видно только 78 символов и самый краешек 79-го. Еще принтер Robotron при превышении длины строки делает автоматический переход на следующую.
2. Нет разбивки на страницы при большом количестве строк, если нет символа перевода формата. По умолчанию на Robotron длина страницы A4 составляет 12 дюймов с подачей бумаги на 1 дюйм за фальц. Т.е. реальная высота страницы составляет 11 дюймов, и при установленной по умолчанию высоте строки в 1/6", это соответственно 66 строк.
3. По поводу символов SO (код 14) и SI (код 15), то обычно на Robotron включали режим ISO, и эти управляющие символы переключали на русский и латинский алфавит.
hobot, поставил я последний Acrobat Reader DC -- вижу что изображение нормального цвета.
Сознавайтесь в где у вас проблемы с цветом -- какая программа, какой версии?
- - - Updated - - -
Alex_K, левый отступ уменьшил чтобы 80 символов "пика" было по середине листа.
Не очень понятно по верхнему отступу.
Вертикальный размер A4 -- 297мм ~= 11.693 дюймов -- отстаётся 0.693 дюйма на оба отступа, верхний и нижний.
Вертикальный размер A4 -- 297мм ~= 11.693 дюймов -- отстаётся 0.693 дюйма на оба отступа, верхний и нижний.
Ну да, где-то так и есть.
- - - Добавлено - - -
Провёл тест по графическому режиму, команда Esc *.
Esc * <0> - 480 точек в строке выполняется правильно.
Esc * <1> - 960 точек в строке выполняется неправильно, обрабатывается как Esc * <0>.
Esc * <2> - 960 точек в строке выполняется правильно по размеру, но соседние точки пропечатывает, а не должна.
Esc * <3> - 1920 точек в строке выполняется правильно по размеру, но соседние точки пропечатывает, а не должна.
Esc * <4> - 640 точек в строке выполняется правильно.
Esc * <5> - 576 точек в строке вообще не обрабатывается.
Esc * <6> - 720 точек в строке выполняется правильно.
The Floppotron: Sweet Dreams
Сознавайтесь в где у вас проблемы с цветом -- какая программа, какой версии?
svg - открываю в браузере - вижу всё отлично - качественная печать на белом фоне,
pdf - открываю STDU вьювером (фри который - для студентов и преподавателей) и там совсем совсем бледная печать.
hobot, проблема не в цвете. Я поставил этот STDU Viewer и посмотрел. Если сделать максимальный zoom то хорошо видно -- вместо круглых точек он рисует короткие полоски.
Собственно как я вывожу каждый удар иголки -- делаю объект path в началом и концом в одной точке, с указанием что у меня линия такой-то ширины, с закруглённым концом -- получается линия нулевой длины, оба конца в одной точке, два закругления дают закрашенный кружок.
Данный вьювер не отрабатывает эту ситуацию правильно -- вся картинка не такая как должна быть.
Рекомендую открывать PDF в браузере или в Acrobat Reader.
Провёл тест по графическому режиму, команда Esc *.
Esc * <0> - 480 точек в строке выполняется правильно.
Esc * <1> - 960 точек в строке выполняется неправильно, обрабатывается как Esc * <0>.
Esc * <2> - 960 точек в строке выполняется правильно по размеру, но соседние точки пропечатывает, а не должна.
Esc * <3> - 1920 точек в строке выполняется правильно по размеру, но соседние точки пропечатывает, а не должна.
Esc * <4> - 640 точек в строке выполняется правильно.
Esc * <5> - 576 точек в строке вообще не обрабатывается.
Esc * <6> - 720 точек в строке выполняется правильно.
Вроде как починил это всё.
Проверял по файлу DLTEST-F.PRN от anasana из архива NZ_test.zip в этой теме.
- - - Updated - - -
Я ещё в том давнем твоём релизе был экспериментировал, приаттачил свои игровые правки и тестовые формы.
anasana, а откуда эти тесты DLTEST ? И есть ли там изображение того как должно выглядеть в реальности?
nzeemin, по прежнему печать в эмуляторе работает только с системы на дисководе,
с ЖД печать не проходит, только у меня так?
Это SVD в браузере
http://f23.ifotki_.info/org/de3107ee963de27f9c0262ef4d435e715a9a41291350002.pn g
с ЖД печать не проходит, только у меня так?
Может там запускается какая-нибудь поддержка интерфейса Centronix. В этом случае действительно печатать не будет.
Надо бы содержимое STARTS.COM (или STARTF.COM).
- - - Добавлено - - -
ESC * исправлено.
Есть предложение - задать ключи, чтобы задавать левый и верхний отступы. При отсутствии ключей будут по умолчанию.
Авторазбивки на строки и страницы пока нет, переключения на алфавит тоже нет.
В архиве 4 примера, можно полюбоваться.
UPD: заменил архив
Надо бы содержимое STARTS.COM
у меня 5 разделов на всех кроме 1-го настроена загрузка,
печать работает только с "улучшенного образа дискеты" АЛЬФАПРОГ, где ваш LP.SYS
на разделах ЖД штатный драйвер в зависимости от версии монитора соответствующий,
никаких настроек связанных с LP ничего нет, всё по умолчанию после загрузки.
Подаю печать с дискеты, LP всегда спрашивает Page? не понимаю (????) чего он хочет?
С какой страницы? Сколько страниц? всегда ввожу 0 (раньше вводил 1), он всё равно выводит на печать весь текст из файла)
Подаю печать с ЖД(с любого раздела), вечно мигающий курсор, спокойно прерывается по СУ-Ц,
зависаний - ругательств от системы или драйвера нет. Но печать не проходит и главное операция не прерывается и не оканчивается самостоятельно...
у меня 5 разделов на всех кроме 1-го настроена загрузка
Надо же знать, что грузится, без этого разговаривать не о чем.
На моей дискете ничего в ОЗУ ПП, что связано с принтером, не грузится, потому для печати используется подпрограмма из системного ПЗУ, а она реализует интерфейс ИРПР.
На многих дискетах есть запуск разных программ поддержки интерфейса Centronix. Как я уже писал ранее, печатать в эмуляторе не будет, в эмуляторе поддерживается только ИРПР.
Надо же знать, что грузится, без этого разговаривать не о чем.
с вашей дискеты печать проходит без проблем,
так теперь по порядку
на WD0 тупо нет даже LP.SYS - поэтому мимо, WD1 - не загрузочный - мимо,
WD2 и прочие штатные драйвера,
попробовал на нулевой (там 5.0 SJ) поставить СЭМЗ драйвер LP.SYS нет печати с ЖД.
а печать им же с образа СЭМЗ дискеты глючная - дело в драйверах и их настройки)
получается норм. печать у меня пока только с LP.SYS от АЛЬФАПРОГ и с дискет и с харда.
Вот СЭМЗОВСКИЙ LP.SYS 5 блоков который распечатал DIR/PRI с дискеты (с жд им нет печати)
http://f23.ifotki_.info/org/fd9b6b93b052a699f81e276f07d684525a9a41291358348.pn g
- такую вот мешанину в одну супердлинную строку )))
получается норм. печать у меня пока только с LP.SYS от АЛЬФАПРОГ и с дискет и с харда.
Так значит моим драйвером и при загрузке с жёсткого диска печатает?
Так значит моим драйвером и при загрузке с жёсткого диска печатает?
именно так,
но с дискет штатные и ДВКашный 5 блочный не пашут так же как и с ЖД.
Дело в драйверах однозначно.
Дело в драйверах однозначно.
Ну наконец-то правильный вывод.
Или в правильной настройке драйверов.
А по поводу моего драйвера, то он действительно заточен под особенность работы канала К1 с прерываниями. Драйвер от ДВК может из-за этой особенности и прекратить работать.
Ну наконец-то правильный вывод.
Драйвер от ДВК может из-за этой особенности и прекратить работать.
в инструкции вычитал настройку про ROBOTRON
SE LP DEV=-1
SE LP NOCOM
SE LP NOZNAK
При таком заработал с дискет, с ЖД нет печати.
У драйвера LP.SYS - штатного таких параметров нет.
Тот который СЭМЗ называю идёт на их дискетах, весит 5 блоков и
к нему есть .DOC файл,
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
КОМПЛЕКСА ВЫЧИСЛИТЕЛЬНОГО УЧЕБНОГО
"ЭЛЕКТРОНИКА МС 0202"
ОПИСАНИЕ РАБОТЫ ДРАЙВЕРА ПЕЧАТАЮЩЕГО
УСТРОЙСТВА LP.SYS V05.06
ЛИСТОВ 9
1989
- 2 -
АННОТАЦИЯ
В НАСТОЯЩЕМ ДОКУМЕНТЕ ДАНО ОПИСАНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ ПО
ПРИМЕНЕНИЮ ДРАЙВЕРА ПЕЧАТИ LP.SYS ВЕРСИИ V05.06 .
ДРАЙВЕР ПРЕДНАЗНАЧЕН ДЛЯ ИСПОЛЬЗОВАНИЯ С ПРИНТЕРАМИ ТИПА
EPSON, CPF H80, ROBOTRON, D100M И D100. ДРАЙВЕР РАССЧИТАН НА
ПЕЧАТЬ ТЕКСТА, ПОДГОТОВЛЕННОГО СИМВОЛАМИ ИЗ НАБОРА КОИ8,
ЕСЛИ ТЕКСТ НАБРАН СИМВОЛАМИ ИЗ НАБОРА КОИ7 И В ТЕКСТЕ ЕСТЬ
КОДЫ <РУС>, <ЛАТ>, ТО ДРАЙВЕР ПРЕОБРАЗУЕТ ТЕКСТ В НАБОР
КОИ8. ЕСЛИ ТЕКСТ НАБРАН СИМВОЛАМИ ИЗ НАБОРА КОИ7 И НЕТ КОДОВ
<РУС>, <ЛАТ>, ТО МОЖНО ВОСПОЛЬЗОВАТЬСЯ РЕЖИМОМ, В
КОТОРОМ СТРОЧНЫЕ ЛАТИНСКИЕ БУКВЫ ПРЕОБРАЗУЮТСЯ В ЗАГЛАВНЫЕ
РУССКИЕ.
НАЧАЛЬНАЯ УСТАНОВКА ПОСТАВЛЯЕМОГО ДРАЙВЕРА LP.SYS
ВЫПОЛНЕНА ДЛЯ ПРИНТЕРА ROBOTRON.
- 3 -
1. ОБЩИЕ ПАРАМЕТРЫ ДЛЯ ВСЕХ ТИПОВ ПРИНТЕРОВ
1.1. ПРИОСТАНОВКА ПЕЧАТИ СТРАНИЦЫ
КОМАНДА:
SET LP: ASK
УСТАНАВЛИВАЕТ РЕЖИМ ПРИОСТАНОВКИ ПЕЧАТИ ОЧЕРЕДНОЙ
СТРАНИЦЫ. ПЕРЕД ПЕЧАТЬЮ СТРАНИЦЫ НА ТЕРМИНАЛ ВЫВОДИТСЯ
ВОПРОС:
Page ready ?
ВОЗМОЖНЫЕ ОТВЕТЫ:
Y <ВК> - ПЕЧАТАТЬ СТРАНИЦУ;
I <ВК> - ИГНОРИРОВАТЬ СТРАНИЦУ;
N <ВК> - ПРЕКРАТИТЬ ПЕЧАТЬ.
КОМАНДА:
SET LP: NOASK
ОТМЕНЯЕТ РЕЖИМ ASK.
1.2. УСТАНОВКА ЛЕВОЙ ГРАНИЦЫ ЛИСТА
КОМАНДА:
SET LP: BEGIN=NNN
УСТАНАВЛИВАЕТ ЧИСЛО ПРОБЕЛОВ ПЕРЕД ПЕЧАТЬЮ КАЖДОЙ СТРОКИ.
- 4 -
1.3. УСТАНОВКА ПОЛЯРНОСТИ СИГНАЛА
КОМАНДА:
SET LP: COM
УСТАНАВЛИВАЕТ РЕЖИМ ПЕРЕДАЧИ ИНВЕРСНОГО ВЫХОДНОГО КОДА.
КОМАНДА:
SET LP: NOCOM
ОТМЕНЯЕТ РЕЖИМ COM.
1.4. УСТАНОВКА РЕГИСТРА СОСТОЯНИЯ
КОМАНДА:
SET LP CSR=XXXXXX
УСТАНАВЛИВАЕТ АДРЕС РЕГИСТРА СОСТОЯНИЯ ПЕЧАТАЮЩЕГО
УСТРОЙСТВА ДЛЯ УКНЦ CSR=176664.
1.5. УСТАНОВКА ТИПА ИСПОЛЬЗУЕМОГО ПРИНТЕРА
КОМАНДА:
SET LP: DEV=N
УСТАНАВЛИВАЕТ ТИП ИСПОЛЬЗУЕМОГО ПРИНТЕРА. ВОЗМОЖНЫЕ ЗНАЧЕНИЯ
N:
-1 ROBOTRON;
0 D100;
1 EPSON; CPF H80
2 D100M.
- 5 -
1.6. УСТАНОВКА ЗНАЧЕНИЯ КОДА ESC.
КОМАНДА:
SET LP: ESC=XXX
УСТАНАВЛИВАЕТ ЗНАЧЕНИЕ КОДА ESC РАВНЫМ XXX, ОБЫЧНО ESC=33.
КОМАНДА:
SET LP: NOESC
УСТАНАВЛИВАЕТ ЗНАЧЕНИЕ КОДА ESC РАВНЫМ 400.
1.7. ПЕРЕДАЧА КОДА "ПЕРЕВОД ФОРМАТА"
КОМАНДА:
SET LP: NOFEED
ЗАПРЕЩАЕТ ДРАЙВЕРУ ПЕРЕДАВАТЬ КОД "ПЕРЕВОД ФОРМАТА"
ПРИНТЕРУ, ЭТОТ КОД ЗАМЕНЯЕТСЯ НА КОД "ПЕРЕВОД СТРОКИ".
КОМАНДА:
SET LP: FEED
ОТМЕНЯЕТ РЕЖИМ NOFEED.
1.8. ВВЕДЕНИЕ СИМВОЛОВ "[ ] { } | @ \"
ДЛЯ ПРИНТЕРА CPF H80
КОМАНДА:
SET LP: ZNAK
ВВОДИТ ЗНАКИ "[ ] { } | \ @ " ВМЕСТО СИМВОЛОВ, КОТОРЫЕ
ЗАШИТЫ В ПЗУ ПРИНТЕРА CPF H80.
КОМАНДА:
SET LP: NOZNAK
ВЫБИРАЕТСЯ ОСНОВНОЙ НАБОР ЗНАКОВ, ЗАШИТЫХ В ПЗУ ПРИНТЕРА.
- 6 -
1.9. РАСПОЗНАВАНИЕ КОДОВ <РУС>, <ЛАТ>
КОМАНДА:
SET LP: KOI
УСТАНАВЛИВАЕТ РЕЖИМ РАСПОЗНАВАНИЯ В ТЕКСТЕ КОДОВ <РУС>,
<ЛАТ> ПРИ ЭТОМ ТЕКСТ МОЖЕТ БЫТЬ ПОДГОТОВЛЕН НАБОРОМ КОДОВ
КОИ7.
КОМАНДА:
SET LP: NOKOI
УСТАНАВЛИВАЕТ РЕЖИМ ИГНОРИРОВАНИЯ В ТЕКСТЕ КОДОВ <РУС>,
<ЛАТ> ПРИ ЭТОМ ЕСЛИ ТЕКСТ ПОДГОТОВЛЕН НАБОРОМ КОДОВ КОИ7, ТО
СТРОЧНЫЕ ЛАТИНСКИЕ БУКВЫ БУДУТ ПРЕОБРАЗОВАНЫ В ЗАГЛАВНЫЕ
РУССКИЕ.
1.10. УСТАНОВКА ДЛИНЫ СТРАНИЦЫ
КОМАНДА:
SET LP: LENGTH=NNN
УСТАНАВЛИВАЕТ ОБЩЕЕ ЧИСЛО СТРОК В СТРАНИЦЕ. ПОСЛЕ ПЕЧАТИ
ПОСЛЕДНЕЙ СТРОКИ В СТРАНИЦЕ ПРИНТЕРУ ПОДАЕТСЯ КОД "ПЕРЕВОД
ФОРМАТА".
1.11. ИГНОРИРОВАНИЕ НИЖНЕГО РЕГИСТРА
КОМАНДА:
SET LP: NOLC
УСТАНАВЛИВАЕТ РЕЖИМ ПРЕОБРАЗОВАНИЯ СТРОЧНЫХ БУКВ В
ЗАГЛАВНЫЕ.
КОМАНДА:
SET LP: LC
ОТМЕНЯЕТ РЕЖИМ NOLC.
- 7 -
1.12. НУМЕРАЦИЯ СТРАНИЦ
КОМАНДА:
SET LP: PAGE=N
ЕСЛИ N НЕ РАВНО НУЛЮ УСТАНАВЛИВАЕТ РЕЖИМ АВТОМАТИЧЕСКОЙ
НУМЕРАЦИИ СТРАНИЦ ТЕКСТА В ВИДЕ: - N - . ПРИ N РАВНЫМ НУЛЮ
СТРАНИЦЫ НЕ НУМЕРУЮТСЯ.
КОМАНДА:
SET LP: BLANK=NNN
УСТАНАВЛИВАЕТ ПОЗИЦИЮ, В КОТОРОЙ БУДЕТ ПЕЧАТАТЬСЯ НОМЕР
СТРАНИЦЫ (НУМЕРАЦИЯ СТРАНИЦ ПРОИЗВОДИТСЯ ТОЛЬКО ПРИ УСТАНОВ-
ЛЕННОМ SET ПАРАМЕТРЕ ASK).
1.13. УСТАНОВКА МЕЖСТРАНИЧНОГО ИНТЕРВАЛА
КОМАНДА:
SET LP: SKIP=NNN
УСТАНАВЛИВАЕТ ЧИСЛО СТРОК МЕЖСТРАНИЧНОГО ПРОМЕЖУТКА, ЭТО
ЧИСЛО СТРОК ВХОДИТ В ОБЩЕЕ ЧИСЛО СТРОК В СТРАНИЦЕ И НЕ
ДОЛЖНО БЫТЬ БОЛЬШЕ НЕГО. NNN - ЧИСЛО СТРОК МЕЖСТРАНИЧНОГО
ИНТЕРВАЛА.
1.14. УСТАНОВКА ВЕКТОРА ПРЕРЫВАНИЯ
КОМАНДА:
SET LP:VECTOR=XXX
УСТАНАВЛИВАЕТ ВЕКТОР ПРЕРЫВАНИЯ ОТ ПЕЧАТАЮЩЕГО УСТРОЙСТВА
(УКНЦ VECTOR=464).
- 8 -
2. ПАРАМЕТРЫ ДЛЯ ПРИНТЕРОВ EPSON,CPFH80 И ROBOTRON
2.1. УСТАНОВКА ДЛИНЫ СТРОКИ
КОМАНДА:
SET LP: WIDTH=NNN
УСТАНАВЛИВАЕТ ДЛИНУ СТРОКИ В СИМВОЛАХ. NNN - ЧИСЛО СИМВОЛОВ
В СТРОКЕ, ЛИШНИЕ СИМВОЛЫ ИГНОРИРУЮТСЯ.
2.1. УСТАНОВКА ШРИФТА ПЕЧАТИ
КОМАНДА:
SET LP: SHRIFT=NNN
УСТАНАВЛИВАЕТ ЗНАЧЕНИЕ ШРИФТА ПЕЧАТИ. ДЛЯ ПРИНТЕРА EPSON, CPFH80
ЗНАЧЕНИЕ ВЫЧИСЛЯЕТСЯ ПО ТАБЛИЦЕ СУММИРОВАНИЕМ ЗНАЧЕНИЙ ТРЕБУЕМЫХ
ШРИФТОВ. ПРИМЕЧАНИЕ: ПРОПОРЦИОНАЛЬНЫЙ ШРИФТ ОТМЕНЯЕТ УПЛОТНЕННЫЙ.
ПАЙКА 0
ЭЛИТА 1
ПРОПОРЦИОНАЛЬНЫЙ 2
УПЛОТНЕННЫЙ 4
ВЫДЕЛЕНЫЙ 8
ДВУУДАРНЫЙ 16
ДВОЙНОЙ ШИРИНЫ 32
КУРСИВ 64
С ПОДЧЕРКИВАНИЕМ 128
ПРИМЕР: ТРЕБУЕТСЯ НАПЕЧАТАТЬ ТЕКСТ ШРИФТОМ: ЭЛИТА КУРСИВОМ С
ПОДЧЕРКИВАНИЕМ. РЕШЕНИЕ: NNN=1+64+128=193, ДАЕМ КОМАНДУ:
SET LP: SHRIFT=193.
ДЛЯ ПРИНТЕРА ROBOTRON ЗНАЧЕНИЕ ШРИФТА ОПИСАНО В
ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ.
2.2. УСТАНОВКА ПЛОТНОСТИ ПЕЧАТИ СТРОК
КОМАНДА:
SET LP: VINT=NNN
УСТАНАВЛИВАЕТ ПЛОТНОСТЬ ПЕЧАТИ СТРОК СО ЗНАЧЕНИЕМ NNN/216
СТРОК НА ДЮЙМ. ОБЫЧНО ПРИМЕНЯЕТСЯ ПЛОТНОСТЬ 6 СТРОК НА ДЮЙМ.
ПРИМЕЧАНИЕ:SET ПАРАМЕТР УСТАНАВЛИВАЕТСЯ И ДЛЯ ПРИНТЕРА D100M.
- 9 -
3. НЕКОТОРЫЕ ОСОБЕННОСТИ ПРИМЕНЕНИЯ ДРАЙВЕРА
УСТАНОВЛЕННЫЕ КОМАНДАМИ SET РЕЖИМЫ ЗАПИСЫВАЮТСЯ НА ДИСК
И ДЕЙСТВУЮТ ДО ТЕХ ПОР, ПОКА НЕ БУДУТ ИЗМЕНЕНЫ СЛЕДУЮЩЕЙ
КОМАНДОЙ SET. ЕСЛИ ДРАЙВЕР ЗАГРУЖЕН В ОПЕРАТИВНУЮ ПАМЯТЬ, ТО
SET РЕЖИМЫ ИЗМЕНЯЮТСЯ ТОЛЬКО ПОСЛЕ ВЫГРУЗКИ ДРАЙВЕРА И
ЗАГРУЗКИ НОВОЙ КОПИИ.
ПЕРЕД ИСПОЛЬЗОВАНИЕМ ДРАЙВЕРА НА КОМПЬЮТЕРЕ УКНЦ
НЕОБХОДИМО ДАТЬ КОМАНДЫ:
1) ДЛЯ ПРИНТЕРА D100
SET LP:DEV=0
SET LP:NOZNAK
SET LP:NOCOM
2) ДЛЯ ПРИНТЕРА ROBOTRON
SET LP:DEV=-1
SET LP:NOCOM
SET LP:NOZNAK
3) ДЛЯ ПРИНТЕРА EPSON
SET LP:DEV=1
SET LP:COM
SET LP:NOZNAK
R LP.SYS
4) ДЛЯ ПРИНТЕРА CPF H80
SET LP:DEV=1
SET LP:COM
SET LP:ZNAK
R LP.SYS
4) ДЛЯ ПРИНТЕРА D100M
SET LP:DEV=2
SET LP:COM (ДЛЯ ЗАВОДСКОЙ УСТАНОВКИ ПЕРЕКЛЮЧАТЕЛЕЙ)
SET LP:NOZNAK
R LP.SYS
ПРИ ИСПОЛЬЗОВАНИИ ПРИНТЕРА ROBOTRON НЕОБХОДИМО
УСТАНОВИТЬ ПЕРЕКЛЮЧАТЕЛИ 8-1 И 9-1 В ПОЛОЖЕНИЕ OFF.
DLTEST-ы были найдены в просторах Инета, наверное имеет смысл распечатать их на реальном принтере и отсканировать.
а голову нашего Robotron-a я вытащил, в реале она выглядит вот так:
http://ipic.su/img/img7/tn/P9250025.1508706012.jpg (http://ipic.su/img/img7/fs/P9250025.1508706012.jpg)
:)
vertical line из него там как бык... и режимы мы, похоже, эмулируем немного сферически, относительно вихляний механикой реальной прошивкой.
p.s. мне, кстати, как отображается в .svg визуально больше нра, .pdf как-то более суров, зато там многостраничность из-коробки и это очень круто.
p.p.s. Я, видимо, прозевал escstr.prn? Раз в PRN1.rar остался только escstr.pdf, он где-то сохранился?
.pdf как-то более суров, зато там многостраничность из-коробки и это очень круто.
у меня слишком бледно рисует любимый софт ) без многостраничности бред !!! но svg - однозначно самый красивый )))
а голову нашего Robotron-a я вытащил
а почему нашего? Это же ГДР-принтеры ) Лажовые, расхлобыстанные, горенемцы, но немцы, а вот наш
был очень качественный (это под EPSON который).
ну ладно :), "нашего" в кавычках :) - прошивку со шрифтом из него-то вытащили)))))))))))))))))
Всё жалко ~$40 отдать на заказ DEC LA-50 с ебея для потрошения.
наш
был очень качественный (это под EPSON который).
вот такая машинка - действительно гордо носила имя Бытовой Принтер. Очень качественная и "неубиваемая" вещь,
знай только следи что-бы лента не сохла, была одна партия с глюком (не помню с каким), но там как-то всё решалось
умелыми руками пользователей. Роботрончик из школьной поставки рядом с ним, просто неумелая поделка )
https://ru.pc-history.com/elektronika-ms-6313.html мой экземпляр ещё несколько лет после УК-НЦ работал с ПиСи,
поскольку для меня переделали кабель соединения, 98 окошки находили его под дровами от EPSON 800 LH или LX не помню точно, кнопка "КАЧ" делала печать чёткой. Супер машинка, гордость отечественного принторостроения.
А мне нравились 6337. Широкий (А3 повёрнутый, при желании можно и А2 зарядить), глючный, конечно, но большинство глюков легко обходилось. Был еще какой-то аппаратный глюк, но я, помню, легко его пофиксил, так, что мой экземпляр был рулезом. :)
А мне нравились 6337. Широкий
я застал как они до последнего в Московских "женских" (всякие РАНО и подобные конторы) организациях жировки печатали, они там рулон заряжали и норм. Шумный конечно ВАХ! ) Да все иголочки ВАХ! громкие были. 6337 по сути так же какой-то там EPSON (драйвер под окошки так же подбирался и работали они под 98).
Я сейчас капнул - ндя - драйверов LP.SYS отечественных и штатных вариантов завались (утрирую но есть), нашёл на 6-ти дисковом Фодосе который недавно подшили в ДВК раздел
там есть LP.MAC - но подозреваю это штатный исходник какой-то.
- - - Добавлено - - -
Кстати говоря получилось эмулятором СУ+ИСП распечатать, долго он висел, так и не вернул мне управление курсором (скорее всего я не дождался, курсор мигал - значит повисания скорее всего не было), но картинку (или большую часть)
я на выходе получил, только вот файл SVG так долго открывался в браузере, что я его удалил на всякий случай )
попробовал печать строки из кассетного бэйсика, оператор LPRINT "", текст строки набирал заглавной кириллицей,
вот что в принтере LOG
ьфпф фелуф реюбфбефус йъ лбууефопзп векуйлб хл-ог
а вот принт-скрин SVG открытого браузером )
http://f23.ifotki_.info/org/49cb728bb0be9fd1d318e2e2c46beef45a9a41291468703.pn g
вот что в принтере LOG Ничего удивительного, у нас-то КОИ-7 Н0/Н1, или КОИ-8, а у принтера - 866 или даже т.наз. "основная" кодировка - это где русские буквы на месте псевдографики.
Для такого принтера нужен специальный драйвер, который на лету перекодирует то, что нужно. И не перекодирует то, что не нужно - ту же графику. Помню, сочинял такой на ДВК, для 6337 и Ёпсонов, где-то должен быть. Ну, и, на УКНЦ, наверняка, тоже кто-то сочинил.
AFZ, я накопал мини программный комплект для печати с локальных машинок УК-НЦ, там поддерживаются сразу несколько моделей принтеров (правда не все файлы там целые к сожалению - это специально для КУВТ УК-НЦ было
написано), а есть ещё исходник LP.SYS (скорее всего штатный) на дистрибутиве ФОДОС и есть ещё такой вот LP (см. описание к нему выше), а есть ещё LP от Alphaprog (Alex_K) и есть ещё СЕМЗОВСКИЙ какой-то 3-ёх блочный драйвер.
Я что то пока решил не забивать голову - к тому же печать не самая актуальная вещь учитывая современные возможности и современные устройства - кому нужны иголочки сегодня? Даже музЭйщикам не особо нужны, поскольку
громоздкие же, а толку полный ноль )))
- - - Добавлено - - -
Возможность работы с ПУ у УК-НЦ без всяких ОС, а если есть кассетный Бейсик вообще сказка - вот что замечательно на то время )
- - - Добавлено - - -
Ну, и, на УКНЦ, наверняка, тоже кто-то сочинил.
на УК-НЦ для ПУ гора программ на все случаи жизни (помимо драйверов).
1.5. УСТАНОВКА ТИПА ИСПОЛЬЗУЕМОГО ПРИНТЕРА КОМАНДА: SET LP: DEV=N УСТАНАВЛИВАЕТ ТИП ИСПОЛЬЗУЕМОГО ПРИНТЕРА. ВОЗМОЖНЫЕ ЗНАЧЕНИЯ N: -1 ROBOTRON; 0 D100; 1 EPSON; CPF H80 2 D100M.
- - - Добавлено - - -
для 6337 и Ёпсонов,
на дискете с Минибухгалтерией такие говорящие названия видны
Image : UKIMG00.dsk
Format : DSK
Size : 840 Kb
Volume ID: Mini-cancel
Owner : Batkov & br.
File Blocks Date Bytes
---------- ------ ----------- ----------
RT11QQ.SYS 68 11-Oct-1992 34'816
TT .SYS 2 11-Oct-1992 1'024
SL .SYS 10 11-Oct-1992 5'120
MZ .SYS 4 15-Jan-1990 2'048
SWAP .SYS 27 11-Aug-1993 13'824
LP .SYS 6 29-Jun-1990 3'072
NC .SYS 29 31-Jan-1993 14'848
TS .SYS 2 14-Apr-1993 1'024
VM .SYS 2 15-Feb-1993 1'024
IO .SYS 2 11-Oct-1992 1'024
PP .SYS 2 11-Oct-1992 1'024
LD .SYS 8 15-Aug-1992 4'096
DUP .SAV 45 11-Oct-1992 23'040
PIP .SAV 26 08-Apr-1993 13'312
DIR .SAV 15 11-Oct-1992 7'680
DAY .SAV 4 11-Oct-1992 2'048
UST .SAV 3 07-Aug-1992 1'536
< UNUSED > 1 512
RESORC.SAV 22 15-Aug-1992 11'264
HANDLE.SAV 7 07-Aug-1992 3'584
DESS .SAV 20 15-Aug-1992 10'240
DESS .HLP 4 07-Aug-1992 2'048
EDIC .SAV 22 07-Aug-1992 11'264
MZFORM.SAV 6 15-Aug-1992 3'072
SETMZ .SAV 3 15-Aug-1992 1'536
D100M .SAV 2 27-Mar-1989 1'024
H6337 .SAV 7 30-Jun-1992 3'584
TEXTER.SAV 3 07-Jan-1992 1'536
RUS .SAV 1 20-Sep-1992 512
LAT .SAV 1 20-Sep-1992 512
MINI .COM 1 01-Feb-1993 512
MINI .TXT 24 01-Feb-1993 12'288
READ .ME 17 01-Feb-1993 8'704
MC6312.SAV 2 01-Feb-1993 1'024
MINI .SAV 86 01-Feb-1993 44'032
MINI .TEF 6 01-Feb-1993 3'072
SKLAD .TEF 4 01-Feb-1993 2'048
BUHGAL.DOC 300 01-Feb-1993 153'600
READ .TEF 16 01-Feb-1993 8'192
BUHGAL.FRM 300 01-Feb-1993 153'600
ASM .TEF 1 29-Aug-1994 512
STARTS.BAK 1 05-Nov-1994 512
STARTS.COM 1 16-Jan-1995 512
< UNUSED > 473 242'176
---------- ------ ----------- ----------
42 Files, 1112 Blocks
474 Free blocks
- - - Добавлено - - -
там (на МиниБухгалтерском диске) Зеленоградский LP.SYS, если не ошибаюсь вот скриншотик под катом его
http://f23.ifotki_.info/org/b5656963139ef72c12dada275e3a6ced5a9a41291486745.pn g
- - - Добавлено - - -
H6337 .SAV 7 30-Jun-1992
это вот такая весёлая вещь оказалась )
http://f23.ifotki_.info/thumb/3fc41c212e4b39c8442b1c2d8e74e4925a9a41291487734.pn g (http://i-fotki.info/23/3fc41c212e4b39c8442b1c2d8e74e4925a9a41291487734.pn g.html)
Небольшие изменения по утилите ESCParser:
# Выход за конец страницы => переход на следующую страницу; высота страницы 11 дюймов
# Выход за конец строки => переход на следующую строку
Делаю шрифт на основе символов, полученных из ПЗУ принтеров Robotron:
https://github.com/nzeemin/robotron-dotmatrix-font
shattered
10.11.2025, 20:24
Для начала надо ознакомится с реализацией интерфейса ИРПР из документации к принтеру Robotron (стр. 63-65). Саму документацию выкладывал KALDYH в этой теме.
Речь об инструкции к СМ6329 (https://narod.ru/disk/19597603000/%D0%A1%D0%9C6329%20-%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%8 6%D0%B8%D1%8F.djvu.html).
На схеме УКНЦ изм6 добавлена перемычка S5 (разомкнутая) между сигналом ЗАПРОС (ЗП, AC) ИРПР (PB7) и входом VQ (pin 12) D28 ("RT"). На ВП1-120 такого входа нет, похоже, на этой схеме подразумевается замена на ВП1-134. Возможно, это вход запроса прерывания?
Речь об инструкции к СМ6329 (https://narod.ru/disk/19597603000/%D0%A1%D0%9C6329%20-%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%8 6%D0%B8%D1%8F.djvu.html).
На схеме УКНЦ изм6 добавлена перемычка S5 (разомкнутая) между сигналом ЗАПРОС (ЗП, AC) ИРПР (PB7) и входом VQ (pin 12) D28 ("RT"). На ВП1-120 такого входа нет, похоже, на этой схеме подразумевается замена на ВП1-134. Возможно, это вход запроса прерывания?
Подразумевалось. Есть новые версии ПЗУ для УКНЦ, там в исходниках есть трансляция под литеру 5 (это с ВП1-120) и литеру 9 (с ВП1-134). Но что-то не срослось и схемотехника СЭМЗ (это как раз с литеры 9) выпускалась с ВП1-120.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot