Аппаратное обеспечение персонального компьютера

       

Аппаратное обеспечение персонального компьютера

Аннотация
Введение

Благодарности
Авторский компакт-диск
Как связаться с авторами
Определение конфигурации компьютера
Определение конфигурации с помощью BIOS
Наличие НМД
Наличие арифметического сопроцессора
Начальный режим работы видеоадаптера
Количество установленных НГМД

Наличие контроллера прямого доступа DMA
Количество асинхронных последовательных адаптеров
Игровой адаптер
Последовательный порт компьютера PCjr
Количество параллельных адаптеров
Размер оперативной памяти
Стандартная оперативная память
Расширенная оперативная память
Программа HDWCFG

Код модели компьютера и версия BIOS
Программа BIOSINFO
Конфигурация в памяти CMOS
- 0Dh - область часов реального времени
H - байт диагностики
H - байт отключения
- Тип накопителей НГМД
- Зарезервировано для IBM PC/AT, тип НМД для IBM PS/2

- Тип первого и второго НМД
- Конфигурация оборудования
-16H - объем стандартной оперативной памяти
-18H - объем расширенной памяти
-1Ah тип первого и второго НМД
H-2Fh - контрольная сумма ячеек 10h - 20h
-31H - объем расширенной памяти
Текущее столетие
- Различная информация
-3Fh - зарезервировано

Другие ячейки памяти CMOS
Программа CMOSSHOW
Определение типа центрального процессора
Модели Intel 8086/8088
Модель Intel 80286 
Модель Intel 80386
Модель Intel 80486
Команда CPUID

Программа CPUINFO
/Span>Клавиатура
Как работает клавиатура
Клавиатурная матрица
Скан-код клавиши
Код ASCII нажатой клавиши
Режим автоповтора
Типы клавиатур

Порты для работы с клавиатурой
Компьютер IBM PC/XT
Современные компьютеры
Программа KBDLED
Аппаратное прерывание клавиатуры
Стандартный обработчик прерывания INT 09h
Буфер клавиатуры
Переключающие клавиши
Средства BIOS для работы с клавиатурой

Чтение символа с ожиданием
Программа KBDSCAN
Проверка буфера на наличие в нем символов
Программа CHKBUF
Получение состояния переключающих клавиш
Установка временных характеристик клавиатуры
Запись символов в буфер клавиатуры
Чтение символа с ожиданием для 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
Проверка в среде Microsoft Windows 95 и Microsoft Windows NT версии 3.51
Проверка в среде Microsoft Windows NT версии 4.0
Определение величины свертки

Определение величины свертки в среде Microsoft Windows 95 и Microsoft Windows NT версии 3.51
Сообщение MSH_MOUSEWHEEL
Сообщение WM_MOUSEWHEEL
Другие сообщения от мыши Microsoft IntelliMouse
Приложение RTFPAD

Аппаратное обеспечение персонального компьютера

Часы реального времени
Регистры часов реального времени
Регистры счетчиков
Регистр состояния A
Регистр состояния B
Регистр состояния C
Регистр состояния D
Прерывание от часов реального времени
Функции прерывания INT 1Ah
Прочитать показания часов реального времени

Установить часы реального времени
Прочитать дату из часов реального времени
Установить дату в часах реального времени
Установить будильник
Сброс будильника
Программа RTCALARM
Системный таймер

Обработка прерываний таймера
Микросхемы таймера 8253 и 8254
Режимы работы таймера
Режим однократного выполнения функций
Работа с перезапуском
Режим автозагрузки
Каналы таймера
Канал 0
Канал 1
Канал 2

Программирование таймера на уровне портов
Формат управляющего регистра
Формат команды чтения слова состояния канала
Формат слова состояния канала
Последовательность действий
Программа TIMERST
Средства BIOS для работы с таймером
Чтение счетчика таймера
Установка счетчика таймера
Установка таймера с сигнализацией

Формирование задержки
Средства MS-DOS для работы с таймером
Определение текущей даты
Установка даты
Определение текущего времени
Установка времени
Функции стандратной библиотеки С
Таймер и музыка
Настройка таймера для проигрывания музыки
Второй способ проигрывания музыки

Проигрывание музыки в фоновом режиме
Программа TMSOUND
Программа IOSOUND
Программа RANDOM
/Span>Асинхронный последовательный адаптер
Основные понятия и термины
Аппаратная реализация
Микросхема UART

Разъемы адаптера
Порты асинхронного адаптера
Порт 3F8h
Порт 3F9h
Порт 3FAh
Порт 3FBh
Порт 3FCh
Порт 3FDh
Порт 3FEh
Функции BIOS для работы с последовательным асинхронным адаптером

Инииализация портов асинхронного адаптера
Передача байта
Прием байта
Определение состояния асинхронного адаптера
Программирование асинхронного адаптера
Инициализация асинхронного адаптера
Передача данных
Прием данных
Программа COMTEST

Использование прерываний
/Span>параллельный адаптер
Порты параллельного адаптера
Порт 378h
Порт 37Ah
Порт 379h
Разъем параллельного адаптера
Вывод байта на принтер через параллельный адаптер

Функции BIOS для работы с принтером
Печать символа
Инициализация принтера
Определение состояния принтера
Программа PRINTFL
Функции MS-DOS для работы с принтером
Функция MS-DOS для вывода на принтер
Система буферизованной печати
Проверка установки системы буферизованной печати

Запуск процесса печати файла
Отмена печати файла
Отмена печати всех файлов
Определение состояния и блокировка системы буферизованной печати
Разблокирование системы буферизованной печати
Коды ошибок
Программирование принтера
Подключение принтера к компьютеру
Установка переключателей конфигурации
Программирование режимов работы принтера

Генерация звукового сигнала
Возврат каретки
Перевод строки
Перевод страницы
Другие команды
Контроллер прямого доступа к памяти
Контроллер прямого доступа IBMPC/XT
Регистры каналов DMA
Порты 00h - 07h

Порт 08h
Порт 09h
Порт 0Ah
Порт 0Bh
Порт 0Ch
Порт 0Dh
Порт 0Eh
Порт 0Fh
Порты 81h-8Fh
Инициализация канала DMA

Контроллер прямого доступа IBM AT
Регистры страниц
Порты 0C0h - 0DFh
Порты 0D0h-0DFh
Устройство чтения CD-ROM
Драйвер устройства чтения CD-ROM
Расширение MSCDEX
Функции MSCDEX
Определение количества устройств CD-ROM

Получение списка устройств CD-ROM
Получение имени файла прав собственности
Получение имени файла резюме
Получение имени файла библиографической документации
Чтение сектора оглавления компакт-диска
Чтение сектора по абсолютному адресу
Проверка устройства чтения CD-ROM
Определение версии MSCDEX
Определение обозначения устройств чтения CD-ROM
Вызов драйвера CD-ROM

Работа через драйвер CD-ROM
Заголовок запроса
Команды драйвера CD-ROM
Инициализация
Чтение IOCTL Input
Определение адреса заголовка драйвера CD-ROM
Определение положения головки
Получение информации о звуковых каналах

Аппаратное обеспечение персонального компьютера

Чтение данных из устройства
Определение состояния устройства
 Определение размера сектора

Определение размера тома
Проверка замены носителя данных
Получение информации о компакт-диске
Получение информации о дорожке компакт-диска
Получение информации о канале Q
Получение информации о подканале
Получение штрих-кода изготовителя компакт-диска
Сброс входных буферов
Запись IOCTL Output
Извлечение компакт-диска

Блокирование и разблокирование компакт-диска в устройстве
Сброс устройства чтения CD-ROM
Управление звуковыми каналами
Запись в устройство управляющей строки
Закрывание приемного устройства для компакт-диска
Открывание устройства
Закрывание устройства
Чтение длинное
Чтение длинное с предварительной выборкой
Поиск

Проигрывание звуковой дорожки
Остановка проигрывания звуковой дорожки
Возобновление проигрывания звуковой дорожки
Программа CDINFO

Программа CDPLAY
Арифметический сопроцессор
Вещественные числа
Целые числа

Регистры сопроцессора
Численные регистры
Регистр тегов
Регистр управления
Регистр состояния
Регистры указателя команды и указателя операнда
Система команд сопроцессора

Команды пересылки данных
Запись в стек
Извлечение из стека
Копирование данных
Обмен
Загрузка констант
Арифметические команды
Команды сравнений чисел

Трансцендентные команды
Управляющие команды
Программирование сопроцессора
Программа NPU1
Обработка особых случаев
Неточный результат

Переполнение
Антипереполнение
Деление на нуль
Недействительная операция
Денормализованный операнд
Ошибка в процессоре Pentium
/Span>расширенная память
Основные понятия
Установка драйвера HIMEM.SYS
Спецификация XMS

Проверка подключения драйвера
Получение адреса управляющей программы
Описание функций драйвера HIMEM.SYS
Получить версию XMS
Запросить область HMA
Освободить область HMA
Глобальное открывание линии A20
Глобальное закрывание линии A20
Локальное открывание линии A20
Локальное закрывание линии A20

Определение состояния линии A20
Определение размера свободной расширенной памяти
Получить блок EMB
Освободить блок EMB
Копирование блоков EMB
Блокирование EMB
Разблокирование EMB
Получить информацию об идентификаторе блока EMB
Изменить размер EMB
Запросить область UMB

Освободить область UMB
Ограничения при использовании области HMA
Примеры программ
Программа TESTHMA
Программа CALLHMA
 INDEX \c "2"

Литература
Оглавление

далее
далее
Содержание раздела