Getting into Amiga – The Big Twist!

What’s a good story without an unexpected twist?

After already deciding to go the FPGA route and even placing orders for a MIST and everything I’d need for it (a power supply, some SD cards, and a dedicated USB keyboard and mouse, mainly) a thread about Amiga emulation I’d previously started on Zer0net resulted in Frank (AKA Netsurge of The Diskshop and SciNet) generously offering to send me an NTSC Amiga 500 for the cost of shipping it from Canada. In spite of the numerous reasons I’d concluded that I didn’t want to dive into the deep end of collecting genuine Amiga hardware just yet, how could I possibly pass up what was essentially a free Amiga?

The Amiga 500 might not be the most sought-after model of Amiga, sure, but it is the classic model that most people picture first when they think of an Amiga computer, and really the model that kicked off Amiga’s most successful years. It’s the most common model so there’s a wide array of peripherals, compatible software, and modifications. The Amiga 500 also has the added benefit of not typically needing to be “re-capped” quite as desperately as most other models, which is always a concern when dealing with such old hardware. On top of all of that, it is indeed the Amiga I most pined for as a kid. Of course I accepted Frank’s offer!

My Amiga 500 Just Unpacked

I picked up the package one afternoon after a long day at work and, despite my exhaustion, wasted no time ripping open the box like a kid on Christmas morning. After almost 30 years of wanting one I finally had a Amiga 500 sitting in front of me. Along with the incomparably talented and influential Ungennant agreeing to do the ANSI art for Darkness 2.0, getting my hands on this Amiga 500 was one of the happier moments I’ve had with this hobby in my adult years. I was seriously giddy.

I could immediately tell from the Commodore logo sticker, and verified by the mushy feel of the keyboard, that this wasn’t one of the more sought-after “chicken lips” variations of Amiga 500 with one variety of mechanical keyboard or another, but I really wouldn’t expect Frank to let one of those slip through his fingers so easily. No major damage, and surprisingly it had all of its expansion covers and even all of its rubber feet still intact. Frank hadn’t done much with it yet, though he had tested it, cleaned it up a little, and even used it in an article he wrote about “retrobrighting”. The keys on the keyboard could probably use another round, but overall the machine was in great shape.

Inside of My Amiga 500

Naturally, the idea of installing some more exotic upgrades, accelerators and the like, had occurred to me, so I wanted to verify the revision of this Amiga as soon as possible to see what my options were. I opened it up and found the inside to be nice and clean with no obvious signs of weird hacks, bulging capacitors, or anything else amiss. According to the printing on the board itself and serial number sticker carelessly slapped on top of it, this Amiga is a revision 5 manufactured in 1988. Good! This shouldn’t pose any compatibility concerns going forward other than some issues with newer Kickstart ROMs (the so-called “oops” bug) which I’m not too concerned with for now.

This is about where you’d expect me to plug it in and turn it on, of course, but the one compromise in acquiring this Amiga (there’s always a compromise!) was that, while it might have been cleaned and freshly retrobrighted, it would arrive lacking a power supply, a mouse, or the 512KB trapdoor memory expansion that most Amiga 500s either came with or were quickly upgraded with. Very minor problems, I think, and given the cost of the computer itself, the price to hunt down these components is easy enough to justify.

That comes next!

1. My new Amiga 500, freshly unpacked. Thanks Frank! ❤
2. Getting a little artistic with a shot of the mainboard. Beauty, eh?

Distortion Improvement Project (2020)

Summer is here and change is in the air. I’ve just completed a lengthy list of, for the most part, long overdue updates and changes to my BBS, Distortion. While realizing my task list was growing quite long, I jokingly dubbed it the “Distortion Improvement Project”… and here we are. Yeah, I realize I’ve yet to really post much about Distortion here, and I’ll correct that soon enough, but the chronology of this blog comes down to wherever my mind is at the time, and you should know I struggle with ADHD. 😉 While this information is mostly only interesting to Distortion users (and I know there’s a few of you reading this blog!) I’d also like to document the process of doing some of these changes, particularly the modding work, so if anything in this list jumps out as interesting to you, please leave a comment or drop me a line some other way and I may accommodate you in a future post.

D1st by Radman and Mattmatthew

  • SSH is now available to all users on TCP port 22. SSH is gated back into telnet over Distortion’s local network so that door games and other externals will still work properly. Viva la encryption!
  • Replaced our locally hosted fTelnet terminal to use the latest embedded, hosted version. You can access this via if you’re ever in a spot where you don’t have a good ANSI capable client around.
  • Added Mystic’s spellchecking functionality to our full screen editor. Auto-suggest is not turned on but you can always manually view suggested words by hitting CTRL-W over a misspelled word. Now you illiterate bastards have zero excuses. 😉
  • Added Mystic’s draft message feature to the message menu. This is just too damn useful not to have on. Try it with “D” from the message menu next time you find yourself disconnected in the middle of a huge message.
  • Private messaging is now available on the inter-node menu (after previously only being an option after receiving a node message from someone else for years. Kind of a dumb oversight, I admit.)
  • While we’re adding nifty Mystic features, I’ve finally caved and added some long, long requested convenience features as what I’m calling the “modern” theme vs the “classic” Distortion theme:
    • Scrolling ANSI/bulletin viewers
    • Lightbar file and message area selection
    • Lightbar/ANSI message reader
    • Lightbar message index viewer
    • Lightbar file lister
    • Lightbar archive viewer

    Distortion by Firestorm

    Everyone will start out in “classic” which should work more or less the same as you’re used to, but you can toggle your theme or enable and disable specific pieces of this via the “J” option under the user configuration menu.

  • While updating bulletin files to work with my new bulletin viewer, I’ve made numerous updates to them. nothing too exciting, but worth mentioning. I also removed some old bulletins from the extended bulletins menu (which has been redesigned) and added local game scores.
  • Speaking of games, I’ve made several changes to our doors:
    • Legend of the Red Dragon has been reset!
    • Legend of the Red Dragon also has the Barak’s House IGM now. Woot!
    • Legend of the Red Dragon 2 has also been reset!
    • Planets: TEOS has also been reset, and boy did it need it. blah.
    • Planets: TEOS has had the landfill IGM added to it.
    • I’ve added The Brandy Bunch Adventure mini-game (via REFDoor.)
    • I’ve removed Darkness 1.0b and replaced it with direct links to the Darkness 2.0 games hosted by DoorParty and BBSLink.
    • I’ve removed the BBSLink submenu and replaced it with a link directly into BBSLink’s own menu.
    • The Darkness testing link has been changed – it will now run Darkness directly out of my development directory, though it will only be made accessible when the release of a new version is impending (otherwise you’d need to deal with me resetting the data files all the damn time, which would get seriously annoying.)

    Apologies if anyone was actively playing any of those games, but I’m going to be joining each of them now that they’re reset, so if nothing else maybe we’ll get some new blood in them.

  • SciNet and ArakNet message networks are now publicly available. We’d been members of SciNet long ago before Netsurge’s return, but left it private after getting back on it. Likewise, I’d left ArakNet private while working out some kinks. Check them both out – both are great message networks!

    Sorry if your new message scans get flooded with new messages in these echos – I’d recommend manually resetting your new scan date after you scan the old areas.

  • I’ve removed the old mandatory announcements message area and replaced it with a news bulletin reader mod. You can choose to mark the news as read and it won’t show up for you again until the next time the news file is updated. Note that the display of the news reader will be affected by your bulletin viewer theme settings.
  • Numerous artwork changes:
    • I’ve added some new screens here and there, such as additional welcome and goodbye screens, a second user stats screen, etc. The two pictures on this article are two of the newly added screens. The ASCII by Firestorm is perhaps one of the oldest non-Filth pieces we have, while the logo is a much newer joint featuring Radman of ACiD fame. How many people have ANSIs drawn by Radman?! Too cool.
    • Also, even though few telnet/SSH terminals have major issues with end of line wrapping nowadays, I’ve teleported back to 2001 and removed the 80th column from a few screens that still had it. Rejoice, mTelnet users! 😛
    • To balance that out, I also extended numerous menus and other screens from 23 to 24 lines, most notably, the original long lost 24 line version of our matrix has been discovered and re-implemented!
  • Numerous minor changes to the new user creation process, including a welcome email replacing the old mandatory message, and a new screen with advice on appropriate ANSI-BBS compatible telnet/SSH terminals.
  • Finally, and perhaps least significantly, our original address from 20 years ago “” is back online. Why? Because why not?

There’s more coming, but that’s it for this batch of changes. Enjoy!

1. rad2m-hotmess.ans by Radman and Mattmatthew from Blocktronics: Acid Trip (2013)
2. fm-dstr.asc by Firestorm from ACiD Acquisition #54 / Remorse #7 (1997)

Introducing REFDoor

I had several sources of inspiration when working on Darkness 2.0’s simple “DRS” scripting language, from some specific dialects of BASIC to good old MS-DOS Batch. In the end, it most closely resembles a combination of the Exitilus Quest Scripting language (EQS) and RTSoft‘s “REF” scripting language. Syntax aside, REF was definitely the bigger influence in even coming up with a scripting language in the first place, as it might have been my first real exposure to the concept.

I first stumbled upon REF back in 1995 when I randomly nabbed a copy of RTReader version .02, likely from Seth Robinson’s BBS itself. RTReader was a standalone interpreter door for REF, Seth’s own proprietary scripting language. The archive included a single script called “The Bloody Claw Newsletter” which included some updates from Seth on the state of RTSoft and some other random stuff. Most appealing of all, it was filled with Seth’s infamous brand of humor. As a huge Legend of the Red Dragon fan, I was captivated and eagerly awaited the release of the next issue. I also ended up taking a look at the included documentation and, while I remember being impressed, I was mostly puzzled about why someone would put so much effort into such a complicated engine for a relatively simple program. Of course, when Legend of the Red Dragon II: New World was finally publicly released a couple of years later I learned that the game was almost entirely scripted using REF, with RTReader itself likely morphing into LORD 2’s engine at some point. Very cool.

The What's New section of RTNEWS02.REF running in REFDoor

Despite the immense popularity of Seth’s other BBS doors, it seems that relatively few people are familiar with RTReader. While I’ve worked with quite a few similar scripting languages since then, I never forgot about it myself, and when trying to decide what DRS would look like, I dusted off the original RTREAD02.ZIP archive and reacquainted myself with the documentation. With Darkness 2.0 finally released and the nascent version of DRS out in the wild, I found myself thinking back to REF, and wondered if I could implement a scripting language like REF in the same way I had coded DRS’s interpreter.

You see, when coming up with DRS, a core concept was to keep it as simple as possible, both for creating new events with, but also in respect to how I’d implement it – I didn’t want to spend forever on what I knew would be a seldom used side feature, for one. What I ended up doing was interpreting DRS script files in “real time” parsing the file as I read it, line at a time. Most similar interpreters would instead load the entire script into memory, allowing for much faster and more dynamic access to the code. Of course, I ended up having to include some interesting little tricks to get things like hopping to labels that were defined earlier in the script file working, for instance, but in the end it all worked quite well.

So, with REF on my mind, I tossed around the idea of expanding DRS to be more REF like, or replacing it with REF entirely. I even pestered Seth to see if he had the rights to release RTReader’s source code (if he even still had it) so that I could peruse it, curious about how he had handled memory management since this would be the biggest single difference in our interpreters. Still, my original question lingered, could I do something like REF the same way as DRS?

Yes. Yes, I could!

REFDoor's built-in REF Picker Menu

Starting in September 2019 I worked sporadically on writing my own REF interpreter based on my Darkness 2.0 DRS code. Of course, I had to reverse engineer the entire thing – relying on a combination of referencing Seth’s original RTReader and LORD 2 REF documentation, numerous publicly released script files, and good old fashioned observation of how RTReader actually behaved which, quite often, wasn’t exactly 1:1 with what was documented. I did end up occasionally looking at the (incomplete) source code that Seth graciously released, as well as Rick Parrish’s LORD 2 clone‘s source code, but given the constraints of my goal for this new interpreter, I couldn’t exactly rely on either for much more than solving the occasional mystery. It ended up being a fairly large project by my standards (I did end up taking a solid 4 months off from the project right in the middle of it, in my defense) but getting RTWALL.REF and soon after RTNEWS02.REF (the aforementioned Bloody Claw Newsletter) to interpret 100% accurately in March were huge milestones that kept my momentum going decently from then on.

I ended up adding quite a few of LORD 2’s enhancements to the language, and even some of my own, while maintaining 100% backwards compatibility with RTReader. After emailing Seth for permission to include his original archives and him mentioning his LORD 2 REF based mini-game The Brady Bunch Adventure, I also added some additional LORD 2 compatibility to get it (mostly) working properly as well. In the end, I hope this release comes across as fairly polished – I put a lot of care into the features, the accuracy of their functionality, and the documentation.

Download v1.0.0 of REFDoor!

REFDoor is based on the usual XDoor 3.x door kit I use, meaning it’s available in a 16-bit MS-DOS FOSSIL friendly version, as well as a 32-bit Window DOOR32.SYS version. Both builds, as well as all of the aforementioned RTSoft REF scripts, are included in the archive. A big thank you to Seth for allowing me to include them!

The intro screen from BRADY.REF running in REFDoor

Keep in mind that if it’s not obvious by now, this was mostly a project I did for my own selfish purposes, so it’s practical uses are somewhat questionable. That being said, I do think some SysOps and/or developers might be able to make some good use of it – it would be a fairly effective way to make quick, custom doors for BBS software with limited built-in modification capabilities, for instance. Hey, if nothing else, you can easily setup The Brady Bunch Adventure on your 64-bit Windows BBS using it!

So, beyond that? Well, I’m still toying with the idea of adding REF functionality into Darkness 2.x for event and/or IGM creation. I’ve also started doing some prototyping on a new door game that would use REFDoor as a foundation, similar to what Seth did with LORD 2. Who knows for sure, but I had a lot of fun working on it.

You can read a little more on everything else mentioned here in the REFDoor documentation included in the archive if you somehow haven’t read enough already. Enjoy!

As a side note, the only version of RTReader I’ve ever seen is version .02, and it includes The Bloody Claw Newsletter Issue #2. Does anyone have or even know of the existence of an earlier (or later) version of RTReader and/or other issues of The Bloody Claw Newsletter?! If so, contact me!

1. The “What’s New At Robinson Technologies” section from The Bloody Claw Newsletter Issue 2
2. REFDoor’s built-in REF picker menu, which apes the look and functionality of RTReader
3. The introduction screen/menu from The Brady Bunch Adventure