"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора ;---засылка счетчика в задвижку
MOV AX,2705 ;счетчик = 1190000/440 OUT CHANNEL_2,AL ;посылаем младший байт MOV AL,AH ;сдвигаем младший байт в AL OUT CHANNEL_2,AL ;посылаем старший байт ;---ждем нажатия клавиши MOV AH,1 ;номер функции прерывания 21H INT 21H ;вызываем прерывание ;---выключение звука IN AL,PORT_B ;получаем байт из порта B AND AL,11111100B ;сбрасываем два младших бита OUT PORT_B,AL ;посылаем байт обратно .h3 2.2.4 Гудок динамика. ------------------------- Некоторым программам требуется набор предостерегающих гудков. Их легко создавать на Бейсике, но операционная система не обеспе- чивает функцию гудка, как таковую, и только косвенно позволяет получать доступ к гудку, который Вы слышите при старте системы. Для изменения тона вся процедура генерации звука должна быть запрограммирована на низком уровне. Для того чтобы гудок соот- ние. Для предсказания близкой опасности создайте набор понижаю- щихся тонов [2.2.7] или, если принтер включен, чередуйте гудки динамика компьютера и принтера (вывод кода ASCII 7 на принтер). Высокий уровень. В Бейсике просто напишите BEEP. Вот кусочек кода, который реагирует на вероятную ошибку гудком и запросом: 100 INPUT "Enter your age",AGE 'запрос возраста 110 IF AGE > 100 THEN BEEP:PRINT"Are you really over 100?" Для гудков другой частоты и продолжительности используйте оператор SOUND. Его форма: SOUND частота, длительность , где частота дается в герцах (3000 - середина диапазона), а длитель- ность дается в восемнадцатых долях секунды. SOUND 3000,18 дает гудок длительностью около одной секунды. В нижеприведенном приме- ре динамик быстро переходит от высокого тона к низкому и обратно, распугивая все живое в ближайшей окрестности. 100 FOR N = 1 TO 200 'установка числа повторений 110 SOUND 500,1 'звук низкой частоты на 1 секунду 120 SOUND 5000,1 'звук высокой частоты на 1 секунду 130 NEXT 'повтор |
|
|