; Файл: EpsonFX.TDR ; Создан: 9-сен-1989 ; Автор: Е.Н.Веселов ; ; Драйвер принтера типа Epson FX для текстового процессора ЛЕКСИКОН-ПЛЮС ; ---------------------------------------------------------------------- ; ; Данный драйвер написан на специальном языке описания принтеров, ; определенном в интегрированной среде МАСТЕР-ЛЕКСИКОН. ; Описание должно компилироваться транслятором драйверов PS-DRTR.EXE ; (версия транслятора PS-DRTR 2.01): ; > PS-DRTR EpsonFX.TDR PRINTER.LEX ; ; Данный драйвер, в силу широкой распространенности стандарта Epson FX, ; может быть применим к очень широкому классу принтеров, как 9-, так ; и 24-игольчатых. При настройке драйвера обратие внимание на комментарий ; к команде LOAD. ; ; В данном драйвере используются следующие свойства принтера Epson FX. ; 1. Принтер имеет возможность загрузки знакогенератора во все ; кодовые позиции от 128 до 255. Поэтому возможна загрузка ; стандартной "альтернативной" кодировки русских букв, содержащаяся ; в файле EpsonFX.DL9, загружаемая командой LOAD за данного драйвера ; в момент первой выдачи из сеанса ЛЕКСИКОНа. ; ; 2. Файл EpsonFX.DL9 помимо собственно загрузки шрифта содержит также ; команду переключения принтера на этот загружаемый шрифт, так что ; в драйвере предполагается, что после инициализации текущим ; "символьным" шрифтом принтера является именно загруженный шрифт DLF, ; что и объявлено командой INITIAL DLF. ; ; 3. Для справки: файл EpsonFX.DL9 имеет следующую структуру: ; ESC ':' 0 0 0 - копировать ROM CG в DLF ; ESC '6' - расширить область загрузки DLF на коды 128-159 ; ESC '%' 1 0 - настроиться на загружаемый шрифт ; ESC '&' 0 128 255 font - загрузить шрифт ; ; 4. Кроме начального шрифта A в драйвере используются другие "символьные" ; шрифты принтера, основанные на том же загружаемом русско-латинском ; шрифте, но с иными режимами плотности: ; DLFBOLD - полужирный шрифт ; ELITE - узкий шрифт ; Эти шрифты сгруппированы в двух гарнитурах: ; Гарнитура ЗАГРУЖАЕМАЯ использует шрифты DLF и DLFBOLD, ; для нормального и полужирного шрифтов, а также графический ; шрифт ITDRFT.FN9 для курсива (от стандартного курсива, ; имеющегося в графическом файле ITAL.FN9, этот отличается ; уменьшенным размером, совпадающим с размером символьных ; шрифтов). ; Гарнитура УЗКАЯ использует единственный шрифт ELITE. ; ; 5. Помимо "символьных" в драйвере используются "графические" шрифты, ; объединенные в гарнитуре ГРАФИЧЕСКАЯ: ; STND.FN9, ITAL.FN9, STNDBOLD.FN9, ITALBOLD.FN9 ; Эти шрифты представлены в драйвере как равномерные (поскольку ; раздел ширин отдельных символов - PROPORTIONAL - отсутствует). ; Если потребуется работать с этими шрифтами в пропорциональном ; режиме, то можно снять блокирующий символ ";" с разделов ; PROPORTIONAL в описаниях этих шрифтов. При этом, однако, ; возникнут затруднения с распечаткой таблиц. ; Именно эта гарнитура является гарнитурой, выбираемой по ; умолчанию - это достигается тем, что она указывается ; самой первой в перечислении гарнитур. Такой выбор обусловлен ; тем, что по графическим режимам большинство принтеров ; совместимы, в отличие от символьных режимов, использующих ; загружаемые шрифты. ; ; 6. Распечатка каждой строки выполняется, вообще говоря, в пять ; проходов. Первые и последние два проходов - графические. На ; этих проходах выводятся четыре разные скана матриц символов ; графических шрифтов STND.FN9, ITAL.FN9, STNDBOLD.FN9, ITALBOLD.FN9, ; ITDRFT.FN9. В середине - на третьем проходе - выводятся ; символы "символьных" шрифтов DLF, DLFBOLD, ELITE. Такое ; сочетание "символьных" и "графических" шрифтов в данном драйвере ; возникает только в гарнитуре ЗАГРУЖАЕМАЯ. В остальных гарнитурах ; пропускаются либо символьный, либо графические проходы. ; ; 7. Графические шрифты распечатываются в квадрупольной плотности ; с помощью команды ESC 'Z' - 240 точек на дюйм. ; ; 8. Для вертикального позиционирования применяется сочетание двух ; команд: сначала устанавливается размер продвижения по LF, затем ; посылается код LF. Размер вертикального продвижения измеряется ; в 1/216 дюйма, для чего используется команда ESC '3'. ; ; 9. В описании последовательности проходов головки используется ; управление, зависящее от уровня качества: для качества ; 1 первый и последний проходы присоединяются ко ; второму и предпоследнему соответственно. Тем самым за счет ; качества изображения букв скорость печати возрастает в два раза. ; ; --------------------------------------------------------------------------- ; Управляющая последовательность INIT будет послана на принтер ; перед началом первой выдачи на принтер в текущем сеансе работы ; ЛЕКСИКОНа. Эта последовательность инициализирует состояние Epson FX-80 INIT ESC @ ; Файл EpsonFX.DL9 сдержит управляющие последовательности, выполняющие ; загрузку русского шрифта в загружаемый знакогенератор принтера ; Epson FX. Передача этого файла на принтер так же как и команда ; INIT будет выполнена перед началом первой выдачи на принтер в текущем ; сеансе работы ЛЕКСИКОНа. ; ВНИМАНИЕ: Многие принтеры, считающиеся совместимыми с Epson FX, ; не воспринимают эту команду загрузки знакогенератора. Если это так, ; то в начале первой попытки печати принтер ведет себя неадекватно: ; "гонит" на бумагу произвольные бессмысленные символы и управляющие коды. ; Для того, чтобы попытаться приспособить этот драйвер для такого ; "квази-Epson FX" принтера, нужно убрать из драйвера команду ; LOAD и перекомпилировать драйвер с помощью PS-DRTR.EXE. При этом, ; разумеется, следует позаботиться о каком-то ином способе загрузки ; знакогенератора (например, прожигая его на физическом уровне). ; Команда LOAD исполняется после команды INIT. LOAD EpsonFX.DL9 FONT DLF FIRST 001 LAST 254 WIDTH 24 SPACEWIDTH 24 FONT DLFBOLD ON ESC ! 008 OFF ESC ! 000 FIRST 001 LAST 254 WIDTH 24 SPACEWIDTH 24 FONT ELITE ON SI OFF DC2 FIRST 001 LAST 254 WIDTH 20 SPACEWIDTH 20 FONT STND = STND.FN9 WIDTH 24 SPACEWIDTH 24 FIRST 1 LAST 255 FONT ITAL = ITAL.FN9 FIRST 1 LAST 255 WIDTH 24 SPACEWIDTH 24 FONT STNDBOLD = STNDBOLD.FN9 FIRST 1 LAST 255 WIDTH 24 SPACEWIDTH 24 FONT ITALBOLD = ITALBOLD.FN9 FIRST 1 LAST 255 WIDTH 24 SPACEWIDTH 24 FONT ITDRFT = ITDRFT.FN9 FIRST 1 LAST 255 WIDTH 24 SPACEWIDTH 24 FONT LORATOR = LORATOR.FNT WIDTH 24 SPACEWIDTH 24 FIRST 1 LAST 255 FONT MORATOR = MORATOR.FNT WIDTH 24 SPACEWIDTH 24 FIRST 1 LAST 255 ; Оператор INITIAL задает имя того символьного шрифта, который ; оказывается текущим в принтере посел срабатывания всех команд ; инициализации INIT и LOAD. В данном случае таковым шрифтом ; является DLF - загружаемый шрифт. Настройка принтера на него ; производится управляющей последовательностью ESC % 1 0, находящейся ; в файле EpsonFX.DL9 INITIAL DLF ; Для распечатки графических шрифтов используется режим квадрупольной ; плотности (240 точек на дюйм), включаемый командой ESC Z (n1) (n2). GRAPHICS ON ESC Z %2B OFF MAX 32767 DENSITY 240 ; Для вертикального позиционирования используется комбинация, состоящая ; из управляющей последовательности задания интервала ESC 3 (n), вслед ; за которой дается стандартный перевод строки - CR LF. ; Размер интервала в управляющей последовательности ESC 3 (n) задается ; в 1/216 дюйма. В одной команде вертикального перемещения может быть ; задан максимальный интервал 255/216. VERTICAL MOVEMENT ESC 3 %1B CR LF VMI 216 MAX 255 STARTPAGE CR ENDPAGE FF ; Подчеркивание определено как для символьного, так и для графического ; режимов. В символьном режиме включение и выключение подчеркивания ; выполняется последовательностями ESC - (n), а для графического режима ; указано, что подчеркивание выполняется на пятом проходе установкой ; точки в 8-м (нижнем) бите. UNDERLINE ON ESC - 1 OFF ESC - 0 PASS 5 BIT 8 ; Командой SCAN описывается способ выдачи матрицы графического символа ; на принтер. Матрица разбивается на 4 скана. SCAN SCANS=4 HEIGHT=24 WIDTH=32 ROWINC=1 COLINC=1 VER=1 MSBOT=0 PAD=1 NBITS=8 BYTES=1 S1 ROW=1 COL=1 START=1 END=6 S2 ROW=2 COL=1 START=1 END=6 S3 ROW=13 COL=1 START=2 END=7 S4 ROW=14 COL=1 START=2 END=7 ; Командой PASS описывается общий процесс распечатки одной строки. ; Эта распечатка выполняется в пять проходов печатающей головки ; четыре из которых (1-й, 2-й, 4-й, 5-й) - графические, а 3-й - ; символьный. ; Параметр QUALITY задает максимальный уровень качества используемый ; для графического режима печати. ; PASS NPASS=5 QUALITY=2 P1 VERT=1 SCAN=1 QUALITY=2 P2 VERT=9 SCAN=2 WHEN=2 ADDSCAN=1 P3 VERT=5 SCAN=0 P4 VERT=1 SCAN=3 QUALITY=2 P5 VERT=2 SCAN=4 WHEN=2 ADDSCAN=3 ; Операторами ASSIGNMENT определяются различные гарнитуры - т.е. ; устанавливаются соответствия между внутренними номерами шрифтов ; ЛЕКСИКОНа (от 0 до 7) и именами шрифтов, определенными в драйвере. ; ASSIGNMENT ГРАФИЧЕСКАЯ F0 STND F1 ITAL F2 STNDBOLD F3 ITALBOLD F4 STND F5 STND F6 STND F7 STND ASSIGNMENT ЗАГРУЖАЕМАЯ F0 DLF F1 ITDRFT F2 DLFBOLD F3 DLFBOLD F4 DLF F5 DLF F6 DLF F7 DLF ASSIGNMENT ПРИВЫЧНАЯ F0 DLF F1 ITAL F2 STNDBOLD F3 ITALBOLD F4 LORATOR F5 MORATOR F6 DLF F7 DLF ASSIGNMENT УЗКАЯ F0 ELITE F1 ELITE F2 ELITE F3 ELITE F4 ELITE F5 ELITE F6 ELITE F7 ELITE