--- title: "Helicopter 3 Sound Example" id: 63150 type: "computer_media" slug: "helicopter-3-sound-example" url: "http://localhost/computer_media/helicopter-3-sound-example/" markdown_url: "http://localhost/computer_media/helicopter-3-sound-example.md" published_at: "2026-01-30T17:36:44+00:00" modified_at: "2026-04-03T07:57:58+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/01/helico-3.png" excerpt: "A compact three-line AY chip sound demo programs the envelope, noise, and mixer registers to recreate a helicopter sound effect." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" genre: - name: "Sound" slug: "sound" taxonomy: "genre" url: "http://localhost/type/sound/" media_contents: - id: 63045 title: "Byte Power September 1986" type: "computer_media" url: "http://localhost/computer_media/byte-power-september-1986/" media_type: "Program" programmers: - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" mediadate: "1986" producer_company: - id: 25181 title: "Byte Power" type: "company" url: "http://localhost/company/byte-power/" images: - url: "http://localhost/wp-content/uploads/2026/01/helico-3.png" article_media: - id: 63031 title: "Better Programming" type: "article" url: "http://localhost/article/better-programming-4/" media_type_tags: "Sound" --- # Helicopter 3 Sound Example 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: 1. `Line 0` — REM block containing the title “HELICO 3”, author credit (K. Boisvert), and copyright notice (©1986 Byte Power). 2. `Line 10` — A compound `SOUND` statement that writes directly to multiple AY-3-8910 registers in one call. 3. `Line 20` — `PAUSE 0`, which halts execution indefinitely until any key is pressed. 4. `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 `SOUND` syntax (`SOUND reg,val;reg,val;...`) sets multiple AY registers atomically in a single BASIC statement, minimising timing gaps between register writes. - `PAUSE 0` at 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,0` at line 30 re-triggers the envelope register with shape 0 (single decay), effectively cutting off the sound after the keypress. ## 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 ```