Hacker's Handbook


Assembler, Stepper Motors, and a Hotel Pool

Revisiting the animatronic spy drama of Haparanda Stadshotell, three decades later

Posted: 2025-08-18
Categories: Assembler , hardware

The Spy Dolls Under the Dance Floor

A dirty, dusty scene
with an old spy doll and a tray. “A dirty spy.”

In the early 90s, before I got my Computer Science education, I had already been programming for over a decade. My path didn’t begin in academia. It started with a Texas Instruments calculator, then a VIC-20, a Commodore 64, and later an ABC-80 and 800. By the time I bought my first PC, I was deep into BASIC, 6502 assembler, with the occasional detour into Pascal. Most of what I knew came from Doctor Dobb’s Journal, BYTE, POC magazine, and a small stack of programming books, like Peter Norton’s Programmer’s Guide to the IBM PC, that felt like treasures.

By 1989 I had even started my own consulting company, mostly as a way to write off expensive hardware. That company gave me assignments like a consolidated account statement program for Norrfryskoncernen. Through them I also got to know Haparanda Stadshotell, known simply as “Statt”, a place full of history and, for me, many memories.

One of those memories is now coming back to life.

The Animatronics Project

A caricature of my
father drawn by Ulf R Hansson. “A caricature of my father, drawn by Ulf R. Hansson, the artist I collaborated with on the Stadshotellet animatronics project.”

Around 1991–92, I worked with the artist and teacher Ulf R. Hansson to build an unusual installation in Stadshotellet’s old indoor pool (which later became the dance floor under a glass roof). We called it the spy scene of KGB 1917. KGB was then new name for the bistro annex to the hotel: "Kaffé Gulach Baronen".

It was part animatronics, part theatre, part Cold War curiosity. Handmade dolls and a tray moved by stepper motors, synchronized to a cassette tape soundtrack. Everything was controlled by a 286 PC running pure assembler that I had written. No frameworks. No abstractions. Just hardware hacking and bare-metal code.

For a while, it ran regularly. Guests at Statt could look down through the glass floor and see the little spy drama unfold. And then, like many side projects of its time, it fell silent.

Some say it was lightning, some say it was that the dancers scratched the glass floor so much so you couldn't see anything.

Thirty Years Later

Me standing in
the cellar with the old setup. “Everything still there, covered in dust.”

The system has been dormant for more than three decades. The dolls, tray, motors, and cassette player just sat in the cellar where they were left, while the hotel reinvented itself around them. But now, as Stadshotellet approaches its 125-year celebration, the owners want the show to return.

Some
hardware hacks controlling stepping motors. “Was I a hardware hacker?”

That’s where I come in again. The task: bring the spy dolls back to life. Preserve their nostalgic charm, but give them a new, reliable control system that can run daily for modern audiences.

It feels like a bridge between eras. In 1992, I was a self-taught programmer from Haparanda, living on magazines and sheer curiosity, hacking assembler late into the night. Today, I design scalable systems for fintech and regulated industries, built to survive Friday deploys and Monday audits. And somehow, the old spy scene connects the two.

A dir command:
KGB19717.ASM 26185 93-06-11. “26kB assembler code.”

Next

Over the coming months, I’ll plan to share the journey of reviving this project. From site inspections and dusty cassette tapes to Raspberry Pis, YAML choreography, and motor drivers. It’s part archaeology, part engineering, and part nostalgia.

For me, it’s also a reminder of where this all began.

A listing of
assembler code. “Surprisingly well documented, in Swedish.”

Next, I need to figure out how to extract 26 KB of assembler code from a PC with only a floppy drive and no network. The dolls may still be intact, but the real archaeology starts with the bits.

- happi


Happi Hacking AB
KIVRA: 556912-2707
106 31 Stockholm