- •Введение
- •Лабораторная работа № 1. Создание программы определения характеристик центрального процессора.
- •Определение параметров процессора на аппаратном уровне.
- •Лабораторная работа № 2.
- •Конфигурация персонального компьютера
- •Cmos-память и конфигурация компьютера
- •32H Текущее столетие
- •Использование bios для определения конфигурации
- •Лабораторная работа 3. Тестирование оптических накопителей.
- •Использование I/o Control Codes.
- •Использование Windows Management Instrumentation (wmi).
- •Порты контроллера накопителей на гибких дисках
- •Порт 3f2h.
- •Порт 3f4h.
- •Команды управления накопителями
- •Перечень команд контpоллеpа нгмд
- •Структура байтов состояния
- •Формат дорожки
- •Отличия контроллера для ат-подобных пэвм
- •Порт 3f7h.
- •Лабораторная работа № 5. Диагностика контроллера накопителей на жестких дисках.
- •Контроллер жестких дисков для хт-подобных пэвм
- •Порты ввода-вывода
- •Порт 320h.
- •Порт 321h.
- •Порт 322h.
- •Порт 323h.
- •Общий формат команды и терминология
- •Описание команд Проверка готовности накопителя (класс 0, опкод 0).
- •Рекалибровать (класс 0, опкод 1).
- •Запрос состояния (класс 0, опкод 3).
- •Форматирование накопителя (класс 0, опкод 4).
- •Проверка секторов (класс 0, опкод 5).
- •Форматирование дорожки (класс 0, опкод 6).
- •Форматирование дефектной дорожки (класс 0, опкод 7).
- •Чтение секторов (класс 0, опкод 8).
- •Запись секторов (класс 0, опкод 0Ah).(*)
- •Поиск цилиндра по номеру (класс 0, опкод 0Ch).(*)
- •Чтение внутреннего озу контроллера (класс 0, опкод 0Eh).(*)
- •Запись внутреннего озу контроллера (класс 0, опкод 0Fh).(*)
- •Диагностика внутреннего озу контроллера (класс 7,опкод 0).(*)
- •Тест устройства (класс 7, опкод 3).
- •Расширенный тест контроллера (класс 0, опкод 4).
- •Считывание без контроля (класс 7, опкод 5).
- •Запись без контроля (класс 7, опкод 6).
- •Разметка диска
- •Контроллер жестких дисков для ат-подобных пэвм
- •Описание портов ввода-вывода Порт 1f0h
- •Порт 1f1h.
- •Система команд
- •Лабораторная работа №6. Программное тестирование портов для работы с клавиатурой
- •Аппаратное прерывание клавиатуры
- •Средства bios для работы с клавиатурой
- •Чтение символа с ожиданием
- •Проверка буфера на наличие в нем символов
- •Получение состояния переключающих клавиш
- •Установка временных характеристик клавиатуры
- •Запись символов в буфер клавиатуры
- •Чтение символа с ожиданием для 101-клавишной клавиатуры
- •Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры
- •Получение состояния переключающих клавиш для 101-клавишной клавиатуры
- •Лабораторная работа № 7. Тестирование и контроль оперативной памяти.
- •Алгоритм определения объёма оперативной памяти.
- •Сущность тестирования памяти.
- •Алгоритм диагностирования памяти в тесте Memtest86.
- •Лабораторная работа № 8. Программирование принтера. Цель работы: изучение методов программирования принтера.
- •Средства ms-dos для работы с принтером
- •Программирование режимов принтера
- •Установка атрибутов/цветов символов.
- •Сдвиг экрана и страницы.
- •Вертикальный сдвиг текстового экрана.
- •Сдвиг текстового экрана горизонтально.
- •Переключение между текстовыми страницами.
- •Сдвиг между страницами текста.
- •Использование wmi.
- •Аналогичным образом могут использоваться свойства и других классов.
Структура байтов состояния
Байт состояния ST0:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ Биты:
└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ─────
│ │ │ │ │ │ └───┴─> 0-1: номер накопителя (0 - 3)
│ │ │ │ │ └─────────> 2: номер головки
│ │ │ │ └─────────────> 3: НГМД не готов при обмене
│ │ │ └─────────────────> 4: Сигнал "ошибка" НГМД или
│ │ │ дорожка 0 не найдена после 77
│ │ │ шагов рекалибровки
│ │ └─────────────────────> 5: команда поиска завершена
└───┴─────────────────────────> 6: код прерывания:
00-нормальное завершение команды
01-ненормальное завершение
10-недействительная команда
11-в фазе выполнения измени-
лась готовность дисковода
Бит 2 (номер головки) после выполнения команды поиска всегда равен 0, независимо от того, на какой головке осуществлялся поиск.
Бит 3 будет всегда равен 1, если на дисководе с одной головкой вы попробуете обратиться к стороне 1 (допустима только сторона 0).
Байт состояния ST1:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ 0 │ │ │ 0 │ │ │ │ Бит:
└─┬─┴───┴─┬─┴─┬─┴───┴─┬─┴─┬─┴─┬─┘ ────
│ │ │ │ │ └─> 0: 1=не найден маркер иденти-
│ │ │ │ │ фикатора сектора
│ │ │ │ └─────> 1: 1=дискета защищена от
│ │ │ │ записи
│ │ │ └─────────> 2: 1=искомый сектор не найден
│ │ └─────────────────> 4: 1=таймаут запросов на
│ │ передачу данных
│ └─────────────────────> 5: 1=ошибка CRC в поле иденти-
│ фикации или в поле данных
└─────────────────────────────> 7: 1=конец цилиндра (попытка
обращения к сектору после
обращения к последнему сектору
последнего цилиндра)
Байт состояния ST2:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ 0 │ │ │ │ │ │ │ │ Бит:
└───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ───
│ │ │ │ │ │ └─> 0: 1=не найден маркер данных
│ │ │ │ │ │ или удаленных данных
│ │ │ │ │ └─────> 1: 1=сбойный цилиндр
│ │ │ │ └─────────> 2: 1=сканирование выполнено
│ │ │ │ неудовлетворительно
│ │ │ └─────────────> 3: 1=при сканировании выполне-
│ │ │ но условие "равно"
│ │ └─────────────────> 4: 1=неверный номер цилиндра в
│ │ идентификаторе сектора
│ └─────────────────────> 5: 1=ошибка CRC в поле данных
└─────────────────────────> 6: 1=в идентификаторе сектора
обнаружен адресный маркер
удаленных данных
Байт ST3:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ Бит:
└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ────
│ │ │ │ │ │ └───┴─> 0-1: номер накопителя
│ │ │ │ │ └─────────> 2: номер головки
│ │ │ │ └─────────────> 3: 1=сигнал "двусторонний"
│ │ │ │ от НГМД
│ │ │ └─────────────────> 4: 1=сигнал "Дорожка 0" от
│ │ │ НГМД
│ │ └─────────────────────> 5: 1=сигнал "Готовность" от
│ │ НГМД
│ └─────────────────────────> 6:1=сигнал "Защита от записи"
│ от НГМД
└─────────────────────────────> 7: 1=сигнал "Ошибка" от НГМД
