BBS Related Podcasts

I’d been meaning to write a quick post on vaguely BBS scene related podcasts for quite awhile now, but a couple of things transpired at nearly the same time which meant the time was right.

While there are a number of good retro computing and gaming related podcasts out there (several might even feature the odd interview or other segment related to BBSing) and maybe a couple centered around the demo scene, there aren’t any actually about the BBS or art scenes. Fellow SysOps and textmode artists Smooth and Anachronist are attempting to correct that with the launch of Textmode Underground. The plan is to focus on a particular subject each episode, along with news and other updates, with the first one focusing on tips for setting up a unique BBS. With only one episode out so far, there’s a lot of potential for this to be a mainstay of the scene if the guys are able to keep it up. The podcast doesn’t seem to have been spread to the usual platforms yet, but you can find it on YouTube here and its RSS feed here.

Coincidentally, I recently added a new show covering stories related to infamous hackers and related HPCAV shenanigans called Modem Mischief to my podcast feed. While any good underground story taking place before the late 90s is going to at least mention BBSes, the podcast is definitely not BBS scene focused in any way. That said, shortly after listening to the episode about the Legion of Doom (a story I was familiar with as one of the subjects of the absolute classic The Hacker Crackdown) my friend Esc mentioned that the creator had been posting on /r/bbs and mentioned being the cofounder of Zer0net. An email or two later, and sure enough, I’ve confirmed that this is none other than Marlon Brand0, former SysOp of Black Hole Cafe and the legitimate cofounder of Zer0net. Small world! So, next time you listen to an episode of Modem Mischief, know that the dude talking actually knows a thing or two about what he’s talking about! Check out the Modem Mischief podcast here, or wherever you prefer to grab your podcasts.

Finally, I want to give a shoutout to Jason Scott of BBS: The Documentary and textfiles.com fame’s podcast, Jason Scott Talks His Way Out of It. With well over a hundred episodes, not many of them are focused on BBSing, but often semi-autobiographical, a great many of them mention BBSing, retro computing, digital archiving, hacker culture, and a number of other “scene adjacent” topics. Not everyone in the scene loves Jason for various reasons I won’t bother to get into, but I’ve always related to and appreciated the passion that he puts into his personal writing, talks, and now these podcast episodes, and there are a lot less entertaining things you could be doing than listening to his unscripted anecdotes about subjects you likely have at least a passing interest in. Jason’s homepage for the podcast is here.

Twenty Twenty-two

It’s been far too long, almost an entire year in fact, since I’ve posted anything to this blog. While I wouldn’t say I’ve been inactive (for instance, I’ve done a lot more work on my Amigas and expanded my collection much more than detailed here) I’ve definitely been spending less time on BBS and other retro computing related pursuits in the last year or so. Fortunately, my lack of writing on these subjects reflects that more than a lack of interest in this blog.

That said, I still have tons of planned and half finished projects, and each one of those should produce at least one post, many of those are already half written as well. I also still have a lot of other content planned and even more beyond that I’d love to see make it here. It’s really been a matter of free time, energy, and the lack of motivation to push beyond those limitations. With the new year, I’ve decided to make one of my many informal New Year’s resolutions to improve that; I’ve made it a goal to make at least one significant post a month here.

Although I hate teasing anything that could wind up as vapor, I feel like I owe it to my few regular readers to give a glimpse behind the curtain. Here are some of the things in the pipeline:

  • More articles about BBS history from my perspective, including the long overdue overview of my BBS, various groups I’ve been a part of, etc.
  • Retro game and software overviews/reviews – mostly my favorite era of late 80s – mid 90s DOS and Amiga games.
  • The occasional article on misc. retro hardware, emulation, and other projects.
  • More updates on my Amiga 500 and related projects including upgrades, repairs, more acquisitions, software, and emulation.
  • Hopefully news on Darkness 2.1 and perhaps at least one more planned door game.
  • A series of deep dives into some of my favorite old BBS software packages and interviews with their authors.
  • An ongoing series of (currently accessible) BBS reviews and interviews with their SysOps.
  • Brief reviews of related books and movies, since I tend to ingest a lot of those.
  • More smaller updates about releases (such as art packs) and updates (such as Zer0net nodelist revisions.)
  • Possible compilations of this content into some old school text format zines.

Stay tuned!

REFDoor 1.2 Release

I’m publicly releasing version 1.2.0 of my REFDoor REF scripting engine door today!

This release contains all kinds of bug fixes, some new commands, and a slew of behind the scenes optimizations and improvements including changes which should greatly improve REFDoor’s performance when running on retro hardware. The most notable under the hood change is the addition of what I’m calling “memory mode” which behaves very similar to the original RTSoft RTReader by reading the entire script into memory for faster parsing and less disk activity. This may seem incredibly draft to the few of you who read my REFDoor 1.0 article and/or its included documentation and recall that the whole reason I developed REFDoor was specifically to see if I could mimic the entirety of the original parser’s behavior without reading the file into memory, but as I have vague aspirations to use REFDoor as the engine behind a future door game project of some sort, I want to implement as many options and improvements as possible.

Here’s the entire WHATSNEW.TXT file (which includes the unreleased 1.0.1 and 1.1.0 versions) for reference:

REFDoor v1.2 What's New?
---

 ! = Bug Fix
 + = Additions / Changes
 - = Removed
 * = Additional Notes


v1.2.0 - Released 02/12/2021
---

 + Added "DO CENTERPAD" command which works similarly to DO PAD and DO FRONTPAD
   but centers the string within the specified length (defaults to 80 if not
   specified) padding out the string with spaces on either side. Similar to
   "CENTER" but potentially more useful for things like title strings with
   different backgrounds, etc.
 + Added the "IS CHAR" function to the "DO" command. This function will allow
   you to return the character at the specified position from the provided
   string. Until now, you haven't been able to access characters from strings
   in REF. This should help with enable numerous string operations that would
   have previously only been possible with built-in REF commands.
 + The "SHOW SCROLL" command now optionally accepts a parameter pointing to
   an external file to display instead of parsing the "SHOW SCROLL" text
   inline.
 + Added a clean up procedure to REFDoor's startup to clean out any orphaned
   temporary file for the node being launched. In most cases this won't have
   fixed anything since most routines check for these files and remove them
   before generating a new one.
 + Added "memory mode" which loads the entire script into a memory buffer. On
   some systems this will be dramatically faster than the default line-by-line
   text parsing and with no IO hit, though on some it may not actually improve
   performance. Memory mode requires at least 64K of convential memory free
   and maxes out at around 640K per file. When using commands like "RUN" or
   "ROUTINE" to call other scripts, memory will be swapped. Memory mode is
   available by using the "/M" command line parameter.
 + Added label mapping when using memory mode - when a script is first launched
   (or reloaded after a swap) the label positions in the script are mapped into
   memory to make "DO GOTO" calls much faster on slow machines. The traceoff is
   that slow machines will also see a 1-2 second delay while this is happening.
   Semi-modern machines won't even notice.
 + As such, "NOCHECK" command as been made functional. This disables the memory
   mapping functionality from when it is encountered on. I'd highly recommend
   NOT using this for anything but very simple scripts (at least on slow
   machines - it shouldn't make much difference on semi-modern machines!)
 + Added an alternate version of "SHOW SCROLL" which parses a text file to
   memory when using memory mode. This version looks identically but allows
   line scrolling using the up and down arrows, has instant file export, and
   the find command results in the exact line of the next hit rather than just
   loading the page. The memory mode "SHOW SCROLL" should result in
   dramatically improved performance when loading massive amounts of text on
   slower machines.
 * If you're running into memory mode / memory usage issues, REFDoor logs some
   potentially helpful details about memory availability and usage. Use the
   new /V switch to see them.
 ! Fixed a display issue with the status bar in "SHOW SCROLL" when viewing a
   larger number of pages. Changed the entire layout of the status bar to
   compensate - while its no longer identical to RTReader, it still looks
   very similar.
 - The 16 bit DOS compatible executable no longer uses an overlay file. It was
   used before to leave the maximum amount conventional memory free but due to
   the way REFDoor is structured, resulted in extremely bad performance on
   older (386, 486, etc.) machines. I may revisit this in the future as it
   would allow for a larger buffer to be available when operating in memory
   mode, however, RTReader worked the same way, so this shouldn't be a massive
   negative. I would love to know if this change negatively impacts you!
 ! Fixed a bug related to page up/page down key detection, which particularly
   impacted the "SHOW SCROLL" commands.
 ! Fixed a very isolated bug where REFDoor's ANSI parser would process display
   codes if they were at the beginning of a line right after a CRLF on the
   previous line, *before* showing the MORE prompt for that line during a
   @DISPLAY or @DISPLAYFILE command, thus sometimes messing up the MORE
   prompt's display. This only fixes invalid codes - valid codes can still
   potentially be parsed this way, causing some odd behavior in rare instances
   - it's unlikely you'll be displaying files with control codes besides colors
   this way in the first place. Unfortunately a complete fix would require
   rewriting the ANSI parser (which I should probably do one of these days.)
 + Various logging changes including logging exit codes / error levels when
   a halt is issue, as well as a revised exit code scheme.
 + Added "SCROLLTOP" which lets you define where the SHOW SCROLL window starts.
 + Added "SCROLLSIZE" which lets you define how many lines long the SHOW SCROLL
   window is.
 + Added "SCROLLFOOTER" which lets you enable or disable the footer bar below
   your SHOW SCROLL window.
 + Added "SCROLLHEADER" which lets you enable or disable a header bar above
   our SHOW SHOW SCROLL window.
 + Added "SCROLLTITLE" which lets you define a title displayed in the SHOW
   SCROLL header, if used.
 + Added "SCROLLCOLOR" which lets you customize the color scheme of your
   SHOW SCROLL header and footer bars and pop-up windows.
 + Added "DO READYESNO" which will display a Yes/No lightbar prompt and set the
   provided string variable to the result.
 + Added "YESNOMAP" which allows you to define the strings of the yes and no
   selection prompts on the following two lines, respectively.
 + Included a silly little WHATSNEW.REF example script. The script's only
   function is to view the WHATSNEW.TXT file included in this archive, but it
   demonstrates several new-ish features, such as using SHOW SCROLL to view
   an external file, customizing SHOW SCROLL, using LIGHTBAR, using CENTER and
   CENTERPAD, and using DO READYESNO and YESNOMAP.
 + As mentioned earlier, there is now a /V command line parameter to enable
   more verbose logging. Generally, REFDoor will only log errors, warnings, and
   SysOp related events. If using verbose logging, you'll see additional
   information messages about loading and exiting, memory usage in memory
   mode, etc. This should improve performance, especially with memory mode on
   slow machines.
 + Modified main parser routine to more efficient handle parsing commands,
   though performance increases probably aren't noticible on anything but
   VERY old/slow machines.

v1.1.0 - Released 01/19/2021
---

 ! Added a range check to parsing string variables to prevent an invalid string
   variable reference from sometimes looping infinitly.
 - Removed some unnecessary variable / control code parsing passes from a
   several commands which might slightly improve performance in some cases.
   These commands were among the first I coded, before variables were parsed
   when read, meaning the separate parsing pass was necessary.
 * I added the following by request to assist with making BBS software specific
   doors. These are really only for specific use cases - DO STRIPALL/STRIPCODE
   should still be the primary command for stripping user input.
 + Added "DO STRIPPCBCOLOR" which strips PCBoard style @ color codes.
 + Added "DO STRIPWCCOLOR" which strips PCBoard style @ color codes.
 + Added "DO STRIPPIPECOLOR" which strips pipe style color codes.
 + Added "DO STRIPSETHCOLOR" which strips SethCode style color codes.
 + Added "DO STRIPWW4COLOR" which strips WWIV style heart color codes.
 + Added "DO STRIPALLCOLOR" which strips all known styles of color codes.
 * Likewise, added a few commands to convert BBS specific color codes to
   REFDoor's "SethCode" style color codes. Note that these only support the
   standard 16 color palette and do not support blinking or ICE colors.
 + Added "DO PCBCOLOR2SETH" to convert PCBoard style @ color codes.
 + Added "DO WCCOLOR2SETH" to convert Wildcat! style @ color codes.
 + Added "DO WW4COLOR2SETH" to convert WWIV style heart color codes.
 + Changed the REF parser version to "11". Starting from this release onward
   the versioning scheme will be based on the major+minor version of REFDoor
   itself. Since this number will always be more than RTReader and LORD 2's
   version of "2" this shouldn't break backwards compatibility, but it will let
   us use the VERSION command for its intended purpose going forward, with the
   assumption that any minor version will include changes/additions to the REF
   language.
 + Added "PAUSEMAP" command. Works exactly the same as MOREMAP but only affects
   the PAUSE command's pause string. This will let you have separate pause and
   more prompts, as long ase PAUSEMAP is defined after MOREMAP.
 + Changes to various SysOp side strings to make the aesthetic a bit more
   fitting for REFDoor rather than previous Darkness styling.
 + Futher changes to the local login to make it look a bit more like the local
   login in post RTReader doors like Planets:TEOS 2.00 and LORD 2.
 ! Fixed a various typos in the documentation.

v1.0.1 - Unreleased
---
 ! Fixed an issue where I was using a Integer instead of a LongInt for filesize
   in the REF picker menu. VP defaults to LongInt sizes for integers, but BP/TP
   uses smaller integer sizes which are too limited for this purpose.
 + Added new multinode sensitive open text file procedures similar to xDoor's
   but with remote output and logging of errors. Updated all text file read
   only and append opens (temporary files, mostly) to use the procedures. Many
   of our procs that were opening text files weren't opening them safely.
 ! Fixed a formatting issue where the time left was being set to a different
   color in Xdoor's updateTime proc than in the statusBar drawing proc. This
   usually manifested itself after the statusbar was redrawn by commands like
   DES and PROGNAME.

v1.0.0 - Released 06/19/2020
---
 Initial release.

Download v1.2.0 of REFDoor!

For the record, I’m planning on continuing work on REFDoor for as long as I continue to make any use of it. I was originally pretty wishy-washy on whether there would be any future work done on the engine, but I’ve finally decided that any work I do to it, even as part of another door, will be rolled into REFDoor proper and released. Stay tuned!