Итак, для тех, кто не бывает в твёрдо-мягком:
http://www.old-games.ru/forum/showthread.php?p=844106#post844106
Собственно, там располагается сага о том, как двое героических личностей помогли мне высяснить как переключать язык ввода в pc dos 7.0 и как заставить в нём же печатать lpt-принтер без встроенного кириллического шрифта кириллические символы.
Исчерпывающего ответа на последний вопрос там, само собой, нету. Вероятно потому, что 7-летние дети уже не те, что прежде. !НО! Я-таки доказал себе, что я тоже кое-на-что годен. Даже бэйсик пришлось вспомнить, потому что в руководстве все примеры программ загрузки user-defined чарактеров в принтер написаны на нём (на бэйсике). Итого, как всё прошло:
Первые два дня я жёстко курил мануал по матричному гробу epson lq-580 в надежде что-то понять. И понял, но упустил главное (об этом позже). Суть заключалась в том, что, чтобы заставить печатать принтер русские буковки в текстовом режиме (то есть, не в графическом), необходимо ему эти буковки загрузить в его память, специально для этого предназначенную. Сначала я пробовал написать текстовый файлик с управляющими последовательностями (командами для принтера) в редакторе E. Ага, как же. При вводе ALT+01 вместо того, чтобы ввести в файлик символ с кодом 01, E переключался в режим мультиэкрана - то есть, он реагировал на управляющий код вместо того, чтобы его напечатать. Урок усвоен, мне нужен hex-редактор.
Что есть на старом компе из hex-подобных? Ага, Norton DiskEditor. Да, если бы... чтобы только разобраться, как в нём вообще что-то делать мне потребовалось без малого полдня вкуривания справки. Затем я повозился с ним немного и понял, что каждый раз вот так вот изменять файл я умру (Открыть диск в режиме редактирования, перейти к списку файлов и директорий на нём (где-то в райное 0 - 500 кластеров), выставить вид "директории", перейти по команде link к нужному файлу, открыть хекс-вид... брррр!!!) В общем, на следующий день я скачал hiew 6.50, кстати с удивлением обнаружив, что есть и версии под винду, да причём они платные
В общем, скачал, записал на болванку, перекачал на старый комп. Открыл. О чудо! Ничего удобнее в жизни не видел. Всё минимально и просто. Совершенно не понял, почему хиев называли "одной большой ошибкой" - возможно, дело в версии под винду, там, говорят, появился кривой дизассэмблер...
Стоп... не уходите, я ещё не дорассказал. Значит, открыл я в хиеве нужный файл, быстренько забил в него нужные команды для принтера, а именно:
ESC : (копируем текущую таблицу в память)
ESC x 1 (тут и далее выбираем атрибуты чаров)
ESC p 0
ESC T
ESC 5
ESC & 0 43 43 0 34 0 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 31, 255, 224,
32, 0, 16, 31, 255, 244, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16,
0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 31, 255, 224, 32, 0, 16, 31, 255,
224, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16, 0, 0, 0, 32, 0, 16 (рисуем в RAM-памяти буковку "Н" заместо "+"; ввод без запятых)
Нажал печать, принтер не выдал ни одного символа. Значит, принял последовательности. Ага, как жеНа самом деле он просто сбился с толку, потому что они неправильные.
Тогда я стал пробовать найти нормальное руководство для нужного принтера Epson lq-510 (именно его эмулирует мой Canon BJ-200). И нашёл. И вот тогда-то я и узнал, что, во-первых, нужно повернуть на моём принтере один DIP-switch в нужное положение, чтобы, ***, буфер печати поделился памятью для возможности "рисования" этих самых новых букав. Далее, я узнал, что, оказывается,
ESC p 0
должно писаться как
ALT+27p0
, но при этом
ESC % 1
должно писаться как
ALT+27%ALT+01
То есть, не всегда циферки нужны десятичные. А в предыдущем руководстве об этом упомянуть забыли.... Ну, и, само собой, в ESC & 0 43 43 0 34 0 .... тоже все циферки шестнадцатеричные. Так, я навсегда запомнил, что, например, символ с управляющим кодом 27 (ESC) - это 1B, а первый символ в таблице - это бледный смайлик
Ну, и, в итоге, вышло вот такое воть.
ESC x 0 (выбираем черновой вариант печати)
ESC & 0 43 43 1 9 1 1 0 0 2 0 0 4 0 0 8 0 0 23 255 240 8 0 0 4 0 0 2 0 0 1 0 0 (Так мы рисуем в RAM-памяти новый символ "стрелочка вверх" заместо "+")
ESC % 1 (переключаем печать на RAM-память, вместо ROM)
Далее это всё отправляется на печать в принтер. Теперь, принтер не напечатает ничего, кроме стрелочки вместо знака плюс, потому что в памяти ничего больше не нарисовано. Так и случилось. Я печатаю в чёрной бездне два знака "+", нажимаю PrtScrn и наслаждаюсь белым листом бумаги, в центре которого одиноко стоят две стрелочки вверх.
На большее меня не хватило. Поднимите руку, кто ещё так делал?!? И не надо мне про 7-летних детей рассказывать - я вон тут с 13-ти летними выпиваю иногда, ни про какой хекс они точно не знают, зато в вине теперь разбираются![]()
![]()
Чувствую себя разработчиком драйвера![]()
-
Скрыть объявление
Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.
-
Скрыть объявлениеЕсли Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.
Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
- Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
- Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
- Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
- Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
С уважением, администрация форума Old-Games.RU
Комментарии