ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
Компьютер и звук
сигнал - например, музыку или речь.
Даже при минимальном числе команд, звук не будет таким чистым, как хотелось бы. Что же мешает этому?
Программа, представленная в листинге 2, "распечатывает" в файле атрибутов значения 6 бита, который указывает на наличие сигнала на магнитофонном входе.
(С) Сергей Белов,
г.Москва, 1995.
00010 00020 00030 00040 00050 00060 00070
SeBco prog.
present the programm "GRAPHIC OF 6-TH BIT
PORT No254" written by Below S. (C) 1995
Под таким названием на странице 195 ZX-PEBI0-93 напечатана любопытная статья (автор: Збитнев В.А.). Продолжая идею воспроизведения человеческого голоса или музыки хочу сказать, что на "Спектруме" из-за малой памяти (для звуковой информации) и частоты работы процессора, звук получается не очень реалистичным. Программа, представленная на листинге 1, это явно показывает.
00080
ORG
40000
Листинг 1.
00090
ENT
00100
DI
00010
ORG
40000
00110
LD
D, 0
00020
ENT
00120
LD
B,D
00030
DI
00130
LD
C,3
00040
LOOP
IN
A,(254)
00140
LD
E,D
00050
SRL
A
00150
OPROS
IN
A, (254)
00060
SRL
A
00160
SRL
A
00070
OUT
(254),A
00170
SRL
A
00080
JR
LOOP
00180
OUT
(254),A
00190
BIT
4,A
Start
of
object:
#9C40 (40000)
00200
JR
Z,PLOT1
Length
:
#000B (00011)
00210
JR
PLOT
Executes
:
#9C40 (40000)
00220
VOZWR
INC
DE
00230
LD
A,D
9C40: F3
DB
FE
CB 3F
CB 3F D3 :8F
00240
CP
С
9C48: FE
18
F6
00 00
00 00 00 :F0
00250
JR
Z,ZERO
00260
JR
OPROS
Запустите программу и подайте
00270
ZERO
LD
DE, 0
на магнитофонный вход звуковой
00280
CALL
KEY
НАПЕЧАТАННОМУ
ВОЗВРАЩАЯСЬ
OR
OPROS
PLOT
LD
HL,22528
ADD
HL,DE
LD
B,63
LD
(HL),В
OR
VOZWR
PL0T1
LD
HL,22528
ADD
HL,DE
LD
B,0
LD
(HL),В
OR
VOZWR
KEY
LD
A, #7F
IN
A,(254)
BIT
1, A
OR
Z,KEY
BIT
0, A
OR
Z,END
RET
END
POP
AF
EI
RET
![]()
Рис.1.
00290 00300 00310 00320 ООЗЗО 00340 00350 00360 00370 00380 00390 00400 00410 00420 00430 00440 00450 00460 00470 00480 00490
it
Start of object: Length
#9C40 (40000) #0046 (00070)
Executes : #9C40 (40000)
9C40: F3 16 00 42 0E 03 5A DB :6D
9C48: FE CB 3F CB 3F D3 FE CB :92
9C50: 67 28 1A 18 OF 13 7A B9 :02
9C58: 28 02 18 EB 11 00 00 CD :FF
9C60: 76 9C 18 E3 21 00 58 19 :9B
9C68: 06 3F 70 18 E8 21 00 58 :32
9C70: 19 06 00 70 18 DF 3E 7F :4F
9C78: DB FE CB 4F 28 F8 CB 47 :39
9C80: 28 01 C9 F1 FB C9 00 00 :C3
Зафиксировать картинку можно, нажав SYMBOL SHIFT (выход из программы - SPACE).
Если Вы подадите на магнитофонный вход звуковой сигнал, то увидите нечто похожее на на рис 1 или рис.2, причем результат зависит от качества работы входного компаратора. Если компаратор магнитофонного входа выполняет четкое переключение, то Вы увидите картину, больше похожую на рис.1. На рис.2 хорошо видны одиноко стоящие черные квадраты - это так называемые "быстрые нули" - они и являются главными источниками шу-иа (кстати, в приводимых программах при определенных комбинациях нажатых клавиш, например, B,N,M, происходит изменение цвета бордюра в такт звуку).
![]()
Рис.2.
Программы, приведенные в листингах 3 и 4, позволяют записывать и воспроизводить звук. Причем, представленная в листинге 3, делает это при помощи БЕТ'анья, ИЕЗ'етанья и ротации регистра С. А в листинге 4 - при поиощи счетчика звуковых импульсов В. Она также содержит блок по удалению "быстрых нулей". Для обеспечения компенсационных задержек в программах применяются холостые операции, они в листингах выделены курсивом. В программе на листинге 4 нет счетчика заполняемости экрана. Дело в том, что он и не нужен, как только в регистре Н окажется число #5В, то значит, заполнение закончено.
ВОЗВРАЩАЯСЬ
К
НАПЕЧАТАННОМУ J
00110
00120 BITE 00130 TO 00140 CICL 00150 00160 00170 00180 00190 00200 00210 ZED 00220
00230 LOOP 00240 00250 00260 00270 00280 00290 00300 00310 KEY 00320 00330 00340 00350 00360 00370 00380 00390 00400
00410 START
00420
00430
00440 BITE1
После
запуска программы запи-
00450
LD
B, 8
сывают сигнал, поступающий с маг
00460
T02
LD
A,10
нитофонного входа. Этот процесс
00470
CICLl
DEC
A
отражается на экране. После пол
00480
OR
NZ,CICLl
ного заполнения экрана можно на
00490
BIT
0,C
жать ENTER для неоднократного
00500
OR
Z,ZEDl
воспроизведения записанного фраг
00510
LD
A,16
мента. Выход из программы - нажа
00520
OUT
(254),A
тием SPACE.
00530
OR
LOOP1
00540
ZEDl
LD
A, 0
Листинг 3.
00550
OUT
(254),A
00560
LD
AtO
00010
;SeBco prog.
00570
LOOP1
RLC
С
00020
; present
00580
DJNZ
TO 2
00030
;the programm
00590
INC
HL
00040
;"PATEPHONE"
00600
DEC
DE
00050
;written by Below S.
00610
RL
A
00060
;(C) 1995
00620
RL
A
00070
ORG 40000
00630
LD
A,E
00080
ENT
00640
OR
D
00090
LD HL,16384
00650
JR
NZ,BITE1
00100
LD DE,6144
00660
JR
KEY
DI
LD
LD
DEC
JR
IN
BIT
OR
SET
OR
RES
LD
RLC
B,8 A, 10 A
NZ/CICL
A,(254)
6,A
Z,ZED
0,C
LOOP
0,C
A,0
С
DJNZ TO
(HL),C
HL
DE
A,E
D
NZ,BITE A,#BF A,(254) 0,A
Z,START A,#7F A,(254) 0,A
Z
KEY
HL,16384 DE,6144
C,(HL)
LD
INC
DEC
LD
OR
OR
LD
IN
BIT
OR
LD
IN
BIT
EI
RET
OR
LD
LD
DI
LD
Start of object: #9C40 (40000) Length : #0068 (00104)
Executes : #9C40 (40000)
00010 00020 00030 00040 00050 00060 00070 00080 00090 00100 GO 00110 00120
00130 TEST
9C40:
21
00
40
11
00
18
F3
06
5F
9C48:
08
3E
OA
3D
20
FD
DB
FE
67
9C50:
CB
77
28
04
CB
CI
18
04
02
9C58:
CB
81
3E
00
CB
01
10
E9
43
9C60:
71
23
IB
7B
B2
20
EO
3E
16
9C68:
BF
DB
FE
CB
47
28
OA
3E
IE
9C70:
7F
DB
FE
CB
47
FB
C8
18
51
9C78:
EE
21
00
40
11
00
18
F3
7F
9C80:
4E
06
08
3E
OA
3D
20
FD
1A
9C88:
CB
41
28
06
3E
10
D3
FE
7D
9C90:
18
06
3E
00
D3
FE
3E
00
97
9C98:
CB
01
10
E7
23
IB
CB
17
17
9CA0:
CB
17
7B
B2
20
DA
18
BF
1С
Листинг 4.
SeBco prog.
present the programm "PATEPHONE 2" written by Below S. (C) 1995
HL,16384
B,1
C, 255 A,(254)
40000
ORG
ENT
DI
LD
LD
LD
IN
ВОЗВРАЩАЯСЬ
К
НАПЕЧАТАННОМУ
-----
00140
BIT
6/A
00700
LD
A,4
A
00150
OR
Z,TEST
00710
LD
E,
0
00160
OPRQS
IN
A,(254)
00720
AND
24
00170
BIT
6,A
00730
LD
(HL),D
00180
OR
Z,ZED
00740
OUT
(254),A
00190
XOR
A
00750
DONZ
ZVUK
00200
DEC
A
00760
INC
D
00210
OR
TO
00770
OR
Z,HERE
00220
ZED
XOR
A
00780
CPL
00230
INC
DE
00790
HERE
LD
E,.
A
00240
ТО
CP
С
00800
INC
HL
00250
OR
Z,PLUS
00810
LD
A,1
H
00260
LD
DE,0
00820
CP
С
00270
LD
(DE),A
00830
LD
A,:
E
00280
LD
A,A
00840
OR
NZ
, ZAGR
00290
LD
A,A
00850
KEY
LD
A,
#BF
ООЗОО
DEC
В
00860
IN
A,
(254)
00310
OR
Z,T03
00870
BIT
0„
00320
INC
в
00880
OR
z,i
START
00330
ТО 4
LD
(HL),B
00890
LD
A,
#7F
00340
INC
HL
00900
IN
A,
(254)
00350
LD
С, A
00910
BIT
0„
00360
LD
B,1
00920
OR
z,:
END
00370
LD
A,H
00930
OR
KEY
00380
CP
88
00940
END
EI
00390
OR
NZ,OPROS
00950
RET
00400
OR
SPROS
00410
PLUS
INC
В
Start
of
object: #9C40 (40000)
00420
LD
С,A
Length
: #0094 (00148)
00430
LD
А,В
Executes
: #9C40 (40000)
00440
CP
255
00450
LD
А,С
9C40
F3
21
00
40 06
01
OE FF
44
00460
OR
Z,T04
9C48
DB
FE
CB
77 28
FA
DB FE
FA
00470
LD
A,A
9C50
CB
77
28
04 AF
3D
18 02
60
00480
LD
A,A
9C58
AF
13
B9
28 16
11
00 00
BE
00490
LD
(0),BC
9C60
12
7F
7F
05 28
ID
04 70
CA
00500
OR
OPROS
9C68
23
4F
06
01 7C
FE
58 20
6F
00510
тоз
CPL
9C70
DD
18
1A
04 4F
78
FE FF
E3
00520
LD
С, A
9C78
79
28
EC
7F 7F
ED
43 00
CF
00530
LD
B, 2
9C80
00
18
CB
2F 4F
06
02 11
96
00540
LD
DE ,0
9C88
00
00
56
18 CI
3E
BF DB
2B
00550
LD
D,(HL)
9C90
FE
CB
47
20 F8
21
00 40
B5
00560
OR
OPROS
9C98
3E
18
OE
58 46
50
ED 43
B6
00570
SPROS
LD
A, #BF
9CA0
00
00
ED
43 00
00
ED 43
9C
00580
IN
A, (254)
9CA8
00
00
70
7F IE
00
E6 18
4F
00590
BIT
0,A
9CB0
72
D3
FE
10 E9
14
28 01
C5
00600
OR
NZ,SPROS
9CB8
2F
5F
23
7C B9
7B
20 DC
B1
00610
START
LD
HL,16384
9CC0
3E
BF
DB
FE CB
47
28 CD
39
00620
LD
A,24
9CC8
3E
7F
DB
FE CB
47
28 02
36
00630
LD
C, #58
9CD0
18
EE
FB
C9 00
00
00 00
36
00640
ZAGR
LD
B,(HL)
00650
LD
D,B
Надеюсь,
эти програнны помогут
00660
ZVUK
LD
(0),BC
Вам
в оформлении Ваших
собствен-
00670
LD
(0),BC
ных программ.
00680
LD
(0),BC
00690
LD
(HL), В
*
*
*