Heaton Research

The Apollo64 BBS System for the Commodore 64


Apollo64 BBS System

This blog post will likely be updated in the future to add additional resources for the Apollo64 BBS system. I doubt that anyone will run an Apollo64 BBS system in the year 2013; however, this will keep me from losing the source code to this system. All Apollo64 code is now under the LGPL license if you need anything. Apollo64 is a BBS system that I started creating back in 1987. I used it to run a single line BBS, called Mission Control, in St. Louis, MO. You can still find it on some of the old BBS list text files for the 314 area code. Running a BBS on a Commodore 64 was a real stretch of its limited resources, even in 1987. Many of the larger BBS systems back then ran on IBM compatible hardware. It was just so much easier to attach a hard drive to a PC clone than it was a C64.

Arguably the most popular Commodore BBS system of the time was Color 64 by Greg Pfountz. This BBS system required either a Commodore 64 hard drive (such as the Lt. Kernal) or a Commodore 64 RAM Expansion Unit (REU) to run. Both of these two options allowed Color 64’s various modules to be banked in and out of the Commodore 64’s limited 64K of RAM. In the 1980’s I was a high school student, and just the cost of an extra phone line was about all I could afford. An REU or Hard Drive was more than I wanted to spend. So, with more time than money at my disposal, I wrote my system. By writing most of it in 6510 assembly language, I was able to eliminate the need for an REU and simply run from my two Commodore 1541 disk drives. Later I would add a 1581 for file downloads. I created my BBS after a NASA moon shot theme, so Apollo64 became the name. The software was run both by my system and spread to a number of other sysops, mostly in the Missouri and Illinois area codes.

Apollo64 supported many of the popular features of BBS’s at the time:

  • Message Boards
  • File Transfers (using both XModem and New Punter) protocols)
  • Sysop Chat
  • Text Files
  • Online Games

Instructions for Apollo64 Setup

I’ve copied this part from the text files that I distributed with Apollo64. I’ve updated the formatting a bit to use MarkDown.

If you bought a copy of Apollo64 from Mission Control BBS, I would have mailed you a two-sided disk. If you downloaded Apollo64 from the Mission Control BBS, you would obtain 8 ZIP files that contain the two sides of the Apollo64 BBS.

Side one is composed of the following files.

  • 1!a64-1-s1
  • 2!a64-1-s1
  • 3!a64-1-s1
  • 4!a64-1-s1

Side two is composed of the following files.

  • 1!a64-1-s2
  • 2!a64-1-s2
  • 3!a64-1-s2
  • 4!a64-1-s2

I suggest you duplicate both. Side 1 is used only to boot Apollo64; it will not change. Side 2 will become the primary disk of your BBS. You should
dedicate one of your drives to side 2. Side 1 is not used anymore once your BBS boots. Additional drives will be used for download sections of your BBS.

To boot Apollo64 use the following command:

LOAD "*",8,1

You will be prompted for your BBS data disk once Apollo64 boots. This ensures that the maximum space on your data drive can be used for the BBS. It is suggested that your data drive be drive 8.

Apollo64 makes use of PRG, SEQ, and REL files.

  • REL files - Your user log. This is a CBM Relative file.
  • PRG files - The Apollo64 BBS and other models/online games.
  • SEQ files - Textfiles, these support PETASCI art. Most of these were created with Kaleidoscope.

All files on the Apollo64 data disk that are used by the BBS start with the character plus (+). This prevents uploaded files from accidentally or for hacking purposes overwriting the Apollo64 files. If you only have one drive, you will likely share your data disk with uploads sections.

Users are assigned Access levels, from 0-9. The following access levels are defined:

  • Access level 0 A new unvalidated user.
  • Access level 1 A regular user without access to the file downloads.
  • Access levels 2-7 Regular users.
  • Access level 8 Cosysop.
  • Access level 9 Sysop.

The files on the Apollo64 data disk are for the following uses.

  • +apollo64 The BBS software.
  • +userlog The userlog, this file is critical. Lose it, and your users will all need to relog.
  • +config the varying sysop/cosysop menus edit the configuration settings for your BBS> This file.
  • +data The data that the BBS keeps to run, not config.
  • +hold Holds the user’s state when the BBS leaves to run a game.
  • +messagebase The messages.
  • +menu 0 The menu for access leve 0.
  • +menu 1 The menu for access leve 1.
  • +menu 2 The menu for access leve 2.
  • +menu 3 The menu for access leve 3.
  • +menu 4 The menu for access leve 4.
  • +menu 5 The menu for access leve 5.
  • +menu 6 The menu for access leve 6.
  • +menu 7 The menu for access leve 7.
  • +menu 8 The menu for access leve 8.
  • +menu 9 The menu for access leve 9.
  • +cosysop 1 The first cosysop menu.
  • +cosysop 2 The second cosysop menu.
  • +message text 1 Displayed when a user begins a text message.
  • +message text 2 Displayed when a user requests help for the text editor.
  • +system log The log of things that happened.
  • +feedback Feedback the users left for the sysop.
  • +calls Last few callers.
  • +ovl sysop 1 The sysop/system config overlay. External program.

Update 2018-10-08

I finally got around to releasing Apollo64’s source code to an Apollo64 GitHub Repo.