Аппаратное обеспечение персонального компьютера. Часть 1
معرفی کتاب «Аппаратное обеспечение персонального компьютера. Часть 1» نوشتهٔ Фролов А.В., Фролов Г.В.. این کتاب در فرمت doc، زبان ru ارائه شده است.
Библиотека системного программиста, 33-й том, 1997В книге приведено описание методик программирования аппаратуры персональных компьютеров, выполненных с применением процессоров Intel, на уровне портов, прерываний DOS и BIOS, а также на уровне функций драйверов.Подробно описана процедура определения конфигурации компьютера, в том числе типа процессора, рассказано о способах работы с клавиатурой, мышью, часами реального времени, системным таймером, асинхронным портом последовательной передачи данных, параллельным портом, контроллером прерываний и контроллером прямого доступа к памяти. Описаны функции, предназначенные для работы с расширенной памятью, а также команды арифметического сопроцессора. Отдельная глава посвящена работе с драйвером устройства CD-ROM. Оглавление:Аннотация Введение Благодарности. Авторский компакт - диск Как связаться с автором **Определения конфигурации компьютера.**Определение конфигурации с помощью BIOS Наличие НМД Наличие арифметического сопроцессора Начальный режим работы видеоадаптера Количество установленных НГМД Наличие контроллера прямого доступа DMA Количество асинхронных последовательных адаптеров Игровой адаптер Последовательный порт компьютера PCjr Количество параллельных адаптеров Размер оперативной памяти Программа HDWCFG Код модели компьютера и версия BIOS Программа BIOSINFO Конфигурация в памяти CMOS 00h - 0Dh - область часов реального времени 0Eh - байт диагностики 0Fh - байт отключения 10h - тип накопителей НГМД 11h - зарезервировано для IBM PC/AT, тип НМД для IBM PS/2 12h - тип первого и второго НМД 13h - зарезервировано 14h - конфигурация оборудования 15h-16h - объем стандартной оперативной памяти 17h-18h - объем расширенной памяти 19h-1Ah тип первого и второго НМД 1Bh-2Dh - зарезервировано 2Eh-2Fh - контрольная сумма ячеек 10h - 20h 30h-31h - объем расширенной памяти 32h текущее столетие 33h - различная информация 34h-3Fh - зарезервировано Другие ячейки памяти CMOS Программа CMOSSHOW Определение типа центрального процессора Модели Intel 8086/8088 Модель Intel 80286 Модель Intel 80386 Модель Intel 80486 Команда CPUID Программа CPUINFO **Клавиатура.** Как работает клавиатура Клавиатурная матрица Скан-код клавиши Код ASCII нажатой клавиши Режим автоповтора Типы клавиатур Порты для работы с клавиатурой Компьютер IBM PC/XT Современные компьютеры Программа KBDLED Аппаратное прерывание клавиатуры Стандартный обработчик прерывания INT 09h Буфер клавиатуры Переключающие клавиши Средства BIOS для работы с клавиатурой Чтение символа с ожиданием Программа KBDSCAN Проверка буфера на наличие в нем символов Программа CHKBUF Получение состояния переключающих клавиш Установка временных характеристик клавиатуры Запись символов в буфер клавиатуры Чтение символа с ожиданием для 101-клавишной клавиатуры Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры Получение состояния переключающих клавиш для 101-клавишной клавиатуры Режимы работы клавиатуры Сравнение режимов Изменение режима Средства MS-DOS для работы с клавиатурой Буферизованный ввод с эхо-выводом Буферизованный ввод без эхо-вывода Нефильтрованный ввод без эхо-вывода Ввод с консоли и вывод на консоль Ввод строки символов Проверка состояния стандартного ввода Сброс буфера клавиатуры Клавиатурные функции стандартной библиотеки C Функции getch и getche Программа KBDASCII Функция kbhit Программа KBDHIT Функция cgets Функция gets Функция scanf **Мышь** Как устроена мышь? Драйверы мыши в MS-DOS Прерывание для обслуживания мыши Инициализация мыши Включить курсор мыши Выключить курсор мыши Программа MSCURSOR Определить положение курсора Программа MSGCURS Установить курсор Определить положение курсора при нажатии клавиши Определить положение курсора при отпускании клавиши Задать диапазон движения курсора по горизонтали Задать диапазон движения курсора по вертикали Задать форму курсора в графическом режиме Программа MSGFORM Задать форму курсора в текстовом режиме Программа MSTFORM Определить содержимое счетчиков перемещения Установить драйвер событий Программа MSDRIVER Включить эмуляцию светового пера Выключить эмуляцию светового пера Задать скорость перемещения курсора мыши Установить область исключения для курсора Задать увеличенный графический курсор Определить порог удвоения скорости Заменить драйвер событий Определить размер буфера состояния драйвера Сохранить состояние драйвера Восстановить состояние драйвера Установить альтернативный драйвер событий Получить адрес альтернативного драйвера событий Установить чувствительность мыши Определить чувствительность мыши Установить частоту прерываний для Inport Mouse Установить номер страницы видеопамяти Определить номер страницы видеопамяти Отключить драйвер мыши Восстановить драйвер мыши Сбросить драйвер мыши Определить тип мыши Мышь Microsoft IntelliMouse Проверка наличия мыши Microsoft IntelliMouse Определение величины свертки Сообщение MSH\_MOUSEWHEEL Сообщение WM\_MOUSEWHEEL Другие сообщения от мыши Microsoft IntelliMouse Приложение RTFPAD **Часы реального времени.** Регистры часов реального времени Регистры счетчиков Регистр состояния A Регистр состояния B Регистр состояния C Регистр состояния D Прерывание от часов реального времени Функции прерывания INT 1Ah Прочитать показания часов реального времени Установить часы реального времени Прочитать дату из часов реального времени Установить дату в часах реального времени Установить будильник Сброс будильника Программа RTCALARM **Системный таймер.**Обработка прерываний таймера Микросхемы таймера 8253 и 8254 Режимы работы таймера Каналы таймера Программирование таймера на уровне портов Формат управляющего регистра Формат команды чтения слова состояния канала Формат слова состояния канала Последовательность действий Программа TIMERST Средства BIOS для работы с таймером Чтение счетчика таймера Установка счетчика таймера Установка таймера с сигнализацией Формирование задержки Средства MS-DOS для работы с таймером Определение текущей даты Установка даты Определение текущего времени Установка времени Функции стандартной библиотеки С Таймер и музыка Настройка таймера для проигрывания музыки Второй способ проигрывания музыки Проигрывание музыки в фоновом режиме Программа TMSOUND Программа IOSOUND Программа RANDOM **Асинхронный последовательный адаптер.**Основные понятия и термины Аппаратная реализация Микросхема UART Разъемы адаптера Порты асинхронного адаптера Порт 3F8h Порт 3F9h Порт 3FAh Порт 3FBh Порт 3FCh Порт 3FDh Порт 3FEh Функции BIOS для работы с последовательным асинхронным адаптером Инициализация портов асинхронного адаптера Передача байта Прием байта Определение состояния асинхронного адаптера Программирование асинхронного адаптера Инициализация асинхронного адаптера Передача данных Прием данных Программа COMTEST Использование прерываний **Параллельный адаптер.** Порты параллельного адаптера Разъем параллельного адаптера Вывод байта на принтер через параллельный адаптер Функции BIOS для работы с принтером Печать символа Инициализация принтера Определение состояния принтера Программа PRINTFL Функции MS-DOS для работы с принтером Функция MS-DOS для вывода на принтер Система буферизованной печати Программирование принтера Подключение принтера к компьютеру Установка переключателей конфигурации Программирование режимов работы принтера **Контроллер прямого доступа к памяти.**Контроллер прямого доступа IBM PC/XT Регистры каналов DMA Инициализация канала DMA Контроллер прямого доступа IBM AT Регистры каналов DMA **Устройство чтения CD-ROM**Драйвер устройства чтения CD-ROM Расширение MSCDEX Функции MSCDEX Определение количества устройств CD-ROM Получение списка устройств CD-ROM Получение имени файла прав собственности Получение имени файла резюме Получение имени файла библиографической документации Чтение сектора оглавления компакт-диска Чтение сектора по абсолютному адресу Проверка устройства чтения CD-ROM Определение версии MSCDEX Определение обозначения устройств чтения CD-ROM Вызов драйвера CD-ROM Работа через драйвер CD-ROM Заголовок запроса Команды драйвера CD-ROM Инициализация Чтение IOCTL Input Сброс входных буферов Запись IOCTL Output Открывание устройства Закрывание устройства Чтение длинное Чтение длинное с предварительной выборкой Поиск Проигрывание звуковой дорожки Остановка проигрывания звуковой дорожки Возобновление проигрывания звуковой дорожки Программа CDINFO Программа CDPLAY **Арифметический сопроцессор.**Вещественные числа Целые числа Регистры сопроцессора Численные регистры Регистр тегов Регистр управления Регистр состояния Регистры указателя команды и указателя операнда Система команд сопроцессора Команды пересылки данных Арифметические команды Команды сравнений чисел Трансцендентные команды Управляющие команды Программирование сопроцессора Программа NPU1 Обработка особых случаев Неточный результат Переполнение Антипереполнение Деление на нуль Недействительная операция Денормализованный операнд Ошибка в процессоре Pentium **Расширенная память.**Основные понятия Установка драйвера HIMEM.SYS Спецификация XMS Проверка подключения драйвера Получение адреса управляющей программы Описание функций драйвера HIMEM.SYS Коды ошибок Ограничения при использовании области HMA Примеры программ Программа TESTHMA Программа CALLHMA Предметный указатель. Литература. Библиотека системного программиста, 33-й том, 1997 В книге приведено описание методик программирования аппаратуры персональных компьютеров, выполненных с применением процессоров Intel, на уровне портов, прерываний DOS и BIOS, а также на уровне функций драйверов. Подробно описана процедура определения конфигурации компьютера, в том числе типа процессора, рассказано о способах работы с клавиатурой, мышью, часами реального времени, системным таймером, асинхронным портом последовательной передачи данных, параллельным портом, контроллером прерываний и контроллером прямого доступа к памяти. Описаны функции, предназначенные для работы с расширенной памятью, а также команды арифметического сопроцессора. Отдельная глава посвящена работе с драйвером устройства CD-ROM. Оглавление: Аннотация Введение Благодарности. Авторский компакт - диск Как связаться с автором Определения конфигурации компьютера. Определение конфигурации с помощью BIOS Наличие НМД Наличие арифметического сопроцессора Начальный режим работы видеоадаптера Количество установленных НГМД Наличие контроллера прямого доступа DMA Количество асинхронных последовательных адаптеров Игровой адаптер Последовательный порт компьютера PCjr Количество параллельных адаптеров Размер оперативной памяти Программа HDWCFG Код модели компьютера и версия BIOS Программа BIOSINFO Конфигурация в памяти CMOS 00h - 0Dh - область часов реального времени 0Eh - байт диагностики 0Fh - байт отключения 10h - тип накопителей НГМД 11h - зарезервировано для IBM PC/AT, тип НМД для IBM PS/2 12h - тип первого и второго НМД 13h - зарезервировано 14h - конфигурация оборудования 15h-16h - объем стандартной оперативной памяти 17h-18h - объем расширенной памяти 19h-1Ah тип первого и второго НМД 1Bh-2Dh - зарезервировано 2Eh-2Fh - контрольная сумма ячеек 10h - 20h 30h-31h - объем расширенной памяти 32h текущее столетие 33h - различная информация 34h-3Fh - зарезервировано Другие ячейки памяти CMOS Программа CMOSSHOW Определение типа центрального процессора Модели Intel 8086/8088 Модель Intel 80286 Модель Intel 80386 Модель Intel 80486 Команда CPUID Программа CPUINFO Клавиатура. Как работает клавиатура Клавиатурная матрица Скан-код клавиши Код ASCII нажатой клавиши Режим автоповтора Типы клавиатур Порты для работы с клавиатурой Компьютер IBM PC/XT Современные компьютеры Программа KBDLED Аппаратное прерывание клавиатуры Стандартный обработчик прерывания INT 09h Буфер клавиатуры Переключающие клавиши Средства BIOS для работы с клавиатурой Чтение символа с ожиданием Программа KBDSCAN Проверка буфера на наличие в нем символов Программа CHKBUF Получение состояния переключающих клавиш Установка временных характеристик клавиатуры Запись символов в буфер клавиатуры Чтение символа с ожиданием для 101-клавишной клавиатуры Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры Получение состояния переключающих клавиш для 101-клавишной клавиатуры Режимы работы клавиатуры Сравнение режимов Изменение режима Средства MS-DOS для работы с клавиатурой Буферизованный ввод с эхо-выводом Буферизованный ввод без эхо-вывода Нефильтрованный ввод без эхо-вывода Ввод с консоли и вывод на консоль Ввод строки символов Проверка состояния стандартного ввода Сброс буфера клавиатуры Клавиатурные функции стандартной библиотеки C Функции getch и getche Программа KBDASCII Функция kbhit Программа KBDHIT Функция cgets Функция gets Функция scanf Мышь Как устроена мышь? Драйверы мыши в MS-DOS Прерывание для обслуживания мыши Инициализация мыши Включить курсор мыши Выключить курсор мыши Программа MSCURSOR Определить положение курсора Программа MSGCURS Установить курсор Определить положение курсора при нажатии клавиши Определить положение курсора при отпускании клавиши Задать диапазон движения курсора по горизонтали Задать диапазон движения курсора по вертикали Задать форму курсора в графическом режиме Программа MSGFORM Задать форму курсора в текстовом режиме Программа MSTFORM Определить содержимое счетчиков перемещения Установить драйвер событий Программа MSDRIVER Включить эмуляцию светового пера Выключить эмуляцию светового пера Задать скорость перемещения курсора мыши Установить область исключения для курсора Задать увеличенный графический курсор Определить порог удвоения скорости Заменить драйвер событий Определить размер буфера состояния драйвера Сохранить состояние драйвера Восстановить состояние драйвера Установить альтернативный драйвер событий Получить адрес альтернативного драйвера событий Установить чувствительность мыши Определить чувствительность мыши Установить частоту прерываний для Inport Mouse Установить номер страницы видеопамяти Определить номер страницы видеопамяти Отключить драйвер мыши Восстановить драйвер мыши Сбросить драйвер мыши Определить тип мыши Мышь Microsoft IntelliMouse Проверка наличия мыши Microsoft IntelliMouse Определение величины свертки Сообщение MSH_MOUSEWHEEL Сообщение WM_MOUSEWHEEL Другие сообщения от мыши Microsoft IntelliMouse Приложение RTFPAD Часы реального времени. Регистры часов реального времени Регистры счетчиков Регистр состояния A Регистр состояния B Регистр состояния C Регистр состояния D Прерывание от часов реального времени Функции прерывания INT 1Ah Прочитать показания часов реального времени Установить часы реального времени Прочитать дату из часов реального времени Установить дату в часах реального времени Установить будильник Сброс будильника Программа RTCALARM Системный таймер. Обработка прерываний таймера Микросхемы таймера 8253 и 8254 Режимы работы таймера Каналы таймера Программирование таймера на уровне портов Формат управляющего регистра Формат команды чтения слова состояния канала Формат слова состояния канала Последовательность действий Программа TIMERST Средства BIOS для работы с таймером Чтение счетчика таймера Установка счетчика таймера Установка таймера с сигнализацией Формирование задержки Средства MS-DOS для работы с таймером Определение текущей даты Установка даты Определение текущего времени Установка времени Функции стандартной библиотеки С Таймер и музыка Настройка таймера для проигрывания музыки Второй способ проигрывания музыки Проигрывание музыки в фоновом режиме Программа TMSOUND Программа IOSOUND Программа RANDOM Асинхронный последовательный адаптер. Основные понятия и термины Аппаратная реализация Микросхема UART Разъемы адаптера Порты асинхронного адаптера Порт 3F8h Порт 3F9h Порт 3FAh Порт 3FBh Порт 3FCh Порт 3FDh Порт 3FEh Функции BIOS для работы с последовательным асинхронным адаптером Инициализация портов асинхронного адаптера Передача байта Прием байта Определение состояния асинхронного адаптера Программирование асинхронного адаптера Инициализация асинхронного адаптера Передача данных Прием данных Программа COMTEST Использование прерываний Параллельный адаптер. Порты параллельного адаптера Разъем параллельного адаптера Вывод байта на принтер через параллельный адаптер Функции BIOS для работы с принтером Печать символа Инициализация принтера Определение состояния принтера Программа PRINTFL Функции MS-DOS для работы с принтером Функция MS-DOS для вывода на принтер Система буферизованной печати Программирование принтера Подключение принтера к компьютеру Установка переключателей конфигурации Программирование режимов работы принтера Контроллер прямого доступа к памяти. Контроллер прямого доступа IBM PC/XT Регистры каналов DMA Инициализация канала DMA Контроллер прямого доступа IBM AT Регистры каналов DMA Устройство чтения CD-ROM Драйвер устройства чтения CD-ROM Расширение MSCDEX Функции MSCDEX Определение количества устройств CD-ROM Получение списка устройств CD-ROM Получение имени файла прав собственности Получение имени файла резюме Получение имени файла библиографической документации Чтение сектора оглавления компакт-диска Чтение сектора по абсолютному адресу Проверка устройства чтения CD-ROM Определение версии MSCDEX Определение обозначения устройств чтения CD-ROM Вызов драйвера CD-ROM Работа через драйвер CD-ROM Заголовок запроса Команды драйвера CD-ROM Инициализация Чтение IOCTL Input Сброс входных буферов Запись IOCTL Output Открывание устройства Закрывание устройства Чтение длинное Чтение длинное с предварительной выборкой Поиск Проигрывание звуковой дорожки Остановка проигрывания звуковой дорожки Возобновление проигрывания звуковой дорожки Программа CDINFO Программа CDPLAY Арифметический сопроцессор. Вещественные числа Целые числа Регистры сопроцессора Численные регистры Регистр тегов Регистр управления Регистр состояния Регистры указателя команды и указателя операнда Система команд сопроцессора Команды пересылки данных Арифметические команды Команды сравнений чисел Трансцендентные команды Управляющие команды Программирование сопроцессора Программа NPU1 Обработка особых случаев Неточный результат Переполнение Антипереполнение Деление на нуль Недействительная операция Денормализованный операнд Ошибка в процессоре Pentium Расширенная память. Основные понятия Установка драйвера HIMEM.SYS Спецификация XMS Проверка подключения драйвера Получение адреса управляющей программы Описание функций драйвера HIMEM.SYS Коды ошибок Ограничения при использовании области HMA Примеры программ Программа TESTHMA Программа CALLHMA Предметный указатель. Литература.
دانلود کتاب Аппаратное обеспечение персонального компьютера. Часть 1