Аппаратное обеспечение IBM PC


         

Младшие семь битов задают ширину


Младшие семь битов задают ширину символа и представляют собой число, определяемое по следующей схеме:

  • возмите в качестве начального значения для ширины символа число 8;


  • для каждого пустого столбца в сетке с правой стороны символа надо вычесть из начального значения единицу;


  • для каждого пустого столбца в сетке с левой стороны символа надо прибавить к начальному значению число 16.


  • Пусть определяемый символ располагается в верхней части сетки (использует восемь верхних строк). Пусть этот символ начинается в третьем столбце и заканчивается в 7 столбце. Тогда десятичное значение параметра a1 вычисляется следующим образом:

    a1 = 8(начальное значение) - - 2(два пустых столбца справа) + + 32(два пустых столбца слева) + + 128(старший бит равен 1) = 166

    Если ваш символ использует верхние восемь строк сетки, начинается в первом столбце и заканчивается в девятом, в качестве параметра a1 подходит значение 136. При этом символы будут печататься верхними восемью иголками печатающей головки. Для использования нижних восьми иголок и такой же ширины символа задайте значение a1 равное 8.

    Параметры d1...dn - образцы столбцов точек для определяемого символа. Их должно быть всегда 11, даже если символ содержит пустые столбцы. Для пустых столбцов в качестве образца надо задать 0.

    Для включения определенного программой набора символов в работу необходимо выдать команду ESC "%" "0", для использования набора символов из внутреннего ПЗУ принтера выдайте команду ESC "%" "1".

    Приведем пример программы, изменяющей начертание символа "@" в принтере Epson FX-850/1050. Для правильной работы программы переключатель SW 1-1 должен быть установлен в положение OFF.

    #include <dos.h> #include <stdio.h>

    main() {

    char buffer[] = {

    0x1b, '@', // Сбрасываем принтер в исходное // состояние.

    7,7,7, // Выдаем 3 раза звуковой сигнал.

    // Определяем вместо "@" новый символ:

    0x1b, '&', 0,

    '@', '@', 136, 32,80,168,84,42,84,168,80,32,0,0,


    Содержание  Назад  Вперед