PWM MODULATION
ZXNet echo conference «code.zx»
From Kirill Frolov → To All 1 July 1998
├┤!,all !
I look and see that there is all sorts of talk about aons, yes
about tone dialing, and even in relation to XTR. This is for me
I really didn’t like it, so here’s the beeping program
into the phone 4-bit sounds with a frequency of up to approximately 5 kHz
(output frequency about 10 KHz).
The program can also request a number in the caller, and if
try and finish it a little, maybe the number is in tone
dial
ORG #C000
D.I.
LD A,(TONE)
CP #21
CALL NZ,DPC
LD A,#21
LD (TONE),A
JR TONE
;HOW MANY BYTES WILL BE IN THE SOUND OF 82 PIECES
ANUM EQU 41
;PREPARATION FOR QUICK WITHDRAWAL
DPC LD IX,TBL1
LD IY,ANUM
LD DE,TBL3
LD B,0
DPC0 LD A,(IX)
RLCA: RLCA
RLCA: RLCA
CALL DPC1
LD A,(IX)
CALL DPC1
INC IX
DEC YL
JR NZ,DPC0
LD DE,#A3ED
LD HL,TBL4
LD BC,ANUM*16*2
DPC4 LD (HL),E
INC HL
LD(HL),D
INC HL
DEC B.C.
LD A,B
OR C
JR NZ,DPC4
LD (HL),#C9
RET
;FROM 4 BITS MAKES 16 BYTES FOR
;QUICK OUTPUT TO PORT, USES
;TABLE FOR PWM MODULATION
DPC1 AND #0F
ADD A,A
LD C,A
LD HL,TBL2
ADD HL,BC
LD C,(HL)
CALL DPC2
INC HL
LD C,(HL)
DPC2 LD B.8
DPC3 RLC C
LD A,C
AND #18OR #2
LD (DE),A
INC DE
DJNZ DPC3
RET
;ЗДЕСЬ МОЖHО СЛУШАТЬ
TONE DB #C9 : DW TBL3
LD C,#FE
CALL TBL4
LD A,#7F
IN A,(#FE)
RRA
JR C,TONE
RET
;ЗДЕСЬ ТОЖЕ МОЖHО СЛУШАТЬ
COVOX THE
LD HL,TBL1
LD B,FIFTH
COVOX1 LD A,(HL)
AND #F0
RLCA : RRCA
RLCA : RRCA
OUT (#DD),A
INC DE
DEC C
JP $+3
CALL DELAY
LD A,(HL)
RLCA : RLCA
RLCA : RLCA
AND #F0
OUT (#DD),A
CALL DELAY
INC. HL
DEC B
JP NZ,COVOX1
LD A,#7F
IN A,(#FE)
RRA
JR C,COVOX
RET
DELAY JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
JP $+3
RET
;ТАБЛИЦА ШИМ-МОДУЯЦИИ
TBL2 DW #0000, #0100, #0808, #1084
DW #2222,#4892,#924A,#54AA
DW #5555, #55D5, #5D5D, #75D7
DW #7777,#77F7,#F7F7,#FEFF
;TBL2 DW #FFFF,#FFFE,#FFFC,#FFF8
DW #FFF0, #FFE0, #FFC0, #FF80
DW #FF00,#FE00,#FC00,#F8
DW #F000,#E000,#C000,#8
DW #0000
;Publishers ТАБЛИЦА МЕHЬШЕ ШУМИТ
;СИГHАЛ 4 БИТHЫЙ
TBL1 ;INSERT "sin4" ; - ЭТО ДЛЯ АОHА
;ЗВУК
DB #01,#23,#45,#68,#AB,#BD,#EFDB #FE,#DB,#BA,#86,#54,#32,#10
DB #01,#23,#45,#68,#AB,#BD,#EF
DB #FE,#DB,#BA,#86,#54,#32,#10
DB #01,#23,#45,#68,#AB,#BD,#EF
DB #FE,#DB,#BA,#86,#54,#32,#10
;DATA FOR PORT
TBL3
;OUTI COMMANDS FOR PLAYBACK
TBL4 EQU ANUM*16*2+TBL3
END EQU ANUM*16*2*2+TBL4+1