PDP-8 Plays Period Popcorn Piece

[Kyle Owen], collector of antique tech, decided to try his hand at music arrangement — for the PDP-8 computer, that is (listen to the video below the break). He’s using a program submitted by Richard Wilson to the Digital Equipment Corporation Users Society (DECUS) in 1976, appropriately named MUSIC. It runs on OS/8 and is written in the PDP-8 assembly language PAL8. Using the syntax of MUSIC, [Kyle] arranged Gershon Kingsley’s famous Moog synthesizer hit “Popcorn” (the Hot Butter version from 1972).

You might notice the lack of a disk or tape drive in his setup. That’s because [Kyle] is using an RK05 disk emulator he wrote back in 2014. It’s running on a Raspberry Pi and connects over serial, which he says is slower than an RK05 but faster than a tape drive. He has connected up a Cordovox amplifier cabinet for this demonstration, but the original means of listening to the MUSIC output was an AM radio held near the computer (hear the second video below the break). This worked by executing the PDP-8 CAF instruction at a desired frequency, say 440 Hz.

Thus, when this instruction is executed, logic all over the computer goes “zap”, clearing out various registers. Now, if a radio is held close to the computer, it will pick up some of this energy, and at 440 times a second, will deliver a pulse to the speaker. The result is that you will hear a tone from the radio — as a matter of fact, you will hear an A.

You can read more about this program and how it operates in the original program description in the original DECUS submission.

Sample Transcription

18 thoughts on “PDP-8 Plays Period Popcorn Piece

    1. No, that was the PDP-11; B’s word-addressed model, which was fine for the PDP-7, didn’t work all that well on the byte-addressed PDP-11, and the journey towards C started with the addition of character types.

  1. Good memories of DECUS, I went quite often to their national convention (yes, I have the coffee cup), spoke at a conference one time (VMS security) and one of my best friends/co-worker (RIP) was the DECUS library curator in the 1980s. I never worked with a PDP8 but I did work with the 11/34 and 11/3 (the letter was part of the boot up mechanism for the 11/780). Back in the day, I worked on device drivers. I remember my joy in finding the FUBAR register defined in the DEC hardware manual (Failed Unibus Address Register).

    Back to this effort, great job.

  2. in 1975 me and my navy roommate bought and built the altair 8800 kit. he was an electronics technician and thus he did most of the hardware part and i had already programmed calculators so i got the software side of things. i used a program from the people’s computer company magazine to play daisy (in honor of hal) through a radio on top of the bus.

    to link to the subject of this article, my first job out of the navy was at a small/medium newspaper where we had 4 pdp-8e’s running custom software by stuart dewar. one of them did word processing, one did cold typesetting, one did business, and the 4th did wire collection. dewar had to hack in an extra 8kb memory card for the word processor.


  3. One of the TRS-80 magazines published a program to let you play music through a nearby AM radio. I vividly remember building up a short Bach snippet by ear, laboriously, note by note, because I didn’t actually read music. I wonder if I still have that issue boxed away?

  4. PDP 8e only computer I hated.

    Used at UI Illinois Urbana-Champaign to try to debug Illiac 3 1972/3.

    Crashed lots.

    Had to toggle in bootstap loader. :(–.

    Illiac 3 project failed, Iliac 2 project leader concluded.

    Focused on Illiac 2 project leader’s computer arithmetic work.

    Bit by bit elementary functions computation.

    DeLugish UI phd thesis work.

    We’re back in 2022 with 64-bit computer arithmetic?

    ARM, RISC-V and even x86?

  5. Lol, great stuff. What is it about that song. Back in the 90s I programmed a room full of ATMs to play Popcorn using speaker beeps. Boss was slightly more amused than when I fed my sandwiches through the deposit unit. Well, testing is boring, gotta push the boundaries.

  6. It was possible to do something similar with a ZX81. A program of the kind:

    5 LET T$=”tune…just characters”
    7 FOR T=1 TO LEN T$ STEP 2
    10 FAST
    15 FOR F=1 TO CODE T$(T)
    17 NEXT F
    20 SLOW
    30 FOR F=1 TO CODE T$(T+1)
    40 NEXT F
    50 NEXT T

    Would play ‘tones’ on the TV loudspeaker by flipping the rate at which it switched between FAST mode (where the display was turned off) and SLOW mode (which generated continuous video).

  7. The PDP8 had many languages for it, FOCAL, FORTRAN, B, and others. It had several operating systems, OS8. There are numerous emulators, FPGA implementations. Neither of those would play music.

  8. I’m currently working on doing the same with a PDP-11, but using a ladder DAC. This is a timely article for me as I posted just the other day on the Synth chip story about getting 4-voice polyphony out of my S100 Z80 system a long time ago.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.