Echoes of the Beep: Dave and Doug’s Digital Odyssey
It was the summer of 1981, a time when the world was still analog at heart, but whispers of the digital age echoed through suburban garages and basements. Dave, a lanky 15-year-old with a knack for tinkering, had saved up from mowing lawns to buy a Tandy TRS-80 Color Computer—affectionately dubbed the “CoCo” by enthusiasts. It sat proudly on his desk, a beige box with a chiclet keyboard, hooked up to the family TV for its vibrant, if blocky, display. Across the street, his best friend Doug, a thoughtful kid with glasses and a love for sci-fi novels, had convinced his parents to splurge on a Commodore PET 4016. The PET was a more business-like machine, with its all-in-one design featuring a green phosphor screen and a full-sized keyboard that clacked satisfyingly under fingers. No built-in tape drive like the earlier models, but Doug had an external Datassette unit ready to go.
The two boys met every afternoon in Dave’s garage, the air thick with the scent of solder and excitement. Neither had touched a computer before, but the manuals promised wonders: programming in BASIC, a language that felt like magic spells for machines. They started simple. Dave powered on his CoCo, greeted by the cheerful “OK” prompt in Extended Color BASIC. “Let’s make it say hello,” he said, typing in his first program:
10 PRINT “HELLO, WORLD!”
20 GOTO 10
He hit RUN, and the screen filled with endless greetings, scrolling in rainbow hues. Doug, on his PET with its Commodore BASIC 4.0, did the same, but his output was crisp white-on-black (or rather, green-on-black). They laughed as they added loops and variables, creating crude calculators. “10 INPUT A: 20 INPUT B: 30 PRINT A+B,” Doug typed, turning the PET into a math whiz. But soon, curiosity pushed them deeper. “This is cool,” Dave said, “but what if we could poke around inside the machine?”
That’s when they discovered PEEK and POKE—commands that let them peek at memory locations and poke new values in, like digital locksmiths. Dave’s CoCo manual had a whole section on it, explaining how to manipulate graphics and sound. He experimented with POKE for colors: POKE 65495,0 to switch to high-speed mode, or poking values into screen memory starting at address 1024 to draw pixels. “Check this out!” he exclaimed one day, after hours of trial and error. He’d written a program to fill the screen with random colors:
10 FOR I=1024 TO 1535
20 POKE I, RND(255)
30 NEXT I
The TV burst into a psychedelic mosaic, low-resolution but mesmerizing. Doug, not to be outdone, delved into his PET’s quirks. The PET used PETSCII characters for graphics—blocky symbols that could build mazes or simple art. He found that PEEK(59468) could reveal keyboard states, and POKE 59468,14 switched to lowercase mode. For fun, he poked directly into video RAM at 32768:
10 POKE 32768 + X, 81 ‘ Poke a block character
They spent nights creating bouncing ball animations—Dave’s in color on the CoCo, Doug’s in monochrome on the PET. But PEEK and POKE had their dangers; one wrong poke could lock up the machine, forcing a reset. “It’s like brain surgery on a robot,” Doug joked after accidentally poking the interrupt vector and crashing his PET.
As summer waned, they craved more power. BASIC was great, but slow for complex stuff. Enter assembly language—the raw machine code that spoke directly to the processors. Dave’s CoCo ran on a Motorola 6809E, and he got his hands on a book called “500 Pokes, Peeks ‘n Execs” that bridged BASIC to assembly. Using the USR command, he called simple routines. First, a tiny assembler snippet to beep faster than BASIC’s SOUND command. He loaded it via POKEs into memory, then USR(0) to execute. “It’s like turbocharging the engine!” he said. They pored over hex codes, learning LDA for load accumulator and STA for store.
Doug’s PET, powered by a MOS 6502, had a built-in machine language monitor accessible via SYS 64738. He typed in opcodes directly: A9 00 LDA #$00 to load zero, then poked them into RAM. Together, they crafted a small game—a text adventure where you navigated a dungeon. Dave handled graphics stubs in assembly for speed, while Doug optimized loops. Exchanging notes was tricky; the machines weren’t compatible, so they transcribed code by hand, adapting syntax. “Your POKE addresses are all wrong for my PET,” Doug grumbled, but it sparked debates that sharpened their skills.
No adventure was complete without storage woes. Both relied on cassette tapes—flimsy audio tapes that whirred and clicked like mechanical hearts. Dave’s CoCo used CSAVE to record programs as audio tones onto a standard cassette recorder. “Type CSAVE ‘HELLO’,” he’d command, then play it back with CLOAD. But tapes were finicky; a speck of dust or a volume knob tweak meant “I/O ERROR” and lost work. One stormy night, Dave’s tape of their dungeon game warped, erasing hours of code. “Back to square one,” he sighed.
Doug’s Datassette was similar: SAVE “PROGRAM” to tape, LOAD to retrieve. It was external, connected via a special port, and notoriously slow—up to 10 minutes for a 16KB program. “It’s like sending messages in bottles,” Doug said. They learned tricks: labeling tapes meticulously, duplicating saves. Once, they mailed tapes to each other (simulating a “network”), but Doug’s arrived scratched, loading garbled assembly that turned his PET into a beeping mess.
Their escapades peaked with a “hackathon” in Dave’s garage: a 24-hour session to build a space shooter. Dave used CoCo’s PMODE for graphics modes, poking assembly for sprite movement. Doug improvised with PET’s character set, using POKE for “ships” made of @ and *. Bugs abounded—endless loops, memory overflows—but triumph came at dawn when both versions ran. They high-fived, tapes whirring as they saved their masterpieces.
As fall approached and school loomed, they reflected on the future over root beer floats. “Imagine computers in every home,” Dave mused, “with disks instead of tapes—no more waiting forever to load.” Doug nodded. “And way more memory—maybe a megabyte! Graphics like real photos, not these blocks. Assembly might be built-in, or new languages that think for you.” They dreamed of portable machines, networks connecting the world, even computers in pockets. “By 2000, we’ll probably have robots coding themselves,” Doug laughed. Little did they know, the seeds they planted in 1981 would bloom into a revolution, but for now, the beep of their machines was the soundtrack of possibility.