ZXNet эхоконференция «code.zx»


тема: против АОH'ов



от: Kirill Frolov
кому: All
дата: 17 Aug 1998


├┤i, All !

Было мне никак не позвонить на Eagle Station и пришлось
писать сабжевую программу. А потом подумал и решил, что
может кому и пригодится...

Вобщем программа с помощью момеда типа викоммник засылает
АОH'у телефонный номер, точно как АТС. Конечно АОH увидит
этот номер, если АТС не будет отвечать на запрос (именно такой
случай у меня и был) или АОH будет слишком рано слать запрос
и слушать ответ.


NUMOUT DI
LD DE,NUMBUF ; номер и категория
LD HL,GENBUF+9 ; буфер (конец)
LD BC,#08FF ; 7 цифр номера и 1 категория
LD (HL),12 ; START ; код 13 - конец посылки
DEC HL

PUTNUM1 LD A,(DE) : INC DE
AND #0F
JR NZ,$+4 : LD A,10 ; 0 это 10
DEC A ; все на 1 меньше - для выбора из таблицы
CP C
JR NZ,$+4 : LD A,13 ; при повторении замена на 14
LD C,A
LD (HL),A : DEC HL ; буфер с конца заполняется
DJNZ PUTNUM1

LD (HL),12 ; END ; начало посылки
LD B,10 ; всего 10 кодов будет послано
NUMGEN1 PUSH BC
LD A,(HL)
INC HL
PUSH HL
ADD A,A : ADD A,A ; выбор частот из таблицы
LD L,A : LD H,0
LD DE,FRQTBL
ADD HL,DE
LD E,(HL) : INC HL
LD D,(HL) : INC HL
PUSH DE
LD E,(HL) : INC HL
LD D,(HL) : INC HL
EXX
POP DE
LD IX,854*2 ; длительность посылки - 40 мс.
CALL TWT ; пищит 2 частоты DE и DE' время IX
POP HL
POP BC
DJNZ NUMGEN1 ; следующую комбинацию
XOR A
OUT (#FE),A ; положили трубу
RET

;----------------------------------------
;TWO_TONE_GENERATOR
;
; DE AND DE' = FREQUENCY
;
; IX = TIME
;
;

TWT DI
LD BC,#20FE ; порт и данные
LD HL,#0000
EXX
LD BC,#20FE
LD HL,#0000 ;начальное значение счетчиков
;можно и не устанавливать.
TW0 EXX
ADD HL,DE
BIT 7,H
JP Z,TW1

OUT (C),B

DEC IX
LD A,XL
OR XH
JP NZ,TW3
RET

TW3 EXX
ADD HL,DE
BIT 7,H
JP Z,TW2

TW5 OUT (C),B

DEC IX
LD A,XL
OR XH
JP NZ,TW0 ; 164 такта вся процедура
RET


TW1 OUT (C),C

DEC IX
LD A,XL
OR XH
JP NZ,TW4
RET

TW4 EXX
ADD HL,DE
BIT 7,H
JP NZ,TW5

TW2 OUT (C),C

DEC IX
LD A,XL
OR XH
JP NZ,TW0
RET

;для расчета длительности
;T=IX*1000*(164/3500000) MS
;
;IX=T/0.046857142 MS
;
; 40MS - IX=854
;
;для расчета частот
;N=F*(32768/Fw) Fw=3500000/(164*2)
;
;N=F*3.070829714
;
;
; F(Hz) N(DE)
;
; 700 2150
; 900 2764
; 1100 3378
; 1300 3992
; 1500 4606
; 1700 5220
;

; номер идет в таком виде
; Start 7 6 5 4 3 2 1 Cat. Stop

; базовые частоты
; F0 - 700 гц F3 - 1300 гц
; F1 - 900 гц F4 - 1500 гц
; F2 - 1100 гц F5 - 1700 гц

;+-15 гц . Длительность 40 мс , уровень

; список комбинаци частот в коде 2 из 6
; (1)-01 (6) -23 (11)-05
; (2)-02 (7) -04 (12)-15
; (3)-12 (8) -14 (13)-25-начало
; (4)-03 (9) -24 (14)-35-повтор
; (5)-13 (10)-34 (15)-45


; таблица кода 2 из 6 заполненная значениями
; DE и DE' для генерации соответствующих частот
FRQTBL DW 2150,2764
DW 2150,3378
DW 2764,3378
DW 2150,3992
DW 2764,3992

DW 3378,3992
DW 2150,4606
DW 2764,4606
DW 3378,4606
DW 3992,4606

DW 2150,5220
DW 2764,5220
DW 3378,5220
DW 3992,5220
DW 4606,5220

;телефонный номер 7 цифр и категория 1 цифра (0).
NUMBUF DB "12345670" ; ASCII PHONE+CAT.

;буфер для приведения номера в более другой вид.
;можно обойтись и без него - перекодировать и сразу передавать.
GENBUF DS 10


Вот и все... Работает 100% если АТС не отвечает,
иначе - вероятность близка к нулю.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Программистам - Заначка.
Программирование - Процедуры расчета следующей и предыдущей линии экрана. Оптимизация.
Free Zone-2 - Agitationsschrift :)
Анкетирование - 11 вопросов первичного анкетирования.
Оттяг - Пивное ревю.

В этот день...   26 апреля