Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2011, 15:18   #1
ТриСемёрки
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 61
По умолчанию Вывод звукового сигнала

Простенькая программа, взятая из ЛЕКЦИЙ!
Ошибок нет!
Нет и звукового сигнала ...


[CODE]
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <dos.h>
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif

// Процедура для выдачи звукового сигнала
void BEEP ()
{
_asm {
mov bx,0
mov ax,0x0e07
int 10h
}
}
// Описание программы-обработчика прерывания будильника
void interrupt alarm(__CPPARGS);
// Переменная для хранения старого вектора будильника
void interrupt (*old_4a)(__CPPARGS);
void main(void)
{
clrscr();
// Подключаем свой обработчик прерывания будильника, старое значение вектора 0x4a сохраняем
old_4a = _dos_getvect(0x4a);
_dos_setvect(0x4a, alarm);
// Устанавливаем будильник
_asm {
mov ah , 0x02 // Читаем текушее время
int 1ah
mov al , cl // Копируем минуты из cl в al
add ax , 1 // Прибавляем к значению в al, значение 1
mov cl , al // Копируем обратно
mov ah , 0x06 //Устанавливаем будильник на срабатывание через 1 мин
int 1ah
}
// Для того чтобы сбросить будильник нужно нажать любую клавишу.
getch();
// Сбрасываем будильник и восстанавливаем вектор прерывания будильника
_asm {
mov ah,0x07 //Сброс будильника
int 1ah
}
//Восстанавливаем вектор прерывания
_dos_setvect(0x4a, old_4a);
printf("Ready");
getch();
}
//Подпрограмма получает управление при срабатывании будильника.
// Ее назначение - выдать звуковой сигнал.
void interrupt alarm(__CPPARGS)
{

BEEP();
printf("Stop");
}
ТриСемёрки вне форума Ответить с цитированием
Старый 08.04.2011, 15:37   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Нет и звукового сигнала ...

в ДОС запускали? Или по-старинке, всё под виндой?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.04.2011, 15:43   #3
ТриСемёрки
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 61
По умолчанию

Запускал по старинке, и запускал в DosBox
Но! Проблема, видимо, не в звуке. Программа не устанавливает свой обработчик прерывания (иначе звука бы не было, но "Стоп" бы выводился).
ТриСемёрки вне форума Ответить с цитированием
Старый 08.04.2011, 16:17   #4
ТриСемёрки
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 61
По умолчанию

Кстати, пробую "обнулить" будильник в CMOCE, но ничего не получается

Код:
_AH=0x07;
ТриСемёрки вне форума Ответить с цитированием
Старый 08.04.2011, 16:22   #5
ТриСемёрки
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 61
По умолчанию

Выдержка из лекции: "Доступ к часам реального времени возможен либо через ячейки CMOS-памяти (используя порты 70h и 71h), либо через специальные функции BIOS (прерывание 1Ah BIOS), что более предпочтительно с точки зрения независимости работы программы от особенностей аппаратуры."

Если обращаюсь к CMOS-памяти используя порты 70h и 71h, значения ячеек будильника меняется, но будильник не работает, если используя специальные функции BIOS (прерывание 1Ah BIOS) значения ячеек не меняется и соответственно будильник не работает.
ТриСемёрки вне форума Ответить с цитированием
Старый 08.04.2011, 16:44   #6
ТриСемёрки
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 61
По умолчанию

Может быть всё дело в защищенном режиме винды?
ТриСемёрки вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестированья звукового адаптера managerbp Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 19.03.2011 20:25
Спектр звукового сигнала вейвлетами Krendel' Мультимедиа в Delphi 1 23.12.2010 07:54
спектр звукового файла serg87i Общие вопросы C/C++ 1 06.11.2010 21:01
Создание звукового движка varvara16 Общие вопросы Delphi 5 25.07.2008 00:18
воспроизведение звукового сигнала rus-4-ever Мультимедиа в Delphi 9 01.02.2008 22:49