COLOR 64 BBS Documentation Version 7.37


Version 7.37

by Greg Pfountz

Copyright 1985, 1987

For more information, contact:

Timothy J. Allen
(a.k.a. Dynamite)

1222 S. Ash Ave., Apt. B
Mesa, Arizona 85281

Twilight Zone BBS


Richard T. Cunningham
(a.k.a. Wanderer)

8632 W. Windsor Ave.
Phoenix, AZ 85037

Desert Oasis BBS


The Color 64 BBS program has undergone many changes since it’s first inception in the early 1980’s. It started out with very little capabilities and quite a few problems. It’s evolution through 1993 saw its compatibilities with existing and new hardware become reality. Sometime prior to 1993, Fred Ogle and Anthony Tolle (with permission from Greg Pfountz) released another version called Color 64 Version Super ML.

This version, 7.37, is the last version done by Greg Pfountz himself. He made a contract with Fred Ogle sometime during late 1992 or early 1993 to transfer the “rights” to Color 64. Fred Ogle never paid Greg Pfountz for Color 64 (or the subsequent sales of Color 64) which made that contract null and void. Later on, Fred Ogle (with the help of a very good 64 programmer by the name of Anthony Tolle) released a new version of Color 64 called “Color 64 Version 8”. V8 is not compatible with the previous version. If he had held up his part of the bargain, he would have paid a portion of the sales of the new version to Greg Pfountz for the use of the Color 64 trademark. As of September 16, 1995 he had not paid a single cent to Greg Pfountz for V7.37, the sales of V7.37, or the use of the trademark in V8.

Through the grapevine (confirmed), I and my fellow sysops have learned that Fred Ogle has turned over V8 to another sysop (I think the name is Mike Sapeta).

In reaction to all this, Greg Pfountz made the following announcement on September 16, 1995:

“Color 64 Version 7.37 is now freeware. I do not expect or desire payment for it any longer. Making it available to anyone who wants it, and seeing that more people are enjoying the use of it, is enough reward for me. I make no claims against Color 64 Version 8 because I had nothing to do with it. In that regard, I do not support it in any way. I task Timothy J. Allen and Richard T. Cunningham with providing support for Color 64 Version 7.37 as long as their individual BBS’s remain in service.”

The cover page has the addresses and telephone numbers. Feel free to call or write at any time. Remember, we also work for a living and cannot respond immediately — patience on your part is required.

In summary, this last version by Greg Pfountz ended with supporting 2400 baud modems. We are trying to persuade a couple of good programmers to write the necessary modifications to allow the use of a UART. It may or may not come about, so you’re encouraged to find anyone who can do it.

Richard T. Cunningham – September 24, 1995








This BBS program is written in BASIC with just enough machine code to allow a 300-2400 baud modem to transmit and receive at full speed. The main purpose for writing a BBS in BASIC is to make it easy for you, the SYSOP, to do your own modifications. If you can do a little programming, you can make almost any desired changes to the BBS. However, if you need or want help at any time, feel free to ask.

The BBS supports public and private messages with or without CBM graphics, file transfers using XMODEM or Punter protocol (including multi-receive mode) from any number of drives, on-line text files, on-line help files, variable baud rates (300-2400), a self-maintaining caller log, date and time stamping on all types of messages, daily time limits, variable access levels including full remote SYSOP capabilities, voting, chat mode, feedback stored on disk in your private mailbox, autoreply to messages, automatic deletion of old unread mail, automatic purging of members who have not called for a certain number of days, hidden file transfers, SYSOP terminal mode with punter upload and download capabilities (for calling other boards), local mode (for calling your own board) and download directories that keep all files dated and in a chronological order. The program is written to be as crash resistant as possible, but if a caller happen to find a way to crash the system (causing a BASIC error), a small machine code routine will automatically rerun the BBS program. This BBS program will operate with almost any combination of disk drives. Of course some disk drives work better than others. With the bugs in a lot of the 1581 disk drives, it’s recommended that they be used only as upload, download, and text file drives. Color 64 will support most any type of Commodore printer (or other printer with a Commodore interface), but a printer is not required.

This program supports 1541 Flash (on device number 8 only). This DOS speedup kit, from Skyles Electric Works, triples the speed of a 1541 making the BBS much more responsive. If you have 1541 Flash, the BBS program will automatically detect its presence and instruct the computer to switch to slow mode when talking to any drive other than device 8.

As the program is written, it will work very well at 110-500 baud with a Commodore 1650 Auto-Modem, Total Tele. 64-Modem, Westridge, or any other 1650 equivalent modem as well as the Commodore 1660 Modem 300 (units with serial numbers greater than 100,000).

For 1200 baud operation, a Hayes Smartmodem 1200 (or compatible), 1670, or other 1200 baud modem connected through a suitable interface is required. If your modem does not support the Hayes AT command set, it must be an auto-answer, auto-baud-select type modem that supports DTR on pin 20, carrier detect on pin 8, and high speed indication on pin 12 and is connected through an Omnitronix interface. Actually there are many modem/interface combinations that will work. Rather than trying to list all the ones that will work, we’ll attempt to group the different modem types into categories.

1) The first and the best type of 1200 baud modem to use is one that can be programmed to not autoanswer (ATS0=0) and when the phone rings will accept the command ATA to answer the phone. This gives us the same positive control over the modem that we would have when using a 1650 type modem (that is, it only answers when we tell it to answer). A Hayes Smartmodem 1200, Volksmodem 12, the NEW Commodore 1670 modem (the version that has 4 switches on the back of it) and most other Hayes compatibles modems will operate in this mode. If you are using a Hayes Smartmodem 1200, set the internal DIP switches 3, 5, and 8 down; all others up. If you are using the NEW 1670, Switch 3 up and all other switches down.

2) The next best type of 1200 baud modem to operate your BBS on is an auto-answer modem that’s controlled by DTR. When DTR is false, the modem will disconnect the phone line and not answer another call until DTR is made true. This function is largely dependent on the interface and cable you are using. Also, this modem/interface must either say “1200” on the screen or set USER bit 32 high (e.g. modem’s HS pin 12 connected to an Omnitronix interface) when receiving an incoming 1200 baud call.

3) The third best 1200 baud modem to operate your BBS on is the ORIGINAL Commodore 1670 modem (not to be confused with the newer 1670 modem that has 4 switches on the back of it). This modem does not support either of the previous modes, but will connect up very easily to the BBS (no extra interface or cable needed), is reasonably priced, has a good clean 1200 baud signal and works reasonably well. The 1670 is slightly susceptible to giving your callers a false connection. That is, if a caller is on-line the BBS and hangs up without properly logging off, and if a second caller is autodialing the BBS, and if this second caller gets a connection very quickly, they may be temporarily connected to the BBS (but they wont see anything on their screen). This can always be avoided by having all of your callers properly logoff.

For 2400 baud operation, a Hayes Smartmodem 2400 or good compatible is required. The C64 is just barely able to support 2400 baud and the quality of modem and phone line are very important. Please refer to the end of this manual for instructions on setting up for 2400 baud use.

This BBS uses program overlays. In order to get the most out of the Commodore 64’s limited amount of memory, the BBS program is divided into several program overlays. The “bbs.init 7.35” program is responsible for initial variable setup, caller logon, password maintenance, and SYSOP term mode. “bbs.msgs 7.35” is responsible for all public and private messages. “bbs.xfer 7.37” is responsible for all uploads, downloads, and directory maintenance. “bbs.ovl 7.35” is responsible for chat mode, voting, help and text files. “bbs.ov2 7.35” and “bbs.ov3 7.35” are both empty skeleton files. You do not need the last two files, unless you want to add some user written code and store it in there. All of these programs are capable of changing baud rate, graphics mode and logoff. These overlay files are about 100 blocks each and would require close to 75 seconds to load on an unmodified 1541. So it’s required that you use an Epyx Fastload cartridge, Access Mach 5 cartridge, 1541 Flash, etc. on a 1541 or 1571 in 1541 mode; IEEE Flash on an IEEE Drive; or Chip Level Designs Burst Mode Kernal ROM replacement on a 1571 in 1571 mode, ICT hard drive (BOS 7.1 or later), or 1581 disk drive; Xetec hard drive with its own Host Adapter (make sure you set the NMI trap on – 01 – in the Lt. Kernal setup); CMD hard drive; or some other similar high speed disk load setup. With any of these examples, overlays will load in less than 15 seconds. Loads any slower than this will tend to raise complaints from your callers.

Another solution to the shortage of memory in the Commodore 64 is to add a C1700, C1764 or C1750 Ram Expansion Unit. These units add 128K, 256K and 512K (respectively) of external RAM to your 64 and will completely eliminate the need for program loading delays in the BBS. To use the C1700, C1764 or C1750, you just load “start 1700” instead of “bbs” or “restart 1700” instead of “reboot”. To speed up the initial transfer of the programs into the ram module, the 1700 loader routine will look for a fastloader program called “turbodisk64 3.0”. If it’s not on the disk, the loader will still work fine, just slower. This fastload program was in the August 1986 issue of Computes Gazette! Compute has a very strict policy stating that any programs published in their magazine are not in the public domain. So we are not able to include a copy of “turbodisk64 3.0” on your BBS PROGRAMS disk. Anyway, if you have “turbodisk64 3.0” and if the drive you are loading your programs from supports it, just add it to your BBS PROGRAMS disk.

As you may have noticed, each of the program overlay filenames began with a .
To type this character, you must press and hold either shift key, then press the @ key. This will produce a character that looks like a check mark. This special character is used to hide all of the system files from being seen or downloaded by your callers.

Anyway, after you have gathered together all your hardware and assembled your system, it’s time to run the Color 64 BBS SETUP program. You’ll need a blank formatted disk in each of the drives you plan to use on the system (with the exception of drives that are upload/download only).


The first thing you’ll need to do when setting up your BBS is to define a few SYSOP selectable parameters. To do this, put the “BBS PROGRAMS” disk into drive 0, device 8 and load”setup”,8,1. You may want to run SETUP the first time with Fastload disabled. On some systems, you will get a “NO CHANNEL” error when creating REL files while Fastload is enabled. If at a later date you rerun SETUP to just change a parameter, it’s okay to leave Fastload enabled. It seems to be safe to read and write REL records with Fastload enabled, just don’t create a new file.

After loading is complete, insert an already formatted blank disk into drive 0, device 8. This diskette will be used as your “BBS PARMS” disk and must always be in drive 0, device 8. Make sure you label it appropriately. You’ll probably want to start with a brand new high quality diskette since it will get a lot of use once your bulletin board goes on-line. After you press RETURN, you will see the first screen of SETUP.

Built into this SETUP program is a simple print screen utility. Use CTRL-f1 to activate it. This only works in SETUP. You may want to print each screen after filling them in for future reference.

The first question is for the maximum number of lines to limit each message. The default is 100 with a recommended range of 20 to 100. The smaller messages will take up less disk space, leaving more room for more messages or other files, while longer messages can save a lot of “continued” messages.

The next question is for the maximum number of columns per line. It defaults to 38. That will work best for callers using a C64 with its 40 column screen. This will keep Commodore’s screen editor from throwing in that annoying extra line when the cursor reaches the 40th column. Another thing to keep in mind is that the program was written to handle a maximum of 4000 characters per message. The product of the previous value and this value should be less than 4000. If you set up your line lengths and number of lines too large, the BBS will automatically lower the maximum number of lines per message to keep the system from getting an “out of memory” error. It’s possible to set the line lengths to 78 if you want to cater to 80 column machines.

The next question is for the maximum number of public messages the system will keep on-line at any one time. The program will automatically remove the oldest public message when a new message is posted and the total number of public messages on-line exceeds this variable. The default is 50 with a recommended range of 25 to 232. The Commodore 1541 and 1571 disk drives will allow up to 144 files to be stored on one diskette, while an SFD 1001 allows 224 files and the 9060 and 9090 hard drives can have an unlimited number of files in the directory. If you do setup for more than 135 messages, you’ll notice that maximum number of lines per message will automatically be reduced. Each message in the system requires several pointers in memory. The more pointers allocated, the less memory that will be left for entering a message. 232 is the maximum number of public messages that Color 64 can handle at any one time.

The next question is for the maximum number of passwords you want to set the system up for. It defaults to 100 with a recommended range of 25 to 999. Actually 999 is not the maximum number of passwords, the BBS will support a many passwords as your disk drive will handle (up to 32767). If a new caller applies for a password causing this value to be exceeded, then the BBS will send a message (“membership full”) telling the caller that the membership is temporarily full and to call back at a later date. You’ll want to make sure you give this value some real consideration as it will determine the size of the password file to initially create (approximately 120 blocks for 250 members). You can’t make this file larger by re-running SETUP and entering a larger value. If you do later change this value in SETUP to a larger value, the password file would grow one record at a time, scattering itself all over the diskette and increasing the time it takes to search through the file. If you are going to have enough disk space, we recommend you set the password file for 250 to 500 members (depending on the size of the city you’re in). This will consume about 120 to 240 blocks of disk space, but in the long run the system will run faster. If you did create this file too small and later decide to increase its size and if you find that the password file gets scattered, you could use “bak pswd 7.00” to make a backup of your password file. Then on a new blank disk, rerun setup to make a new larger password file and use “restor pswd 7.01” to restore all your passwords into the new password file. Then copy all other files (using Super Xfer) from the old disk onto the new one. This will make the files contiguous once again, greatly speeding up disk access time. On SETUP screen 3 you will be deciding which drive to put your password file on.

The next question is for the minimum number of blocks free allowed on the “PUBLIC MESSAGES” disk before the messages start cycling. You do not want to let this disk completely fill up, especially if it will also be storing private messages on it. A value of 50 is defaulted with a range of 25 to 75 recommended. If blocks free on this disk ever fall below this variable, every time any new message is posted, the oldest public message will be deleted even if the maximum number of messages is not exceeded.

The next question is for the minimum number of blocks free to allow uploads. A value of 75 is defaulted with a range of 10 to 75 recommended. If you are going to be storing private messages on the same disk, then you’ll not want to set this value less than 25. The BBS will not allow private messages to be sent if the directory falls below 25 blocks free. You will never want to set the value below 10. This is to allow space for the “directory” file to be processed after an upload. Note that the free space message given at the end of the directory list and before an upload will automatically be decremented by this value.

The next question asks for the maximum number of downloads you’ll allow per call. If you enter “999”, then for all practical purposes there will not be a limit to the number of downloads per call. When a caller reaches their maximum downloads per call, they must logoff and logon again before they can download more. This applies to all callers with an access level of 1 through 5.

The next 3 lines on this screen are where you’ll set up your download credit system. The first of these 3 lines is for the number of blocks of download credit you will give per block uploaded. The next line is how many free credit blocks you will give each new caller. After these free credits are used up, your callers will have to upload to earn more download credits. The third line is the access level at which your callers become exempt from the credit system. If you do not plan to use this credit system, just set this variable to 1 (making all your callers exempt).

While we are talking about the credit system, let’s go over a few more things. If one of your callers uploads a program that you do not want to count as a credit, you’ll need to use Password Maintenance to change their number of blocks uploaded variable to less than what is currently in that field (depending on the number of blocks uploaded). Lets say for example they already had 100 blocks uploaded and they uploaded another 50 that you do not want them to get credit for. Go into Password Maintenance and change the blocks uploaded from 150 to 100. If they had already downloaded blocks based on that upload credit, then when they call next time, they’ll have to upload that many more blocks before they can download again. This is important, as some callers will try to take advantage of the system by uploading the same files over and over (with different names) or by padding normal files to get more credit for the upload (often you can see the padding in your transfer window during an upload/download).

On the update disk is a program called “clr credits 7.00” that can be used to reset all or your caller’s upload and download counters, or optionally just one caller’s counters. This would be useful if you decide to start the credit system over after your BBS has been in operation for a while.

The way this BBS program tracks credits is by a mathematical formula based on the caller’s number of blocks uploaded and downloaded. The formula used to calculate download credits is:

(free credits) + ((uploads) x (credits per upload)) – downloads

This formula can calculate a negative credit if you implement this credit system on an operational BBS without first clearing the upload and download counters, if you remove any upload credits from a caller who had already downloaded blocks based on that upload’s credit, or if at a later date you change the number of credits per upload or number of free credits variables. If the number is less than or equal to 0, then that caller will not be able to download until they upload enough blocks to make their credit status positive again.

The next question on this setup screen is asking for the maximum number of days that you want the BBS to hold private mail before deleting it. This variable is actually an approximation with a maximum error rate of 3 days per month (always in your caller’s favor). If some of your callers do not call for a long period of time, there could become a significant amount of mail on-line that really doesn’t need to be there. Most likely if a caller does not read mail for more than 30 days, by the time it’s read it’s no longer important. When mail is deleted, an entry is made in the caller log at midnight indicating the member’s number who had their mail deleted. This could be useful in determining if this value is set too low and deleting too much mail. There’s a safety check built in to prevent everyone’s mail from being deleted if you should accidentally type in the wrong year or month when loading the BBS. When the system calculates how many days a piece of mail has been on-line, if that number exceeds the purge mail variable by 7 days, that mail won’t be deleted. You should remember this if in the future you decide to change this purge mail variable. Do not change it by more than 4 days at a time (allowing for the 3 day approximation error) and the system will never miss any mail that needs to be purged.

The next question is for the access level you want to give to your new callers. There are nine access levels allowed. Each level will have a certain amount of access and certain amount of time as defined by you, the SYSOP. We like to start all our new callers at access level 1 and increase their access only after validation. But you may feel differently, so this is where you would set the new caller access variable.

Now would be a good time to describe the various access levels as they are defaulted. You’ll be able to redefine much of this by changing the information on appropriate SETUP screens. But if you don’t, this is what the different access levels will look like.

Level 1 callers will only have the ability to read system messages and help files. They’ll not be able to hold any mail in their mailbox, read public messages, do any downloads or uploads or read any text files. This is a good place to start all new callers until you have verified the information left in their application.

Level 2 callers have all the abilities of level 1 plus they can read all the public messages and text files. This access level allows your new callers to look around and decide if they want to join the BBS. And since they cannot post any messages or upload/download, you don’t have to worry about hackers getting on-line and posting or uploading offensive material. This also is not a bad place to start all your new callers or to give access to unpaid callers on a pay system.

Level 3 callers have all the access of level 2, plus the ability to post public messages and do uploads and downloads. They still don’t have the ability to send private messages. This may be a good level to give to your callers if you are trying to get voluntary contributions. You could also set the credit system exemption level to 4, so that level 3 callers have something to gain by sending in a financial contribution.

Level 4 and 5 callers have full use of the system. That is they have all the abilities of a level 3 plus the option to send and hold private mail. Since both of these levels have the same abilities, you’ll be able to setup the different message categories, download directories, time limits, etc., and maybe give some of your most contributing callers more access.

Level 6 callers have the same access as level 4 and 5 callers, but they are exempt from the “per call” time limit, maximum downloads per call and the time between calls limitation. You may want to give this access level to all your long distance callers or personal friends, so they’ll not be disconnected before their daily time limit has been exceeded. And if your “per call” time limit is the same as the daily time limit, then just use level 6 as one more variation of level 4 and 5.

Level 7 has all the access of level 6, plus the ability to scratch any public message, scratch any downloads, edit download descriptions, and release uploads for public access. This access is for your regular SYSOPs. They can be of help in maintaining the download directories and by scratching offensive or no longer needed public messages.

Level 8 is a high level SYSOP. In addition to having all the access of level 7, they can set the clock and date, change another caller’s name, access level (but they cannot make a caller a SYSOP or change a SYSOPs level) and read the caller log. This level gives enough access to allow someone to run the BBS for a weekend or so while you may be away. YOU DO NEED TO BE CAREFUL WHO YOU GIVE THIS ACCESS LEVEL. Since a level 8 will be able to see anyone else’s passwords, you owe it to your callers to make sure the people you select for level 8 are trustworthy!

Level 9 has the same access as level 8 plus the ability to do full password maintenance, and full DOS capabilities. This access level should only be given to yourself and possibly one other user if you are going to be gone for a long while. There really is not much you cannot do with this access level, so you should be very cautious who you give level 9 access.

The next question on this setup screen is asking for the access level you want the BBS to assign to a caller when their membership has expired. In each caller’s password record there’s a field that can contain a date. You would use the Password Maintenance or the (V)alidate option to edit this date. At midnight, a compare of this date to the current date will be made and if there is a match, that callers access level will automatically be changed to the level you define here. This allows us to give a caller a certain number of days on the system and not have to try to remember to lower that callers access level on any certain day. And since the system automatically lowers your caller’s access level, there may be less hard feelings towards you afterwards. Optionally, this field can hold a short 8 character note about the caller that will be printed on the Password Maintenance report. If this field does contain a date (in the proper MM/DD/YY format), the caller will be reminded each time they log on that their membership expires on MM/DD/YY.

The next question asks if you want to save the caller log when the system is shut down. If you have the disk space available, we recommend you answer “Y” to this question. If you do answer “Y”, the caller log will be saved at shutdown and reloaded when the system is brought back up. This will give you and your level 8 SYSOPs the ability to see all the callers that have called during the last few days. The caller log is stored in an 8k area of memory under the BASIC ROM. It’s totally self-maintaining, that is, as information is added, the oldest information in the log is removed. Each caller log file on disk will take 33 blocks of disk space. Every time one caller log is saved, a backup is made. This can be handy if for some reason the first file is lost because of a disk error or power outage. In addition to 66 blocks for “caller log” and “caller log.bak”, each night at midnight a dated copy of the caller log is made. These dated logs can be saved for archive purposes, should you ever want to look through them. Before the system makes a dated log for archive purposes, it checks to make sure the blocks free will not drop below the minimum blocks to allow uploads, so you’ll want to put your caller logs on a drive with plenty of space and purge the archives often.

The next question asks if you want the BBS to rerun on errors. If a caller does find a way to crash the BBS (causing a BASIC error) or if you have made a change to the BASIC coding and accidentally left an error in the program, the system will automatically rerun itself. Normally you DO want this option enabled. We all sleep better at night, knowing the BBS will still be running when we get up in the morning. The only time you may want to disable this option is when you’re making modifications to the BBS programs and are still testing thems. Note that when rerun is enabled, the STOP key will be disabled.

The next question on this screen asks if you want the screen to blank when a caller is reading or writing a private message. There are some that feel that a private message should be totally private, not even read by the SYSOP. While others feel the SYSOP is totally responsible for everything on the BBS, even the private messages. This option allows you to setup your system the way you feel is best. If you do answer “Y” to this question, the screen will be blanked when a caller is reading their mail or sending mail to anyone else on the system. The screen will NOT be blanked when a caller is sending feedback or private mail to your mailbox or when you are accessing the system from the console.

The next few questions are asking about the type of modem you are using. The first one is asking if your modem uses normal or inverted hook control bits. If you are using a 1650 or compatible, you answer normal. If you are using a 1660, you would answer inverted. By the way, only 1660 modems with serial numbers greater than 100,000 support carrier detect. Do not attempt to use a 1660 that does not have carrier detect in it.

The next one asks if User Bit 32 is connected to your modem’s high speed pin. This is kind of a technical question, but no other way to word it could be found. You would answer Y to this question if you are using the new 4 switch version 1670, an Omnitronix interface or a Vic1011A interface that has been modified to connect USER bit 32 to RS232 pin 12. If you are using a different type of modem interface, you may need to do a little research to determine if it has the above connection. If you are using a 1650, Westridge, 64 Modem, 1660 or the old 1670, answer N to this question. If you answer “Y” to this question when you should not have, the BBS will switch to 1200 baud on all calls, even the 300 baud calls. If you answer “N” to this when you should have answered “Y”, the BBS will never switch to 1200 even when it was supposed to. By the way, if you are using an Omnitronix RS232 interface, make sure the switches are set to normal and modem (as opposed to inverted and printer).

The next question asks if your modem supports the Hayes AT command set. Answer “Y” for the Hayes 1200, Volksmodem 12, 1670, etc. Answer “N” for the 1650, 64 Modem, Westridge, 1660, etc. If you are using a Hayes Smartmodem 1200, set the switches inside as follows; 1 up, 2 up, 3 down, 4 up, 5 down, 6 up, 7 up and 8 down.

The last 2 questions will only be asked if you answered “Y” to the AT commands question above. The first one asks if your modem and interface both support DTR (Data Terminal Ready) and if you have all switches set so the phone line will disconnect if DTR is false. Most Hayes compatible modems and interfaces do support DTR, The Volksmodem 12 when used with cable J does not support DTR, nor does the 1670 (actually the NEW 1670 does support DTR, but seems to work better if we disable this feature). If you are unsure, answer N to this question.

The last question on this screen is specifically for Hayes compatible modems. This is where you’ll define the initialize command to be sent to your mode before accepting a caller. By allowing you to enter the initialize command here (instead of having it hard coded into the program), Color 64 BBS is able to support many more types of modems. But this also means you will need to know a little about your modem before you can answer this question. We are not going to attempt to explain each setting in the init string, please look in your modem manual if you wonder what they do. We do want to say a few things though. First, the init string must begin with “at” (lower case). This stands for attention and needs to be entered only once even though many commands are in this one string. Second, if your modem will accept it, it’s best to follow the attention with a reset (z). This reset is required for many types of modems to keep them from getting locked up. But on the Hayes Smartmodem 1200 and both Commodore 1670 modems, a reset will cause the remainder of the init command to be cleared. So don’t use the “z” reset with these modems. In summary, use “ate1x1s0=0s10=30f1q0v1m0” for the Hayes Smartmodem 1200 and most compatibles. If you are using a Volksmodem 12 or some other Hayes compatible that does not clear the command buffer when it executes an “atz”, your modem may work better if you add a “z” just after the “at” and just before the “e1”. Change the modem init command to “ate1x1s0=1s10=30f1q0v1m0” for the new (4 switch) version 1670 or “ate1x1s0=2f1q0v1m0” for the original 1670 (the version with only 3 switches). If you have the 17XX ram expansion module with an old 1670, it’s safe to change the “s0=2” above to “s0=1”. If you’re using a Hayes SM300, just take the “x1” out of the init string listed above for the Hayes SM1200. If your modem doesn’t support any of the commands in this init string (such as the s10=30), just take that part of the command out. And if you’re having a problem finding which part of the init string is causing you a problem, you can load up a terminal program and try typing in the command. If you get an “ok”, then you’re all set. If it says “error”, you need to find which part of the command is not supported. Also, if after loading the BBS, the waiting for caller screen does not come up (just prints last caller = ), then there’s something in this modem init string that’s not set correctly.

Now you’ll be asked “Is this correct?” If you need to change any of the previous answers, answer “N” and you will be taken through all the questions again. If you’re sure everything is correct, just enter a “Y” and press RETURN. Then you will be taken to the next screen of the SETUP program.


This screen will be used to assign which groups of files will be stored on which disk drives. It’s here that you’ll be able to balance the load between your drives to make the most efficient use of your hardware. If at first you’re not sure where to put which files, don’t worry too much. Once the system starts running and if you see that one drive has too many files, you can rerun SETUP, change the appropriate variables, then move the affected files.

The first question on this screen is for the device and drive number of the disk drive that will be storing the BBS password file. You’ll see “8, 0, i0”. The first number is the device number of the desired drive and the second number is the drive number (0 or 1 for dual drives or LU0 or LU1 for the Lt. Kernal hard disk drive). You can “point” this to any drive you want, but if you point it to a drive other than a 1541, make sure the drive is capable of handling relative files (the SFD 1001 does a fine job with relative files). The third entry (the i0) is the command to be sent to the command channel whenever this group of files are requested. “i0” is what you should enter if you’re using 1541s, 1581s, SFD 1001s, 2031s, 9060s, 9090s, etc. If you’re accessing drive one of a dual drive (like the 4040s, 8050s, 8250s, etc.), you would enter “i1”. But if you’re using a 1571, you have 3 choices. If you want to use the 1571 in 1541 mode, single-sided, 664 blocks per disk, then you can just enter “i0” just like a 1541. But since the 1571 is a double-sided drive, it’s capable of storing 1328 blocks in one directory in 1571 mode, or 664 blocks in separate directories on each side of the disk. The latter arrangement is preferred since you will have twice the space in the directory (144 files on each side) and most 1571’s run more reliably in this mode. Anyway, if you want to have one directory of 144 files/1328 blocks free, enter “u0>m1”. If you want to have two directories of 144 files/664 blocks each, enter “u0>h0” for the normal side, or “u0>h1” for second side. Also, when using a 1571 in one of these two modes, make sure you have a diskette properly formatted. If you don’t already have a diskette formatted, you can use the DOS wedge in fastload, the MSG EDITOR, or the BBS and enter in the same drive command followed by the command to format the disk.

Examples: 1571 mode – >u0>m1

1541 mode side 0 – >u0>h0

1541 mode side 1 – >u0>h1

When entering your information on this screen, DO NOT CURSOR LEFT OR RIGHT OR UP OR DOWN INTO ANOTHER FIELD. When you press the RETURN key, the cursor will automatically move from the device number to the drive number, then to the drive command before going onto the next line. This may seem confusing at first, but it does allow more information to be entered on one screen. If you make a mistake and are still are on the same field, cursor left (instead of delete) and type over the error. Then press RETURN to go onto the next field. If you realize you’d made a mistake in a previous field, do not use the delete key or cursor key to go back. Just answer the rest of the questions and at the end of this screen you’ll be given the opportunity to correct your mistakes. If for some reason, you get totally messed up, just press RUN/STOP RESTORE and type run to start over. The rest of the drive assignments are just like the password file. They are for the System Messages (welcome messages, logoff messages, menus, information file, membership list, membership full message, vote messages, or any message that does not fall into one of the other categories), Help Files, Public Messages, Private Messages, Text Files, Caller Log and Program Files. As you can see, this allows you to move your files around anyway you need to best balance the load between your available drives. The BBS will always have to initially be loaded from device 8, but if it’s more convenient, you can have the overlays loaded from a different device number. This may be beneficial if you have a hard disk drive setup as device number 9, and want to load your overlays from the hard drive for the higher speed.

IMPORTANT NOTE: If you’re using the Epyx Fastload cartridge you MUST always use “ui” as the drive command for program files or you’ll experience intermittent system lockups.

Now is a good time to make sure the drive that you assigned to the password file is on-line and has a formatted disk in it. This disk should be blank. The SETUP program will create a relative file large enough to hold the number of callers you designated. The system will run faster and more reliable if this file is contiguous.

The next question on this screen is asking for the maximum number of files that you want to have on the public messages drive. If you’re using a 1541, 135 is suggested. If you are using an SFD 1001, 210 is suggested. The way this works is that after a caller logs off, the system will go to the public messages drive and count the total number of files on that drive. This routine comes in real handy if you’re storing both public and private messages on the same drive, or if you’re allowing uploads to go to the public messages drive. Since there’s no way of predicting just how many uploads or private messages will be on this disk, we can program the system to scan that directory and if the directory is getting close to filling up, scratch some public messages. This allows us to run our small 1541s near capacity (making the most use of the drive all the time). A 1541 will handle 144 files. So a setting of 135 leaves space for 9 new messages/uploads to be stored on this disk during any one call. One more thing, if you’re only storing public messages on the drive (nothing else) or you’re using a 9060, 9090, or any other hard disk drive that has an unlimited directory, there’s no need for the system to spend all that time counting files. If this is the case, entering a 0 here will tell the system to not count files after each logoff.

Again you’ll be asked “Is this correct?”. If you need to change any of the previous answers, answer “N” and you’ll be taken through all the questions again. If you’re sure everything’s correct, just enter a “Y” and press RETURN. Then you will be taken to screen three of the SETUP parameters routine.


In this section of setup, you’ll go through a series of screens defining each of your upload and download directories. You’re able to setup up to 26 different directories on any number of drives. Each directory will be assigned a description, download status, upload status, access level, device number, drive number and a drive command.

You’ll want to give each drive a unique name since your callers will reference this name when selecting drives. The first drive that has a “Y” in the download status field will be the system’s default download drive and the first drive with a “Y” in the upload status field will be the system’s default upload drive. This can be the same drive (simply by entering “Y” in both download and upload status fields) or totally separate drives. You need to make sure the access level assigned to these drives is for the lowest level callers. You would not want the system to default to one of your restricted download directories! One last thing to always remember is that all level 7, 8 and 9 SYSOPs will be able to switch to any drive defined here, whether or not it’s an upload or download drive. This allows your remotes to move files off of an upload only drive and upload files onto a download only drive. For example, say we have 4 drives on our BBS. Drive 8 has the private messages and the overlay programs on it. Drive 9 has public messages and help files. Drive 10 has all the new uploads and we want to allow callers to download from here too. Drive 11 has the text files and the main downloads. You want drive 11 to be the default download drive and drive 10 to be the default upload drive as well as an optional alternate download drive (for downloading newly uploaded programs). Here’s how you’d fill in the SETUP screens. Enter “3” for the number of upload/download directories to be defined. For Directory A (our default download drive), enter “All Downloads” as the description. Don’t enter any commas, color codes, reverse codes, or spaces for centering. Enter “y” to allow downloads and “n” to allow uploads. Enter 1 for the access level (always want the default download directory to have an access level of 1). Then enter “11” for device number. Now enter “0” for the drive number and “i0” for drive command. On the next screen, do the same thing for drive 10 but name this one “New Uploads”. Answer “Y” to both downloads and uploads. On the next screen, enter “Help Files (SYSOP ONLY)” for the description. Answer “n” to both downloads and uploads and set the access level to 7. This directory will only be seen by your SYSOPs (level 7 or higher) when they enter “#” to change drives. Answering “N” to both uploads and downloads still allows level 7 and above SYSOPs to be able to switch to that drive and upload/download/scratch files (help files in our example). There was no need to access drive 8, even as a SYSOP, so we did not enter it on this section.

After entering the third screen (remember we said we were defining 3 download directories), you’ll be prompted for “Directory to Edit (A-C)”? If you need to change any information previously entered, press the appropriate letter. Otherwise, press RETURN to go on to the next screen.

This next screen only asks 3 questions. The first one is “Upload auto-release level (1-10)?” When a caller uploads a file to the system, do you want that file to automatically be released as a public download, or would you prefer it to be held for a SYSOP to review before it’s released? With Color 64 BBS, you can have it so that lower level caller’s uploads are held for “sysop release”, while higher level caller’s uploads will “auto-release”. Make sure you never set this command higher than the (Y)Release A Download command or your SYSOPs will not be able to release any uploads. You may want to setup your system so that just your SYSOP’s uploads will auto-release. If so, enter 7 here. Or you may want all uploads to auto-release. If so, enter a 1 here.

The next question asks if you want to use the “Upload descriptions” feature of Color 64 BBS. Most of you’ll want to answer “y” to this question. The only time you may want to say “n” is if you do not have enough disk space and all the extra file descriptions will fill up the directory or disk. The popular SFD 1001 disk drive has a limitation of only 224 files in it’s directory. This sounds like a lot until you realize that each download requires a second file for the description. So if you’re using an SFD 1001 and you want to use upload descriptions, you’ll be limited to 111 files in the downloads (allowing for the “directory” and “dir.tmp” files). This gets even worse if you’re also putting system files, messages, help files, and/or text files on the same SFD. Anyway, that’s why it’s set up to run either way. Also, if you answer “n” to download descriptions, it’s possible for you or your SYSOPs to manually enter a download description on any specific file. Just use the (E)dit Dnld Desc command to create the description file. Also, all download descriptions will be stored on the disk as “@dnldname”. Example, the description file for “ccgms term 4.0+” is “@ccgms term 4.0+”. Before starting an upload, a check is always made to make sure a download under that name and a description under that name does not exist. If you ever see a “file exists” error and cannot figure out why, remember about the download descriptions (even if you’re not using them).

The last question on this screen asks if you’ll have multiple directories on one disk drive. This is not recommended for large disk drives which have multiple partitions or directories of their own. This option is mainly for other large disk drives (like a 5, 10 or 20 megabyte hard disk drive) and will allow you to divide that large area of disk space up into more manageable, smaller areas. You could actually use this option on any disk drive, but it may not be worth the effort unless you have a lot of files on one disk drive. If you do answer Y to this question, every file uploaded to the system will automatically have a letter (A-Z) added to the beginning of it’s filename. The callers do not see this letter, it’s just used by the BBS to group the files into different directories. If you manually copy a file onto your download disk, you will need to rename the file so the proper capital letter is the first character of the filename. There’s a utility on your BBS PROGRAMS disk to help you rename your current downloads called “dir rename 7.00”. When you use it, the delete key deletes the first character of the filename, any other key pressed becomes the first character of the filename. Remember, if you answer N to this multiple directory question, you will not need to rename any files. They’ll be displayed to your callers exactly as they are on the disk, with all the files on one drive in the same directory.

Now you’ll be asked “Is this correct?” If you need to change any of the previous answers, answer “N” and you’ll be taken through all the questions again. If you’re sure everything is correct, just enter a “Y” and press RETURN. Then you’ll be taken to the next screen of the SETUP program. If after answering “Y”, the program still jumps back to the beginning of the Uploads/Downloads SETUP screens instead of going on to the next screen, make sure you have assigned at least one download directory and at least one upload directory. Even if you don’t want to allow uploads or downloads, you must assign at least one of each (just set the access level to 7 if you want).


This screen will be used to set the time limits for the different access levels. First you’ll be asked to set the maximum time allowed “per call” for levels 1-5 during AM hours and again during PM hours. This is different than the maximum allowed per day in that a caller may get 60 minutes per day, but only be allowed 30 minutes per call during PM hours, forcing them to not tie up the BBS for a continuous amount of time during what is normally the busier hours. This variable applies to all callers with access levels 1 through 5. Access levels 6 and above are exempt. Any value from 0 to 900 is okay. Note that if you do not want a “per call” time limit, then set either or both of these values to 900.

The next question is asking for the time required to pass before a level 1-5 caller can get back onto the system. You would use this value to prevent one caller from staying on-line for the maximum “per call” time limit, then immediately calling back for another session. Any value from 0 to 30 is okay. If you don’t care to use this “between calls” feature, just put a 0 in this location. Again, access level 6 callers and above are exempt from this variable.

The remaining questions on this screen are for the daily time limits for access levels 1 through 9. Any value from 1 to 900 is okay. Set them anyway you see fit. The system will not disconnect a caller if they are in the middle of a download or entering a message and their time expires. But the system will “borrow” the extra time used from the next day. So if a caller has a 20 minute per day time limit and spends 60 minutes typing you feedback, the system will enter -40 minutes in that callers membership record. Then every night at midnight, this time will be incremented by 20 minutes. So this caller wouldn’t be allowed back onto the system until their daily time limit goes positive again (3 days in this example).

At the end of this screen, once again you’ll be asked “Is this correct?” If you need to change any of the previous answers, answer “N” and you’ll be taken through all the questions again. If you’re sure everything’s correct, just enter a “Y” and press RETURN.


The next screen is where you’ll assign the number of days that must pass before the BBS’s purge routine will automatically delete a member that hasn’t called in a while. When the BBS deletes a member, they are TOTALLY deleted. There’s no way to bring them back unless you have a “backup password” file you can use to restore their record. An example might be to set the system to automatically delete any level 1 not calling in 25 days, level 2 not calling in 31 days, or level 3 not calling in 62 days. And set all other levels to 999 days so the system will not automatically delete them (could use the membership expires feature to lower their access level to a 2 after a set number of days or when their fees run out).

The way this routine works is every night at midnight, each password record is evaluated and if that caller has not called in the defined number of days, they are deleted. An entry is made into the caller log (their record number followed by an asterisk to differentiate from a membership expired status). As a safety check, when the system calculates the number of days since the last call and compares it to the current date, if the calculation exceeds the purge variable by more than 7 days, the system will not delete that caller. Without this safety check, if you accidentally entered the wrong year while loading the BBS and the system processed its “end of day” routines, ALL of your members would have been deleted! In addition, the system does some approximations when making calculations into a previous month. Any error (always in your caller’s favor) can possibly be as much as 3 days. For this reason, it’s recommended that if in the future you change any of the purge variables, only change them by 4 days per “end of day” processing runs so the system won’t skip over any callers that should be purged. You’re strongly urged to use this feature since it’ll make the long term maintenance of the BBS much easier.

At the end of this screen, once again you’ll be asked “Is this correct?” If you need to change any of the previous answers, answer “N” and you’ll be taken through all the questions again. If you’re sure everything’s correct, just enter a “Y” and press RETURN.


This screen will be used to enter the message base categories. You can have anywhere from 2 to 18 categories. When a message is posted, the caller will be asked to select from one of these categories for their message. And when a caller reads the messages, they’ll be given the option to read just the messages in one category or the messages in all of the categories that they have access to. Don’t use any commas or colons in your message category titles. They’ll be read in from disk using a standard input statement, both the comma and colon will cause everything after itself to be ignored. Each category will have an access level assigned to it. Any callers with a level lower than the category’s level won’t see any messages in that category. It’s recommended you assign your category levels in order with the lowest levels at  the top of the screen and the highest at the bottom. That way when a lower level caller sees the list of categories, they won’t see letters missing from the list. The less they know they’re missing, the less they’re going to complain.

Again you’ll be asked “Is this correct?”. If you need to change one of the previous categories, answer “N” and you’ll be taken through all the questions again. If you’re sure everything’s correct, just enter a “Y” and press RETURN.


The next 2 screens are where you can really start to customize your system. Every command that your callers type from the main command prompt and the level required to execute that command are SYSOP defined. Once again, don’t use the cursor keys to move from field to field, use RETURN. If you don’t like “O” for logoff, you can change it to “G”. But remember to assign something different for the graphics command. And if you like level 1 callers to be able to read all messages, you’ll be able to adjust that here too. The first screen covers half of the commands and the second screen covers the other half of the commands. The commands marked “spare 1” through “spare 9” are for future expansion. For now, setting the access level for these commands to 10 will completely eliminate them from the system. Currently, if anyone presses 1-9 (and has a high enough access level), the BBS will load in the appropriate module and then just return to the command prompt. They were left this way so you’ll be able to easily add your own modules to Color 64 BBS using these commands. If you’re not a programmer, don’t despair. We already have dozens of modules written that you can just merge into your system. Many of them are available from Color 64 and V128 BBS’s as well as instructions for how to add them to your system. Anyway, the spare commands are something you can make use of later, after you’re more familiar with Color 64 BBS.

There are a couple of variables that are not redefinable. One is that level 6 is still and always will be exempt from maximum downloads per call, minimum time between calls and the per call time limit. This level is usually reserved for full access members who are long distance. Another fixed variable is for SYSOPs. Level 7 and above are SYSOP levels. When reading messages, they’ll be able to scratch and edit other persons messages. And level 8 SYSOPs will always have the option to validate a member when sending them a private message (they have access to everyone else’s passwords on the system). You’ll be able to move around some of the SYSOP commands between level 7, 8, and 9, but these levels must be used for your SYSOPs only.

This leaves you levels 1 through 5 to redefine any way you want. Also, remember to modify your menus to match your new custom designed command characters and access levels.


The next screen is where you’ll define the 8 colors that Color 64 BBS will use. Throughout the program, whenever we want text in a different color, the BBS will select the next color from this sequence. You’ll see 9 reverse bars of numbers on the screen. To change the color for bar 1, just type 1 then type the control code for the desired color. For example to make bar 1 medium blue, you’d type 1 followed by Commodore-7. The bar will change colors right away. This gives you an idea of what these colors will look like next to each other. Keep adjusting the colors until you have this screen looking the way you like, then just press RETURN.


The last screen in SETUP now tells you to make sure your modem is connected, turned on and ready to receive a call, but to make sure that no one is actually connected to it. It’s recommended that you actually unplug the phone line from the modem to make absolutely sure no one is connected or that a dial tone will not generate a false carrier detect status. The BBS will now learn the carrier status of your modem. If at anytime in the future you change modem types or switches inside your modem, it’s important that you rerun SETUP with the modem connected so the new carrier detect can be determined. When you’re ready, press RETURN.


Now the SETUP program will go to work. When finished, there should be 2 new files on your system. The first file is “bbs.parms” and must always be on device 8, drive 0. This is the file that stores the drive assignments, and until it’s read in, the BBS program has no way of knowing where to find any of your other files. The second file just created is the “password file” and it will be created on the disk assigned by the DRIVE ASSIGNMENTS screen. This password file is where all your caller’s names, passwords, access levels, time remaining today, last message read, etc. are stored. Right now, there’s only one password in the password file. It’s membership number 2, name SYSOP, and password SYSOP. The BBS has created this password for you. You, as SYSOP, must always have membership number 2. All feedback will be put into mailbox number 2 and all feedback replies will come from membership number 2. You’ll want to use the Password Maintenance routine (f6 from the call waiting screen or “<” while on-line) to change your name and password (see description below) before putting the BBS on-line for the general public to call.

Notice that all these filenames have a check mark in front of their name. This same check mark (shifted @) will precede all BBS filenames. This special character prevents anyone from being able to download any of these files and possibly reading your password file, feedback or someone else’s mail.

There are 6 files that need to be copied onto the disk assigned to store program files in the DRIVE ASSIGNMENTS screen. So answer “N” to the “Load BBS (y/n)?” question. Then using Super Xfer (or any suitable file copy program), copy “bbs.punt 7.36”, “bbs.xmo 7.36”, “bbs.init 7.35”, “bbs.msgs 7.35”, “bbs.xfer 7.37” and “bbs.ovl 7.35” onto the disk you designated for program files. To help minimize the delays when an overlay is called, these files need to be near the beginning of the directory and contiguous (not scattered all over the disk). If you’re going to have enough disk space and you’re storing your program overlay files on your BBS PARMS disk as recommended, you may want to consider copying all of the other program files from the BBS PROGRAMS disk onto your BBS PARMS disk just after the 6 overlay files. This would eliminate the need to swap disks when rebooting the system or loading one of the BBS utilities. You would effectively always have both the BBS PARMS and the BBS PROGRAMS disks on-line all the time and would just press RETURN when asked to insert one or the other. Another idea would be to put “bbs” and “ 7.34” (the only other programs required to load and run the BBS) onto the “BBS PARMS” disk, allowing you to reload the system without swapping disks by just loading “bbs”,8,1 (%bbs with Fastload). Also, “bbs.ov2 7.35” and “bbs.ov3 7.35” are not currently needed on your program disk as an overlay. Right now, these files only contain a skeleton of coding and will be used in the future to store “user written modules”. Once you start adding your own routines to Color 64 BBS, you may soon find you’re running out of space and will want to put some of your coding in these extra overlay files. Anyway, for now you don’t need to worry about these 2 files.

If at any time you decide that you need to change any of the above parameters, just load the “SETUP” program again and then put in your “BBS PARMS” disk. The existing “bbs.parms” file will be read into memory and you’ll be able to step through SETUP one screen at a time with all previous data entered already on the screen. Keep hitting RETURN until you get to the parameter you want changed. After you have completed all the screens, a new “bbs.parms” file will be written to disk. Note that the “password file” will not be affected if it already exists, even if the maximum number of passwords parameter has been changed. But if the maximum number of members parameter was increased, then this file will be allowed to grow as new callers call and additional file space is needed.

Now that you’ve defined all your parameters and copied all of the overlay files onto the proper disk, it’s time to create your system messages. This is where you get to let your creative ideas flow. A full set of example messages is included that you can use as is or edit to suit your own tastes. Again, use Super Xfer (or any other file copier) and copy all of the sample “system messages” onto the disk you have assigned to store your system files. As explained earlier, all these filenames must always have the check mark (shifted @) in front of the filename. There are several ways for you to write your system messages. You can use any word processor that creates SEQ text files (like Easy Script), the standalone message editor program on the BBS PROGRAM disk, or the message editor routine built into the DOS section of the BBS.

To create/edit messages with the BBS message editor, put in the BBS PROGRAMS disk in drive 0, device 8 and load “msg editor”,8,1 (or type %msg editor with Fastload). When prompted, put the BBS PARMS disk into drive 0, device 8 and hit RETURN. In a few seconds, you’ll see a menu with 4 choices. The first is the message editor itself, the second is a DOS wedge routine, the third will load and run the BBS and the forth will end the MESSAGE EDITOR program and return to BASIC. To edit a message on any drive, press f1 and you’ll see an input prompt for the device number of the drive that contains (or will contain) the message file. In brackets is a number, just press RETURN if this number is correct, otherwise enter the desired device number and press RETURN. Then you’ll see a prompt asking for the drive number with a zero in brackets. Again, if this is correct, just press RETURN, otherwise enter a 1 (for dual drive number 1 or LU1 of the Lt. Kernal hard disk drive) and hit RETURN. Next you’ll see a prompt asking for the drive command to be sent to the drive. Normally you’ll just hit RETURN, unless you’re wanting to access the back side of a 1571 (u0>h1), put a 1571 in 1571 mode (u0>m1), or whatever. The last question is for the filename to edit. Enter the desired filename remembering to add the or @ symbol, as required. If the file already exists, then it will be loaded into memory for you to edit. If it doesn’t already exist, then one will be created after you enter and save the message. This message editor works just like the message editor on the BBS for entering public and private messages, but has one additional option. If you enter a “G” at the editor command line, graphics mode will be toggled off or on. This is handy for designing messages that need to look good in both graphics and ASCII modes. This message editor will allow you to create/edit messages almost as large as 500 lines, in full color. The on-line message editor is limited to the maximum number of lines per message as defined in the “bbs.parms” file. Something else you’ll notice is that while the BBS is “wrapping” a word, it may miss a keystroke from the keyboard. This doesn’t happen over the modem, just when entering messages from the keyboard (who said life as a SYSOP would be easy?).

Lets start by editing the welcome messages. For now, lets use MSG EDITOR to edit the sample messages. Then later if you decide to totally rewrite the messages, you can use whatever SEQ file editor you want. The BBS has provisions for 2 different welcome messages (“welcome1” and “welcome2”). The first one will be sent before the password prompts and the second one will be sent after the password prompts and before checking your mailbox. The BBS expects both of these files to be present on the system messages drive. If either one is missing, there’ll be a short delay, then everything will continue like normal.

In addition to the 2 welcome messages, there’s an optional “sysop news” file. This file will be displayed to your callers after “welcome2” and just before checking their mailbox. If this file doesn’t exist, there’ll be a slight hesitation, then the BBS will continue on with checking their mailbox. There are 2 ways this file differs from “welcome2”. First the file can’t be aborted by the caller. It must be read to completion. Second, you can set a date in the file and only callers with their last called date less than this date will read the message. This is a handy place to post messages that you want all of your callers to read. Let’s take a few minutes to explain how the date works. First of all, if you don’t enter a date, the whole file will be read to each caller every time they call. If the first line of the file is a date (must be in the format MM/DD/YY and be the only characters on that line), then the file will be read only to callers whose last called date is less than this date. If while reading the file, it finds a second date line (or third or fourth), if that date is less than the callers last date called, the file will stop reading. This allows you to combine several messages in one file and only have your callers read the file one time. If they ever want to reread the “sysop news” file, they can do it by re-reading (W)elcome messages. One more important point to make. When reading this file, the cursor will skip down 2 lines only when it sees a date in the file and that date is greater then the caller’s last called date. So if you create a “sysop news” file that does not have a date in it, you’ll want to begin the file with a couple blank lines to separate it from the “welcome2” text. And when adding a second date in the file, you do NOT want to put any blank lines between the first message and the date just before the second message.

Also, there’s a logoff message that will be sent just before the caller is disconnected. Again this message is expected to be there, but no damage is done if it’s missing.

The next messages you should look at are the new member messages. There are 2 of them again (“new user msg1” and “new user msg2”). The first one is just a short note telling the new caller to make sure to make a note of their password information and leads them into the application section of the BBS. This message should be short so that the new member’s membership number and password already printed on the caller’s screen won’t scroll off the top before they’ve had a chance to write down the information. The second message is the first message you’ll send to all new callers just after completing the application. It should tell them how to start and stop messages and tell them what (if anything) else they’ll need to do to gain full access to your system.

Speaking of application, Color 64 BBS allows you to fully customize this area of the BBS. You may just want the city and state they are calling from, or you may want to ask them everything. We recommend you keep questions to a minimum. Realize that any information given is quite often false. If you’re going to ask strange or unusual questions, make a note in “new user msg1” that they only need to answer as much as they’re comfortable with. Anyway, there’s a sample application already on the disk. Take a look at it. First, each line of the application file is a prompt. The BBS will read in one line from the application, print it on the screen (without a return) and input your caller’s answer. Then it will read in the second line, print it on the screen and get the second answer. It repeats this again and again until it reaches the end of the application file. Then it prints everything back to the caller and asks if this is correct. If they answer “n”, then the application routine will begin again. Otherwise the answers are stored in the caller log and in your mailbox. You’ll be able to print your mailbox for a hard copy while all your remote SYSOPs will be able to see the same answers in the caller log. The second thing to be aware of is that each line in the application is a prompt. Keep them short! Make sure your callers have enough space to the right of the prompt to answer the prompt. You would not want to have “Your real first and last name?” as the prompt. That’s 31 characters long, and would only leave 7 characters for their answer. If you want honest answers in your application, tell them at the end of “new user msg1”. And then use prompts like “First name?”, “Last name?”, “Street addr?”, etc. and you will find this application meets your needs.

If you want to setup your system to not accept any new callers, you can create a file named “bbs closed”. Whenever a caller enters “NEW” to access the new user routines a quick check is made for the presence of this file. If it’s present, the file will be displayed to the caller then they’ll be disconnected. Some people find this handy when going out of town for a period of time and others may just want to run a BBS for a select group of people (e.g.. a users group). One exception is when you logon locally (at the console), you can always type “NEW” and get into the new user section. This allows you to easily enter in any new callers without having to remove or rename the “bbs closed” file.

Another message you need to have for the new callers is the “level 1 msg”. It’s sent just after “welcome2” for each caller that’s still at an access level of 1. It’s to remind them that they haven’t been validated yet and/or what they need to do before they can gain higher access on your system. Of course, if you’re not starting new callers at a level of one, you won’t need this message.

Also, you can have a “level X msg” for any level. When the system is loaded up, it looks on the system messages drive for “level 1 msg”, “level 2 msg”, “level 3 msg”, etc., and sets a flag for each one it finds. So if you want to send a message to all level 3 callers, and all level 7 and 8 sysops, just create the appropriate message files and name them “level 3 msg”, “level 7 msg”, and “level 8 msg”, respectively. If the BBS is already running when you create or remove any of these messages, use (f4) or “^” to reset the date and time. This routine also includes the code to reset the level message flags.

Another message you might need for new callers is “membership full”. This file will be used to notify a caller that membership to your BBS is currently full and ask them to call again at a later date. The reason for having a membership full status instead of automatically cycling old passwords is to eliminate the chance of a “hacker” repeatedly logging on as a new user while you’re away on a weekend and cycling everyone’s password off the system.

Another message you may want to edit is called “member list msg”. This short little message explains to the callers why their name may not be in the membership list even though they may be a new member. We need to have some control over what names are put in the membership list. So rather than have the system automatically list all names from the password file, we maintain a second sequential file called “membership list”. And there’s an option in the Password Maintenance routine to make a new membership list. This gives you a chance to remove any offensive words in members names (you should be able to see them in the caller log) before making a public list that your callers will see. The “member list msg” is sent just before the membership list to explain why a new caller may not see their name listed until after the system operator has had a chance to review all the new applications.

Another message you’ll need to edit is the “information” file. This should tell your callers a little something about your system like where you’re located, purpose of the system, etc. Please keep a note in the information file that this is Color 64 BBS Version 7.37 written by Greg Pfountz so that it won’t be confused with SML, V8, or V128.

Another couple messages you’ll want to personalize is “sysop not here” and “still not here”. The first one should be a short little message that you send to your callers after they attempt to chat and if you do not respond to the page. The second one is read if a caller attempts to chat with you a second time even though you’d not answered the first page. This prevents callers from wasting a lot of time ringing the pager over and over again. And since the border on your console is highlighted whenever a caller wants to chat, there’s really no reason to page the SYSOP more than once.

In the uploads routines, there are a couple more messages you may want to personalize. The first is “upload msg”. This file now simply says “Do not upload any copyright software”. This is a constant reminder to your callers that it’s illegal to upload any copyrighted software to any BBS. You may want to mention what will happen if the rules are broken, or reword it in some way. The second file you may want to look at is “upload held”. This is the file that tells a caller that their upload will be held until a SYSOP releases it. This file is only sent to callers who have an access level below the “auto-release” level defined in the UPLOAD/DOWNLOAD section of SETUP.

If you intend to use the vote option, you’ll need to create two more message files on the system messages disk. The first is “vote msg” and should be a full message describing what you are voting about and what their choices are. There aren’t any limits on this file, other than it should instruct your callers to vote by entering a number. You could say something like vote (1) for YES, (2) for NO, (3) for UNDECIDED. The other file needed by the vote routine is “vote ballot” THIS FILE HAS TO BE MADE EXACTLY RIGHT. If you have 3 choices in your vote, then there must be exactly 3 lines in your ballot (make sure there aren’t any blank lines at the beginning or end). The first line should complete the sentence “XX% voted…” For example, if your vote is a yes/no type vote, line 1 may be “yes.”, line 2 may be “no.” and line 3 may be “undecided.”. So when a caller sees the results, they’ll see:

XX% voted yes.
XX% voted no.
XX% voted undecided.

Only level 3 and above callers will be able to vote (unless you change that in SETUP). Each caller has one vote and can change their vote simply by voting again. If you don’t care to have the voting option enabled, simply don’t create the “vote msg” and vote ballot files. Also, when changing the voting ballot, you’ll need to scratch all files matching the pattern “vote*” Use the COLOR 64 BBS DOS routine to do this. Besides the 2 files you create for a vote, there’s one more file automatically created by the BBS to store the current votes (called “votes”). And make sure you “REBOOT” the BBS before attempting to create a new vote or you will get a “redim’d array” error. In addition to the other system files, you’ll also need to edit each of the menu files. They are 9 menu files named, “menu1”, “menu2”, “menu3”, etc., one for each access level. Example menus are included. You’ll at least need to edit the line that says “Your BBS name” and replace it with your BBS name. But hopefully you’ll be able to come up with some different menus that will make your system really unique!

Before moving onto the other files, let’s cover one more thing about system files. Often when you use a lot of graphics in your system files, non-graphic callers will have a difficult time reading the file (sometimes it’s just impossible). This is especially troublesome in the menus and welcome messages. There are provisions in Color 64 BBS to have alternate system files just for ASCII callers. But this is totally optional. If you skip onto the next paragraph, all callers will read the same messages (which is normally just fine). Anyway, the goal of this system was to come up with a method where it would not force us to maintain 2 complete sets of system files. And to have the system automatically send the right file without having to wait for the slow 1541 drives to try to open one file and if not found then open the other. Here’s how it works. You create all your graphic messages first and save them on your system messages drive so they are at the top of the directory. Then you rename the files that you want to have separate graphic and non-graphic versions so that they have a “+” at the end of the filename (ex. menu1 would be renamed to menu1+). Now you create the non-graphic file and save it on the disk using the normal name (ex. menu1). That’s all there is to it. The only trick will be to keep all the “+” files in the directory ahead of the non-“+” files. If they get out of order, the system will then send the same non-graphic file to both graphic and non-graphic callers. One more thing, this does not work on welcome1. This file is actually read from the disk before the caller tells the BBS if they are using a graphic terminal program or not. So make sure you design welcome1 so that it looks good in both graphic and non-graphic modes. Also, any system file that is not actually “read” to the modem can’t have separate non-graphic versions (ex. application, vote ballot, etc.). For the technically-minded person, here’s exactly how the system works. Whenever a system file is opened to be read, if the BBS is in graphics mode, it adds a “*” to the end of the filename. This tells the drive to find the first file matching the pattern, so menu1+ will be found before menu1. And non-graphic callers would still just see menu1.

A full set of help files are included, but no text files. The help files and text files work exactly the same. So use the help files as a guide when setting up your text files. There needs to be a file on the HELP FILES disk called “@help files”. But instead of having a check mark as the first character of the filename, it has an @ symbol. This symbol will prevent the file from showing up in the download directory, but still allow your remote SYSOPs to download, scratch and re-upload these files as necessary. As a matter of fact, anyone can download these help files (you’ll just have to tell them how). This is an easy way for your callers to download them if their terminal program does not support an ASCII file capture.

The “@help files” file is a menu file that when read should tell your callers what number to enter to read the desired file. This menu file can be in any format you want, even use graphics if desired and you can use any amount of numbers in any order you want. Each help file on disk should have the filename format of “@help1”, “@help2”, “@help3”, etc. When your caller enters “1”, they’ll read “@help1”.

Text files work exactly the same only you use “@text files” to describe “@text1”, “@text2”, etc. If the “@text files” file is not on the disk when a caller asks for the text files, they’ll see a message saying that there aren’t any text files on-line. Same goes for the “@help files” file. There isn’t any limit to the maximum number of help files or text files allowed other than the amount of free space on your disk drive.

After editing all the system messages, you should use Super Xfer (or any suitable file copier) to copy all of the sample help files onto the disk you assigned on the drive assignments screen of SETUP. Then use MSG EDITOR to read (and if necessary edit) each of these help files. They’ll tell you and all your new users how to use this BBS to its fullest. The information is not repeated here, so make sure you take the time to read them. In the UPLOAD/DOWNLOAD file, there’s a sentence saying that you’ll be glad to make a copy of a Punter color/graphics terminal program for any caller needing one and for them to contact you through feedback if they’re interested. CCGMS TERM 4.0+ and CGTERM-128 v3.3 are included with the BBS program. These are just a couple good color/graphic terminal programs for you to give to your callers. They each support many kinds of modems, variable baud rates up to 1200, punter, ASCII uploads and downloads and much more. If you’d rather handle callers needing a Punter terminal program a different way, you’ll need to edit this help file and make the appropriate changes.


At this point, you should’ve already created your parameters file, password file, system messages and help files. Each drive assigned in your parameters file should have a disk in it with the proper files already on it. If you want to start your system with some files in the download directory, make sure you put them in the proper drive now.

Now you are ready to load Color 64 BBS for the first time (the big moment). Put the “BBS PROGRAMS” disk in drive 0, device 8 and enter load”bbs”,8,1 (or %bbs with Fastload). When the program has completed loading, you’ll see a message on the screen telling you to insert your BBS PARMS disk In drive 0, device 8. This is the disk that has your “bbs.parms” file on it and will tell Color 64 BBS what modem you’re using, which drives contain which files, etc. After the PARMS DISK is inserted, press the RETURN key. The parameters file will be loaded into memory, then you’ll be told to switch your modem to data/answer. If you’re using a Hayes type modem, you don’t need to do anything (it’s automatic), but if you’re using a 1650 or 1660, you’ll need to make sure at this time that your modem is set and ready to receive a call.

Next, you’ll be asked to enter the correct date. You must enter it in the format of MM/DD/YY. MM is the number of the current month and must be 2 digits in length. DD is number of the current day and must also be 2 digits in length. YY is the number of the current year and also must 2 digits in length. Separate the month, day and year with a diagonal slash (/). Normally, you will never need to enter this date again. When the system is shut down (using f8) and many times during the day, a file is written to disk (“variables”) that contains the current date. Just above the question asking for the date is a line displaying the current date and time. If the date is already correct, you would just hit RETURN. If the date is changed (for whatever reason), then the BBS figures it was “asleep” when midnight passed and did not get a chance to reset all the time limits. If that’s true, then answer Y to the question asking to reset the time limits. This will set a flag and each caller’s time limits will be reset after the BBS program has finished loading up. If this is your first time to bring up the system, then just type an “N”, since there really aren’t any member’s time limits to be reset.

The next question you’ll be asked is for the current time. We’re using one ofthe clocks built into the CIA chips, so you should find the clock keeping very accurate time. Once this clock is set and as long as the computer hasn’t been turned off, the clock WILL be correct (even if you don’t set it again for months). If the time is already correct, just press the RETURN key. But if the clock needs to be changed, you need to enter the correct time in two steps. First enter the current hour using 24 hour military format. 12 midnight would be 0, 10 am would be 10, 12 noon would be 12, 2 pm would 14, 8 pm would 20, etc. Next you will be asked to enter the current minute. No surprises here! Just enter 0 to 59, as required. This is a little confusing, but it saves a few bytes of precious memory that can be put to better use when a caller is on-line.

After a brief pause, you’ll see a question asking if you want to regenerate the message index. When the system is shut down, a file is saved on the message disk that contains this message index. Having this file on disk can greatly speed up reloading the BBS. If the BBS should go down because of a power failure, then when reloading, the message index won’t be present on the message disk and the BBS will automatically regenerate it. But if for any other reason you want to regenerate this index (maybe you scratched a few files while off-line or you had a disk error and lost several messages or you went into SETUP and changed the number of messages on the system), answer a “Y” to this question and it’ll scratch the index file, forcing the BBS to recreate a new index a little later.

After you answer this last question, the disk drive(s) will go to work for a minute or two and then the system will be ready to use. After your system has collected a lot of public messages and if you answer “y” to regenerate a new message index or a power outage caused the system to shut down without saving the old index, this working time can be as long as 45 minutes. If you didn’t notice, all of the questions we just answered had defaults. Pressing RETURN would have used the default instead of having to type in the answer. Most of the time, if you take the BBS down to run another program, when you reload the system, all you need to do is press RETURN 4 times and the program will bring itself back up. One exception is the time, if the BBS was powered off at all while the BBS was off-line, the clock will have to be reset. Anyway, if you know you want to accept all defaults, you can load “reboot”,8,1 instead of “bbs”,8,1. This reboot file is also handy if you’re running on a C128 and want to use one of the autoboot-64 utilities available in the public domain.

When you see a screen that’s displaying the current time and date above a timer with a line at the bottom of the screen displaying the last caller’s name, then the BBS is loaded and waiting for a caller. When the phone rings, the BBS will instruct the modem to answer, then wait for a carrier signal and for the caller to type a RETURN. If this doesn’t happen, then the modem will disconnect and begin waiting for the next call. If you’re talking voice to someone and want to connect them directly without them having to call back, just hold down the Commodore key for a couple seconds and the modem will pick up the line just as if it had detected a ring. Likewise, if you press the Commodore key just after the modem answers the line, it’ll hang up without waiting the full 30 seconds for a carrier detect. Also, after the fifth invalid sign-on within 24 hours, the BBS will go into a wait loop and not answer the line for about 3 minutes. This should be sufficient to discourage callers from attempting to guess another caller’s password. If you’re nearby and want to abort this delay, you can press the Commodore key to allow the BBS to return to the waiting for caller status without waiting the full amount of the invalid sign-on timer.

While the BBS program is waiting for a caller, if you press any of the function keys, you’ll see a SYSOP menu. f1 on this menu is local mode. This allows you to go on-line the BBS just as if you called up over the phone line, except “welcome1” will not be sent, graphics mode will automatically be turned on and text will scroll across the screen at a maximum rate (unless you press and hold the shift key to simulate a character rate of 300 baud). You’ll still need to type in your membership number and password and everything else acts just like you’re on-line over a modem. When starting a new system, it’s IMPORTANT that you enter at least one public message before letting any other callers logon. There are two reasons for this. First, this will force the last message read variable to be incremented by one (allowing new callers to read their mailboxes the next time they logon to your BBS). Second, it’s critical that when the first message is posted on a new system that you always answer Y to the question “Start a new subject (Y/N)?”. When you type O for logoff, the BBS will save your last message read variable along with several other statistics and then begin waiting for the next caller.

f2 on the SYSOP menu will take you to the built in TERMINAL section. You’ll see another menu allowing Terminal mode, Change Graphics/Baud Rate, Autodial, DOS Wedge (requires an overlay), Upload, Protocol (Punter or XMODEM), Download and Return to BBS mode. This simple terminal program supports full color capabilities with the ^b background mod in place. Once in terminal mode, you press f1 to exit back to the TERMINAL menu to start an upload or download or return to the BBS.

f3 on the SYSOP menu allows you to print the caller log onto the screen or a printer (Commodore or compatible setup as device #4 only). The caller log is stored under the basic ROM and is continuously updating itself. The log is limited to 8k of memory and as more information is added, the oldest information is removed. You’ll find that this log will usually hold the last day or two of callers. When someone calls, their name and the time they called are added to the log. Then a “trail” is made of their activity. This can be helpful in determining what areas of the BBS are most frequently accessed or which downloads are most popular. Also it can be useful in tracking down a problem user. Press the home key to pause (it generates the same code as a CTRL-S) or SPACE BAR to abort.

f4 on the SYSOP menu allows you to reset the date and clock and re-initialize the “level X msg” variables and “vote” status. There will be little need to change the time or date, but if you ever add or remove a “level X msg” or if you should open or close the voting booths, make sure you select this option (or use the ^ command on-line) to reset the appropriate variables.

f5 on the SYSOP menu allows you to print your mailbox to the screen or printer. (If you’re using an SFD with the CSI Connect 400 interface to store your private messages, you won’t be able to print your mailbox to the printer due to a bug in that interface). Use the HOME key to pause or SPACE BAR to abort. After reading your mail, you’ll be given the option to send a private message in response and clear your mailbox file. All replies from this selection are addressed as sent from membership number 2.

f6 on the SYSOP menu will take you into the password maintenance routine. This routine is used to display (or print) and edit your password file. Again, if you’re storing your password file on an SFD with the Connect 400 interface, you won’t be able to print. Use the HOME key to pause and the SPACE BAR to abort. At the end of the listing, you’ll be told how many passwords are on file. If you see this value approaching the maximum number of passwords that you set your system up for, you’ll know it’s time to either remove some callers that haven’t called in a long time or to increase the size of the password file. When the listing is completed or aborted (abort with the space bar – you may have to hold it down for a few seconds), you will be given the opportunity to edit any of the password records. Enter the membership number of the member to edit and that member’s information will be printed to the screen (access level, name, password, number of blocks uploaded, number of blocks downloaded, time remaining today). You’ll notice that not every statistic is available for editing. It’s not anticipated that you’ll ever need to edit the date last called, times called, etc. But if you need to add or subtract from the number of blocks uploaded/downloaded, change the callers name/handle, password, access level, or time remaining today, you’ll be able to do that here. One by one, you’ll be allowed to enter new information or just press RETURN to leave the information unchanged. To delete a member from the membership list, change their access level to a 0. You’ll be asked “are you sure?”. This’ll also automatically delete any old mail that still may be on the system addressed to this member.

One function you’ll need to perform regularly is to create a new “membership list”. This is the list that the callers will see when they select (M)embership list. Having a membership list separate from the password file that’s updated only by the sysop allows us to remove any embarrassing words or phrases from the password file before making a new public membership list. After you’ve listed and possibly edited the password file, you’ll be given the opportunity to create a new membership list. If you’re just setting up your system for the first time and have not yet made a membership list, then now is a good time to edit your name and password. When you list the password file, you’ll only see one member. It has the password that the BBS automatically setup for you, the SYSOP. Enter 2 for the record number to edit. Then press RETURN until you’re prompted for your name. Type in your name. Then press RETURN until you’re prompted for your password. Now type in your new password. Then type RETURN a few more times and your password information will be saved to disk. Next, press RETURN when asked for the record number to edit and answer “Y” to create a new membership list. When the routine is finished, the program will automatically return to the waiting for caller screen.

f7 on the SYSOP menu will take you to the BBS DOS Wedge routine. This routine is in “bbs.xfer 7.37”, so there will be a 15 second delay after pressing f4 (unless you are using a 17XX ram expansion module). It operates exactly like the one in the MESSAGE EDITOR program. The DOS command format is as follows:

@ – read error channel
$ – display a directory (pattern matching allowed – $0:A*)
# – change device number (#9 – select drive 9)
n – format disk (example – n0:diskname,id)
s – scratch file (example – s0:file1)
c – copy file (example – c0:file1=file2)
r – rename file (example – r0:file1=file2)
f – read file (example – f0:file1)
p – print file (example – p0:file1)
% – regenerate directory
! – message editor
x – two drive file copier

An extra added to the directory routine is that it counts the number of files
selected. For example, if you want to see how many callers have mail waiting
for them, you could switch to the drive that holds the private messages and
then do a $0:private* and hit return. All filenames matching that pattern
will list on the screen and at the end, you’ll see a line saying how many
files were selected. This feature can be very handy when trying to balance
files between drives. When reading a directory or sequential file, press the
HOME key to pause, or the SPACE BAR to abort. f8 will save the message index,
caller log, system variables and exit to BASIC. This is the ONE AND ONLY
proper way to shut the system down. If you hit the stop key by accident with
the stop key enabled (rerun on errors turned off), type “cont” and hit return.
If that doesn’t work, type goto9999 and let the system shut down, saving the
message index, caller log and variables. Stopping the system without using f8
(or goto9999) will leave files open and some vectors pointing to the BBS’s ML
routines. In any case, using the computer for any other purposes in this
condition will most definitely cause a system crash. Also, the message index
will not be saved to disk, causing the system to have to regenerate that index
(can take an extra 15 to 45 minutes) when the system is restarted.


The keyboard is always active, even when a caller is on-line. This allows you to enter a command for a new caller, log a caller off, etc.

fl from almost anywhere in the BBS will enable CHAT mode. f3 will exit. When you exit CHAT mode, a CONTROL-P will automatically be placed into the keyboard buffer. So if your caller is reading a long text file, you’ll want to avoid breaking in until they reach a good stopping point. During the time you are in CHAT mode, the BBS timer stops. The callers time on-line and time used today will not reflect this time in CHAT mode.

It’s possible to change a callers access level, time remaining, blocks uploaded, blocks downloaded and on-line status while the caller is on-line. To do this, make sure the caller is at the main command prompt and press f5. On your screen only (the caller will not see this), you’ll see a six part input prompt asking for level,time1,time2,dnld,upld,1=local. Level is the callers access level for this call. Changing this variable is just a temporary change, the next time this caller calls back, they’ll be back to their original level. Use Password Maintenance to permanently change a callers access level. Time 1 is the amount of time remaining on this call and time 2 is the amount of time carried forward for future calls today. Time 2 will be added to time 1 when the caller logs off, giving the amount of time that caller has remaining today. The current values for each input are already typed on the screen, so just cursor right and left to change the desired values and press RETURN. Dnld is the number of blocks this caller has downloaded and Upld is the number of blocks the caller has uploaded. If you want to give a caller some more download credits while they’re on-line, you would either raise the blocks uploaded or lower the blocks downloaded. Local is either a 1 or 0. If you enter a 1 here, the system will go into local mode. Even when you exit this routine, the caller will not see what is going on. This allows you to put a caller on hold, while you quickly look at a password in the password file, or check the caller log. To put the caller back on-line, press f5 at the command prompt, then change local to 0. The caller on the other end will then see another command prompt.

There’s a special message merge routine that can only be used while on-line at the BBS console (not from remote). If you end your message with “/e” then press the Commodore key while at the message editor prompt, you’ll be asked for the merge filename. This allows you to merge any existing file from your system files drive into the message (or mail) you are creating with one of the message editors. This is real handy for sending a “form letter” to new members.

There’s a special carbon copy feature built into our private mailbox editor. After reading any incoming mail, at the (D)elete, (R)eread, (A)utoreply prompt, if you press the Commodore key you’ll see a “carbon copy” prompt. If you answer Y, this piece of mail will be transferred to the default message section of the BBS. This is good for when a caller leaves a question in feedback that would benefit more people if it were in the public messages area. All you would need to do is select (P)ost a Message, answer N to private, select the appropriate category and then use /* to carbon copy the default message into the message editor (more on using Color 64’s default message can be read in your help files).

There are times when it may be desirable to “break” the BBS program, even though the STOP key is disabled. Maybe you have a programming error and need to examine variables, maybe your modem locked up and the program is waiting for it to clear, etc. If you ever get into this situation, just press and hold the SHIFT, COMMODORE, and CONTROL keys all at once. If this doesn’t seem to work, tap on the restore key a few times while still holding down all three shift keys (sounds impossible?) then let go and do a RUN/STOP RESTORE. That will usually work. If not, then possibly you have experienced a hardware or power related problem, locking up your computer.

There’s a special utility program on the BBS PROGRAMS disk called “display crash”. If for any reason the system crashes and reruns itself, the BBS program will take a picture of the screen at the time of the system crash and store it for you under the kernal ROM. This display crash program can be used to recall that saved screen. All you do is shut the BBS down using the f8 shutdown procedure. Then (without powering off the C64) put in your BBS PROGRAMS disk and enter load “display crash”,8,1. Almost immediately the system crashed picture will reappear. Carefully examine it to see what kind of error you had and in what line number. If you have an old kernal ROM, some of the recalled picture may be unreadable. If this is the case, just type:

poke53281,1:print”(home/clr)”:poke53281,0:load”display crash”,8,1

to see the screen. You can redisplay the “system crashed” screen as often as needed unless the C64 has been powered off.

There’s another utility program on the BBS PROGRAMS disk called “dir create 7.30”. This program can be used to quickly create a new directory file for your download directories. It’s true that Color 64 would automatically create a directory file the first time a caller asked for a directory, but that directory regenerate can take quite a while (especially if you have a lot of files on the disk). “dir create 7.30” is a standalone program just for creating your directory file the first time (it will not work if you already have a directory file on your disk), and as such it works very fast. So if you are wanting to start your system with hundreds of files already in your download areas, we recommend you use this directory create utility on all your disks before you load up your BBS.

We hope this explains most everything you’ll want to know about this BBS program, but if you do have any questions, please feel free to contact us by feedback on the BBS’s listed on the cover page or by sending us a letter.


The following procedures will allow us to copy the data out of our REL password file into an easier to handle SEQ file for backup purposes and restore our password file (all or just one record) from that backup file when needed. With these two utilities, we can safely store our password file anywhere we choose (like on an SFD 1001 or hard disk drive), as long as that drive is capable of handling relative files.

To BACKUP the password file, load “bak pswd 7.00″ and run it. It will ask for the device number, drive number and drive command of the drive where your password file is stored. On your screen, you’ll see an ” 8, 0, i0″. Change this as necessary and hit RETURN. That’s all you need to do. You should start seeing a counter increment, indicating the current number of records backed up. When the program is finished, you will find a new sequential file on your disk called “password backup”. This file contains all the information currently stored in your password file, but in an easier to handle SEQ format. Then you NEED to copy this file onto another disk for safe keeping using any file copier (like Super Xfer).

To RESTORE the password file, you first need to make sure a relative password file already exists. The restore program will not create a password file, it only fills the password file with data from the password file backup. So if there’s not already a password file on the desired disk, run the SETUP program and it will make a new one for you. The password file doesn’t have to be blank, RESTORE will write over any data currently in the file. Also, you need to make sure the “password backup” sequential file is also on that same disk. Use a suitable file copier (like Super Xfer) if necessary to copy the password backup file onto the correct disk. To begin the RESTORE, load “restor pswd 7.01″ and RUN it. It will ask for the device, drive number, and drive command of the disk drive containing the password file with an ” 8, 0, i0 ” already typed on the screen. Change this as necessary and press RETURN. Next it will ask for the record number to restore or 0 to restore all records. That’s all you need to do. You should now see a counter increment as the backup file is restored into the password file. This restore is much slower than the backup, but is normal when writing into a relative file. Hopefully, we will not be doing too many restores anyway. When the restore program has finished, the password file will be ready to use.

There’s also a special utility program on the BBS PROGRAMS disk called “fix pswd 7.00”. This utility can be useful if for some reason you find a caller’s record is unreadable. This program will NOT fix disk read errors, it just straightens out records that have corrupted data. Normally you would use “restor pswd 7.01” to restore a bad record, but if you do not have a “backup password” file, this may be the only other way to salvage what’s left of your password file.


Color 64 BBS version 7.30 fully supports the ICT Data Chief hard disk drive system. All you need to do is use “hm4 11 22” as the drive command for whatever files you want stored in a chain defined as starting at partition 11 and ending at partition 22 or h10 for files you want stored in an individual partition 10. The only files that you can put in chain mode are PUBLIC MESSAGES, HELP FILES, TEXT FILES, UPLOADS and DOWNLOADS. SYSTEM FILES, PRIVATE MAIL, CALLER LOGS, PASSWORD FILE and PROGRAM FILES must be assigned individual partitions. And if you are using the Epyx Fastload cartridge, you must put your program files on H0 (the built in floppy) or you’ll experience intermittent system lockups.

The ICT has been tested with the Burst Mode ROM from Chip Level Designs and it works GREAT! This ROM allows your C64 or C128 to access your hard drive in its burst mode of operation, speeding up all disk access by 2 to 10 times. Also, if you have a 1764 or 1750 Ram Expansion module, there are a couple of optional modules that will allow you to do all of your hard drive maintenance from within Color 64.

As far as download directories, we recommend you answer “N” to the question “Multiple Directories Per Drive” in SETUP. As far as Color 64 BBS is concerned, each different chain looks like a different drive. Running one directory per drive/chain has the advantage of not having to rename files before they can be downloaded too. It will work either way, this is just our recommendation.

One last comment. The scan for new downloads is a little slower on the ICT drive than on other drives. That’s because it’s necessary to read two different files in 2 different partitions. So we’re having to open and close a lot more files than on the CBM drives. But all in all, it does work well and is still fast enough (especially if you have the burst mode ROM in your computer).


Color 64 BBS version 7.30 supports the Hayes Smartmodem 2400 and many good compatible modems. You should find that your C64 and Color 64 can handle 2400 baud file transfers with less than 10% errors (many will find error free file transfers depending on the quality of your modem and phone lines).

Here is how it’s recommended you setup your system for 2400 baud. First thing you need to do is to configure your modem. They come from the factory with DTR and CARRIER DETECT forced true. The 1200 baud modems had switches while the 2400 modems don’t. Instead they have a series of commands that are entered from a terminal program then stored in permanent memory. The following commands are what we recommend you type to setup your modem. Just load a simple ASCII terminal program, and at 300 baud type the following:

AT&D3 (some compatibles prefer AT&D2)
Now switch your terminal to 2400 baud and type: AT&W

AFTER you have performed the above, you need to run SETUP and in the MODEM INIT command, enter: +ats7=15s10=30

The first step above presets your modem to disconnect and reset to power on configuration when DTR is dropped, monitor carrier lost and disconnect if false, force DSR true, not auto-answer the phone, turn off the speaker, turn echo off and then save this configuration in permanent memory within the modem. After typing the ATE0 command, the modem will quit echoing to the screen. This is the only reliable way to send “at” commands at 2400 baud with a Commodore 64 (e.g.. with echo disabled). It seems the echoed characters would bog down the software driven UART to the point where it would corrupt the data entered. Anyway, the BBS does not need echo and when you want to auto-dial another BBS, just use the autodialer built into the term.

The modem init command in SETUP will set the modem to wait for a carrier for 15 seconds. It was found that 30 seconds was too long and often the telephone companies off-hook attention signal would confuse the modem to think it had carrier. Besides, 15 seconds is plenty long to wait for a carrier. This s7 register is not saved in permanent memory when using the AT&W command, so we need to enter it here in SETUP. The second part of the modem init command will set the carrier lost disconnect delay to 3 seconds. This will help minimize the number of carrier losses experienced on the BBS if your callers have call waiting. Realize that if the caller is using a modem that does not have the ability to adjust the carrier lost delay or they do not have it set long enough, their modem will hang up immediately and your modem will follow 3 seconds later.


dialing with a terminal program, which automatically redials the number if a no carrier or busy signal is detected

replying to a message without having to enter the date, time, or subject

Beginner’s All-Purpose Symbolic Instruction Code

bulletin board system or bulletin board service.

Commodore 64 personal computer

Commodore 128 personal computer

Commodore Business Machines

Nonmaskable Interrupt

Rapid access memory

Read only memory

RAM expansion unit

Color 64 Version Super ML

sysop (or SYSOP)
system operator

Color 64 Version 7.37

Color 64 Version 8 (instead of the popular vegetable drink or type of combustion engine)

Color 64 Version 128


If you own a C128 (or plan to) and want to run a BBS on it, we recommended this BBS program. It’s nearly 100 percent compatible with V7.37 and has much more memory and features. This is not the place to advertise, but we feel you need to know about it.

It’s available for $25.00 from:

Adam Fanello
4822 Larwin Ave.
Cypress, CA 90630

Nature Reserve BBS