Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/BizHawk.Emulation.Cores/Consoles/Coleco/docs/CV-Sound.txt
2 views
1
2
ColecoVision Sound Generation Hardware
3
4
The ColecoVision uses the Texas Instruments SN76489A sound
5
generator chip. It contains three programmable tone generators,
6
each with its own programmable attenuator, and a noise source
7
with its own attenuator.
8
9
1. Tone Generators
10
11
Each tone generator consists of a frequency synthesis section
12
requiring ten bits of information to define half the period of
13
the desired frequency (n). F0 is the most significant bit and
14
F9 is the least significant bit. The information is loaded into
15
a ten stage tone counter, which is decremented at a N/16 rate
16
where N (3.579MHz) is the input clock frequency. When the tone
17
counter decrements to zero, a borrow signal is produced. This
18
borrow signal toggles the frequency flip-flop and also reloads
19
the tone counter. Thus, the period of the desired frequency is
20
twice the value of the period register.
21
22
The frequency can be calculated by the following:
23
24
f = 3.579MHz/(32n)
25
26
The output of the frequency flip-flop feeds into a four stage
27
attenuator. The attenuator values, along with their bit position
28
in the data word, are shown below. Multiple attenuation control
29
bits may be true simultaneously. THus, the maximum attenuation
30
is 28 db.
31
32
A0 A1 A2 A3 Weight
33
34
0 0 0 1 2 db
35
0 0 1 0 4 db
36
0 1 0 0 8 db
37
1 0 0 0 16 db
38
1 1 1 1 Off
39
40
2. Noise Generator
41
42
The noise generator consists of a noise source that is a
43
shift register with an exclusive OR feedback network. The
44
feedback network has provisions to protect the shift register
45
from being locked in the zero state.
46
47
Noise Feedback Control
48
49
FB Configuration
50
51
0 "Periodic" Noise
52
1 "White" Noise
53
54
55
Noise Generator Frequency Control
56
57
NF0 NF1 Shift Rate
58
59
0 0 N/512
60
0 1 N/1024
61
1 0 N/2048
62
1 1 Tone gen #3 output
63
64
3. Control Registers
65
66
The SN76489A has eight internal registers which are used
67
to control the three tone generators and the noise source.
68
During all data transfers to the SN76489A, the first byte
69
contains a three bit field which determines the destination
70
control register. The register address codes are shown here.
71
72
73
74
Register Address Field
75
76
R0 R1 R2 Destination Control Register
77
78
0 0 0 Tone 1 Frequency
79
0 0 1 Tone 1 Attenuation
80
0 1 0 Tone 2 Frequency
81
0 1 1 Tone 2 Attenuation
82
1 0 0 Tone 3 Frequency
83
1 0 1 Tone 3 Attenuation
84
1 1 0 Noise Control
85
1 1 1 Noise Attenuation
86
87
4. Data Formats
88
89
The formats required to transfer data are shown below.
90
91
Frequency
92
LSB MSB LSB MSB
93
+---+--------+-----------+ +---+---+-----------------+
94
| |Reg Addr| Data | | | | Data |
95
+ 1 +--+--+--+--+--+--+--+ | 0 | X +--+--+--+--+--+--+
96
| |R0|R1|R2|F6|F7|F8|F9| | | |F0|F1|F2|F3|F4|F5|
97
+---+--+--+--+--+--+--+--+ +---+---+--+--+--+--+--+--+
98
99
Noise Control
100
LSB MSB
101
+---+---+---+---+---+----+-------+
102
| | Reg Addr | | | Shift |
103
+ 1 +---+---+---+ X | FB +---+---+
104
| | 1 | 1 | 0 | | |NF0|NF1|
105
+---+---+---+---+---+----+---+---+
106
107
Attenuator
108
LSB MSB
109
+---+--------+-----------+
110
| |Reg Addr| Data |
111
+ 1 +--+--+--+--+--+--+--+
112
| |R0|R1|R2|A0|A1|A2|A3|
113
+---+--+--+--+--+--+--+--+
114
115

116