Справочник программиста
на персональном компьютере
фирмы 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
Использование клавиш , , и 80
.
Использование клавиш-переключателей: , и 80
.
Использование клавиш-переключателей: 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