- •Лабораторная работа № 1.
- •Функция 0ен
- •Функция 1ан
- •Функция 2fh
- •Функция 36н Определяет параметры диска
- •Функция 39н
- •Функция 3ан Удаляет каталог с диска
- •Функция 3вн Меняет текущий каталог на заданный
- •Функция 3сн Создаёт хендл (новый файл) на диске
- •Функция 3dн Открывает хендл (открывает файл) на диске
- •Функция 3ен
- •Функция 3fh
- •Функция 40н
- •Функция 41н
- •Функция 42н
- •Функция 43h
- •Функция 47н
- •Функция 4ен
- •Функция 4fh
- •Функция 56н
- •Функция 57н
- •Функция 5ан
- •Прерывание 25н
- •Прерывание 26н
- •Пример выполнения работы Создать новую директорию new_dir на диске а:, сделать ее текущей, записать туда файл newfile.Txt и в него записать сообщение - "Это вновь созданный файл".
- •Порядок выполнения работы
- •Вопросы по теме работы
- •Лабораторная работа № 2
- •Функция 00н
- •Функция 01н
- •Функция 02н
- •Функция 03н
- •Функция 04н
- •Флаг переноса установлен
- •Функция 05н
- •Пример выполнения работы
- •Порядок выполнения работы
- •Варианты заданий. Не использовать функции dos !!!.
- •Вопросы по теме работы.
- •Приложение а. Функция disk_status
- •Приложение в. Параметры 360к дискеты.
- •Лабораторная работа № 3
- •Основные сведения
- •Функция Назначение
- •Функция 00н
- •Функция 01h
- •Функция 02h
- •Функция 03h
- •Пример выполнение работы
- •Контрольные вопросы
- •Лабораторная работа № 4
- •Основные сведения
- •Функция 00h
- •Функция 01h
- •Функция 02h
- •Система команд матричного принтера
- •Система команд принтера фирмы Epson.
- •Команды форматирования текста
- •Команды печати графических изображений.
- •Пример выполнения работы.
- •Порядок выполнения работы
- •Варианты заданий.
- •Контрольные вопросы
- •Лабораторная работа № 5 Таймер и генерация звука.
- •Форматы управляющих команд таймера.
- •Использование каналов в ibm pc.
- •Генерация звука.
- •Частоты нот для второй октавы
- •Варианты заданий.
- •Вопросы по теме работы.
- •Лабораторная работа № 6 Работа с драйвером мыши.
- •Обращение к драйверу мыши из ассемблера
- •Функции драйвера мыши.
- •Функция 00h
- •Показать курсор
- •Функция 06н
- •Функция 07h
- •Функция 08h
- •Функция 09h
- •Функция 0Ah
- •Функция 0Bh
- •Функция 0Сh
- •Функция 0Dh
- •Функция 0Eh
- •Функция 0Fh
- •Функция 10h
- •Функция 13h
- •Функция 15h
- •Функция 16h
- •Функция 17h
- •Функция 18h
- •Программирование с использованием драйвера мыши.
- •Пример выполнения работы.
Генерация звука.
Для генерации звука необходимо использовать порты микросхемы программируемого переферийного интерфейса (ППИ) 8255. ППИ имеет несколько портов, через которые внешние устройства могут подключаться к ЦП. Через ППИ компьютер принимает скан-коды от клавиатуры, считывает состояние DIP-переключателей на системной плате, управляет рядом переферийных устройств, включая микросхему таймера 8253. IBM PC/AT не использует микросхему 8255. Вместо нее установлен клавиатурный процессор 8042, однако, IBM PC/AT использует те же адреса портов, что и 8255 для работы с клавиатурой и управления таймером. Управление динамиком осуществляется с помощью двух бит порта 61h ППИ. Бит 0 этого порта подключен ко входу GATE2. Занесение 1 в этот бит разрешает счет канала 2 таймера. Бит 1 разрешает или запрещает прохождение импульса на динамик.
На вход динамика поступает логическое «И» двух сигналов: выхода OUT2 таймера и содержимого бита 1 порта 61h. Необходимо отметить, что при запрещении счета канала 2, когда GATE2=0, на выходе OUT2 устанавливается 1. При совпадении двух сигналов на динамик подается прямоугольный импульс, который слышится как щелчок. Так как динамик управляется двумя сигналами, то и генерация звука может быть произведена двояко:
- запретить работу канала 2 (бит 0 сброшен, OUT2=1), переключать бит 1, каждое переключение вызывает щелчок; скорость переключения бита 1 определяет частоту звучания;
- разрешить работу канала 2 (бит 0 установлен), включить динамик (бит 1 установлен), скорость переключения и OUT2 определяет частоту звучания.
Учитывая, что остальные биты порта 61h используются для работы с другими устройствами и не должны изменяться, установку битов 0 и 1 следует проводить командами OR и AND. Для программирования канала 2 таймера так, чтобы он выдавал импульсы с частотой, лежащей в звуковом диапазоне (20-20 000 Гц), следует использовать режим таймера 3 и установить (CR) == 1193180/f, где f - требуемая частота звука.
Пример:
; подпрограмма генерации звука
; Вход: (АХ)= частота звука в Гц
Sound proc near
mov bx,ax ;частота
mov ax, free
mov dx,frec+2 ;(dx:ax)=l 193180
div bx ;ax=(dx:ax)/bx
mov bx,a ;сохранить счетчик таймера
in al,61h ;разрешить счет канала 2
or al,3 ;и разрешить работу динамика
out 61h,a1
mov al,10110110b ;управляющее слово таймера: канал 2,
; режим 3, двоичное слово
out 43h,al ;вывод в регистр режима
mov а1,bl
out 42h,al ;младший байт счетчика
mov al,bh
out 42h,al ;старший байт счетчика
ret
freq dd 1193180
Sound endp
;Подпрограмма выключения звука
;
No_Sound proc near
push ax
in al,61h ;порт PB
and al,0fdh ;сброс битов 0,1
out 61h,al
pop ax ret
No_Sound endp
*Приложение.