КУРСОВАЯ ЭВМ

Общение с преподавателями по читаемым дисциплинам.

КУРСОВАЯ ЭВМ

Сообщение Alexandr Amelin дек 24, 2008 12:11

Трубокову А.О.: как заставить пищать динамик в системнеке, без всяких наворотор, просто пик
Alexandr Amelin
 
Сообщения: 8
Зарегистрирован:
дек 21, 2008 12:35

Re: КУРСОВАЯ ЭВМ

Сообщение A.O.Trubakov дек 25, 2008 10:04

to Alexandr Amelin:
Заставить пищать динамик в системнике (так чтоб без наворотов и не сложно) можно с помощью нехитрого метода. Берете и выдергиваете из системника память (ОЗУ) и тогда при загрузке он как раз и издаст БИИИП.
:D
A.O.Trubakov
 
Сообщения: 317
Зарегистрирован:
ноя 04, 2008 12:36

Re: КУРСОВАЯ ЭВМ

Сообщение A.O.Trubakov дек 25, 2008 10:10

Ну а если серьезно, то вот код
Код: Выделить всё
; ========================================
; StartSound: включить звук с частотой AX
; Параметры:
;     BX = частота звука (Гц). Передавать
;         нужно от 22 до 22000
; ========================================
StartSound PROC
   ; Переводим частоту в тональность
   mov AX,34DDh       ; DX:AX = 1193181
   mov DX,0012h
   div BX             ; AX = (DX:AX)/СX = 1193181/частота
   mov BX,AX          ; Сохраняем тональность в BX
   ; Устанавливаем настройки
   in  AL,61h         ; Получаем порт управления PB
  or  AL,00000011b   ; Устанавливаем биты 0-1
  out 61h,AL         ; Записываем обратно в порт управления PB
   mov AL,0B6h        ; Упр.сл.таймера
   out 43h,AL         ; Выводим в регистр режима
   ; Задаем тональность
   mov AX,BX          ; Записываем младший байт счетчика
   out 42h,AL
   mov AL,AH          ; Записываем старший байт счетчика
   out 42h,AL
   ; Выходим из процедуры
   ret
StartSound ENDP

; ========================================
; StopSound - вsключить звук
; ========================================
StopSound PROC
   in  AL,61h         ; Получаем порт управления PB
   and AL,11111100b   ; Сбрасываем биты 0-1
   out 61h,AL         ; Записываем обратно в порт управления PB
   ret                ; Выходим из процедуры
StopSound ENDP


Две функции - начать пищать и закончить.
Т.е. вызываете первую, делаете паузу, вызываете вторую. Вот и получиться БИП.

P.S.:
В первую функцию в регистре BX передается частота, которая затем по формуле переводиться в тональность. Если нужен просто однотипный звук, то можно ее еще упростить, сразу подобрав тональность и не передавая в функцию ничего
A.O.Trubakov
 
Сообщения: 317
Зарегистрирован:
ноя 04, 2008 12:36

Re: КУРСОВАЯ ЭВМ

Сообщение Alexandr Amelin дек 26, 2008 09:34

Спасиб Андрей Олегович, вытащил ОЗУ и правда так пищать стал))))))
Alexandr Amelin
 
Сообщения: 8
Зарегистрирован:
дек 21, 2008 12:35


Вернуться в Консультации по дисциплинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 20

 
cron