This program plays a short musical or sound effect sequence using the SOUND command with multiple channel/register parameters, then waits for a keypress before silencing the sound engine. The SOUND keyword (represented as } in zmakebas source but rendered as SOUND) is a TS2068-specific command that directly controls the AY-3-8910 sound chip registers. The sequence sets registers 8, 7, 6, 12, 13, 0, and 1 in a single compound SOUND statement, configuring envelope and noise parameters typical of a helicopter-like effect, consistent with the “HELICO 3” title. The program is attributed to K. Boisvert and copyrighted 1986 by Byte Power.
Program Structure
The program consists of just three executable lines plus a REM header:
Line 0— REM block containing the title “HELICO 3”, author credit (K. Boisvert), and copyright notice (©1986 Byte Power).Line 10— A compoundSOUNDstatement that writes directly to multiple AY-3-8910 registers in one call.Line 20—PAUSE 0, which halts execution indefinitely until any key is pressed.Line 30—SOUND 13,0, which silences the envelope by resetting register 13.
AY-3-8910 Register Usage
The SOUND command on the TS2068 maps directly to AY-3-8910 sound chip registers. The compound statement on line 10 sets the following registers:
| Register | Value | Function |
|---|---|---|
| 8 | 16 | Channel A amplitude — value 16 enables envelope-controlled amplitude |
| 7 | 55 | Mixer control — enables noise on channels, disables/enables tones |
| 6 | 20 | Noise period — sets the noise frequency |
| 12 | 3 | Envelope period (fine) — low byte of envelope frequency |
| 13 | 8 | Envelope shape — value 8 selects a sawtooth-rise shape, triggers envelope |
| 0 | 10 | Channel A tone period (fine) |
| 1 | 1 | Channel A tone period (coarse) |
Register 7 value 55 (binary 00110111) disables tone on channels B and C, enables noise on channel A, and disables noise on B and C, producing a pure noise-envelope blend on channel A characteristic of rotary or mechanical sounds.
Notable Techniques
- The compound
SOUNDsyntax (SOUND reg,val;reg,val;...) sets multiple AY registers atomically in a single BASIC statement, minimising timing gaps between register writes. PAUSE 0at line 20 allows the AY chip to continue sounding asynchronously while the CPU waits, since the AY runs independently of the Z80 once its registers are programmed.SOUND 13,0at line 30 re-triggers the envelope register with shape 0 (single decay), effectively cutting off the sound after the keypress.
Content
Source Code
0 REM HELICO 3 WRITTEN BY K. BOISVERT ©1986 BYTE POWER
10 SOUND 8,16;7,55;6,20;12,3;13,8;0,10;1,1
20 PAUSE 0
30 SOUND 13,0
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
