Справочник программиста

               на персональном компьютере

                      фирмы 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
Используются технологии uCoz