Double Oh Seven

A long time ago, when I was young and you were even younger, gentle reader, we had Acorn Archimedes computers at school. Back when there was more than one kind of computer. The Arc was great. There will be those who liked the Amiga, or the Atari ST, but those were basically small toy computers for children. Yes. Long live the Archimedes.

Anyway, for no reason I can discern, this evening I remembered a thing on the Arc; a “sound demo”. It was just a looping sample, presented as an app; you ran the app and it played the sample, over and over. It was a short little composition — a few seconds, only — made up of different snippets taken from Bond films over a bit of music. This may not seem exciting to you, with your instantly streamable 4K video and stuff, but it was pretty goshdarn exciting back then. Get off my lawn.

I thought to myself: I wonder if that’s still around? A bit of googling led me to an old archive of RISC OS software and there it was: "007.spk: Sound-demo". A download later, and then… what format is it in? file 007.spk says it’s “data”, which is not helpful, because that’s libmagics codename for “no idea what this is, dude”. What’s an spk file? More googling — no, it’s not an installation package for Synology NASes, no it’s not a design for an electronics board, and then someone mentioned SparkPlug. In those days there were many, many, many compression formats. It’s not like now where there are basically ZIP files and occasionally RAR and tar.gz and that’s it. There was ZOO, LHA, ARC, loads of them. Zip files were the thing that PKZIP produced, and that was shareware. Loads of them. And on the Archimedes, everyone used SparkPlug. Actually, it was SparkFS, by David Pilling; you needed that (which cost money) to make Spark archives. But SparkPlug was free, and just did decompression. Unsurprisingly, that never got ported to other platforms, and I was mildly disappointed to discover that my desktop didn’t know how to open it without being told. But some more googling around led to nspark, a “dearchiver for RISC OS archives”. You have to compile it, but by this time I had the bit between my teeth — digital preservation is everybody’s responsibility! — and the COMPILING file says that that’s literally one command, make -f makefile.gcc. Run that and you get an nspark binary, and nspark 007.spk unpacks it! I have a folder named !James.

$ ls !James
MemAlloc  !Run  !RUNIMAGE  !RunImage2  !Sprites

Arc software came in a folder; if that folder was called !something, then it got treated like a single file you could drag around and run. This is the idea that the Mac used, later, for its application bundles (and I wish Linux software worked that way, but that ship’s sailed). Anyway, you could click the app and it would actually execute a file named !Run, inside the bundle. That file was a sort of tiny script which would set things up and then normally execute !RunImage, which was your actual compiled program, and indeed that’s what this one does too. So, !RunImage was the binary… and !RunImage2 was 200K, by far the largest file in the bundle, so the sound sample had to be in there. But… what format is it? file again claimed that it was “data”, but I thought: it’s a sound sample, right? I bet it’s just raw sound data. Can it be played?

aplay !James/!RunImage2 gives a burst of meaningless noise. Hrm. Are there formats for these things? Read the help… ah, yes, there are. And aplay -f S16_LE plays it understandably, hooray! But that just plays… how do I make this into an actual modern file?

Aha, again. Audacity allows importing raw audio. So, we import it, as a 16-bit set of samples, at sample rate 7600 (8000 sounded a tiny bit fast) and… success! Save as an mp3, and that works fine.

Not a hugely critical piece of software archaeology, but nice nonetheless. And I know of no better way of backing stuff like this up than to write a blog post about it so that a decade from now when I think of it again, it’s still here. (We made this mistake with the sound samples from Armadeus; after some serious digging around, Bill found the one that said “The mask; the ray-traced picture; and finally, the wireframe city”, and then we bloody lost it and now I don’t have it again.) So we’ll call this one a birthday present for Bill and I’ll try not to lose it this time.

The !Run file for !007 credits a Toby Cole on 25/2/90 and says: well here it is!!. Nice one Toby. From 27 years into your future, here it is again.

I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing and articles. You can take a look at some projects I've worked on and some of my writing. If you'd like to talk about your upcoming project, do get in touch.

More in the discussion (powered by webmentions)

  • Ryan Murphy responded at tag:twitter.... (
  • Will Cooke responded at A bit of late-night software archaeology to recover an Archimedes sound sample for when I next think of it.…
  • Will Cooke responded at tag:twitter.... (
  • Birmingham.IO responded at Stuart Langridge: Double Oh Seven by @sil #PlanetBirmingham
  • Ed McDonagh responded at tag:twitter.... (
  • yer boyo, slippers responded at A bit of late-night software archaeology to recover an Archimedes sound sample for when I next think of it.…
  • yer boyo, slippers responded at tag:twitter.... (
  • gurnaik responded at Digital perseverance, Mr. Bond:…
  • Mike Elsmore 🇪🇺 responded at I love that @sil went nuts to save less than 30 seconds of samples…
  • Nathan Haines responded at (
  • Jan Moren responded at (
  • Richard Gaskin responded at (
  • Linux Lady05 Winter responded at Did you ever see sorcerer os ?
  • Stuart Langridge responded at The one with the hot corners? Screen was rendered by an HTML widget?
  • Linux Lady05 Winter responded at +Stuart Langridge is a interesting part of linux history. It's unfortunate how it ende…
  • Molly Stanley responded at tag:twitter.... (
  • Keith Milner responded at I loved RiscOS and the !something directory structure was pretty elegant.You could also have used SoX to convert the file, FYI.
  • Keith Milner responded at (
  • Stuart Langridge responded at +Keith Milner I reached for sox first. But all I knew was that `aplay -f S16_LE` worked, and knowing how to express that in sox terminology is hard. A…
  • Chris Moore responded at (
  • Robert Ancell responded at !directories were great for hiding data from school sysadmins.
  • Robert Ancell responded at (
  • Iain Cuthbertson responded at tag:twitter.... (
  • Christine Hall responded at Reconstructing the past. Really fun article: as days pass by — Double Oh Seven @sil