|
Возвращаясь к напечатанному - Компьютер и звук.
|
ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
Компьютер и звук
сигнал - например, музыку или речь.
Даже при минимальном числе команд, звук не будет таким чистым, как хотелось бы. Что же мешает этому?
Программа, представленная в листинге 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
#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
С
(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), В |
|
|
* |
|
* |
* |
|
|
|
|