|
ZX Pilot
#42
09 декабря 2005 |
|
Coding - как использовать компьютер для борьбы с комарами (программа отпугивающая комаров).

C O D I N G
──────────────────────────────────────────
(С) Иван Рощин
Скажи вампирам "Нет"!
═════════════════════
Вентилятор нужен, чтобы засасывать
комаров через дисковод.
Народная мудрость.
Да-да, речь пойдет именно о том, как
использовать компьютер для борьбы с этими
кровососущими тварями, - правда, не таким
жестоким способом, как в эпиграфе. :)
Прочитал я недавно интересную заметку [1]
о том, как одна музыкальная радиостанция
добавляет в свои трансляции звуковой
сигнал, отпугивающий комаров. Там
упоминалось, что частота этого сигнала
12,3 КГц. И я решил попробовать
сформировать подобный сигнал с помощью
своего ZX Spectrum.
Вот первый вариант процедуры: сигнал
воспроизводится через встроенный динамик.
;При тактовой частоте процессора 3,5 МГц
;один период составит ;3,5*10^6/12,3*10^3
;~= 285 тактов (точное ;значение 284,55).
;Пусть продолжительность одного
;полупериода будет 142 такта, ;а другого -
;143.
DI
M1 LD B,8 ;7 ┐
DJNZ $ ;7*13+8=99 │
INC HL ;6 ├ 130+12=142
LD A,16 ;7 │
OUT (254),A ;11 ┘
LD B,9 ;7 ┐
DJNZ $ ;8*13+8=112 │
INC HL ;6 ├ 143
LD A,0 ;7 │
OUT (254),A ;11 ┘
JR M1 ;12
А вот второй вариант: для формирования
сигнала используется музыкальный
сопроцессор.
CHAN EQU 0 ;Исполь. канал:0-A, 1-B, 2-C.
VOL EQU 15 ;Громкость (0-15).
LD HL,#FFBF
LD C,#FD
;При тактовой частоте сопроцессора 1,75
;Мгц значение делителя частоты тона должно
;быть равным 1,75*10^6/(12,3*10^3*16) ~= 9
;(точное значение 8,89). Выводим его в
;регистры частоты тона:
LD B,H
LD A,CHAN*2
OUT (C),A
LD B,L
LD A,9
OUT (C),A
LD B,H
LD A,CHAN*2+1
OUT (C),A
LD B,L
XOR A
OUT (C),A
;Включаем вывод частоты тона:
LD B,H
LD A,7
OUT (C),A
LD B,L
LD A,#FF
RES CHAN,A
OUT (C),A
;Установка громкости:
LD B,H
LD A,8+CHAN
OUT (C),A
LD B,L
LD A,VOL
OUT (C),A
RET
Так как музыкальный сопроцессор
работает независимо от основного
процессора, то, выполнив эту процедуру,
можно в дальнейшем работать с программами,
не обращающимися к сопроцессору, и звук не
будет прерван.
Обе процедуры формируют сигнал
простейшей прямоугольной формы. Но форма
оригинального сигнала много сложнее: как
упоминается в [1], он занимает 1 Мб в
формате Real Audio. Поэтому полезный
эффект от использования этих процедур
может оказаться ниже ожидаемого. Интересно
было бы, если бы кто-то поделился своими
результатами: помогает или нет?
Fido : 2:5020/689.53
ZXNet : 500:95/462.53
E-mail: asder_ffc@softhome.net
WWW : http://www.ivr.da.ru
Другие статьи номера:
Похожие статьи:
В этот день... 17 ноября