
- •Введение
- •Лабораторная работа № 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.
- •Аналогичным образом могут использоваться свойства и других классов.
Описание команд Проверка готовности накопителя (класс 0, опкод 0).
Команда выбирает заданный накопитель и проверяет его готовность.
┌───┬───┬───┬───┬───┬───┬───┬───┐
0 │ 0 0 0 0 0 0 0 0 │
├───────────────────────────────┤
1 │ 0 0 У Х Х Х Х Х │
└───┴───┴───┴───┴───┴───┴───┴───┘
Рекалибровать (класс 0, опкод 1).
Команда устанавливает головки чтения/записи на выбранном накопителе на нулевой цилиндр.
┌───┬───┬───┬───┬───┬───┬───┬───┐
0 │ 0 0 0 0 0 0 0 1 │
├───────────────────────────────┤
1 │ 0 0 У Х Х Х Х Х │
├───────────────────────────────┤
2 │ Х Х Х Х Х Х Х Х │
├───────────────────────────────┤
3 │ Х Х Х Х Х Х Х Х │
├───────────────────────────────┤
4 │ Х Х Х Х Х Х Х Х │
├───────────────────────────────┤
5 │ П 0 0 0 0 Ш Ш Ш │
└───┴───┴───┴───┴───┴───┴───┴───┘
Запрос состояния (класс 0, опкод 3).
Команда подается непосредственно после обнаружения ошибки (бит 1 порта 321h). Команда имеет длину 2 байта и вызывает передачу контроллером четырех байтов результата, определяющих параметры возникшей ошибки.
Формат команды:
┌───┬───┬───┬───┬───┬───┬───┬───┐
0 │ 0 0 0 0 0 0 1 1 │
├───────────────────────────────┤
1 │ 0 0 У Х Х Х Х Х │
└───┴───┴───┴───┴───┴───┴───┴───┘
Формат результата:
┌───┬───┬───┬───┬───┬───┬───┬───┐
0 │ байт состояния │
├───────────────────────────────┤
1 │ 0 0 У <------ НГ ------>│
├───────────────────────────────┤
2 │ ЦСБ <-------- НС -------->│
├───────────────────────────────┤
3 │<------------ ЦМБ ------------>│
└───┴───┴───┴───┴───┴───┴───┴───┘
Формат байта состояния:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ 0 │ │ │ │ │ │ │ Биты:
└─┬─┴───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘
│ │ │ │ │ │ │
│ │ │ └───┴───┴───┴──> 0-3: код ошибки
│ │ │
│ └───┴──────────────────> 4-5: тип ошибки
│
└──────────────────────────────> 7: 1=при выполнении команды
произошло обращение
к накопителю
Бит 7 байта состояния равен 1, если при выполнении команды произошло обращение к накопителю, в этом случае байты 1 - 3 результата содержат корректную информацию, иначе эта информация некорректна.
Описание возможных ошибок приведено в таблице.
┌──────┬──────┬────────────────────────────────────────────────┐
│ Тип │ Код │ │
│ошибки│ошибки│ Значение │
├──────┼──────┼────────────────────────────────────────────────┤
│ 00 │ 0000 │ Нет ошибки (нормальное завершение команды) │
│ 00 │ 0001 │ Нет сигнала по линии "индекс" │
│ 00 │ 0010 │ Нет сигнала по линии "поиск закончен" │
│ 00 │ 0011 │ Сигнал "ошибка записи" │
│ 00 │ 0100 │ Накопитель не отвечает сигналом готовности │
│ │ │ после разблокировки │
│ 00 │ 0101 │ Не используется │
│ 00 │ 0110 │ Нет сигнала "дорожка 0" │
│ 00 │ 0111 │ Не используется │
│ 00 │ 1000 │ При выполнении команды "проверка готовности │
│ │ │ накопителя" накопитель находится в состоянии │
│ │ │ поиска │
├──────┼──────┼────────────────────────────────────────────────┤
│ 01 │ 0000 │ Ошибка при считывании поля идентификации │
│ 01 │ 0001 │ Неисправимая ошибка чтения │
│ 01 │ 0010 │ Адресный маркер не обнаружен │
│ 01 │ 0011 │ Не используется │
│ 01 │ 0100 │ Сектор не найден │
│ 01 │ 0101 │ Ошибка поиска │
│ 01 │ 0110 │ Не используется │
│ 01 │ 0111 │ Не описан │
│ 01 │ 1000 │ Неисправимая ошибка │
│ 01 │ 1001 │ Обнаружен флаг "дефектная дорожка" │
├──────┼──────┼────────────────────────────────────────────────┤
│ 10 │ 0000 │ Неверная команда │
│ 10 │ 0001 │ Неверный логический адрес накопителя │
├──────┼──────┼────────────────────────────────────────────────┤
│ 11 │ 0000 │ Неуспешно окончена команда "диагностика │
│ │ │ внутреннего ОЗУ контроллера" │
│ 11 │ 0001 │ Неуспешно окончена диагностика ППЗУ │
│ │ │ контроллера │
│ 11 │ 0010 │ Неуспешно окончен тест генератора кодов │
│ │ │ коррекции ошибок (ECC) │
└──────┴──────┴────────────────────────────────────────────────┘