Deliverance: The Software I Didn’t Share

A reflection on Deliverance, an AREXX-based tool I wrote for my Amiga BBS in the 1990s; why it was never shared, what fear of scrutiny cost, and why solving the whole problem mattered more than polish.

In the early 1990s, Bulletin Board Systems lived and died by what their sysops were willing to share.  Utilities, door programs, scripts, and small hacks were passed around not because they were perfect, but because they solved problems that other sysops were almost guaranteed to have.

Aminet was one of the main arteries for that sharing in the Amiga world.  If you built something useful, you uploaded it. Others downloaded it, adapted it, improved it, or simply used it as-is.  That was the culture.

Deliverance was one of those tools.

It ran on my Amiga-based LightSpeed BBS and did exactly what it was designed to do.  Callers used it.  It worked reliably.  And yet, it was never uploaded to Aminet for other sysops to use.

This isn’t a story about lost code.
It’s a story about confidence;  or rather, the lack of it.


The problem Deliverance was written to solve

Aminet CDs were incredible resources.  They contained vast collections of software, utilities, and experiments, but they were also physical media.  A CD-ROM drive could only be in one state at a time, and a sysop could only be present so many hours a day.

Callers, however, didn’t operate on that schedule.

They logged in when they could, often late at night, between work shifts, whenever the phone line was free.  Often, the software they wanted existed; it just wasn’t immediately accessible.

Rather than treat that as a user problem, Deliverance treated it as a workflow problem.


What Deliverance actually did

Deliverance was split into two broad areas of responsibility.

The online services, written by me in AREXX, handled user interaction: providing file/search access, taking requests, determining whether the relevant Aminet CD was currently mounted, and coordinating what happened next.

The offline services, written by a good friend of mine, Scott Campbell, monitored the system for CD changes.  When the correct disc was inserted, those services would locate the requested file and complete delivery by emailing the file so it would be waiting the next time the caller logged in.

If the CD was online, the file could be delivered immediately.
If it wasn’t, the request wasn’t rejected: it was remembered.

The system respected intent.  It finished the job even if conditions changed.

It wasn’t flashy.  It didn’t try to hide the reality of spinning discs, limited drives, or human availability.  It simply worked with those constraints rather than pushing them back onto users.


Why it was never uploaded to Aminet

Deliverance wasn’t kept private because it wasn’t useful.
It was kept private because I wasn’t confident enough to show my code.

Specifically, my AREXX code (the part that handled the online services) felt exposed.  It worked, but I was convinced it wasn’t “good enough” to be scrutinised by other sysops and developers.  I assumed it would be pulled apart, its rough edges highlighted, and judged against standards I felt I hadn’t yet earned.

That fear outweighed the fact that the system was already in use and already helping people.

At the time, I didn’t frame it as insecurity.  I framed it as caution.  In hindsight, it was simply a lack of confidence.


The binary executable rabbit hole

One memory that still stands out is the amount of time I spent trying to work out how to turn deliverance.rexx into a binary executable.

AREXX is a scripting language, executed by an interpreter.  I knew that.  And yet I spent hours chasing the idea that if I could somehow “compile” it (make it look like a proper binary) it would feel more legitimate, and perhaps safer to release.

What I was really trying to do was hide the seams.

I wanted the work to look finished, authoritative, untouchable.  I wanted protection from judgement, even if I couldn’t have named it that way at the time.

In the end, nothing came of it.  The script remained a script, and Deliverance remained unshared.


Do I regret it?

Yes.  Now I do.

Not because I missed out on recognition or credit, but because Deliverance could have helped other sysops solve the same problem.  And because the decision not to share it was driven by fear rather than quality.

The code worked.
The system worked.
People benefited from it.

That should have been enough.


Why write about this almost 30 years later?

With hindsight, what stands out isn’t the technology but the mindset behind it.  Deliverance existed because I wasn’t comfortable treating partial availability as “good enough”.  With more software than physical drives, the easy solution would have been to accept the limitation and move on.  Instead, the system was designed to absorb that constraint so users didn’t have to.

That instinct (to finish the job rather than fence it) feels less common now, in a world where solving part of a problem is often considered sufficient.

Looking back, Deliverance represents an early example of something I still see today: capable people withholding useful work because they don’t feel “ready” to be seen.  Because they assume their work must first be flawless, carefully presented, or protected from scrutiny before it’s worthy of sharing.

It doesn’t.

Deliverance wasn’t perfect. It didn’t need to be. It just needed to exist outside the machine it lived on.

This post isn’t an attempt to resurrect old software or rewrite history. It’s simply an acknowledgment of what fear of scrutiny can quietly cost, even when the work itself is sound.

If it works, and it helps, share it anyway.

Amiga BBS comes back! ….almost :-(

Just a tad disappointed. I was hoping that this blog post would have been a glorious annoucement that I was able to recover my old BBS from retirement and have it running (since taking it down some 18 years ago) through either UAE or WinUAE, but alas no.

After waiting almost a month for an Adaptec AHA-2940UW SCSI controller to arrive from the States, I was able to get the drive (A Micropolis 4110 1GB) running into Linux quite quickly. And given that Linux (in this case, Ubuntu 12.04LTS) is able to read AFFS volumes it was appearing that this just may work. I’m not entirely sure if it was the drive itself or a corrupted Rigid Disk Block, it was unfortunate that I was unable to get it mounted properly before it seemingly died through what I can only assume may have been excessive heat generation. The drive was extremely warm to touch after only 30 minutes or so of running and after that it produced no response at all. So as it is now, I may consider professional data recovery but I’m not sure it’s really worth the expense for what is actually just a nostalgia hit.

Never the less, I happened upon this photo a few months ago which was pretty much the impetus to encouraging me to revive the old board.  It’s a photo of LightSpeed BBS from mid’95 during the board’s prime.  Many many hours were spent here.  Some heart ache at times but generally much enjoyment was had for both myself and the board’s callers.

LightSpeedBBS

At this stage LightSpeed BBS consisted of

Amiga A2000/040 @ 33mhz
16meg Ram
I/O Extender
1GB Micropolis SCSI Hard Drive
1GB Conner SCSI Hard Drive
2x 330meg Quantum SCSI Hard Drives
1x Double Speed SCSI Cd-Rom
2x Single Speed SCSI Cd-Rom
1 External Double Speed SCSI Cd-Rom drive (on loan from Amiga Christchurch Inc)
2x 28.8k SupraFaxModems
1x 14.4k SupraFaxModem
KTX SVGA 14″ monitor
Running Xenolink 1.98

This was networked with a

486 DX4-100
8meg Ram
540meg Hard Drive
Running Remote Access BBS

So fun times were the BBS days and it’s good to see a few locals still maintaining the old ways at a time when things were just a little bit different, fun and a little more exciting.

First Choice Core BBS @ 1stchoicecore.co.nz
and The Trashcan @ bbs.thenet.gen.nz:2323

Here are some links that I’ve found useful in my expedition to revive an Amiga drive without an Amiga machine.

Making a backup of an Amiga SCSI drive
Amiga Recovery Linux Application
Mount an AFFS drive within Ubuntu
Mount an AFFS Drive under Linux

** UPDATE: **  
I gave in and sent the drive away to be checked over with the hope that perhaps the data could be recovered off it.  I selected Digital Recovery in Hamilton, NZ for the task and they were mighty quick in diagnosing the fault and getting back to me.

Unfortunately, there was good news and bad news.  The good news was they found the faults along with a suspected root cause, and they were able to repair it.  Yay!  But in order to repair it, we’d have to obtain an exact identical drive off eBay to pillage the necessary parts from.   The trouble was, the cheapest we were able to find was going to set me back $180 which on it’s own isn’t that bad but factor in the data recovery cost plus what I’d already spent on the SCSI controller and the sum cost of this exercise was starting to climb to over $700NZD.

I got advice from friends, and also my partner Nikki and the answer was the same throughout.  “You should be thinking about today’s tech, and not yesterdays tech” was a common theme.

So the drive has been returned and is sitting in a safe place until such time as something good happens.  I’m sure I will return to this venture sometime in the future, but for the time being I’ll just have to wait and see.

Onto the next project

For nearly 20 years, I’ve held onto the original SCSI hard drive that my old BBS used to reside on and for sometime I’ve contemplated the idea of attempting to restore the contents of that drive into another Amiga just for curiosities sake.  I’ve often glanced at it and wondered whether or not it still works.  So for a few years now, I’ve been searching for a boxed Amiga to return it to, however boxed Amiga’s have become somewhat of a collectors item in recent years, and it’s become somewhat futile.  I found an Amiga A4000/040 with a Picasso card the other day for over $3500US! 🙁

Anyway, this past week my curiosity has gotten the best of me and this morning I’ve taken the first big step into attempting to restore the contents of the drive by purchasing an Adaptec AHA-2940UW SCSI PCI controller card off ebay.  I had intended to put it in an old PC I had lying around which fired up ok but it appears to be generating a long BIOS beep code which is usually akin to a memory error.  The trouble is, it doesn’t do it all the time though which is annoying.  It’s making me wonder whether or not there’s a short somewhere perhaps.  Later, I may have a closer look at that.  But for the time being, I’ll wait for the card to arrive then I’ll go from there.