- •Цели и задачи практики
- •Введение Аппаратные прерывания
- •Программные прерывания
- •Работа с прерываниями на языке Ассемблера и яву (с, Pascal)
- •Обмен данными через порты
- •Тема 1. Работа с видео-системой Теоретические вопросы:
- •Примерные варианты заданий
- •Тема 2. Программирование клавиатуры Теоретические вопросы:
- •Примерные варианты заданий
- •Тема 3. Работа с дисковыми накопителями Теоретические вопросы:
- •Примерные варианты заданий
- •Написать функцию, возвращающую объем доступного дискового пространства.
- •Тема 4. Работа с манипулятором «мышь» Программа работы:
- •Краткие пояснения к изучаемому материалу
- •Определение наличия драйвера и мыши в пк
- •Тема 5. Работа с таймером. Генерация звука. Теоретические вопросы:
- •Примерные варианты заданий
- •Список литературы
- •Приложение 1. Форма отчета
- •Приложение 2 вопросы к защите отчета по практике Вопросы к теме 1
- •Вопросы к теме 2
- •Вопросы к теме 3
Тема 2. Программирование клавиатуры Теоретические вопросы:
1. Ознакомиться с основами работы клавиатуры:
принципами работы контроллера клавиатуры (микросхема 8042);
формированием ASCII- и скэн-кодов;
аппаратным прерыванием номер 9 (IRQ 1);
портами МП, используемыми для работы с клавиатурой;
функционированием буфера клавиатуры;
клавишами регистров (Shift, Ctrl, Alt), переключателей (Caps Look, Num Lock), функциональными (F1,…F12), управления курсора (, Home, PgDn, …);
реакцией на комбинации Ctrl-Alt-Del, Ctrl-Break, Ctrl-Num Lock, Shift-PrtScr;
прямым вводом кодов ASCII (Alt+цифра_доп);
автоматическим повторением действия клавиш (длительным нажатием);
байтами состояния клавиатуры (ячейки 417h, 418h).
Изучить функции BIOS и DOS работы с клавиатурой, функции ЯВУ (С, С++ или Pascal), осуществляющие доступ к буферу клавиатуры.
3. Написать программы, демонстрирующие знание вопросов темы.
Примерные варианты заданий
1. Написать собственное прерывание от клавиатуры.
2. Написать программу, анализирующую состояние первого байта состояния клавиатуры.
3. Написать программу, анализирующую состояние второго байта состояния клавиатуры.
4. Написать программу, анализирующую состояние двух байтов состояния клавиатуры.
5. Написать функцию, возвращающую количество символов в буфере клавиатуры
6. Написать программу, изменяющую состояние управляющих клавиш:
вкл откл откл
NumLock CapsLock ScrollLock
7. См. задачу 6.
CapsLock ScrollLock NumLock
8. См. задачу 6.
ScrollLock NumLock CapsLock
9. См. задачу 6.
ScrollLock NumLock CapsLock
10. См. задачу 6.
NumLock CapsLock ScrollLock
11. См. задачу 6.
NumLock CapsLock ScrollLock
12. Перепрограммировать одну клавишу с использованием ESC-последовательностей
Тема 3. Работа с дисковыми накопителями Теоретические вопросы:
Ознакомиться с принципами физической и логической организации дискового пространства
Изучить структуру корневого каталога
Изучить структуру 12-ти и 16-разрядной FAT
Ознакомиться с атрибутами файлов и способами их установления/изменения.
Изучить возможности MS DOS по созданию, удалению, чтению, записи файлов и каталогов (метод дескрипторов).
Разобраться с механизмом буферизации.
Ознакомиться с возможностями перенаправления ввода/вывода.
Написать программы, демонстрирующие знание вопросов темы.
Примерные варианты заданий
Примечание. Все задания относятся к НГМД и ГД
Написать функцию, возвращающую объем доступного дискового пространства.
Написать собственную функцию, определяющую размер файла.
Написать программу, читающую содержимое FAT и определяющую значение кластера с заданным номером.
Написать программу, читающую содержимое FAT и определяющую количество занятых кластеров.
Написать программу, читающую содержимое FAT и определяющую количество свободных кластеров.
Написать программу, читающую содержимое FAT и определяющую количество сбойных кластеров.
Написать программу, выводящую на экран содержимое корневого каталога диска, используя средства BIOS.
Написать программу, выводящую на экран содержимое подкаталога диска, используя средства BIOS.
Написать процедуру, изменяющую заданный атрибут файла, используя средства BIOS.
Написать процедуру, читающую метку тома и заменяющую последний символ метки заданным символом.
Написать программу, демонстрирующую работу с файлами на уровне DOS.
Написать программу, демонстрирующую работу с каталогами на уровне DOS.