|
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
Другие статьи номера:
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3