Составить программу для подачи звукового сигнала. Частоту и длительность звучания ввести с клавиатуры. При нажатии клавиши <Left Shift> - прекращение звукового сигнала. Прерывание программы по кнопке EXIT. Программа должна работать под управлением WIN95- 2000. Инструментальная среда - TASM 5.10 (MASM 6.11)
Jaxx Можешь посмотреть вот это (пример простейшего пианино, код хорошо откомментирован и компилируется на TASM'е, писАлось давно и в учебных целях, но должно помочь): http://yurasek.narod.ru/ASM/piano.rar (2 Кб)
Jaxx В 2000-й, XP есть эмуляция DOS. В чём проблема? Или для программы необходим графический (оконный) интерфейс?
Хороший вопрос... Задача поставлено уж очень непонятно. Но например предложение "Прерывание программы по кнопке EXIT" наводит на определенные мысли, в частности слово "Кнопка".
Может, это Esc. А под 9x/NT можно запросто через API использовать любую звуковую карту. Поэтому не вижу смысла использовать динамик, кроме как в досе. Да и длительность звучания будет сильно зависеть от частоты cpu и издержек мультизадачности.
BOOL Beep( DWORD dwFreq, // sound frequency, in hertz DWORD dwDuration // sound duration, in milliseconds ); Или я что-то не так понял?
Да и шайтан с ней, с 95 Виндой. Все равно почти нигде давно уже не используется. Под 2000-XP надо. А вот через звуковую карту - не надо. Все должно быть по условию задачи, без самодеятельности всяческой. Только время поджимает... Народ, плиз, выручайте...
Никаких проблем. Всю работу со 2-м каналом таймера полностью берешь из ДОСовских программ. Единственное что - доступ к портам. Под вин95/98/МЕ проблем не будет, можно юзать IN и OUT. Под винNT/2000/XP придется юзать какую-нибудь библиотеку, открывающую порты - winio, openio, openports, tvichw32 и т.п., их в Инете немеряно. И все.
Лови идею. Компилятор Tasm, будет работать под 95/98/ME. Под NT/2000/XP вылетит. Код (Text): includelib import32.lib extrn ExitProcess:near extrn MessageBoxA:near .386 .model FLAT .data Header db 0 Messag db 'Click OK',0 CellNam db 255 dup (255) .code _start: mov al, 3 out 61H, al push 0 push offset Header push offset Messag push 0 call MessageBoxA sub al, al out 61H, al push 0 call ExitProcess end _start Дальше сам. Учиться надо, а не халяву ловить.
Я думаю Jaxx просит помощи в ниписании драйвера под винNT/2000/XP на TASMe с передачей параметров из пользовательской проги в драйвер и обратно.Примеров на MASMe много,а вот в TASMe?Помогите кто может.
По очень многим мелким признакам Jaxx - студент какокого-то компьютерного факультета (на других такие задания не дают), которому еще прошлой зимой (летом у нас в стране никто не учится) дали курсовик на эту тему. Прошла весна, он его не сдал. Потому что нифига не понял и не собирался. Прошло лето, он наконец решил немного почесаться. Если я ошибся, то буду даже очень рад. И прошу извиненений.
drmad , ты должен быть очень рад, ибо ты не прав. 1. Это не курсовая, а контрольная 2. Задание дали совсем недавно, не больше месяца назад 3. Месяц назад я за него не брался, потому что делал другие работы 4. Я в самом деле нифига не понял, ибо за месяц выучить ассемблер нереально 5. Теперь собрался, но опять же - месяц... 6. Раньше не учил, потому как преподов у нас нету, только методисты - такой уж универ 7. Халяву ловить не миею ни малейшего желания, но другого выхода у меня нет. Если вы отказываетесь помочь - то так и скажите.
Jaxx За неделю максимум можно пробежаться по всем туториалам Iczelion'а, чтоб научиться делать простенькие окошки в masm. Нужно ведь всего пара контролов edit для ввода частоты и длительности сигнала, пара кнопок (play/exit) и всё. Раз win95 не рассматривается, то функции Beep, что BUGOR привёл, будет достаточно. Никаких драйверов писать для подобной ерунды не надо и поверхностных знаний ассемблера должно хватить. ЗЫ: Мои ребята уже на второй неделе знакомства с fasm более интересные задачи решают.
Jaxx Помогать хочется человеку, который карабкается сам. Давай, всем миром поможем. Задавай конкретные вопросы.