Sound
The standard sound support of the Cosmac VIP is very basic and only includes one fixed frequency tone, where the frequency and volume is defined by the hardware used. The tone can be switched on by the Q flag.
Additionally 3 different sound boards can be connected to the VIP all replacing the fixed tone: VP595, VP550 or the VP551.
VP595 Simple Sound Board
The VP595 uses the CDP 1863 for sound output. For details on the CDP 1863 please see the data sheets for this chip. The Cosmac VIP controls the sound features of the CDP 1863 via OUT 3 to set the frequency and the Q flag to turn the defined tone on or off.
The frequency of the tone is depending on the CDP 1802 CPU speed as well as the OUT 3 value and is calculated as follows:
CPU frequency / 32
Tone frequency =
OUT 3 value + 1
VP550 Super Sound System
The VP550 uses 2 CDP 1863 chips for sound output. As such 2 simultaneous channels can be used. Frequency can be set by writing to address @8001 for channel A and @8002 for channel B. The Super Sound System has additional HW to set the octave (2 to 5) of channel A or B by writing to address @8003. Bit 0 and 1 define the octave (0: octave 2, 3: octave 5) and bit 2 defines the channel (0: A and 1: B).
Octave | Input frequency |
---|---|
2 | CPU Clock / 4 |
3 | CPU Clock / 3 |
4 | CPU Clock / 2 |
5 | CPU Clock |
The frequency of the tone is depending on the input frequency (and as such the CPU clock and octave) as well as the 8001/8002 value and is calculated as follows:
Input frequency / 16
Tone frequency =
8001/8002 value + 1
The VP550 can also control the amplitude (volume) in 16 steps (0 to 15) by either writing address @8010 (channel A) or @8020 (B).
Last feature of the VP550 is generation of interrupts between 50 to 250 per second (via HW tempo control) the interrupt rate could (like the provided pin-8 software) be used for tempo control of the music.
VP551 Super Sound 4-channel Expander Package
The VP551 package consists of 2 VP550 boards and one VP576 to connect both sound systems. The VP550 boards work the same as described for the VP550 system above, except that the second board uses different addresses for the 3rd and 4th channel (channel C and D) as described below.
Frequency can be set by writing to address @4001 for channel C and @4002 for channel D. To set the octave (2 to 5) of channel C or D address @4003 is used. Bit 0 and 1 define the octave (0: octave 2, 3: octave 5) and bit 2 defines the channel (0: C and 1: D). Control of the amplitude (volume) is in 16 steps (0 to 15) by either writing address @4010 (channel C) or @4020 (D). Tempo and interrupt control is only performed by one of the VP550 boards.