ремонт стиральных машин бош на дому

Инициализация канала DMA


Порт 0Dh
Порт 0DhЗапись в этот порт вызывает сброс контроллера. Для дальнейшего использования контроллер должен быть заново проинициализирован....
Порт 0Eh
Порт 0EhСброс регистра маски. После записи в этот регистр любого значения разрешается работа всех четырех каналов прямого доступа....
Порт 0Fh
Порт 0FhМаскирование/размаскирование каналов. С помощью этого порта можно выполнить одновременное маскирование или размаскирование нескольких каналов: 7 6 5 4 3 2 1 0 T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ ¦...
Порты 81h-8Fh
Порты 81h-8FhЭто порты регистров страниц. Для работы с памятью контроллер прямого доступа использует 20-разрядные физические адреса. Шестнадцать младших битов адреса необходимо записать в регистр...
2. Инициализация канала DMA
9.1.2. Инициализация канала DMAДля инициализации канала программа должна выполнить следующие шаги: сбросить триггер байтов командой записи в регистр0Ch; задать режим работы канала, выполнив запись...
9.2. Контроллер прямого доступа для IBM AT
Контроллер DMA компьютера IBM AT совместим снизу вверх с контролером IBM PC/XT. Он состоит из двух каскадно включенных микросхем Intel 8237A-5. Второй контроллер обслуживает каналы DMA с номерами...
Порты 0C0h - 0DFh
Порты 0C0h - 0DFhЭти регистры содержат базовые адреса и счетчики передаваемых данных каналов 4-7. Их назначение приводится в следующей таблице:0C0hЗапись:Базовый адрес канала 4 Чтение:Текущий адре...
Порты 0D0h-0DFh
Порты 0D0h-0DFhЭто управляющие порты и порты состояния второй микросхемы 8237A-5. По формату и назначению они соответствуют рассмотренным ранее для контроллера DMA компьютеров IBM PC/XT:0D0hУправл...
10.РАСШИРЕННАЯ ПАМЯТЬ
10. РАСШИРЕННАЯ ПАМЯТЬ10.1. Основные понятия10.2. Установка драйвера HIMEM.SYS10.3. Спецификация XMS10.4. Ограничения при использовании области HMA10.5. Примеры программ10.6. Интерфейс с Си К...
10.1. Основные понятия
При обсуждении спецификации XMS мы будем использовать следующие понятия и термины. Расширенная память (Extended Memory) - это память, используемая в компьютерах с процессорами 80286, 80386, 80486,...
10.2. Установка драйвера HIMEM.SYS
Для установки драйвера файл CONFIG.SYS должен содержать строку: device=[d:][путь]himem.sys [/HMAMIN=h] [/NUMHANDLES=n] Параметр /HMAMIN= (необязательный) задает минимальный размер памяти, который...
10.3. Спецификация XMS
Спецификация XMS содержит описание программного интерфейса драйвера HIMEM.SYS и рекомендации по использованию области памяти HMA....
1. Проверка подключения драйвера
10.3.1. Проверка подключения драйвераПервое, что должна сделать программа, которая собирается вызывать драйвер HIMEM.SYS - проверить, был ли установлен этот драйвер при загрузке операционной систе...
2. Получение адреса управляющей программы
10.3.2. Получение адреса управляющей программыДля вызова драйвера программа должна получить адрес специальной управляющей программы, которая выполняет все функции по обслуживанию расширенной памят...
3. Описание функций драйвера HIMEM.SYS
10.3.3. Описание функций драйвера HIMEM.SYSВсе функции драйвера HIMEM.SYS могут быть разделены на следующие пять групп: функции получения информации о драйвере (0h); функции управления областью HM...
Получить версию XMS
Получить версию XMS На входе: AH = 00h. На выходе: AX = номер версии XMS; BX = номер внутренней модификации драйвера; DX = 0001h - если существует область HMA, 0000h...
Запросить область HMA
Запросить область HMA На входе: AH = 01h; DX = размер памяти в байтах в области HMA, которая будет использоваться резидентными программами или драйверами, обычная...
Освободить область HMA
Освободить область HMA На входе: AH = 02h. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: BL = 80h, 81h, 90h, 93h. Программы, которые з...
Глобальное открывание линии A20
Глобальное открывание линии A20 На входе: AH = 03h. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: BL = 80h, 81h, 82h. Эта функция пред...
Глобальное закрывание линии A20
Глобальное закрывание линии A20 На входе: AH = 04h. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: BL = 80h, 81h, 82h, 94h. Функция пре...
Локальное открывание линии A20
Локальное открывание линии A20 На входе: AH = 05h. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: BL = 80h, 81h, 82h. Эта функция предн...
Локальное закрывание линии A20
Локальное закрывание линии A20 На входе: AH = 06h. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: BL = 80h, 81h, 82h, 94h. Функция отме...
Определение состояния линии A20
Определение состояния линии A20 На входе: AH = 07h. На выходе: AX = 0001h - если линия A20 открыта; 0000h - если линия A20 закрыта. Ошибки: BL = 00h, 80h, 81h. Функция выполняет попы...
Определение размера свободной расширенной памяти
Определение размера свободной расширенной памяти На входе: AH = 08h. На выходе: AX = размер наибольшего свободного блока расширенной памяти в килобайтах; DX = общий размер сво...
Получить блок EMB
Получить блок EMB На входе: AH = 09h. DX = размер требуемого блока в килобайтах. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка;...
Освободить блок EMB
Освободить блок EMB На входе: AH = 0Ah; DX = 16-битовый индекс (handle) полученного блока EMB. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если прои...
Копирование блоков EMB
Копирование блоков EMB На входе: AH = 0Bh. DS:SI = указатель на управляющую структуру, определяющую откуда, куда и как будет выполняться копирование. На выходе:...
Блокирование EMB
Блокирование EMB На входе: AH = 0Ch; DX = 16-битовый индекс (handle) блокируемого EMB. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ош...
Разблокирование EMB
Разблокирование EMB На входе: AH = 0Dh; DX = 16-битовый индекс (handle) разблокируемого EMB. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произо...
Получить информацию об индексе EMB
Получить информацию об индексе EMB На входе: AH = 0Eh; DX = 16-битовый индекс (handle) EMB. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибк...
Изменить размер EMB
Изменить размер EMB На входе: AH = 0Fh; DX = 16-битовый индекс (handle) незаблокированного EMB, размер которого должен быть изменен; BX = новый размер EMB в кило...
Запросить область UMB
Запросить область UMB На входе: AH = 10h; DX = размер запрашиваемого блока UMB в параграфах. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произо...
Освободить область UMB
Освободить область UMB На входе: AH = 11h; DX = сегмент освобождаемого UMB. На выходе: AX = 0001h - если функция выполнена успешно 0000h - если произошла ошибка. Ошибки: B...
4. Коды ошибок
10.3.4. Коды ошибокПриведем таблицу кодов ошибок, возвращаемых функциями в регистре BL:КодОшибка00hНет ошибки, нормальное завершение 80hФункция не реализована в текущей версии драйвера 81hОбнаруже...
10.4. Ограничения при использовании области HMA
К сожалению, на программы, использующие область HMA, накладываются значительные ограничения. Они связаны с тем, что MS-DOS версий 4.01 и более ранних, а также BIOS не были рассчитаны на работу с а...
10.5. Примеры программ
Первая программа демонстрирует проверку подключения драйвера и использование его основных функций: include sysp.inc .MODEL tiny DOSSEG .STACK 100h .DATA msg DB 13,10,"Раб...
10.6. Интерфейс с Си
Приведем текст программы, позволяющей программам, составленным на языке программирования Си, использовать функции драйвера расширенной памяти. Эта программа будет работать только в моделях памяти...
11.ДОПОЛНИТЕЛЬНАЯ ПАМЯТЬ
11. ДОПОЛНИТЕЛЬНАЯ ПАМЯТЬ11.1. Драйверы дополнительной памяти11.2. Проверка подключения драйвера11.3. Вызов функций драйвера11.4. Стандартные функции EMM11.5. Дополнительные функции EMM11.6....
11.1. Драйверы дополнительной памяти
Для использования дополнительной памяти в компьютер должна быть вставлена плата дополнительной памяти и в файле CONFIG.SYS подключен специальный драйвер, который обычно поставляется вместе с плато...
11.2. Проверка подключения драйвера
Драйвер дополнительной памяти устанавливает вектор прерывания INT67h таким образом, что этот вектор указывает на заголовок драйвера. При изучении драйверов мы рассказывали вам о формате заголовка....
11.3. Вызов функций драйвера
Для вызова функций драйвера дополнительной памяти программа должна загрузить код функции в регистр AH, код подфункции (обычно 0) в регистр AL, и затем вызвать прерывание INT 67h. После возвра...
11.4. Стандартные функции EMM
Стандартные функции - это небольшое подмножество функций EMM, необходимое для работы обычных прикладных программ (не резидентных и не драйверов). Все эти функции поддерживаются EMM версии 3.2....
1. Получить состояние EMM
11.4.1. Получить состояние EMM На входе: AX = 4000h. На выходе: AH = байт состояния EMM. Эта функция используется для проверки состояния драйвера EMM. Она должна использоваться только после...
2. Получить сегмент окна
11.4.2. Получить сегмент окна На входе: AX = 4100h. На выходе: AH = байт состояния EMM; BX = сегмент окна для доступа к логическим страницам дополнительной памяти. Функция по...
3. Получить размер доступной памяти EMS
11.4.3. Получить размер доступной памяти EMS На входе: AX = 4200h. На выходе: AH = байт состояния EMM; DX = общее количество 16-килобайтных страниц EMS в системе; BX =...
4. Открыть индекс EMM
11.4.4. Открыть индекс EMM На входе: AX = 4300h; BX = требуемое в данном пуле количество логических страниц. На выходе: AH = байт состояния EMM; DX = индекс пула EMS,...
5. Отобразить память
11.4.5. Отобразить память На входе: AH = 44h; AL = номер физической страницы окна доступа (от 0 до 3); BX = номер логической страницы из числа находящихся в пуле...
6. Закрыть индекс EMM
11.4.6. Закрыть индекс EMM На входе: AX = 4500h; DX = индекс EMM. На выходе: AH = байт состояния EMM. Функция освобождает все логические страницы пула. После освобождения эти страниц...
7. Получить номер версии EMM
11.4.7. Получить номер версии EMM На входsе: AX = 4600h. На выходе: AH = байт состояния EMM; AL = номер версии в двоично-десятичном (BCD) формате, 32h соответствует версии 3.2....
11.5. Дополнительные функции EMM
Дополнительные функции используются резидентными программами, драйверами и мультизадачными приложениями. Кроме того, с помощью этих функций можно выполнять пересылку массивов в дополнительной и ст...
1. Сохранить контекст отображения
11.5.1. Сохранить контекст отображения На входе: AX = 4700h; DX = индекс EMM. На выходе: AH = байт состояния EMM. Эта функция предназначена для использования драйверами и резидентным...
2. Восстановить контекст отображения
11.5.2. Восстановить контекст отображения На входе: AX = 4800h; DX = индекс EMM. На выходе: AH = байт состояния EMM. Функция позволяет восстановить контекст отображения логических ст...
3. Определить количество страниц в пуле
11.5.3. Определить количество страниц в пуле На входе: AX = 4B00h; DX = индекс EMM. На выходе: AH = байт состояния EMM; BX = количество логических страниц в пуле. Функция воз...
4. Определить количество активных пулов
11.5.4. Определить количество активных пулов На входе: AX = 4C00h; DX = индекс EMM. На выходе: AH = байт состояния EMM; BX = количество активных пулов дополнительной п...
5. Получить информацию о пулах
11.5.5. Получить информацию о пулах На входе: AX = 4D00h; ES:DI = адрес буфера для информации. На выходе: AH = байт состояния EMM; BX = количество активных пулов дополнительно...
6. Получить/установить отображение всех страниц
11.5.6. Получить/установить отображение всех страниц На входе: AH = 4Eh; AL = код подфункции: 0 - получить содержимое всех регистров отображения в буфер ES:DI;...
7. Получить/установить отображение части страниц
11.5.7. Получить/установить отображение части страниц На входе: AH = 4Fh; AL = код подфункции: 0 - получить содержимое регистров отображения в буфер ES:DI; 1...
8. Отображение/запрещение группы страниц
11.5.8. Отображение/запрещение группы страниц На входе: AH = 50h; AL = код подфункции: 0 - разрешить или запретить отображение страниц, используя номера страниц;...
9. Изменение размера пула
11.5.9. Изменение размера пула На входе: AX = 5100h; BX = новый размер пула в логических страницах; DX = индекс EMM. На выходе: AH = байт состояния EMM. С помощью этой функци...
10. Получить/установить атрибуты пула
11.5.10. Получить/установить атрибуты пула На входе: AH = 52h; AL = код подфункции: 0 - получить атрибуты пула; 1 - установить атрибуты пула; 2 - определить возм...
11. Установить/прочитать имя пула
11.5.11. Установить/прочитать имя пула На входе: AH = 53h; AL = код подфункции: 0 - получить имя пула; 1 - установить имя пула; ES:DI = адрес буфера имени пула,...
12. Найти имя пула
11.5.12. Найти имя пула На входе: AH = 54h; AL = код подфункции: 0 - получить каталог пулов; 1 - найти пул по имени; 2 - определить количество открытых пулов;...
13. Отобразить страницу и перейти по адресу
11.5.13. Отобразить страницу и перейти по адресу На входе: AH = 55h; AL = код подфункции: 0 - использовать массив номеров физических страниц; 1 - использоват...
14. Отобразить страницу и вызвать процедуру
11.5.14. Отобразить страницу и вызвать процедуру На входе: AH = 56h; AL = код подфункции: 0 - использовать массив номеров физических страниц; 1 - использоват...
15. Переслать/обменять область памяти
11.5.15. Переслать/обменять область памяти На входе: AH = 57h; AL = код подфункции: 0 - переслать область памяти; 1 - обменять область памяти; DS:SI = адрес стру...
11.6. Коды ошибок
Все функции EMM возвращают код ошибки в регистре AH:КодОшибка00hНет ошибки, нормальное завершение 80hВнутренняя ошибка драйвера EMM 81hОшибка аппаратуры EMS-памяти 82hEMM занят83hНеправильный инде...
11.7. Программа, использующая EMS
Приведенная ниже программа демонстрирует использование основных функций EMM: #include <stdio.h> #include <conio.h> #include "sysp.h" void main(void); void main(void) { un...
12.АРИФМЕТИЧЕСКИЙ СОПРОЦЕССОР
12. АРИФМЕТИЧЕСКИЙ СОПРОЦЕССОР 12.1. Вещественные числа12.2. Целые числа12.3. Регистры сопроцессора12.4. Система команд сопроцессора12.5. Программирование сопроцессора12.6. Обработка особых с...
12.1. Вещественные числа
Прежде чем говорить о форматах вещественных числе, используемых сопроцессором, вспомним о числах с плавающей точкой, встречающихся в научных расчетах. В общем виде эти числа можно записать следующ...
12.2. Целые числа
Арифметический сопроцессор наряду с вещественными числами способен обрабатывать и целые числа. Он имеет команды, выполняющие преобразования целых чисел в вещественные и обратно. Возможно четыре фо...
12.3. Регистры сопроцессора
Арифметический сопроцессор содержит восемь численных 80-битовых регистров, предназначенных для хранения промежуточных результатов вычислений, регистра управления, регистра состояния, регистра тего...
1. Численные регистры
12.3.1. Численные регистрыМы будем обозначать численные регистры как ST0 - ST7. Они приведены на следующем рисунке: 80 бит ----------------------------------------------------¬ ST0 ¦...
2. Регистр тегов
12.3.2. Регистр теговЭтот регистр разделен на восемь двухбитовых полей, которые мы обозначим как TAG0...TAG7. Каждое поле относится к своему численному регистру: -----T----T----T----T----T----T---...
3. Регистр управления
12.3.3. Регистр управленияРегистр управления для сопроцессора 8087 показан на следующем рисунке: 15-13 12 11-10 9-8 7 6 5 4 3 2 1 0 ---------T-T-----T-----T---T---T---T---T---T---T---T---...
4. Регистр состояния
12.3.4. Регистр состоянияПоля регистра состояния сопроцессора 8087 показаны на следующем рисунке: 15 14 13-11 10 9 8 7 6 5 4 3 2 1 0 ---T-T-----T-T-T-T-T-T-T---T-T-T-T--¬ ¦B ¦C3¦ ST ¦C2¦C1¦C0¦IR¦...
5. Регистры указателя команды и указателя операнда
12.3.5. Регистры указателя команды и указателя операндаРегистры указателя команды и указателя операнда предназначены для обработки особых случаев, возникающих при выполнении команд в сопроцессоре....
12.4. Система команд сопроцессора
Возможны три формата команд сопроцессора, аналогичные форматам команд центральных процессоров 8086/80286/80386. Это команды с обращением к оперативной памяти, команды с обращением к одному из числ...
1. Команды пересылки данных
12.4.1. Команды пересылки данных...
Запись в стек
Запись в стек FLD ST(0) <- память, вещественный формат FILD ST(0) <- память, целый формат FBLD ST(0) <- память, десятичный формат Команды FLD, FILD, FBLD загружают в вершину стека ве...
Извлечение из стека
Извлечение из стека FSTP память -> ST(0), вещественный формат FISTP память -> ST(0), целый формат FBSTP память -> ST(0), десятичный формат Команды извлечения чисел из стека выполняют...
Копирование данных
Копирование данных FST память -> ST(0), вещественный формат FIST память -> ST(0), целый формат FBST память -> ST(0), десятичный формат (только 80387, 80486) Эти команды пересылаю...
Обмен
Обмен FXCH ST(i) -> ST(0), ST(0) -> ST(i) Команда выполняет обмен содержимым верхушки стека ST(0) и численного регистра, указанного в качестве операнда команды....
Загрузка констант
Загрузка констант FLDZ 0 -> ST(0) - Загрузить нуль FLD1 1 -> ST(0) - Загрузить единицу FLDPI "Пи" -> ST(0) - Загрузить число "пи". FLDLG2 log102 -> ST(0) - Загру...
2. Арифметические команды
12.4.2. Арифметические командыСопроцессор использует шесть основных типов арифметических команд: FxxxПервый операнд берется из верхушки стека (источник), второй - следующий элемент стека. Результа...
3. Команды сравнений чисел
12.4.3. Команды сравнений чиселВ процессорах 8086/80286/80386 команды условных переходов выполняются в соответствии с установкой отдельных битов регистра флагов процессора. В арифметическом сопроц...
4. Трансцендентные команды
12.4.4. Трансцендентные командыТрансцендентные команды предназначены для вычисления таких функций, как тригонометрические (sin, cos, tg,...), обратные тригонометрические (arcsin, arccos,...), пока...
5. Управляющие команды
12.4.5. Управляющие командыУправляющие команды предназначены для работы с нечисловыми регистрами сопроцессора. Некоторые команды имеют альтернативные варианты. Мнемоники этих команд могут начинать...
12.5. Программирование сопроцессора
Используя языки высокого уровня, такие как Си или Паскаль, вы можете даже и не знать, что созданная вами программа использует для вычислений арифметический сопроцессор. При установке системы прогр...
12.6. Обработка особых случаев
В арифметическом сопроцессоре имеются два механизма обработки ошибок, возникающих при выполнении различных команд. Первый механизм основан на генерации так называемого прерывания особого случая (I...
1. Неточный результат
12.6.1. Неточный результатВ результате выполнения некоторых операций может возникнуть такая ситуация, когда невозможно точно представить результат. Например, при результатом деления числа 1.0 на 3...
2. Переполнение
12.6.2. ПереполнениеЕсли результат выполнения операции слишком велик и не может быть представлен в формате приемника результата, фиксируется особый случай переполнения. Этот особый случай обязател...
3. Антипереполнение
12.6.3. АнтипереполнениеАнтипереполнение возникает тогда, когда результат слишком мал для его представления в формате приемника результата операции, но все же отличен от нуля. Например, если делае...
4. Деление на нуль
12.6.4. Деление на нульЭтот особый случай возникает при попытке выполнить деление конечного ненулевого числа на нуль. В афинном режиме при делении конечных (положительных или отрицательных) чисел...
5. Недействительная операция
12.6.5. Недействительная операцияЭтот особый случай возникает при попытке выполнения таких запрещенных команд, как деление нуля на нуль, извлечения корня из отрицательного числа, обращение к несущ...
6. Денормализованный операнд
12.6.6. Денормализованный операндМы уже говорили о том, что сопроцессор использует операнды в нормализованной форме. Однако при выполнении операции может оказаться, что результат слишком мал по аб...
13. ОБЗОР ЛИТЕРАТУРЫ
13. ОБЗОР ЛИТЕРАТУРЫ Undocumented DOS Andrew Schulman, Raymond J. Michels, Jim Kyle, Tim Paterson, David Maxey, Ralf Brown ISBN 0-201-57064-5 QA76.76.O63U53 1990 005.4'46-dc20 90-46992 Second Prin...
14. ПРИЛОЖЕНИЕ
14. ПРИЛОЖЕНИЕ 14.1. Коды клавиатуры14.2. Регистры часов реального времени14.3. Частоты нот для второй октавы14.4. Разводка разъема последовательного порта14.5. Порты адаптера принтера14.6. Развод...
Таблица скан-кодов для клавиатуры IBM PC/XT:
Таблица скан-кодов для клавиатуры IBM PC/XT: ----------T----------T------------T-------------T---------------¬ ¦01 Esc ¦12 E ¦23 H ¦34 . > ¦45 NumLock ¦ ¦02 1 ! ¦13 R ¦24 J ¦35...
Таблица расширенного ASCII-кода:
Таблица расширенного ASCII-кода: г--------T--------------T--------------T-------------¬ ¦ F1 3b¦ Shift-F1 54¦ Ctrl-F1 5e ¦ Alt-F1 68 ¦ ¦ F2 3c¦ Shift-F2 55¦ Ctrl-F2 5f ¦ Alt-F2 69 ¦ ¦ F3...
14.2. Регистры часов реального времени
РегистрНазначение0счетчик секунд1 регистр секунд будильника 2 счетчик минут 3 регистр минут будильника 4 счетчик часов 5 регистр часов будильника 6 счетчик дней недели (1 - воскрес...
0AH регистр состояния A
0aH регистр состояния A 7 6 5 4 3 2 1 0 T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ LT+T+-+T+T+-+-+T- ¦ L=T=- L=====¦= переключатель скорости (установлен в 0110) ¦ L=========== 22-разрядный делитель (установлен...
0BH регистр состояния B
0bH регистр состояния B 7 6 5 4 3 2 1 0 T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ LT+T+T+T+T+T+T+T- ¦ ¦ ¦ ¦ ¦ ¦ ¦ L= 1 - использование летнего времени ¦ ¦ ¦ ¦ ¦ ¦ ¦ (daylight savings enable); ¦ ¦ ¦ ¦ ¦ ¦...
14.3. Частоты нот для второй октавы
В этой таблице приведены частоты нот для второй октавы. При повышении (понижении) тона на октаву частота соответствующей ноты умножается (делится) на 2.НотаЧастота, ГцДо261,7До-диез277,2Ре293,7Ре-...
14.4. Разводка разъема последовательного порта
Приведем разводку разъема порта последовательной передачи данных DB25P: Номер контакта Назначение контакта Вход или выход 1 Защитное заземление - 2 Передаваемые данные Выход...
Порт 378h.
Порт 378h.Этот порт предназначен для записи выводимого на принтер байта данных. Возможно также чтение только что записанного байта....
Порт 37Ah.
Порт 37Ah.Порт управления принтером, доступен для чтения и записи: 7 6 5 4 3 2 1 0 T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ ¦ ¦ ¦ LT+-+T+T+T+T+T+T- L=T=- ¦ ¦ ¦ ¦ L= строб данных, принимает значение 1 при ¦ ¦...
Порт 379h
Порт 379hПорт состояния принтера, доступен только для чтения: 7 6 5 4 3 2 1 0 T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ ¦ ¦ ¦ LT+T+T+T+T+T+-+T- ¦ ¦ ¦ ¦ ¦ L===¦= установлены в 0; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L======= сигнал...
14.6. Разводка разъемов принтерного порта
Таблица назначения контактов разъемов принтерного порта (контакт PC) на компьютере и контактов разъема непосредственно на принтере (контакт принтера): Контакт Контакт Назначение Вход/выход P...
Управление принтером
Управление принтером ESC @ Инициализация принтера 1Bh 40h Выполняется сброс принтера в исходное состояние, если происходила печать строки, то при инициализации эта печать отменяется. DC1(17) Выбо...
Управление старшим битом данных
Управление старшим битом данныхСтарший бит данных MSB (Most Significant Bit) - это бит 7 байтов, посылаемых программой в принтер. Обычно вам не надо изменять значение старшего бита данных, более т...
Управление печатающей головкой и перемещением бумаги
Управление печатающей головкой и перемещением бумаги CR(13) Возврат каретки 0Dh Команда вызывает распечатку содержимого буфера данных принтера, после чего головка переводится в начало текущей стро...
Обработка слов
Обработка слов ESC a n Выравнивание для качественного (LQ) набора символов 1Bh 61h n Параметр n может принимать следующие значения: 0 - выравнивание влево; 1 - выравнивание по центру;...
Таблицы символов
Таблицы символов ESC t n Выбор таблицы символов 1Bh 74h n Данная команда выбирает одну из таблиц, описывающих начертание символов для символов с кодами от 128 до 255, т.е. для правой половины кодо...
Графические команды
Графические команды ESC K n1 n2 Выбор графического режима с одинарной плотностью 1Bh 4Bh n1 n2 Команда устанавливает графический 8-битовый режим одинарной плотности. Общее количество столбцов в...
Управление цветом
Управление цветом ESC r n Определение цвета печати 1Bh 72h n В зависимости от значения параметра n печать будет выполнена одним из следующих цветов: 0 - черный; 1 - малиновый; 2 - циан...
Управление принтером
Управление принтером ESC @ Инициализация принтера 1Bh 40h Epson Выполняется сброс принтера в исходное состояние, если происходила печать строки, то при инициализации эта печать отменяется. DC1(17...
Управление старшим битом данных
Управление старшим битом данныхСтарший бит данных MSB (Most Significant Bit) - это бит 7 байтов, посылаемых программой в принтер. Обычно вам не надо изменять значение старшего бита данных, более т...
Управление печатающей головкой и перемещением бумаги
Управление печатающей головкой и перемещением бумаги CR(13) Возврат каретки 0Dh Epson, IBM Команда вызывает распечатку содержимого буфера данных принтера, после чего головка переводится в начало т...
Обработка слов
Обработка слов ESC a n Выравнивание для качественного (LQ) набора символов 1Bh 61h n Epson Параметр n может принимать следующие значения: 0 - выравнивание влево; 1 - выравнивание по центру...
Таблицы символов
Таблицы символов ESC t n Выбор таблицы символов 1Bh 74h n Epson Данная команда выбирает одну из таблиц, описывающих начертание символов для символов с кодами от 128 до 255, т.е. для правой половин...
Графические команды
Графические команды ESC K n1 n2 Выбор графического режима с одинарной плотностью 1Bh 4Bh n1 n2 Epson, IBM Команда устанавливает графический 8-битовый режим одинарной плотности. Общее количество...
14.9. Альтернативная таблица кодировки
В настоящее время существует несколько вариантов кодировки русских букв (кириллицы) для операционной системы MS-DOS - основная, альтернативная, минская и т.д. Они отличаются, в основном, расположе...
14.10. Содержимое файла sysp.h
/* SYSP.H - include-файл для примеров, приведенных в книге *//** *.Name FP_MAKE * *.Title Макро для составления FAR-указателя * *.Descr Макро составляет FAR-указатель, пользуясь * значе...
14.11. Содержимое файла sysp.inc
; ; Это макроопределение печатает символы на экране ; @@out_ch MACRO c1,c2,c3,c4,c5,c6,c7,c8,c9,c10 mov ah,02h IRP chr,<c1,c2,c3,c4,c5,c6,c7,c8,c9,c10> IFB <c...
Загрузка данных в стек
Загрузка данных в стек FLD src Загрузка вещественного числа st(0) <- src (mem32/mem64/mem80) FILD src Загрузка целого числа st(0) <- src (mem16/mem32/mem64...
Загрузка констант
Загрузка констант FLDZ Загрузка нуля st(0) <- 0.0 FLD1 Загрузка единицы st(0) <- 1.0 FLDPI Загрузка числа Pi st(0) <- Pi FLDL2T...
Запись данных
Запись данных FST dest Запись вещественного числа dest <- st(0) (mem32/mem64) FSTP dest Запись вещественного числа с извлечением его из стека численных рег...
Сравнение
Сравнение FCOM Сравнение вещественных чисел Установка флагов по результатам операции st(0) - st(1) FCOM op Сравнение вещественных чисел Установка...
Арифметические команды
Арифметические команды FADD Сложение вещественных чисел st(0) <- st(0) + st(1) FADD src Сложение вещественных чисел st(0) <- st(0) + src (mem32/mem64...
Трансцендентные команды
Трансцендентные команды FCOS Вычисление косинуса st(0) <- COS(st(0)) FPTAN Вычисление частичного тангенса st(0) <- TAN(st(0)) FPATAN Вычисление час...
Управляющие команды
Управляющие команды FINIT Инициализация арифметического сопроцессора FSTSW AX Запись слова состояния AX <- MSW FSTSW dest Запись слова состояния dest (mem...
14.13. Форматы данных сопроцессора
Одинарная точность1 бит 8 бит 23 бита ---T-------T--------------------¬ ¦Зн¦Порядок¦ Мантисса ¦ L--+-------+---------------------Двойная точность 1 бит 11 бит 52 бита ---T---------T-----...


- Начало -