Справочник программиста персонального компьютера фирмы IBM.
Роберт Журден
Оглавление.
Введение 5 Соглашения о числах, принятые в этой книге. 5 Введение 6 Глава 1. Системные ресурсы. 11 Раздел 1. Ревизия системных ресурсов. 11 Доступ к микросхеме интерфейса с периферией 8255. 11 Определение типа IBM PC. 13 Определение версии MS DOS. 14 Определение числа и типов адаптеров дисплея. 14 Определение числа и типа дисковых накопителей. 16 Определение числа и типа периферийных устройств. 17 Ревизия количества памяти. 18 Раздел 2. Управление прерываниями. 21 Программирование контроллера прерываний 8259. 22 Запрет/разрешение отдельных аппаратных прерываний. 22 Hаписание собственного прерывания. 23 Дополнение к существующему прерыванию. 26 Раздел 3. Управление программами. 26 Манипуляции с памятью. 27 Запуск одной программы из другой. 29 Использование команд интерфейса с пользователем из 31 программы. Сохранение программы в памяти после завершения. 32 Загрузка и запуск программных оверлеев. 34 Преобразование программ из типа .EXE в тип .COM. 36 Глава 2. Таймеры и звук. 39 Раздел 1. Установка и чтение таймера. 39 Программирование микросхемы таймера 8253/8254. 39 Установка/чтение времени. 41 Установка/чтение даты. 43 Установка/чтение часов реального времени. 44 Задержка программных операций. 45 Операции запрограммированные во времени. 46 Управление работой в реальном времени. 47 Генерация случайных чисел с помощью микросхемы таймера. 50 Раздел 2. Создание звука. 51 Программирование генератора звука 76496 (только PCjr). 51 Генерация тона. 53 Генерация звука одновременно с другими действиями. 54 Гудок динамика. 55 Генерация набора тонов. 56 Генерация строки тонов, одновременно с другими операциями. 59 Создание плавного перехода тонов. 61 Создание звуковых эффектов. 62 Одновременная генерация разных звуков. 64 Глава 3. Kлавиатура. 65 Раздел 1. Управление клавиатурой. 65 Очистка буфера клавиатуры. 66 Проверка символов в буфере. 67 Ожидать ввод символа и не выводить его на экран. 68 Ожидание нажатия клавиши и эхо на экран. 70 Прием символа без ожидания. 71 Получение строки символов. 71 Проверка/установка статуса клавиш-переключателей. 73 Hаписание процедуры ввода с клавиатуры общего назначения. 75 Перепрограммирование прерывания клавиатуры. 77 Раздел 2. Доступ к отдельным клавишам. 80 Использование клавиш <BackSpace>, <Enter>, <Escape> и 80 <Tab>. Использование клавиш-переключателей: <Shift>, <Ctrl> и 80 <Alt>. Использование клавиш-переключателей: NumLock, CapsLock, 81 Ins и ScrollLock. Использование цифровой дополнительной клавиатуры и кла- 82 виш перемещения курсора. Использование функциональных клавиш. 83 Перепрограммирование отдельных клавиш. 84 Создание макроопределений для отдельных клавиш. 85 Создание процедуры обработки Ctrl-Break. 86 Перепрограммирование клавиши PrtSc. 87 Раздел 3: Сводка кодов клавиш и применений. 88 Предопределенное использование клавиш. 89 Сводная таблица скан-кодов. 90 Сводная таблица кодов ASCII 90 Сводка кодов псевдографики для построения рамок. 93 Сводная таблица расширенных кодов. 93 Глава 4. Вывод на терминал. 95 Раздел 1. Управление выводом на терминал. 95 Программирование контроллера дисплея 6845. 96 Установка/проверка режима дисплея. 98 Установка атрибутов/цветов символов. 102 Установка цвета границы экрана. 108 Очистка части/всего экрана. 109 Переключение между видеоадапторами. 110 Раздел 2. Управление курсором. 112 Установка курсора в абсолютную позицию. 112 Относительное позиционирование курсора 114 Включение и выключение курсора. 115 Изменение формы курсора. 116 Чтение/сохранение/восстановление позиции курсора. 118 Создание альтернативных типов курсора. 119 Раздел 3. Вывод символов на экран. 120 Вывод на экран одного символа. 120 Вывод строки символов на экран. 125 Чтение символа и его атрибутов в данной позиции. 127 Создание специальных символов. 128 Сводка данных для описания символов. 130 Раздел 4. Вывод точечной графики. 132 Установка цветов для точечной графики. 133 Рисование точки на экране (монохромный, цветной и PCjr). 137 Рисование точки на экране (EGA). 140 Определение цвета точки экрана. 146 Рисование линий на экране. 148 Заполнение областей экрана. 152 Графический вывод с использованием символов псевдографики. 156 Раздел 5. Сдвиг экрана и страницы. 157 Вертикальный сдвиг текстового экрана. 158 Сдвиг текстового экрана горизонтально. 159 Переключение между текстовыми страницами. 160 Сдвиг между страницами текста. 163 Глава 5. Дисковые накопители. 165 Раздел 1. Управление распределением диска. 165 Чтение таблицы размещения файлов. 165 Определение доступного дискового пространства. 168 Получение/установка размера файла. 169 Восстановление после ошибок, связанных с нехваткой 170 пространства на диске Раздел 2. Работа с каталогами диска. 171 Чтение/изменение корневого каталога. 172 Создание/удаление подкаталога. 175 Чтение/изменение подкаталога. 176 Получение/установка текущего каталога. 177 Получение/установка времени и даты последнего доступа к 178 файлу. Спрятанные и защищенные от записи файлы. 179 Чтение/изменение метки тома. 180 Раздел 3. Подготовка к работе с файлами. 182 Установка/проверка накопителя по умолчанию. 183 Создание/удаление файла. 184 Открытие/закрытие файла. 187 Переименование файла; изменение позиции файла в каталоге. 191 Подготовка к файловым операциям. 192 Анализ информации командной строки. 196 Раздел 4. Чтение и запись файла. 197 Программирование контроллера HГМД 765 и микросхемы пря- 199 мого доступа к памяти 8237. Чтение/запись определенных секторов. 206 Запись в последовательные файлы. 208 Чтение из последовательных файлов. 213 Запись в файлы прямого доступа. 217 Чтение из файлов прямого доступа. 221 Проверка данных после операций чтения/записи. 223 Определение дисковых ошибок и восстановление после них. 224 Глава 6. Принтер. 227 Раздел 1. Управление работой принтера. 227 Инициализация порта принтера/повторная инициализация 228 принтера. Проверка того, что принтер связан с машиной. 229 Интерпретация ошибок принтера и восстановление после них. 230 Переключение между двумя или несколькими принтерами. 232 Раздел 2. Установка спецификаций печати. 233 Установка текстового и графического режимов. 234 Управление расстоянием между строками. 235 Управление движением бумаги. 236 Управление положением печатающей головки. 237 Установка позиций табуляции. 238 Изменение шрифта печати. 239 Сравнение возможностей принтеров IBM. 239 Раздел 3. Посылка данных на принтер. 241 Вывод текстовых или графических данных на принтер. 242 Выравнивание правого поля. 245 Пропорциональная печать. 247 Печать специальных символов. 248 Kопирование экрана на принтер (дамп экрана). 251 Глава 7. Ввод/вывод. 255 Раздел 1. Доступ к последовательному порту. 255 Программирование микросхемы UART 8250. 255 Инициализация последовательного порта. 256 Установка текущего коммуникационного порта. 259 Определение статуса коммуникационного порта. 260 Инициализация и управление модемом. 261 Передача данных. 264 Получение данных. 266 Посылка/получение данных с помощью коммуникационного 269 прерывания. Сводка управляющих кодов, используемых при коммуникации. 271 Раздел 2. Создание драйвера устройства. 272 Создание заголовка драйвера. 273 Создание стратегии устройства. 274 Создание обработчика прерывания устройства. 275 Доступ к драйверу устройства. 278 Обнаружение и анализ ошибок устройства. 279 Раздел 3. Использование специальных устройств ввода/вывода. 282 Чтение/запись с кассетного магнитофона. 283 Чтение позиции светового пера. 284 Получение аналогового ввода через игровой порт. 286 Получение цифрового ввода из игрового порта. 288 Приложения. 291 Приложение А. Двоичные и шестнадцатиричные числа и адре- 291 сация памяти. Приложение Б. Битовые операции в Бейсике. 294 Приложение В. Основные сведения об языке ассемблера. 296 Приложение Г. Включение ассемблерных процедур в программы 300 на Бейсике. Приложение Д. Использование драйвера устройства ANSI.SYS. 302 Приложение Е. Hабор инструкций микропроцессора 8088. 302 Приложение Ж. Hабор инструкций микропроцессора 80286. 305 Приложение З. Толковый словарь IBM PC. 308