Zelch 64


Bo Zimmerman


If it seems this program is getting special treatment, you're right. It is.

Working on Zelch 64 brought the programming for me from a sometimes argument with my computer to a daily puzzle and a beloved craft.


Zelch 64 v1.0 loader program on the left. v3.7 had floating "zelch" logos.

Like most BBS programs, this started out as a terminal program of some sort, to which was added a waiting for call section. When 1.0 was not yet completed, I began to have problems with periodic freeze-ups in the message editor. It bewildered me, until I consulted a manual and read about something called "garbage collection". I mention this because it led to my learning to program in machine language to get around this problem. Of course, other problems replaced it, but that's yet to come.

All these little programs are part of Zelch 3.7

Zelch 64 was designed from the start to be C-Net meets Color 64. The rainbow of text and graphics that flys accross the screen would bewilder the user and keep them coming back, so I hoped. A color cycle meant the user could define how the colors flowed, and the structured message bases meant no more following links to message numbers, or trying to follow four conversations at once. The modularity I discovered around v2.0 brought the possibility of online games into the picture, and solved memory constraint problems. Lastly, the key strokes required to activate the commands on the hot-key menus were made definable offline, which made it possible for "theme" BBSs to have those odd commands they always did. Flexibility was my ideal all along (a goal whose bounds I never dreamed of until Zelch 128).

Cheesy input prompts for entering time/date

Zelch 64 eventually became my love and my nemesis. It had a bug, you see. Not just any bug, though, but a fatal bug that followed it from version to version, from machine language revision to machine language revision. Countless hours spent in diagnosis, and other countless hours just patching in attempts to fix it. Zelch 64, you see, locked up at random during disk access, especially when someone was online. It sucked, and it spelled the eventual end of my 4 year project.

The fancy waiting for call screen.

Below are some Zelch 64 sub-pages. They contain revision information, and screen grabs from each version. I was only able to get up to version 2.4 to run properly in the emulator, so there are only main menu screen grabs up to that point.

Version 1.0
Version 1.5
Version 1.7
Version 2.0
Version 2.2
Version 2.3
Version 2.4
Version 2.5
Version 3.0
Version 3.1
Version 3.5
Version 3.7

You may also view some help files I'd written for version 3.7 for more information. There is a file for the message maker, the message bases, the user variables area, the transfer bases, an old features ad, and my old rules file.

You can also download version 3.0 here.

The Facts:

These stats apply to version 3.7, the last version written, released in 1989.

Hardware Information

Computer    :   Commodore 64 or 128 in 64 mode
Video       :   40 columns
Drives      :   CBM, limited CMD (no parts, no subdirs)
Modems      :   1650, 1660, 1670, Hayes (300-1200)
Input       :   Keyboard
Output      :   Screen, printer optionally
RAM use     :   RamDOS compatible
Special     :


Pgm Struct  :   Main program with numerous small modules
Menu Struct :   Modular design with hotkey menus
Translation :   ASCII, PETSCII
Access      :   9 incremental levels, completely definable
Handle/ID   :   Handles allowed, users listed by ID
User info   :   Name, last call, phone, baud, password, etc.
User Logs   :   Name, date, all keystrokes
Calls/Time  :   Call/Time may vary with each access level
Network     :   N/A
Customizing :   Somewhat
  Programs  :   Uncompiled BASIC, changable
  Displays  :   Displays and menus are SEQ files, changable
  Commands  :   Command keys are changable, commands hard coded
Areas       :
  E-mail    :   Separate menu
  Messages  :   Separate menu
  Transfers :   Separate menu
  Network   :   N/A
  Programs  :   Separate menu
  Text      :   Separate menu
  User Cmds :   From main menu
  SysOp     :   Separate menu
  Voting    :   From main menu
  News      :   N/A
  Help      :   N/A
Other       :

SysOp Utilities and Support

Offline     :   Configurator and setup program
Online      :   Chat, access change
Remote      :   Full user/file editors, drive access
On-L Display:   User information window
W.F.C. Utils:   Terminal program, local logon
Chatting    :   From anywhere, at any time
User        :   Full user editor provided
Msg Bases   :   Offline configurator and integrated functions
Transfers   :   Offline configurator only
Programs    :   Offline configurator only
Network     :   N/A
Drives      :   Full CBM-DOS prompt with extra functions
Terminal    :   Simple transfer terminal provided


Structure   :   Single SEQ file per access level
Header      :   No set header
Weeding     :   By SysOp
Display     :   At logon


Structure   :   Structured post/reply system
Bases       :   Named bases, listed by letter
Limits      :   Message and reply max/min limits per base
            :   Enforced during automaintenance
Reading     :   Local and global new, and individual
Headers     :   Name, date, subject
Format      :   Text and color/graphics
Writing     :   As new posts, or as distinct replies to posts
Anonymous   :   Not allowed
Network     :   N/A
Other       :

Message Editor

Structure   :   Line editor
Commands    :   Meta commands entered on a blank line
Editing     :   Insert, delete, search/replace, rewrite, center
Formatting  :   Word wrap, justification, line numbers
Graphics    :   Full color/graphics allowed


Bases       :   Named bases, listed by letter
Storage     :   As marked files in the directory
Limits      :   Block limits for each xfer base, enforced by system
Credits     :   Ratio system implemented
Protocols   :   Punter only (multi)
Headers     :   Filename, blocks, type, and "about" files
Selection   :   By filename
Listing     :   Directories only
Network     :   N/A
Other       :

Text Libraries

Structure   :   List of SEQ files
Storage     :   As standard SEQ files
Network     :   N/A
Other       :   Downloadable


Structure   :   From separate menu off main
Sending     :   By handle or ID
Receiving   :   At logon, or on demand
Network     :   N/A
Other       :

Program Libraries

Structure   :   Named bases, listed by letter.
Programs    :   BASIC, explicit interaction with BBS
Network     :   N/A
Other       :

If you find anything in here you have questions or comments about, free to leave me email right here.

To return to my home page, click here.