Страница 1 из 1

КУРСОВАЯ ЭВМ

СообщениеДобавлено: дек 24, 2008 12:11
Alexandr Amelin
Трубокову А.О.: как заставить пищать динамик в системнеке, без всяких наворотор, просто пик

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

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

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

СообщениеДобавлено: дек 25, 2008 10:10
A.O.Trubakov
Ну а если серьезно, то вот код
Код: Выделить всё
; ========================================
; 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 передается частота, которая затем по формуле переводиться в тональность. Если нужен просто однотипный звук, то можно ее еще упростить, сразу подобрав тональность и не передавая в функцию ничего

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

СообщениеДобавлено: дек 26, 2008 09:34
Alexandr Amelin
Спасиб Андрей Олегович, вытащил ОЗУ и правда так пищать стал))))))