ZX-Ревю 1995 №3 1994 г.

Возвращаясь к напечатанному - Компьютер и звук.


ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ

Компьютер и звук

сигнал - например, музыку или речь.

Даже при минимальном числе команд, звук не будет таким чистым, как хотелось бы. Что же мешает этому?

Программа, представленная в листинге 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

Листинг 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), В

*

*

*




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Фэнтези - Айзенк Азимов "Человек, который никогда не мал".
Под звуком "ПИ" - "Мне страшно за SPECTRUM! Из всей армии его поклонников, лишь единицы истинные спектрумисты!"
Вступление - Люди! Человеки! Господы и прочие жители ZX-Net'a !
Проходилка - рохождение очень интересной, но довольно трудной игры " 48 УТЮГОВ ".
штуки - на одной из старыХ дискет я обнарУжил.. штУкУ.)

В этот день...   28 марта