Skip to content

Latest commit

 

History

History
7146 lines (5101 loc) · 238 KB

image-1_2b-sysop-manual.adoc

File metadata and controls

7146 lines (5101 loc) · 238 KB

Image BBS v1.2b Sysop Guide

Table of Contents

Copyright © 1991 New Image Software

Last updated {revdate}

Image BBS 1.0 manual was OCRed by JOE COMMODORE. Documentation was updated to Image BBS 1.2b by PINACOLADA from documentation by DR. BOB, LITTLE JOHN, and others.

Image BBS modifications by RASCAL, METAL MAGE, PINACOLADA, X-TEC, IRON AXE, and many others.

Handle:    Network Identifier: _

Preface

In 2007, Dave “Metal Mage” Hartman and I found ourselves pondering why there wasn’t an updated version of the manual available to go along with all the fixes and updates which had come out since Image 1.2a was released. To get all “the good stuff” (as we call it) required reading even more documentation, merging “mods” into core BBS files (sometimes needing to start over with stock files, trumping any mods the sysop had already made), or setting up an altar to Fred Dart.

(Believe me, I thought about it. For those of you not in the know, he was one of the best Image programmers around; sadly, he’s gone on to that great BBS in the sky, where there surely must be an active user base of a few billion people. At least he can party on with Ron Fick, a Lt. Kernal guru, and Jim Butterfield…​ Imagine: Q-Link, with no plus charges…​ oh, wait. Another Jim B.'s been there, done that. :)

Metal Mage and I decided this simply wouldn’t do; it’s a horrible new sysop experience. We hacked together what we called “Image 1.2b” which had what we considered to be the best new changes already put in. For example: There were a few things changed by Bob “Iron Axe” Sisco with his “Year 2000” fix which I changed back for aesthetic reasons (blue lightbar and chat window colors don’t fit in with the default grey scheme, in my humble opinion).

Overall, we figure we’ve got it mostly licked.

This version of the manual includes expanded coverage, reorganized sections, documentation of new (at the time) features which were once available as separate add-on disks (some slated for Image 1.3):

  • a few games and BBS utilities

  • “AutoWeed,” which lets you remove callers who haven’t called in a specified amount of time

  • the “Extended Command Set,” configurable BBS commands

  • the “TurboREL” system, faster access to message sub-boards and “RELedit,” the sysop-side editor

  • Image BBS networking

The “new” (released long after the original manual was completed) Image BBS programmer’s reference guide is also included in an appendix. A lot of good information awaits you in these pages.

Please note that I’ve tried to introduce each new section in a sensible way, but if you don’t understand something because it hasn’t been explained yet, or it’s unclear—that’s a sign of bad documentation. Let me know about it; I’ll have myself flogged (let me start the noodles cooking).

Having previous experience with the software, I’ve tried not to fall into the trap of “it’s obvious to me, not necessarily everyone else.” And while I do try to define possibly unfamiliar terms, you won’t find a glossary with “upload” and “download” in it, at least not here. Already being familiar with BBS basics (perhaps having called an Image BBS as a user before?) is extremely helpful. However, don’t let my pseudo-gruffness stop you from contacting me if you run into something you don’t understand!

99% of the following work is either the New Image crew, Joe Commodore, or someone else. I just ran it all through a blender, baked until golden brown, et voila! It must be true: Anyone can cook.

Many thanks go to Larry “Joe Commodore” Anderson for OCRing the 1.0 manual plus the updates! Also thanks to Rascal, X-Tec, Iron Axe, Metal Mage, Fred Kreuger, and anyone else I forgot.

I just want this to be the best, most comprehensive manual available, given all the great fixes that have come out since Image 1.0 came out. Who knows, maybe you’ve got the next hot modification or suggestion—or an answer to some burning Image BBS question which kept me up nights.

Surgeon General’s Warning

By no means must you read through this documentation in one sitting, or a day, or a week. Take it in bite-sized (byte-sized?) chunks; I sure remember the intimidation I felt when I saw the original manual…​ Just take a deep breath, have some milk and cookies, and come back to it later. Scribble stuff in the margins. Tune in, turn on, boot up!

Blatant Begging (On Hands and Knees Even)

Also, I would like to collect any information about Image BBS you or your friends and colleagues have. Back in the 1990s there were hundreds of Image sysops-—they can’t all have died yet. :) Any plus-files, programming information, “Reflections” or NISSA (New Image Sysop Support Association) e-zines you’ve got—in short, anything Image-related-please forward it to me.

My goal is to revive Image BBS and its network, to re-kindle the feelings of anticipation when there was a new plus file or mod to download.

Image Network Information

As of 2014, Larry “X-Tec” Hedman is the NISSA and network administration guy. We have 13 nodes as of July 2018.

Anyway, drop me a line—I want to hear from you! plzkthx.

PinaDox (tm & pat. pend.—I’ve never patted a pend. before but I’m willing to try anything): The only user-friendly documentation with a built-in sense of humor. footnote[Well, okay, I amuse myself, and that’s what’s mportant.]

Text Styling Notes

This version of the manual has some enhanced typographical features. Firstly, by and large a proportional font is used. I have nothing against monospaced text—after all, it’s what a BBS is made of—but in the long run it really makes my eyes bug out looking at pages upon pages of it (as with the first printing of the Image BBS manual).

Text output by the BBS, and filenames, are monospaced.

Keyboard keys (like Return) have boxes around them in the HTML version, and are rendered in red monospaced text in the PDF version.

Additional sections, information, or changes from the original manual are put in a sidebar, like this one.

There are the beginnings of cross-references to where sections are now. If you see a missing cross-reference, please let me know.

Larry Anderson’s Introduction

Dear Reader:

Here it is, the much-needed documentation of Image 1.2a BBS.  This is an OCR of the original documentation, which included the Image 1.0 manual and addendum sheets for Image 1.1 and 1.2.  If you are setting up 1.2, make sure to read the 1.2 addendum as well as the 1.0 manual.

Notes:

If you are setting up Image, use the 1.0 diskette, and copy over the 1.2 files on to a copy of the 1.0 diskette (overwriting the outdated 1.0 files).

Tip
Even better: Save yourself the hassle—use Image 1.2b!

There are special notes if you are using a Supra 2400 baud modem as well as using a CMD or Lt. Kernal hard drive.

The modification diskettes for TurboRELs and BBS-to-BBS networking contain their own install/usage documentation on the disk image. (Note: Using TurboREL message bases on a 1581 drive may be problematic; e-mail me if you need more info on it.)

This is probably because of the “secondary address #1” bug. I have included the BASIC program 81bug.bas to demonstrate it, if you’re interested. I need to get in touch with Larry to see whether this is in fact the cause.

In its' time, Image BBS was one of the top-of-the line Commodore 64 BBSes, even compared to PC counterparts of the day. Image held its own in features and adaptability.

Note
The BBS numbers in the following documentation are all long gone, please do not try calling them.

Enjoy!

Larry Anderson

Sysop - Silicon Realms BBS

Package intro letter

New Image Software

P.O. Box 525

Salem, UT 84653

801-423-1966

Note
Dead address, of course.

Dear Customer and Friend:

We thank you very much for ordering IMAGE BBS v1.0!! We think that you will be very happy with your purchase, and intend to fully support our customers in any way that we can. If you need any help whatsoever in setting up your BBS or maintaining it, please feel free to contact us by mail, phone, or BBS, and we will do what we can.

This version was supposed to be released long ago, but due to problems in relocating our offices and other things, it is late. (Ever have 5,000 screaming sysops on your phone line?!?) We apologize immensely for this, but feel that the quality of the program will make you forget about this very soon! Read the manual through and see the options that you have with this BBS program!

Please also notice that we have added a few things that are not documented in the manual. The List function in the subsystems now shows to the user if the sub-board/library is a “special” one, highlighting the library in color, and also showing an abbreviation at the beginning:

N-An means a non-anonymous sub-board.

Anon means anonymous sub-board.

Pass means password-protected sub-board, and

Free means a free UD/UX library.

See the manual for more information on these.

Also, please note that the support BBS and voice numbers for the northern (Michigan) region are no longer valid.  The new BBS support line for the north (Lyon’s Den BBS) is 313-453-2576.

24 hrs—300-1200 baud.

The new main voice support line will be located in Utah, as listed in the manual, 801-423-1966.

The new southern (Florida) support lines are: voice: 904-756-1206 (sysop is Ron Fitch), and the Tec-Net BBS is 904-756-2700.

Night Flight BBS listed in the manual is no longer associated with us; the rest of the numbers are all still valid.

Add these variables to the list on page 53: BF, CH$, PO$, KP%, MM.

Our plans for the future:

There is no programmer’s manual for the software available yet, but we do plan to write one in the near future. You will be seeing many modules available for IMAGE soon, both translated from old popular winners, and brand new! You will also see utilities for running your BBS, both in module form, and runnable in BASIC to make things easier for you. We plan to write a terminal program that will interact with IMAGE to allow full sound, high-res graphics and sprites for the user, and will have the same module routines as the BBS does. This will allow you to write a module (plus file) for BOTH the term and the BBS that will interact. A 128 version of IMAGE is also planned. As is our policy, NO release announcements will be made until the new products are ready.

As always, we welcome comments, suggestions, and criticism at any time, so please let us know what you think! Looking forward to a long, happy, and mutually satisfying relationship with you! Keep in touch!

Don Gladden

New Image Software

Addenda for Image 1.2a, page 1

Congratulations on your purchase of IMAGE BBS V1.2a.

We believe that you have purchased the finest BBS program available today for the Commodore 64.  The program is continually being updated and refined and some of the latest updates have not yet made it into the manual.  For that reason we are including this short addendum.  Version 1.2a differs only slightly from 1.2.  It includes the “CMD Mods,” or the changes necessary to allow the use of partitions from 1 to 255 on that particular drive.  It can still be used on any other system, including the Lt. Kernal.  Caution should be taken however, as it is now possible to address LU 10, the DOS LU.  All of the “mods” are installed so there is no need to download any “CMD Mod” packages.

Some of the features from 1.2 that are not clear in the manual include the selection of the proper modem file.  The manual states, incorrectly, that you should choose a modem file that matches your modem and rename it to .modem`.  That has been changed.  There is now a `.modem file on the disk that is universal.  Be sure to use that file, and use the modemconfig file to select your proper modem type.

Note
If you are using any 2400 baud modem, you must run the 2400 setup file first before booting the BBS.

The u.alpha file has been replaced by u.index that is maintained and manipulated by a file called .alpha/ind`.  Should your index become corrupted, one common complaint is that users can sign on with their ID number but not their handle.  If that should occur, run `.alpha/ind from the main prompt and choose the options LOAD, CLEAR, MAKE and SAVE in that order.  It is very important that you follow those steps; saving is required, since the program will not save for you.

The “macros” are installed in 1.2.  There are “mods” out that call for lines to be added to setup and im but they are already in, all you need is the +.ME (macro editor) that is available on the PlusFile disk #4.  After you have the macro editor, you can define your macros and then turn them on by putting the check mark on the right side of Exp on the second page of the lightbar (press f8).

The support numbers in the manual are wrong.  The one voice support line is 801-423-2209.  The BBS numbers are:

Port Commodore  801-423-2734
Lyon's Den East 313-453-2576
GearJammer's II 215-487-0463

We hope you enjoy your IMAGE and if you need help don’t hesitate to call.

—NEW IMAGE SOFTWARE

Addenda for Image 1.2a, page 2

FIXME: Fold this information into the main manual; it will reduce content the new sysop has to read through.

Here are some changes that have been made since the manual was printed. Please note them carefully.

Pg 1  DISK DRIVES

Since the release of the Creative Micro Designs hard drive, IMAGE was updated to version 1.2a, which includes the “CMD Mods.”  IMAGE now has the ability to address partitions 1 through 254.

Pg 4  DESIGNATING DRIVES

IMAGE 1.2 added some new files called scn.xx (where xx are t1 t2 t3 t4 c1 c2 c3 c4).  These eight “screen” files are the text of and color for 4 screen masks displayed either at system idle, or other areas on the BBS. These files must be placed on the plus file drive for proper operation.

Pg 5  COPYING FILES

In this section you are told to choose the modem file that matches your modem and rename it to .modem`.  That is no longer necessary.  There is now only _one_ modem file for all 1200 and 2400 baud modems, and it is `.modem.  After you have completed the configuration of your board, run the modemconfig file and select the modem type you are using.  It will then write the parameters to the etcetera disk.  Any time you change modems it is only necessary to run the modemconfig or +.modemconfig to re-select your modem type.

Note
If you are using any 2400 baud modem, it is necessary to run the 2400 setup file which sets the modem up to respond to IMAGE.  With the Aprotek “MiniModem C24” it is necessary to run 2400 setup any time the computer is turned off for more than a few seconds.

Pg 16 THE LIGHTBAR

There are now two pages to the lightbar. The first page remains the same, the second page has only three functions that are used immediately.

The first is Asc which is:

Left: ASCII on/off

Right: linefeeds on/off

The second is Ans which is:

Left: ANSI on/off

Right: IBM Graphics on/off.

The third is Exp which is:

Left: expert mode on/off

Right: macros on/off (note that they are already installed)

In addition, the Turbo-RELs use Fn5 for:

Left: credit when file is uploaded or when validated

Right: log off after file transfer is complete

The CMD mods (1.2a) also introduced the right side of Fn1 which turns MCI off when checked.

Pg 29  COMMANDS

There is no longer a BC (baud change) option.

Note
The heck there isn’t! I put it back for historical preservation, even though it’s unlikely to do anything useful! Yay me.

Preface

We feel that the program you have just received, IMAGE BBS version 1.2b, is the most versatile and elaborate BBS program for the Commodore 64 computer available today!  It is the result of over five years of work and many hours of programming time, has taken ideas from modem users and BBS sysops all over the world for its design, and offers many hours of pleasure for both BBS callers and sysops.  If you are a programmer, or even a novice programmer, IMAGE BBS is designed to be easy to modify to suit your own tastes, and even to add modules to do any type of function on the BBS that you may wish to have!  With some practice, and knowledge of IMAGE programming techniques, virtually anything is possible to add to your BBS.  We have included some basic information on technique to get you started, and plan on releasing a more comprehensive programmer’s manual in the near future.

Thanks go out to all who have supported us in the past with our programs, and for all the suggestions and ideas that have been shared with us.  If you need to contact us for anything at all, please feel free to at any of the voice or BBS numbers supplied on page v of this preface.

Special Thanks To:

Peggy

For being an understanding wife while this program was being developed, taking over the business end of things at a time when it was needed, and helping to make decisions, some of which were really tough.  I don’t believe this program would be possible without her.

Jamie, Christy, Billy, and Kim

For their support, patience and understanding in giving Dad (and sometimes Mom) up for all the extended programming and business sessions.

Ray Kelm (PROFESSOR)

For being the sharpest ML whiz-kid in the world, and all the quality work.

Fred Dart (THE CHIEF)

For the extensive beta-testing and bug reports. (Not sure why I’m thanking him for bugs, but…​) Also, for his enormous phone bills in getting this thing done as soon as possible. And for many other things too numerous to detail.

Jay Levitt

For representing us on QuantumLink for so long, and the work he has helped with on the program, especially the e-mail routines.

Bob DiLorenzo (BLINKY)

For beta-testing, the vacation and tour of Opryland in Tennessee when I needed that break so bad, and for being such a good friend.

Jim Flinn (MUZAK MAN)

For designing the awesome title screen and beta testing.

Mark Verellen (KING TRENT)

For bringing over the Cokes when I was broke, and being official IEEE beta tester.

Mike Coley (THE HAPPY HACKER)

For the voting booth, and so many great ideas! (Where are you, Mike, haven’t heard from you!)

Julie Rhodes (BLUE ADEPT)

For the new BBS List program, and all her support.

John Moore (LITTLE JOHN)

For joining up with us, and starting work on the 128 version of IMAGE. Also for the graffiti routines in the logon.

Rich Matteo (SHADOW WARRIOR)

For the use of his modifications for the multi U/D and full disk exchange routines, to make it so much easier for us to add.

Tony DeLiberato (ULTRA LORD)

For his help on the production of this manual and advertising layouts.

John and Paul at QuantumLink

For their help and support on Q.

Fiscal, Xetec, Trans-Comm, InConTrol, and the many other companies who were so cooperative in helping us develop the program to allow their products to be used.

And finally, to you, for trying IMAGE BBS out! We’re sure you won’t be sorry you did!

-Don Gladden

New Image Software

Product Information

This section contains all warranty, program usage, and support information.

Usage Agreement

You have the non-exclusive right to use the enclosed program.  Copying the program with the intention of distributing it to others, whether or not for personal gain is illegal and not in accordance with this agreement.  Modifications of this program may be made for personal use, and to share with other REGISTERED owners; however, the modifications should be shared as modules.  Do not distribute the program in its entirety.

Back-up and Transfer

Backups may be made of this program; however, you must include the copyright notice and serial number on any back-up copies.  Transfer of registration may be done by sending signed written notice from the original purchaser, releasing his registration rights.  Contact New Image Software for further instructions regarding transfer.

This program and documentation manual are copyrighted under the laws of the United States and Canadian governments.  You may not copy the program for distribution purposes at any time, whether for personal gain or not.  You may NOT remove the copyright notice or serial number at any time.

Limited Warranty On Disk

New Image Software warrants the DISK on which the program is furnished to be free from defects in materials and workmanship under normal use for a period of 90 days from the date of purchase on your receipt.  To obtain service or replacement, you must deliver the disk prepaid to New Image Software.  The responsibility of New Image software is limited to repair or replacement of the original disk and/or documentation manual. The program and the manual (“software”) are provided without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.  New Image Software does not warrant, guarantee, or make any representations regarding the use of, or the results of use of, the program in terms of quality, correctness, accuracy, reliability, currentness, or otherwise, and you rely on the program and results solely at your own risk.  New Image Software also does not warrant that the program or manual will meet your requirements, or that the program will be uninterrupted or error-free.

EXCEPT TO THE EXTENT PROHIBITED BY APPLICABLE LAW, ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ON THE DISK IS LIMITED TO THE DURATION OF THIS LIMITED WARRANTY.

Limitations of Remedies

In no event will New Image Software be liable to you for any damage in excess of your license fee paid, including, without limitations, any lost profits, business goodwill or other special incidental or consequential damages arising out of the use or inability to use the program, or for any claim made by any other party, even if New Image Software or the dealer had been advised of the possibility of such claims or damages.

This warranty gives you specific legal rights and you may also have other rights which vary from state to state.

Update and Customer Support Policy

In order to be able to obtain any customer support or updates of the program, you must complete and return the enclosed registration card to New Image Software.  If this registration card has not been received by New Image Software, or New Image Software is aware of breach of any part of this agreement by you, New Image Software is under no obligation to make available to you any customer support or updates of the program even though you have made payment of the applicable update fee.

Acknowledgment

You acknowledge that you have read this agreement, understand it, and agree to be bound by  its terms and provisions by filling out and returning the enclosed registration card.  You also agree that this agreement is the complete and exclusive statement or agreement between the parties and supersedes all proposals or prior agreements, verbal or written, and any other communications between the parties relating to the subject matter of this agreement.

Should you have any questions concerning this agreement, please contact in writing:

New Image Software

Customer Sales and Support

P.O. Box 525, Salem, UT 84653

Note
Dead address, of course.

User Support

THANK YOU VERY MUCH FOR PURCHASING IMAGE BBS!  This manual is a very detailed description of the features and capabilities of the program. However, if you have any questions left unanswered, or if you discover any problem with any part of the program, please feel free to contact us at any of the following BBS or voice support lines.

LYON’S DEN BBS (Central Region: Michigan)\ BBS: 313-453-2576  24 hrs.  300-2400 baud.\ System Operator: Ray Kelm (Professor)

PORT COMMODORE BBS (Western Region: Utah)\ BBS: 801-423-2734  24 hrs.  300-2400 baud.\ 9:00AM to 5:00PM MST\ Voice Tech line: 801-423-1966\ System Operator: Fred Dart (The Chief)

For support, call any of the support boards listed or any of the tech lines listed during the hours listed.  These locations are set up for your convenience, you may call any of them but you might want to call the one nearest to you; they are located in the states shown.

The bulletin boards listed all have many users that are IMAGE BBS owners; they love to share modifications and ideas!  You can benefit greatly by being a member of any of these BBSes.

Additional support can be found on QuantumLink.  Each of the above listed support personnel are available on QLink as: IMAGE Don, IMAGE Fred, and IMAGE Jay and will make every attempt to assist you in any way.

Note
Until further notice, this manual covers all current versions of Image BBS: 1.0, 1.1 and 1.2.

Update 7/2014: There is a [Facebook group](https://www.facebook.com/groups/141819789446) and the beginnings of a support web site, [Pinacolada’s Projects](https://sites.google.com/site/pinacoladasprojects/)

Also, stop by Jeff Ledger’s [Commodore TelBBS forum](http://jledger.proboards19.com/), where there is some archived information about Qlink and telnet BBSes.

Setting Up Your Image BBS

Setting up should be very simple.  We suggest you read this chapter carefully, following the instructions step by step.  The configuration editor also has built-in documentation to help you out.

Hardware Considerations

IMAGE BBS has been tested with many different types of peripherals, and usually has no problem running with any Commodore compatible equipment. If you have any problems, please contact us at one of our support centers listed in this manual for help, and we will do all we can to help you to make IMAGE BBS work with your system.  Some modems and drives deviate from the Commodore standard enough to cause some problems, but this is usually fixable with some patches into the program(s).  Some of the peripherals tested with IMAGE BBS and found to work well are:

Disk Drives

  • All Commodore drives (1541, 1571, 1581, and IEEE drives)

  • Xetec Lt.Kernal hard drives

  • Creative Micro Designs hard drives

  • ICT Datachief and Minichief hard drives (see notes below)

Lt. Kernal Hard Drives

IMAGE was completely developed using a Lt. Kernal drive, using LUs 0 to 9, so is completely compatible with this drive in all respects.

CMD Hard Drives

TODO: move “CMD Mods” from addenda to here.

ICT Hard Drives

This drive has a problem in chain mode that will not allow more than one file to be open at a time.  IMAGE does use more than one file at once in some areas, so we suggest not using the ICT drive for the E-mail or Etcetera disk, or for sub-boards.  Any other system function should work fine with the ICT drive.

Modems

Table 1. Supported modems

Commodore 1650

Hesmodem II

Commodore 1660 with CD

Commodore 1670 (both models)

MPP 1604

Avatex 1200hc

Total-Tel

Aprotek Trans-Com TCM 1200H & 1200H jr.

Westridge

Supra 2400 baud

Mitey-Mo

Most Hayes-compatible modems

See Modem Configuration for more information on setting the BBS up for your particular modem or telnet bridge.

Note
The modem routines in IMAGE BBS are contained in individual modules, so if a modem is not supported, it is very likely that a module will be written for it that will allow its use soon.)

RAM Expansion Units

IMAGE BBS has been tested successfully on systems using REUs in conjunction with other peripherals.  Version 4.2 (dated 07/14/87) of Commodore’s RAMDOS is provided.  It is set to define your RAMdisk as device 7, which is how it is supported by Image BBS.

AutoRAMDOS

This is a short file explaining how to use auto RAMDOS for IMAGE or any other application. There are four one-letter files for auto RAMDOS. Each has to be on your REU setup disk along with any files you want to copy to the REU when you boot. In the case of IMAGE, you might want to copy all system +. files and sometimes the s. files, depending on how your BBS is configured.

load"r",_device_
run

The program asks if you want to initialize the REU. If you have turned the computer off since the last time RAMDOS was in, answer Yes to this question. The program will then set up RAMDOS, and load the file copier.

The file copier copies files with names longer than 1 character to the REU. It can copy RELative files, and also asks whether you want to overwrite files which already exist in the REU.

To boot Image BBS, type

load"image 1.2b",7,1

and away you go! Enjoy!

Note
JiffyDOS does not recognize device #7, so you can’t use Ctrl+D to switch to the REU, nor can you boot with £image 1.2b.
Table 2. RAMDOS files
Filename Purpose

r

Image BBS RAMDOS installer, modified by Jay Levitt for use with REUs

f

file copier, copies any file with a >1 character long filename to REU

g

(fixme)

s

RAMDOS binary

TODO: expand this section with actual usage/setup info. The RAMDOS interface page is 207, I believe.

Printers

Most Commodore compatible printers should work with IMAGE BBS.  Standard Commodore routines are used by the program; using logical file #4, device #4, with a secondary address of 7 to allow for upper- and lower-case.

Other Interfaces

Some IEEE or printer interfaces could feasibly cause some problems due to memory conflicts, and would need some customization of the program to allow use.  Two IEEE interfaces commonly used and tested with IMAGE BBS are the “IEEE Flash!” by Skyles Electric Works, and the “BusCard II” by Batteries Included, both of which perform well.

RS232 (EIA232) Interfaces

There are two files: ml.rs232/user (for the user port) and ml.rs232/swift (for a SwiftLink or Turbo232 high-speed interface). Depending on the type of modem or telnet bridge you’ll be using, rename one to ml.rs232 in order to achieve the proper setup.

Fastload Cartridges

At the present time, we recommend that no fastloader cartridges be used with IMAGE BBS, they may only cause problems.

Please give any information about other fastload solutions you have success with using.

Creative Micro Designs SuperCPU

There are patches to make the BBS run at 20 mHz. During serial I/O, the BBS must be slowed down to 1 mHz with a POKE to the SuperCPU’s speed register.

Getting Things Going

If you want physical 1541/1571/1581 disks sent through postal mail, please send an e-mail to sym.rsherwood@gmail.com, specifying the format(s).  We’ll make arrangements regarding shipping cost—not that it’ll be much.  My goal is not to make money off this—unless you want to donate some—but see a revival of one of the top Commodore 64 BBSes into common usage again.

Now that you are ready to set up IMAGE BBS, we recommend you first back up your original disk (both sides if you are using a 1541 type disk), then store it in a safe place.  Never work with the original, just in case something goes wrong.

None of the disk files are copy-protected, so there is no worry about anything not working correctly with a backup disk.

If you are copying with more than one drive, Copy-all, a great public-domain program by Jim Butterfield, is included on the disk to assist you in doing this. Copy-all will copy PRG, SEQ, and REL files with no problems whatsoever on any type of Commodore compatible drives using two drives.

If you need to copy REL files using a single 1541 drive, you can use a program by Jim McAndrew called “Rel-Copy” specifically designed for that purpose.

Designating Drives

IMAGE BBS is designed to use up to eight drives, and possibly use even more with limited functions.  It will support:

  • single or dual drives

  • Lt. Kernal logical units (LUs) 0 through 10 (the DOS LU, a side effect of applying the “CMD Mods” in Image BBS v1.2a—which, among other things, let the BBS access partitions numbered 1-255)

You will want to plan your setup on what space you have available, so read the following information carefully to help you in this regard.

Although it is possible to run Image BBS using only one 1541 disk drive, we highly recommend you use at least two, since you will find that disk and directory space gets used quickly.

Trust the docs when they say this.  I suffered with one 1541 for years, then broke down and got a second one.  It still wasn’t very useful without having 30 sets of floppy disks, because I ran a huge BBS.

When referring to “device,” we mean the device number assigned to the particular drive (i.e., one drive online is usually set to device 8, two to 8 and 9, etc.).

When referring to “drive,” we are talking about the drive number (or partition if using a hard drive):

  • 0/1 on a dual drive such as the MSD-2 floppy drive

  • partition 0-10 on a Lt. Kernal hard drive

  • partition 1-255 on a Creative Micro Designs hard drive (0 refers to the current partition)

  • If you have two physical drives, there may either be a switch somewhere on the drives to change device numbers, or—as with older 1541 drives—you must cut a solder pad (the drive manual should describe how).

You may also “software change” the device number with the BASIC program dv change included on your IMAGE BBS disk, or online with the CD command.  If you only have single drives on your system, then the drive numbers will always be zero.

“Directory space” refers to the number of directory entries available on the drive, which is usually limited, depending on the type of disk drive.  A 1541 drive allows 144 directory entries, while an SFD allows 244, etc.  Check your drive manual to see what the limitation is.

“Drive space” or “blocks free” mentioned here will refer to actual blocks used/unused on the drive.

Now you will want to plan out which disks you want to use for which functions on the BBS.  There are six “designated disks” for BBS functions.  These can be combined in any form on any drive or number of drives.  They are described as follows:

1: The “system” disk

Contains mostly SEQuential (text) files that do not change often. Menu files, sub-board entry files, and other text/graphics files are all included on this disk.  Also, BBS news files are located here.  Will not use too much directory or drive space.

System filenames on this disk start with s.. News filenames start with n..

2: The “e-mail” disk

Contains all user e-mail and forced e-mail files. Will use much more directory space than disk space.

E-mail filenames start with m..  Forced e-mail filenames start with f..

If your BBS is part of a network, the NetMail files are stored here. These may take up a significant amount of drive space, but not too much directory space.

NetMail filenames start with nm..

3: The “etcetera” disk

Contains miscellaneous files used to supply BBS information.  Many online games and functions use one or more of these files to store their data.  Some of these files are RELative files, and most of them change frequently.  Storage depends on the number and type of online games and programs you are using.  If no online programs use the etcetera disk, it will not use too much disk or directory space.

Etcetera filenames start with e..

4: The “directory” disk

Contains all directories used on the BBS, whether for sub-boards, U/D libraries, text file libraries, or similar.  These files change often, and this disk will use a fair amount of directory space, but not too much disk space.

Directory filenames start with d..

5: The “plus file” disk

Contains all BASIC or ML modules needed to run the BBS.  They load when needed to execute various functions.  None of these files will change, unless modified offline.

Plus file filenames start with several different prefixes based on these categories:

+. BASIC modules

++ ML modules

scn. top and bottom sysop screen displays (idle screen, online user screens, Image Terminal screens)

Tip
In this revision of Image BBS, the Extended Command Set extension is enabled by default. This gives the sysop more flexibility in several areas. For more information, see Extended Command Set Editor. The initial ml.ecsdefs definition file which the ECS system needs should be copied here also.
6: The “user” disk

Contains all user data files, which are expanded as new users sign on. There are two files that keep all user information available to the BBS.  Two directory entries, a little over one block per user total.

User data filenames are u.config (REL) and u.index (PRG).

Different devices and drives can also be assigned to each of the following:

  • Sub-board in the message base subsystem

  • Upload/Download or user exchange library in the file transfer subsystem

  • Plus file in the online programs subsystem

  • Movie file in the movie file subsystem

  • Text file in the text files subsystem

These need not be the same as any of the six pre-defined system drives, but the above types of files may also be stored on those drives if so desired.

Copying Files

Now, format a new or usable fresh disk (or partition if using a mass-storage device) for each system drive you will have online, and copy over the files from the disk that you backed up.  We also suggest that you label each floppy disk with the device and drive number so that you will not get confused as to its purpose.

Flat file structure

Unfortunately, Image is somewhat hobbled by a “flat file structure”—i.e., there is no provision for using subdirectories (or even partitions with 1581 drives) on mass-storage devices which support them (the CMD devices are a good example).  All files must reside in the root directory to be accessible.  This is a shortcoming I plan on addressing in Image BBS 2.0 with the additions of CMD hardware detection (plus any other hardware I can emulate or get ahold of). The ability to issue DOS commands where appropriate is in the "General Files" section (which can contain message bases, text and plus-file items in a single directory!).

A similar modification is possible for Image 1.2b, I just haven’t gotten much further than the planning stage; which is to say, just a bit further than the BBS editor quoting…​ sigh.

We’ll start by copying the files which the BBS needs to function to their proper system disks.

Boot Disk

If you are using a floppy-based setup, you need to make a “boot disk,” from which you will load your IMAGE BBS.  Just use a blank disk, and copy the following files onto it.  This disk is used whenever you are re-loading (booting) your BBS.

Note
When you boot your BBS, any device can be used, but you must use drive #0. If you wish to use a different drive number to boot, you must change setup to reflect the proper drive.)

Whether you’re using a floppy disk or hard drive partition, copy the following files to the device you want to boot from:

Table 3. Required Boot Disk files
Filename Purpose/notes

image 1.2b

Boot file (load"image 1.2b",device,1)

im

Core BBS routines, written in BASIC

ml 1.2

Core machine language routines

ml.editor.loader

Swaps BBS text editor into place from RAM underneath ROM when needed

ml.editor

BBS text editor routines

ml.extra

Fast garbage collect; most are two seconds in length

ml.pmodes

Print mode definitions (see Message Command Interpreter)

ml.rs232

RS232 communication ML, renamed as above

screen 1.2

Title screen graphic file

setup

Initialization routines, written in BASIC

  1. Copy to the System disk all files beginning with s..

  2. Copy to the Etcetera disk all files beginning with e..

Note
The REL e.say file is optional.  This file contains “sayings” displayed to the user both at logon and when SY is entered at the main prompt.  Due to the size of this file, some sysops with smaller systems may wish to copy over e.say-smaller as e.say, or not use this feature at all by omitting the file entirely.
  1. Copy to the Plus File disk the following files beginning with .` (don't forget `.modem), ++, and scn.. Also, ml.ecsdefs should be copied here in order for the default Extended Command Set definitions to work properly upon bootup.

Table 4. Required Plus-File Disk files
Filename Purpose/notes

+.modem

Modem communication routines; rename as necessary

+.lo

Idle screen (waiting for call) plus-file

ml.ecsdefs

Extended Command Set definitions (see Extended Command Set Editor)

scn.*

Text and color information for screen masks

If you are using a user port modem, rename ml.rs232/user to ml.rs232. If you are using a high-speed modem or telnet bridge program, rename ml.rs232/swift to ml.rs232.

config may be modified in the future to make this procedure automatic.

The user files are created during the first-time configuration process; directory and e-mail files after your BBS is up and running.

It is fine to put these boot files on your System disk, assuming you have sufficient drive space.

Now you are ready to configure IMAGE BBS!

Configuring Image BBS

For many this is a new experience. You will not be reconfiguring an existing system nor be converting a system over, but rather are starting from scratch.  For those that want or need to start fresh, the Configuration Editor will do the job.  If you are converting an existing system from CNet 12.0/12.1, there are also convert routines in this program.

BBS Configuration Editor

Bla bla, some sort of intro. fixme

Configuring a New System

You begin by loading the configuration program from your back-up disk (side 2 of a 1541 disk). Use the standard Commodore load command (assuming 8 is the device number you’re booting from):

load"config",8

After it is loaded, type run. The configuration editor is very complete and self-documenting.  You should follow each step in sequence just as they are listed in the configuration menu.

Available Keys

To select an option, use the crsr 🡡 and crsr 🡣 keys. To change the value the highlight bar is on, hit Return.

You can usually back out of a menu option by pressing .

Use this procedure with any menu item in the configuration editor.

Devices/Drives

The first menu selection helps define the devices and drives you have to run your BBS on.  Selecting the Devices/Drives menu option will bring up a sub-menu of options.  The system of sub-menus will take you completely through your device and drive setup, defining each of the six required system drives, identifying which device and drive they are set to, as decided earlier.

The default values are for device 8, drive 0.

Message Base Section

TurboRELs System

After this configuration editor was written, New Image Software developed improved handling regarding the message bases and file transfer areas. Called the TurboRELs, they can be configured while on the BBS via the “RELedit” system.

Note
If you’d like to join the BBS network, you must use the TurboRELs, instead of the older SEQuential style message bases created by this configuration editor.

You can start off with this older message base system and upgrade later, there are conversion programs included on the TurboREL disk. TODO: add notes about converting

See The RELedit System for more information.

Edit Subboard

Name
Access
Subop

You also enter a subop (sub-board _op_erator; a user given an area of the BBS to maintain) for each sub-board/library.  This is done by typing the ID number of the user desired.  If you are configuring a new BBS, you have no users yet.  Therefore, assign the subop duties to either yourself (user 1) or to no-one (user -1).  Of course, you may change this later.

Each sub-board/library must be defined as to which device and drive to put the files on (posts, responses, U/D files).  The device and drive menu options allow you to set these.

When you’re done with your selections, select the last option, "Keep Parameters" and you are returned to the prompt to assign another sub-board/library.  When you’re done, simply select the “Main Menu” option.

Device
Drive

Upload/Download Section

UD Exchange Section

Access Groups

You should now define your access groups.  There are 10 groups, numbered 0-9. Each access group can have different capabilities as you wish.

All new users signing on to the BBS are automatically placed into group 0.

We also suggest that, at least to start, you define group 9 as the most powerful group.  When you first log on to your BBS as sysop, you are assigned group 9 access.  You may change your access group after logging on for the first time.

Edit Access Group

The parameters for each group consist of:

  • Group name

  • Time in minutes permitted per call (1-99 or 0=infinite)

  • Number of calls permitted per day (1-254 or 0=infinite)

  • Amount of time permitted idling (no activity at a command prompt) (1-9 minutes)

  • Number of downloads per call (1-255 or 0=infinite)

When you have completed all assignments for a group, select the Keep Parameters option and move on to another group.  When all groups are assigned satisfactorily, choose Return to Main Menu.

Note
Any changes in access group information, either with the offline config editor or the online +.reconfig editor, require a reboot before the changes take effect.
Group Name
Time/Call
Calls/Day
Idle Time
Downloads/Call
Edit Flags

Each group has a set of “flags” assigned to users placed in that group. These flags may be customized for individual users at a later time if desired.  With this editor, you set the flags as you wish them assigned when first entering the particular group.  The flags usually toggle between “Yes” or “No,” but a few require numeric input.

User Flags

The 15 flags assigned to each access group:

Table 5. User Flags
Flag Type Purpose

Non-Weed Status

Yes/No

Yes: Group is not deleted from the user log after not calling for a specified number of months. (See AutoWeed system.)

Credit Ratio

Numeric

The number of credits awarded (1-9) per line written in a post, response or file block uploaded. Default ratio is 1:1.

Local Maintenance

Yes/No

Yes: Group has access to BBS maintenance commands. Only give very trusted users access to this.

Post/Respond Capability

Yes/No

Yes: Group can post messages in message bases.

UD/UX Access

Yes/No

Yes: Group can use Upload/Download or User eXchange subsystems.

Maximum Editor Lines

Numeric

Lines of text (10-100, in multiples of 10: 0=10, 1=20, 2=30…​) group has available to write messages, e-mail, or feedback.

Unlimited DL Credit

Yes/No

Yes: no credit is deducted when files are downloaded.

Remote Maintenance

Yes/No

Yes: can write or remove forced e-mail, view feedback, and view system logs.

E-mail Access

Yes/No

Yes: group can send/receive e-mail.

User List Access

Yes/No

Yes: group can list BBS users.

B.A.R./Log Access

Yes/No

Yes: group can view the BAR Stats or daily system logs.

Sub-board Maintenance

Yes/No

Yes: group can edit or re-configure SIGs or sub-boards, and edit or delete other users' posts.

Files Maintenance

Yes/No

Yes: group can edit, validate, award credit to users in the U/D section.

MCI Access

Yes/No

Yes: group has access to the Message Command Interpreter.

UD/UX at Prime Time

Yes/No

Yes: group can upload or download from U/Ds or U/Xs during prime time.

Access Levels

You must then assign access to each of your boards/libraries.  Access is calculated using the following method, which is used throughout the BBS. To determine which groups can access a given sub-board/library, add the group’s access value:

Table 6. Access group values
Group Value

Group 0

1

Group 1

2

Group 2

4

Group 3

8

Group 4

16

Group 5

32

Group 6

64

Group 7

128

Group 8

256

Group 9

512

An Access Group Example

If you wished groups 3, 5, 7, and 9 to access a given board, you would add:

Table 7. Adding access groups together
Group Add

Group 3

8

Group 5

32

Group 7

128

Group 9

512

Total

680

680 is what you would enter for the access group value.

Note
You may type ? at most prompts that ask for access levels and the BBS will go through groups 0-9, asking you if that group gets access (type Y for yes, other keys mean no). It then calculates (but doesn’t immediately display) the value for you. You may do this in the configuration editor, or any part of the BBS that defines an access level.

BBS Info

Now you get to identify your BBS.  Select the BBS Info option from the main menu.  It has several specific questions about you and your BBS to help personalize it.

New User Credits

Credits are points that users accrue or lose depending on their actions on the BBS. They earn more by uploading files, posting bulletins in the message bases, playing games, the credit exchange and possibly by other methods. They can also be awarded by the sysop for no good reason! The final selection here is to set the number of credit points new users receive when first signing up to your BBS.  This can be from 0 to 65,000, but we assume most sysops will not want to assign that many to new users.

Set BBS Name

Set System Identifier

Note
This is different than the node ID used if you set up a network later.

Set Sysop Information

This information is assigned to user #1, the sysop account.

Handle

You are asked for the handle you have chosen to use on your BBS.

Password
First/Last Name
Phone Number

Set Main Level Prompt

This is a message users see when they are not in any particular subsystem.  It can be anything you want, but should be short. The default prompt is IMAGE:.

After establishing your prompt, return to the BBS Info menu.

Prime Time Options

A period where everyone is limited to being online a certain number of minutes, and U/D access is limited to users with the “U/D at Prime Time” flag set.  If you are just starting out, you may wish to wait to see how busy your BBS is before setting up Prime Time.

If you decide to set it up, you are asked for:

  • The time to start

  • The time to end

  • The number of minutes you will permit users to stay online

This information may be changed later if you wish.

When you are finished with the Prime Time option, choose Keep Parameters to return to the BBS Info menu.

Load Configuration Files

Save/Resave Configuration Files

Exit Configuration Editor

This completes the “BBS Info” section of your configuration!

Loading Configuration Files

You may load configuration files at any time to make changes to them as you desire.  This can also be done online with the +.reconfig program, but the option is included here for any that may wish to reconfigure their BBS off-line.

Saving Configuration Files

The last option is to save the configuration files to disk.  You are first prompted to insert all system disks into their proper drives, and then the files are saved to the disks.  You are notified if any file(s) have not been written to disk, or if re-writing a particular file will re-start the user log, before exiting the configuration editor.

All Done

This completes the configuration of the BBS!  You can now select "Exit Configuration Editor" and choose the appropriate option:

Exit To BASIC
Boot IMAGE BBS
Cold Start BASIC
Main Menu

(If you change your mind, you can still escape with or Main Menu.) For now, let’s select Exit To BASIC and continue with setting up the modem.

Modem Configuration

You can run a dial-up BBS (and in fact some people still do), but for convenience’s sake, and to get the most callers possible, you’ll probably want to have incoming connections via the Internet.

If you’re using a real Commodore 64, you’ll be using an interface which plugs in to either the user port (for example, an Omnitronix RS232 interface), or expansion port (a Turbo232 or Glink interface). A serial cable connects to a PC which runs TCP/IP to RS232 “bridge” software, allowing the BBS to send and receive modem commands and BBS data even though there’s not a real modem connected.

If you’re hosting your BBS via an emulator fixme…​

modemconfig 19.2

This program configures the modem to be used with the BBS through a series of questions, which are outlined in the following section. First, a preview of what it looks like:

Image 1.2 Modem Configuration

   1 -- 1670  (Old Model)
   2 -- 1670a (New Model)
   3 -- Hayes 1200 (ATA)
   4 -- Hayes 1200 (DTR)
   5 -- Hayes 1200 (ATA/DTR)
   6 -- Hayes 1200 (ATA/Reverse DTR)
   7 -- Hayes 2400 (ATA/DTR)
   8 -- Hayes 2400 (ATA/Reverse DTR)*
   9 -- Supra 2400
  10 -- Aprotek 2400
  11 -- Hayes 9600 (ATA/DTR)
  12 -- Hayes 9600 (ATA/Reverse DTR)
  13 -- Supra 9600 (ATA/DTR/X4)
  14 -- Hayes 19.2k(ATA/DTR)
  15 -- Hayes 19.2k(ATA/DTR/X4)
  16 -- Customized

Modem Type?

Type 16 (Customized) is the one you’ll want for operation with a telnet bridge program.

Here is a summary of options presented when that choice is made:

  1. Baud rate 0 = 300 …​ 5 = 19200

Pick the highest rate your modem or telnet bridge supports.

  1. 0 = Escape codes (+) 1 = Data Terminal Ready (DTR) hangup

+ escape codes are used mostly on older modems such as the Commodore 1670. Hayes-compatible modems usually support the DTR line with the Commodore user port or an RS-232 interface in the expansion port.

  1. 0 = Auto answer (ATS0=1) 1 = Manual answer (ATA)

  1. 0 = ATH 1 = No ATH

This refers to whether your modem includes ATH in its command set.

  1. 0 = Local off-hook 1 = Not

When you are logged on to the BBS from the local console, should the modem be taken off-hook so people trying to call in get a busy signal?

  1. 0 = ATH0 1 = ATH

This is just a matter of semantics: does your modem use ATH or ATH0 to hang up?

  1. 0 = Hang-up in modem reset 1 = Not

Choose whether to hang up when resetting the modem.

  1. Value for ATX

This controls the number of error reporting (1-4) codes used by the modem (VOICE, ERROR, etc.) It is usually left at 4.

Table : Typical modem result codes

  1. DTR: 0 = Normal 1 = Reversed

DTR (Data Terminal Ready) is a connection that tells the DCE (Data Communication Equipment, typically a modem) that the DTE (Data Terminal Equipment, typically a computer or terminal) is ready to transmit and receive data [1]. Some modems have the logic reversed; if bringing DTR high (toggling it on) signals a disconnect, and then select “Reversed.”

Telnet bridge software

tcpser

tcpser is a telnet bridge program which can interface with either a real Commodore 64 via a serial cable, or an emulator. It was originally written by Jim Brain, and a slightly updated version can be downloaded from FozzTexx’s GitHub repository:

Using a physical serial port

Note
Even if you’re using Windows, its COM x : nomenclature is replaced by Linux’s /dev/ttyx. COM1 is equivalent to /dev/ttys0.

tcpser <1> -d /dev/ttyS0 <2> -p 6400 <3> -s 19200 <4> -i"e0v0h0x4&C1&D2&K3" <5> -l7 <6> -tSsiI

This suggested command line for tcpser means:

  • use serial port 0

  • use incoming telnet port 6400

  • report the modem connect rate at 19200 kBPS

  • initialize the modem with the following string

  • log events at level 7

  • and show incoming and outgoing RS232 and TCP/IP traffic.

Using the VICE emulator

Note
VICE doesn’t emulate the CD (carrier detect) line if you’re using a user port modem. So while the BBS will answer, it won’t necessarily hang up properly if a user should disconnect midway through their call.

Here, the -d parameter is replaced by -v, which is the port VICE is listening on in its RS232 settings. Here is a command line to try:

tcpser -i "e0v0" -s 2400 -v 25232 -p 6400

If you’re using a high-speed expansion port interface, you can increase the -s value to something more appropriate.

tcpser4j

This is the same thing as tcpser, except written in Java. You configure it via an XML file (there is a well-documented sample file included), then have the included .bat (Windows batch) or .sh (Linux shell script) file reference that XML configuration file.

FIXME: add mention of DTMF/dial sounds, creating 2 virtual modems to bridge real C64 and VICE

Leif Bloomquist’s BBS Server

This is a Windows program designed to allow a real Commodore 64 to run Image BBS.

If you use this program and you have trouble getting the BBS to answer, here’s some information from Larry “X-TEC” Hedman:

Jeff, I experienced the same problems you described when I started using BBS Server with an Omnitronix RS232 interface plugged into the modem port. I never could get it to work at any of the 2400 baud settings but 1200 baud works fine and connections say connected at 1200 baud but in actuality, the speed is much faster.

On my Image 1.0 version, I am using the Avatex 1200 +.modem file. If using 1.2a I think I used the 1670 modem file but you can try any of the 1200 baud modem files until you find one that works. In BBS Server, you must build and use the TelBBS Standard Cable as described in the docs.

On the Comms page, set for 1200,N,8,1. Set the serial cable type to option 1 and click on Set Defaults. You should have check marks for Enable hardware flow control and ATE1 (local Echo) set by default.

On the Connecting page set checkmarks on Raise DTR when caller connects and Send RING to BBS when Telnet caller connects.

On the Disconnecting page, check Disconnect if BBS drops DCD, Disconnect if BBS drops DSR, Send NO CARRIER to BBS on disconnect, and Lower DTR when caller disconnects.

On the Diagnostics page, check mark Detailed RS-232 Diagnostics Logging and Detailed Hayes Emulation Logging. This will give you much information about what is going on with your RS232 communication between the PC and the BBS in the Activity Log.

On the Emulation page, checkmark Allow Outgoing Calls, Send this string when Telnet session connects: CONNECT, Send Winsock error messages to Terminal Program and Enable Hayes Emulation.

Click on Save Changes which will take you back to BBS Server’s status page. Make sure the IP address is set for the IP of your PC running BBS Server and type in the Telnet Port you will be using. The standard port is 23 but using port 23, you will experience hundreds of spurious connect attempts all from Asian IP addresses. You’re better off to use a different port but for now just use 23 until you can make connections successfully.

If all that is set up and Image is booted to the call waiting screen, you should see red blocks for CTS and DCD and a green block for RTS. At that point you should be ready to receive calls. Try connecting to the BBS using whatever method you are using, and watch the RX and TX blocks. If it doesn’t work use a different 1200 baud +.modem file until you find one that works. Hope this helps.

Telnet bridge hardware

Since telnet bridges don’t support BPS rate changes over telnet, you need to rename a custom version of .modem` called `.modem/telnet. This is locked at 14.4 kBPS instead of how the original +.modem file stepped through its BPS rates, issuing initialization commands at each speed.

These interfaces plug into the Commodore 64:

Link232

Expansion port; plans are available at http://www.go4retro.com/projects/link232/

Lantronix UDS-10

  • sends ATA immediately upon answer

CometBBS

GLink232 interface

Tell the seller it’s for hooking up to an Image BBS. This makes sure all the control lines are wired correctly.

— X-Tec

Booting Up

You are now ready to boot up your new IMAGE BBS and make your first “call!”  Most likely you will want to explore and/or continue its configuration, using included tools to:

*fixme*

First, insert your boot disk into the proper device.  (We assume device #8 here.)  Type:

load"image 1.2b",8,1

Autobooting Systems

Sysops with Lt. Kernal hard drives may rename image 1.2b to autostart and have an auto-booting BBS.

Sysops with Commodore 128s and CMD hard drives may rename image 1.2b to copyright cmd 89, if the partition selected at power-on contains this file. You also need a program which sends the 128 into 64 mode.

First Boot

Now, sit back and let your BBS load up.  After you see the title screen, the program does a bit of work, loading various files:

Table : Startup files FIXME

If your system files are on a different disk than your boot disk, you are prompted to Insert all system disks and press RETURN, where you should do just that. If all goes well, you should reach the “`idle screen.”

Tip
System won’t start? Need troubleshooting help? There’s a good discussion about files needed in The Boot Process.

The Idle Screen

This is shown when no user is connected to the BBS.  If no keys are pressed for about ten seconds after the idle screen shows, the screen will blank, protecting your monitor from burn-in.  (You may disable the screen blanking: see The Lightbar for more information.)

Press almost any key, or receive an incoming call, and the screen will turn back on.

Setting the Time

Unless your BBS clock is set automatically, you should see a flashing message to Set Time!  The message continues to flash until you do so.  (The BBS runs fine if the time is not set but timestamps for news items, message base posts, and such will be incorrect.)

Tip
If you have a Creative Micro Designs hard drive and you want to automatically set the BBS clock at startup, see Automatic CMD Device Clock Set. This shows you how to modify the setup program to poll CMD devices with real-time clocks (and perhaps LtK drives).

For now, we will assume you are setting the BBS clock manually.

To set the time and date, type 1 while at this idle screen. Type the time and date at the following prompts:

For the day of the week, type one of the following numbers:

1

Sunday

2

Monday

3

Tuesday

4

Wednesday

5

Thursday

6

Friday

7

Saturday

Type the month, date, and last two digits of the year at each separate prompt.

Enter the hour (don’t use military or 24-hour time), minute, and A or P for AM/PM for each following prompt.

The top status line changes to reflect the entered date and time.  If the information is correct, respond to the OK? prompt by typing y (and press Return).  Type n (or any key besides y) if you have made a mistake and need to re-enter the data; note that answers to prompts now reflect what you just typed to minimize effort.

Now a large clock is displayed, and the BBS waits for a call. At the top of the idle screen are several items of interest:

The Status Line

This top information line is displayed whenever the screen is not blank, no matter what the BBS is currently doing. It shows, from left to right:

  • The day of the week, date and system time

Depending on conditions on the BBS and what you or the user online is doing, four different letters can appear next:

Table 8. Activity indicator letters

P

Text output is paused

S

The BBS is swapping parts of itself from undeneath ROM into RAM

G

String garbage collection is taking place

A

The user has hit / or Space to abort text output

The clock and status letters are followed by the minutes and seconds remaining for users while they are online.  (Since no one is online at the idle screen, it shows 00:00.)  When you or a user logs in, the number of minutes left on the call is displayed.

100 minutes or more is considered “unlimited time,” and time remaining changes to --:xx (xx being seconds).

There can also be check marks in the left and right corners of this line: the left check mark indicates the user is in Commodore C/G mode, and the right check mark shows when a modem carrier signal is present.

Top Screen Mask

At idle, this area of information just underneath the status line shows the handle of the last caller, followed by their logoff time, and the time of the last log restart (LR).The window to the right shows the number of accounts currently used in the user file (UR).

When a user logs on, these displays will change to show additional information, described on page fixme.

You may toggle this “screen mask” on or off using F1, or a programming command (see Other & Calls).

Several functions are available at this screen from the console, which are outlined in a menu if you press any key aside from a “command” key. The functions are as follows:

Table 9. Idle screen keys
Key Purpose

Image Term

1

Set time/date

2

BAR Stats

3

System disk blocks free

4

Large clock

5

Update free memory

6

Reset modem

7

Reserve BBS

8

View today’s activity log

+

Turn modem speaker on

-

Turn modem speaker off

Shift+A

Force nightly AutoMaint

Shift+N

Force nightly NetMail processing

Space

Redisplay current screen

£

Manually answer modem

TODO: explain these options

The Lightbar

The fifth screen line is referred to as the lightbar. This line monitors and changes many features of the BBS. It displays eight abbreviations per page (there are two pages) for functions or options on the BBS. Check marks on one, both or neither side of the option indicate the state of a particular feature or setting is enabled. It is light gray and has a “lit” white portion indicating the current function or option you can change the behavior of. Most options can be toggled locally by the sysop at the console, or remotely through utility programs (+.lb move, discussed in Miscellaneous Plus Files). This is handy for remote maintenance when you can’t be at the console).

(If the screen has blanked itself due to inactivity, it is restored when you receive a call or hit a key on the keyboard.)

Lightbar Keys

Table 10. Lightbar Keys
Key Purpose

f1

Toggle screen mask on/off

f2 or f4

Toggle lightbar page

f3

Move white highlight left, switch pages if necessary

f5

Move white highlight right, switch pages if necessary

f7

Toggle left check mark of highlighted selection

f8

Toggle right check mark of highlighted selection

The first of two pages shows as follows:

Sys   Acs   Loc   Tsr   Cht   New   Prt   U/D

These check marks tell the BBS to do various things.  The following descriptions assume each check mark described is selected.

Table 11. Lightbar functions, page 1
Option Left Right

Sys

Enable sysop chat availability. If the user enters C at any major prompt, three sirens will sound. Reason for chat is logged.

Enable BASIC line execution trace. Slow down with Shift or Shift-Lock. Normally only used for debugging.

Acs

Change access level of user. f3 increases level, wraps from 9 to 0. f5 decreases level, wraps from 0 to 9. f7 exits.

Disable 300 baud users from logging in.

Loc

Log in to the BBS from the C64.

Enable “pseudo-local” mode. Gives access to certain maintenance commands.

Tsr

Add or subtract time remaining for user. f1 zeroes time (log off when able). f2 gives unlimited time (--:00 display). f3 +1 minute. f4 +10 minutes. f5 -1 minute. f6 -10 minutes. f7 exits.

Toggle Prime Time status.

Cht

Enable chat mode.

Enable local bells, i.e., bells sent to the user are heard on the console also.

New

Disable NEW users from signing up.

Disable screen blanking mode. The screen is visible between calls.

Prt

Prints text output to a printer.

Prints log entries to a printer.

U/D

Prevents users from entering the U/D section.

Prevents 300 baud users from entering the U/D section.

The second page of lightbar options is as follows:

Asc  Ans  Exp  Fn5  Fn4  Fn3  Fn2  Fn1

Lightbar, Page 2

Table 12. Lightbar functions, page 2
Option Left Right

Asc

Enable ASCII translation.

Enable linefeeds.

Ans

Enable ANSI[2] translation.

Enable IBM graphics.

Exp

Enable Expert Mode (skips most entry screens).

Enable main prompt macros [3].

Fn5

Enabled: user receives credit when upload is validated.

Disabled: credit awarded after file uploaded.

Enabled: user asked whether to Auto-Logoff After Transfer Complete in U/Ds.

Fn4

Undefined.

Undefined.

Fn3

Undefined.

Undefined.

Fn2

Undefined.

Undefined.

Fn1

Undefined.

Enabled: MCI is not interpreted.

Bottom Screen Mask

Along the bottom two lines of the screen is yet more useful information.  The line just below the text display area contains BBS operating information in this order:

Table 13. Bottom screen mask display
Name of Column 1 Name of Column 2

Cell in column 1, row 1

Cell in column 2, row 1

Cell in column 1, row 2

Cell in column 2, row 2

The last row on the screen has a Receive window (R:) which displays the last 10 characters received from the modem.  When the “trace” function is enabled, the BASIC line number currently executing appears in the left half of this window.

Note
mention BASIC token after line number

The center portion of the bottom line can display any sixteen characters you wish.  Typical phrases include:

  • Image BBS 1.2b at system idle

  • The type of computer a caller is using when online

  • The reason for chat if a user online requests a chat session and you are unavailable.  The window also flashes until either you answer the page, or the user logs off

  • It is also available to display custom information (see Other & Calls for more details)

The final section of the bottom line is the Transmit (T:) window.  This displays the last 10 characters sent to the modem.

Logging On

You’re now ready to go on line and examine your new IMAGE BBS in action!  You can log on and edit your s. files, configure any sub-boards and U/D libraries, or just look around and get acquainted with its features. You may log on either normally or use the “instant” logon feature.

Normal Logon

  • Use the f3 key (moves the white highlight left) and/or f5 key (moves the white highlight right) to highlight the Loc position on the lightbar.

  • Press f7, which puts a check mark on the left side of Loc.

This starts logging in from the console, and is called a “local login.”

We suggest that if you have a telephone connected to your modem, take it off the hook or unplug it from the modem at this time.  That way, if an incoming call connects with your modem but not the BBS (since you’re on locally), the caller won’t assume something is wrong with the BBS.

When a user has logged on, either remotely or locally, the program’s copyright message and serial number are displayed.  With a remote login, the user is prompted to hit their backspace (delete) key to detect whether they are in Commodore color/graphics (hereafter abbreviated as “Commodore C/G”) mode, or ASCII mode.

Depending on which mode they are in, the file s.login 0 (for ASCII), or s.login 1 (for Commodore C/G) is displayed. For simplicity’s sake in the following references, the character x at the end of a filename will refer to either the digit 0 (this file is seen by ASCII callers) or 1 (this file is seen by Commodore C/G callers).

Then the user is asked to Press RETURN/ENTER.  Actually, A can be typed to abort the start screen; you could mention that in the s.login x files.

If Return is pressed, the program will read the disk file s.start x.

Next, the BBS instructs the user:

Enter Your Handle Or _your board name_ ID:

If the user has no account, or makes a mistake entering the information, they are instructed to type NEW.

If a mistake is made logging in, and if a file called s.errmail exists on the disk, the contents of this file are sent in an e-mail message to the user, informing them of the mistake.  If they should get this message in their mailbox, and they weren’t the ones to make the mistake, urge them to change their password.

A file called e.telecheck is either created or appended to, which contains the login time and date, the missed security question, and the correct answer.  This file is viewable using the VF (View Feedback) sysop utility.

If the user has made four mistakes and has not entered NEW they are logged off for excessive login attempts.

If the user has a “reserved” account, they can enter RES at the prompt to enter the RES function of the new user program.

Instant Logon

This feature is reserved for the sysop, for it can only be used from the console.  It is meant for a fast, easy way for you to log on to your BBS to do maintenance functions, posting, or anything you would normally do on a call.

The main difference from a regular logon is that none of your stats will be updated or saved to disk, and your last call date will be set to your logon time.

To use the instant logon feature, type I at the Hit RETURN/ENTER prompt. You are prompted for your password, and immediately taken to the main prompt.

REServed Users

A RES, or REServed, user is one that you have set up an account for already using the RS or ED commands on the BBS.  (Perhaps you won’t be around to validate the user, for example.  See the fixme section for more information.)

They are asked to type their RES ID number and password—which you should provide them with when you set up their account—and then be taken through the normal new user application.  When they are done, they are logged on with the pre-approved access and credit points that you assign to them.

NEW Users

If a user enters a handle that is not found in the user log, they are asked if they want to log on as a new user using that handle.

If they type Y, the new user procedure is gone through, beginning with the reading of the file s.new user (but skips the handle prompt).

The NEW login procedure consists of four parts:

  1. General information: handle, real name, password

  2. Terminal parameters: computer type, column width, linefeeds, etc.

  3. Miscellaneous questions: address, occupation, baud rate, etc.

  4. Personal statement: a chance to type a paragraph or two about themselves.  This is required; if aborted they are logged off without signing up as NEW.

Once the new user login procedure is completed, this user information is put in new user feedback for you to view later with the VF command, and they are taken into the BBS with access group zero status.

Existing Users

If a user enters a handle that already exists, plus a password, then they are asked a random security question:

  • Their first or last (real) name

  • Sections of their phone number: 3-digit area code, 3-digit dialing prefix, or 4-digit suffix

Phone number formats

xxx-yyy-zzzz is a format used in the USA and Canada; other countries have differing formats.  For now, foreign callers can just make up a phone number: 000-000-0000 works.  In Image BBS v2.0, this may change: perhaps be made optional, or at the very least more configurable.  It knows whether the sysop is in PAL- or NTSC-land, plus does timezone offsets, so maybe that will figure into the equation.

This is used as an extra security measure.  If this question is missed, the same procedure regarding the s.errmail and e.telecheck files above is taken.

The Top Screen After Logon

Once a user has logged on and their password is verified, the top of the sysop screen changes quite a bit from what it shows at the idle screen.

The very top line is the same as discussed in the section "The Status Line."

The next five lines contain specific information about the user logged on:

  • First is the user’s handle, login ID (including the two character BBS identifier), last call date, and number of calls today and total to the BBS.

  • Next is the user’s real name, their access group, phone number and five flags-the first four are single digits-which include:

  • Expert mode (0=off, 1=on)

  • Color/graphics mode (0=ASCII, 1=Commodore)

  • Linefeeds (0=off, 1=on)

  • Default file transfer protocol (fixme…​)

  • Column width (between 22 and 80 characters wide)

Once a user has successfully logged on to the BBS, either remotely or locally, as either a new user or a user with a login ID and password already, the BBS reads the file entitled s.welcome x, and informs them of:

  • what their access group is

  • how many calls they can make on that particular day (if not an infinite number)

  • the amount of time they have for this call

Then it will check for:

Table : Login activities

Once all of this has been completed, the user is placed at the main command level.

Editing BBS Info Files

You now should be at the main command level, where you can do many things.

Since this is your first call, you may wish to edit the following files to suit your own tastes and coincide with your BBS plans.  Sample files have been included on the disk, but may be edited or replaced with whatever you wish.

While at the main command prompt, you can use the WF command (see Write File command for this. It will give you access to a line-oriented text editor you can use to edit files. If you have files other than ones included on the setup disks you would like to use, you can import them into the text editor using a “get file” dot command (type .G at the left margin).

Tip
Be sure to type .C 80 Return to set the editor line length to 80 characters before .Getting a file. Otherwise, lines with color/graphics characters in them may exceed the 40-column line length, causing word-wrap and ruining the file.

If that happens, type .A Return to abort your changes. Consider using an offline C/G screen editor to edit your file instead, such as Kaleidoscope, Digital Paint, Tyron Paint or similar.

Here is a summary of the files discussed in this section. Remember, the suffix x stands for the digits 0 or 1, for ASCII or Commodore Color/Graphics files, respectively.

Table 14. Miscellaneous editable files
Filename Purpose

Cell in column 1, row 1

Cell in column 2, row 1

Cell in column 1, row 2

Cell in column 2, row 2

To create or edit these files, use the WF option (see Write File) at the main command level. You can also use the .Put and .Get options in the editor. (See The IMAGE Text Editor for more information.)

Note
The next two sections need not be done if you have already configured your sub-boards, libraries, and access groups with the config program.

Bulletin Boards and Libraries

After editing these files, you will want to set up your sub-boards and U/D libraries if they have not yet been configured.  You can create up to 30 sub-boards, 30 UD libraries, and 30 UX libraries.  To do this and to change them at any time after, you can run the +.reledit program from the main command level:

  1. Type R at the main prompt.

  2. At the Run: +. prompt, type reledit.

  3. Hit Return to run the specified module.

Access Groups

You can define or change your access groups on-line if they have not been previously defined.

At the main command level prompt enter R and run the file access at the “+.” prompt.  You can define up to 10 access groups and what they can access on the BBS.  They are numbered from 0 (new user) to 9 (usually you, the sysop).  New users logging on are put in group 0.

For each of the group numbers that you choose to use, you can select a title for it.  You should choose one of the access groups to be the system operator group, for you with highest BBS privileges, For each group you are using, you can select a specific amount of calls per day that that group can make as well as how many minutes per call is allowed, how many minutes at idle is allowed (how many minutes may pass without pressing any keys before the BBS automatically hangs up), and how many downloads can be made per call.

Done!

Now your IMAGE BBS v1.2b is ready to go on-line for calls!  You may wish to post a few bulletins and news files to get the BBS started.

We hope you like your BBS, and welcome your comments and suggestions.

General Commands

When you first log on to your BBS, after it checks for your mail, and goes through normal logon procedures, you will be at the "main command level."  You will see your main prompt that you defined in the configuration editor.  You are now at the area where you have many options as to what you will do next.

This chapter will deal with the commands needed to get to certain functions of the BBS, and how to use them.

The following commands are considered “general” commands because they are not specific to a particular subsystem.  They may be typed at the main prompt, or most subsystem prompts as well.  A few commands (mostly maintenance in nature) are available only from the main prompt, or using local or pseudo-local mode.  These commands are discussed in the “Maintenance” chapter.

The nice thing about general commands is the BBS remembers which subsystem you came from, so you can return to it when done with the current subsystem. For example, you have just finished viewing a directory listing of files in the U/D subsystem, and wish to go to the Voting Booth.  You type VB at the U/D subsystem prompt listing directory information, and when you quit the Voting Booth, you will be returned to the U/D subsystem.

Most general commands consist of two letters, sometimes followed by an argument (parameter) of one or more numbers.

Examples:

SB

Enter the message bases.  The BBS prompts the user which special interest group or message area they would like to enter, depending on what places they have access to.

SB1

Enter the message bases, but immediately go to the first Special Interest Group they have access to.  They are prompted for the message base to enter after that.

SB1,2

Enter the message bases, go to the first Special Interest Group, and the second message base in that SIG with no further prompting.

A Bad Joke

If you’re a Trekkie, this reminds me of Klingon programmers: Their programs do not have parameters, they have arguments, and they always win them.

A few commands consist of only one letter. Here are the descriptions of the general commands and how to use them.

Chat Request

C requests a chat with the sysop.  A short (38 character) reason for chat is requested; the first sixteen characters of that is displayed at the bottom of the sysop’s screen.  This reason is also recorded in the call log on disk and printer (if used).

If the left side of Sys is checked, the user is given a message informing them that the sysop is being paged, and the BBS monitor sounds three sirens.

If the left side of Sys is not checked, the user is told that you are not available. The s.chat x file is shown, and they are asked if they want to leave feedback instead.

The “reason for request” continues to flash until they log off or you answer the chat page.  If the user requests chat more than once without you answering the first chat request, they are told that the page is already on, discouraging them from continuing to type C.

Chat Mode

To answer the chat request, or enter chat mode at almost any place on the BBS, check the left side of Cht. To exit chat mode, uncheck the left side of Cht.

The BBS displays

``* Entering Chat Mode *``

and let you and the user type whatever they wish. It’s useful to hit Return twice at the end of your message to each other; it lets the other party know it’s their turn to type now.

If the user is in the BBS text editor after chat mode is exited, an additional message is displayed:

``* Returning to the Editor *``

and any text in the buffer is waiting for them.

Feedback

Feedback is “mail” left on the BBS to the sysop(s), that any user with local or remote maintenance access may read.  It is left to the sysop(s) by entering F at most prompts, or when logging off.  The user is placed into the editor to write their message.

Any user, including a new user, is allowed to leave up to three feedback messages per call.  If they try to leave more, they are informed they have left their limit of feedback for that call.

Feedback, along with new user information and error messages, are read by the sysop by typing VF at the main command prompt. (VF is described more on page [63](#anchor-292).)

Help

? reads a menu of commands available at whichever command level the user happens to be.  Depending on how much information is in the menu, a “More?” prompt for additional command information may appear (although this is put in the menu file itself, and is not always present, depending on the file’s length).  At this prompt, Y (meaning yes) continues, most others mean no and stop reading the file.

If the user is not at the main prompt, the main menu is then read.

BBS Configuration

CF shows the file s.config.  This file should contain general information about your BBS, perhaps the hardware and software it runs on, its hours (if not 24 hours a day) and anything else interesting about it.

Change or View Last Call Date and Time

The last call date is used to determine which messages on the BBS will be displayed as new when a “read new messages” command is given. If a user needs to log off before they can see all new messages, the next time they call, they can use LD to move their last call date back to the date of their last call.

Log Off Options

O will ask if the user really wants to log off (type Y to do so), asking if they want to leave feedback first.

O% saves the last call date, in case they did not read all the new messages in the message bases.

O! logs off instantly, without prompting for feedback.

O% and O! may be combined: O%! logs off instantly and saves the last call date.

Quit

From most prompts (and in some subsystems, just pressing Return) gets the user to the main prompt.

If Q is entered at the main prompt, the user is asked whether they wish to log off, like O.

Time/Date

T displays the current time, the time the user logged on, and the amount of time remaining on the BBS this call.

Edit Terminal Parameters

EP enters a menu which allows a user to change their computer type, graphics translation mode, terminal line length, whether linefeeds are required, toggle their expert mode, and change their account password.

Prompt Mode

PM toggles prompt mode on or off. When on, and a user reads new messages in the message base (using RN or RA commands), they do not receive the “end-of-bulletin” prompt between message threads, or the [P]ost [N]ext [Q]uit prompt between sub-boards.

Useful for callers who want to speed-read or buffer messages.

It also eliminates the prompt after the A (About this file) command in the U/D subsystem.

Status

ST allows users to see their status on the BBS, including:

  • Their handle, plus real first and last name

  • Last call date and time

  • Their login ID

  • Their access level

  • Number of lines in the editor

  • Calls to the BBS, today and total

  • Downloads allowed (0=unlimited)

  • Number of uploads and downloads made

  • Number of blocks uploaded and downloaded

  • Credit points and credit ratio

  • Total posts and responses

  • User Flags

Then the user is asked if they wish to view this information again. If not, they are returned to the BBS.

Saying

SY reads a random “saying” or “fortune,” such as the one read at logon, from the RELative file e.say.

Activity Log

LG lets designated users read the daily log, listing what activities callers have done on the BBS.

BAR Stats

BA lets designated users view the Board Activity Register stats as shown between calls.

TODO: insert graphic/table of BAR screen here

C/G / ASCII / ANSI Mode Toggle

AT chooses between Commodore Color/Graphics, plain ASCII, and ANSI graphics modes.  This option is saved to the user file when logging out.

Expert Mode

XP toggles Expert Mode.  When on, subsystem and sub-board entry screens are skipped.  This option is saved to the user file when logging out.

New User Message

NU reads the s.new user file, displayed when a new user logs on to the BBS for the first time.

Local Mode

ZZ allows users with local mode access to enter pseudo-local mode so they can do maintenance functions remotely.  These functions include copying files, reading directories, sending DOS commands, etc.  This is very powerful, and should be given to only the most trusted users on your BBS.

Command Stacking

Any of the main commands entered at any prompt can be “stacked” by using the up arrow key (^) between the commands. If the following command were entered at the main prompt:

SB9^RN^<^R3^UD^SA

Then the BBS would:

SB9

Take you to sub-board 9

RN

Read the new messages there

<

Move backwards, to sub-board 8

R3

Read post #3

UD

Enter the U/D subsystem

SA

Scan for all new uploads

Certain places, such as choosing “quit” in the “end of bulletin” prompt, usually clear stacked commands—if a user realizes they need to do something in the middle of executing the stacked commands, their only recourse is to hold down the spacebar to stop them.

See the “MACS” command on how to automate command stacking.

Entering/Changing Subsystems

Additional commands available at all major levels of the BBS include those which go to any other subsystem.  In other words, a user need not exit to the main command level from the sub-boards before going to U/D’s or PlusFiles, but can enter that area directly by typing the command.

Commands which behave this way include:

BB Bulletin Board listings

EM E-mail subsystem

MF Movie Files subsystem

NF News Files subsystem

PF PlusFiles subsystem

SB Message base subsystem

TF Text Files subsystem

UD Upload/Download subsystem

UL User Listings

UX User Exchange subsystem

VB Voting Booth

Each of these commands take the user to a separate subsystem of the BBS, which will be discussed in an upcoming chapter.

Common Subsystem Features and Commands

Since several subsystems share similar commands and usage, this section outlines them.

When a user enters the subsystem or a SIG, only the sub-boards/SIGs that their access group can go to are loaded into memory.

So, if you have five sub-boards, but a user logs on with an access group which can only access boards one and five, they’ll see only two boards, re-numbered as 1 and 2.  In this way, they aren’t aware that other areas exist which they can’t access.

Listing Sub-Boards

A user can list which sub-boards they have access to when they first enter the SIG by typing L (optionally followed by the board number to start the listing from).

If they are subop of a particular sub-board, the board name is preceded with a >.

If you have set up Special Interest Groups, only SIGs the user has access to are displayed.  In this way, they are not aware of areas they cannot access.  When they get the "What SIG?" prompt, they may type either:

  • The SIG number by itself

  • The SIG number, a comma, and the board number within that SIG (this works for SB, UD, and UX subsystems)

For example, if a user responded to the "What SIG?" prompt with "4,10", they are taken into SIG \#4, Sub \#10 (or U/D \#10, etc.), assuming they have access to it.

When a user enters a SIG number that is too high, the available SIGs are re-listed, instead of exiting to the main prompt.

When a user enters a sub-board/library number that is too high, available boards are re-listed.

Pressing Return at the Which Sub (or U/D or U/X)? prompts return the user to the list of available SIGs. (If SIGs are not active, they exit to the main prompt.)

Sub-Board Name

N displays the current sub-board’s name.

Moving To Other Sub-Boards or SIGs

A user can change the current sub-board by:

Entering the new sub-board number at the "Sub \#x: " prompt

< or ; takes then to the previous sub-board

> or = takes them to the next sub-board

If a number is typed after the previous two commands, (ie, >>4 or <<5) the user is taken to the previous/next SIG, plus the specified board number.

If a user moves to a board they are subop of, they are informed of this.

If a move cannot be made, the user is told the board number they requested does not exist.

Sub-Boards (Message Bases)

This is IMAGE BBS’s public message base, where users can write messages about anything they want, replying to other users in “threads” which keep responses organized.  Users access message bases by typing SB at most prompts.

If the user knows which SIG they want, they can combine the SB command and the SIG number:

SB3 This takes the user to SIG 3, assuming they have access.

If the user knows which SIG and sub-board they want, they can combine the SB command, the SIG number, a comma, and the sub-board number:

SB3,2 This takes the user to SIG 3, sub-board 2, assuming they have access.

Upon entering the message bases, the file s.SB is read, regardless of their expert mode setting.

If SIGs are set up, the SIG list is shown. They get a Which SIG?: prompt. As above, if the user knows which SIG and sub-board number they want, they can enter them here, as above (example: 3 or 3,2).

Upon entering the board, they are told:

  • How many bulletins there are

  • How many have new responses since their last call date

  • Total number of responses

The Quit function (in the [P]ost [N]ext [Q]uit prompt) now clears any stacked commands. This is for the people who have stacked commands and then in the middle of reading the posts remembered they had to do something (i.e., kill a post, weed the Subs, etc.) but were locked into a command stack. Now they are not.

  • Response titles are now available in the Subs. Setting the variable RT to 1 in line 901 of +.MM.sb-post will turn the ability to title responses on (it comes with RT set to 1). The response system is 100% compatible with older posts and no conversion is necessary.

A new version of the +.NM.netsub files will soon be available that allows the response titles to be transferred to other NetSub boards as well as to allow "overflow" NetSubs to be defined.

Setting RT to 0 will not prevent any existing response titles from being displayed, nor will it block NetSub response titles from being shown once the new +.NM.netsub files are released.

The RT variable only controls the user’s ability to title responses on your board.

Scanning Bulletins

Scanning bulletins lists information about each bulletin in the following format:

[Num] [Rsp] [Stat] "Post Title" (1) (2)

get '/hi' do (2) (3)
  "Hello World!"
end
  1. Number

  2. URL mapping

  3. Response block

    • The number of the bulletin

    • How many responses have been made, if any

    • The bulletin’s status:

Table 15. Bulletin status indicators

*NEW\*

New bulletin since last call date

*NRB\*

New response to bulletin

*FZN\*

Bulletin is frozen, no response possible

` --- `

Regular bulletin

  • The bulletin’s title (in quotes)

Typing S begins scanning at either the first bulletin, or after the bulletin most recently read on the sub-board.

S x starts scanning at bulletin #x.

/ or Space abort a scan at any time.

About Bulletins

This displays the

  • Subject

  • Author (and node number if in a NetSub)

  • Date and time of creation

  • Number of responses to a bulletin

  • Date and time of the latest response

Typing A tells a user about the bulletin following the one most recently read or manipulated.

A followed by a number finds out about that specific bulletin.

Reading Bulletins

This displays the same information as the “About” function, but reads the text body of the message, followed by each response until the end of the thread (group of bulletins under that title).

Typing R (or just pressing Return) reads the next bulletin in the sub.

R x reads bulletin #x.

While reading a bulletin, a user can:

  • Press Space to skip to the next response in the thread

  • Press / to skip directly to the end of the bulletin.

End-of-Bulletin Prompt

Once at the end of a bulletin, a user has several options in, appropriately enough, the “end-of-bulletin” prompt (only displayed if the user’s Prompt Mode is enabled):

  • Press Return to continue to the next message in the sub-board

  • P sends a private e-mail message to the user that posted the original message

  • R responds to the post

  • O reads the post over from the beginning

  • Q or / stops the RN or RA function

  • K lets a SubOp or Sysop kill the post. The original poster may also kill the post, if there are no responses.

  • F toggles the bulletin’s “frozen” status (if the user is the original poster, or the user is a SubOp or Sysop)

  • ? brings up a menu of these options.

New Messages

The following commands work on the current sub-board, with messages considered new since the user’s last call:

Table 16. New message commands
Command Purpose

SN

Scan for new messages

A x

About message #x

RN or *

Read new messages

To stop an RN in progress, press / while reading a message.

To read or scan new messages on the current sub-board, plus all higher-numbered sub-boards, type RA or SA, respectively.

To stop an RA or SA at the current sub-board, press /.

During an RA, if the user reaches the last sub-board and has any stacked commands remaining (for example, RA^UD), the [P]ost [N]ext [Q]uit: prompt is displayed to allow the user to post to the last sub-board before executing the next stacked command.

Posting New Bulletins

If a user types P and there is room in the directory (a limit of 60 posts per sub-board exists), the user is asked for the post’s title. If this title is unique to the directory, the user is asked:

If they wish to post anonymously, if the board is not set up to be non-anonymous.  If they elect to post anonymously, the author will appear as:

  • Anonymous to normal users.

  • * followed by the user’s handle (e.g. *PINACOLADA, to users with subop, sysop, or sub-board maintenance access.

The user is then placed into the BBS text editor subsystem to write their message.  .S on a blank line exits, as usual.

Killing Entire Threads

This removes the original post concerned, along with all its responses, from the sub-board and its message directory.

K begins listing all bulletins starting with the first one

K x starts with bulletin #x

The user is asked whether they want to kill the bulletin:

Y)es N)o A)bort or S)tart

K followed by a number begins the listing with that number, offering the same choices.  Once the end of the list is reached (or S is typed), the directory is re-written to disk.

A regular user can kill their bulletin only if there are no responses to it.  Once responses are added, only a subop can kill it.

KO and KA

There are two more commands available to persons with SubOp access (SubOps, Sub-board Maintenance and SIGOp access users).

KO Lists any messages in the SB section older than the maintainer’s last call date, giving them the option to kill them.

KA The same as KO, but is automatic—​it will not ask if you want to keep the post(s) killed, so be very careful with this command!

Remember, these commands are keyed to your last call date, so use LD to set the cutoff date for deleting old messages first.

Editing Bulletins

To edit a previously written bulletin, type E x (x is the bulletin number to edit). The bulletin is opened, and the BBS searches through the thread for messages that the user can edit (if they are the author, or sub-board operator).

If such a message is encountered, the user is prompted with:

K)eep, D)elete, R)ead, E)dit, or A)bort:
Table 17. Bulletin editing commands
Command Purpose

Keep

Keeps the message with the thread

Delete

Removes the message from the thread

Read

Re-reads the current message

Edit

Take the user to the editor subsystem to edit the message

Abort

Return the user to the sub-board prompt.

In the Edit function, SubOp access users have an added command: (K)ill Old Resp. This function first asks if you want to auto delete old responses:

  • No asks for confirmation before deleting each response. (A aborts the operation, but any deleted responses stay deleted!)

  • Yes deletes any responses made before your last call date.

Both functions stop when they reach responses posted on or after your last call date. Remember, this function is tied to your last call date, so use LD to set the cutoff date first.

Also remember, the Auto Delete function cannot be aborted once started and is only available to SubOp access users!

Freezing a Bulletin

To freeze a bulletin means to not allow further responses to be made to it. A bulletin can be frozen either when:

  • The user first posts the bulletin

  • The original poster, SubOp or Sysop can freeze the bulletin later (using the End-of-Bulletin Prompt)

To prevent bulletin responses when the post is first written, begin the title with an up arrow (^) (e.g. type ^Frozen Post).

The BBS reports this bulletin as frozen during a scan or About, and will not allow responses to be made to it.

Bulletins can be un-frozen by the original poster or a SubOp or sysop reading the message with Prompt Mode enabled, so you get the end-of-bulletin prompt.  There, type F, which toggles the bulletin’s Frozen status.  The current status is then reported, and the user is returned to the end-of-bulletin prompt.

Sub-Board Operators

V views the current sub-board’s operator

M sends a private e-mail message to them

Maintenance Mode

Only sub-board or users with general sub-board maintenance can access this function.  Type Z.  The sub-board maintenance menu has two options:

  1. Edit the entry file.

    • You have a choice between ASCII and C/G.  A sub-board’s entry file is displayed upon entering the sub-board.  If there is an entry file already, it is loaded into the BBS text editor. Use the usual editor commands, and type .S to save.

  2. Edit board detail.

The user can change

  • Sub-board title

  • Sub-board type

  • Open/closed status

  • Access level required to enter the sub-board

If the user is in local or pseudo-local mode, they also have the option to change the current sub-board operator and device/drive assignment.

While defining sub-boards using the +.reledit program, you may specify any of your sub-boards to be:

Message Bases

Table 18. Message base types
Type Meaning Purpose

Anon

Anonymous

Posts/responses are anonymous to other users

N-AN

Non-Anonymous

Users cannot make anonymous posts

P-An

Password, Anonymous

Password required to access, anonymous posts are allowed

P-NA

Password, Non-Anonymous

Password required to access, anonymous posts are not allowed

Pswd

Password-Protected

A password is required to access the sub-board

Std

Standard

Users are asked if they wish to post anonymously

+

Networked sub-board

Able to transfer messages to/from other BBSes

Upload/Download/Exchange

Table : U/D and U/X types

EITHER:

> You’re the subop

User has ability to edit/delete posts and generally maintain the sub-board.

  1. A "password" board::

This requires a password to enter. The BBS asks any user that has access to that board for the password upon entering it. If they get the password wrong, they are asked if they want to try again.

If they guess wrong three times in the same call, they are not allowed to guess again.  This can be used either for fun, by putting hints to a password up other places in the BBS, or to add a measure of security for certain boards that you do not want all users to access.

An “anonymous” board

All bulletins and responses will show as anonymous, even to the sub-board operator and sysops.  Great for those “war boards.”

A “non-anonymous” board

No anonymous messages are permitted, and users are not asked if they would like the post/response to be anonymous.

The RELedit System

This is from the documentation on the TurboREL disk, with slight modifications.

Image V1.2 REL SIG’s Upload/Download, Exchange Subsystems

Thank you for selecting the new U/D and exchange systems for use on your BBS.  Many long hours were put into this software to make it the best system we could possibly offer.  This documentation provides you with everything you need to know about the system, plus just a bit more.  It consists of four general parts:

  • System Overview

  • Setup

  • Available commands

  • Sysop commands

Part One: System Overview

The program makes available to you several new features which enhance your BBS to its maximum potential, including:

  • Enhanced board types

  • Separate password for each board

In the case of U/D’s or U/X’s:

  • Last download date

  • Local mode multi-uploads and downloads

  • Expanded “about” function

  • Online program reader

The User Exchange bases have all the same features above, plus:

  • The E command when downloading multiple files to select all files matching a selected pattern, with one easy keystroke.

Part Two: General Setup

A few variables can be set in line 1 of +.UD: yy% and it.  (They are currently defaulted to zero.)

  • Setting yy% to 1 deducts credits for files read online. Setting yy% to 2 deducts double credits, and so on.

  • Setting it to 1 freezes the user’s remaining time on the BBS while they are in the U/D’s, giving it back at exit.

Some more things to consider:

  • If you have no SIGs defined, you are limited to 30 board names.

  • With SIGs defined, you are allowed 999 board names (30 libraries per SIG).

Part Three: Available Commands

Toggling Fn5 's right check on, you activate the “no credit until validated” feature of the BBS.  This check mark can be toggled on or off any time a user is online and uploading, until the point the End Of Transfer message appears.

  • If the check is off, the number of times downloaded is set to 0, and credits are awarded to the user according to their credit ratio.

  • If the check is on, the times downloaded is set to -1, but no credits are awarded until the file is validated by the subop or SIGop.

Toggling Fn5 's left check on activates the Log off after file transfer complete? prompt.

The “About” Option

A, Ax When this option is selected, the user sees information about the file, including:

  • the date and time it was first uploaded

  • the date and time it was last downloaded

  • the type of computer it’s for

(If a C128 user views a file meant for the C64, they are told it is for the C128 in 64 mode.)

  • approximate download time

  • if any user-submitted comments exist for the file (and if so, the first one is displayed; a quick mod by Pinacolada).

After that information is displayed, the user is prompted with the following options:

C Comments read/add. This feature was written by DER DEUTSCHER. If the user would like to add a comment, they may.

D Download the file.  If the user has selected a multi-file transfer protocol, this adds the file to the download queue.  (fixme: correct?)

N Move to the next file in the directory; if they are on the last file, they wrap around to the first file.

L Move to the previous file in the directory; if they are on the first file, they wrap around to the last file.

M E-mail the file uploader.

R Read any file, whether SEQuential or PRoGram.

  • A program with a hexadecimal load addresses of:

  • $0401 (CBM PET)

  • $0801 (The Commodore 64’s BASIC 2.0)

  • $C101

  • $4001 (The Commodore 128’s BASIC 7.0 (fixme))

display the program just as if LISTed with that computer’s respective version of BASIC.

  • You can also opt to display “control characters” such as clear/home, delete, or color codes in quotes in an expanded, easy-to-read format.

  • A program with any other load address (or a BASIC “head” and machine language “tail”) produces a “hex dump” like a machine language monitor would:

    MMMM  HH HH HH HH HH HH HH HH  PPPPPPPP

MMMM: Memory address

HH: Hex value of each byte

PPPPPPPP: PETSCII code of each byte

Tip

Discovered recently: This also works in 80 columns!

  • As previously mentioned in the setup of the U/D system, credits can be charged for reading programs online by setting the variable yy% to the number of credits you want subtracted per block read.

For users with maintenance access:

U Unvalidate a file, taking back credit for the upload.

V Validate new uploads.

For the user who uploaded the file:

E Edit the file (computer it’s for, and filename)

All commands selected here, including Download, return you to the same file in the listing you were on before selecting the command.

Hitting Return (or any key not listed/not applicable to the user) aborts the About function.

Scanning Files

S Scan files normally

This has been enhanced to use both 40- and 80-column screens. A normal file scan will list files in this format:


\### Bk’s  Dl’d  Name
 ----------------------------
 001 [200] [001] "file.txt,s"
 ----------------------------

From left to right, the columns represent:

001 The number of the listing in the directory

[200]

The number of Commodore 254-byte disk blocks (or Kilobytes if using another computer type)

[001]

The number of times the file has been downloaded

"file.txt,s"

The filename and file type.  Unvalidated files have a * in front of the name, if the user is the uploader or subop.

After all files have been selected, the total estimated download time is displayed to the screen with a new prompt allowing you to:

Scan selected files

Download selected files

Clear list and restart

Kill a file from the list

(All other user features are the same except having been moved into mini-plus files to make the system easily expandable.)

SS Sorted scan

The scanned files can be sorted by:

  • Size

  • Number of times downloaded

  • Alphabetically

DM Download Multiple Files

As with the D command above, this command now shows a complete description of each file:

Sysop Commands

Upload multiple files

UM With the Copier protocol loaded, the BBS gives you a directory of the designated drive of the current U/D board.  You are prompted to select either:

 [Y]es, [N]o or [A]bort

(This is similar to downloading multiple files in the U/X base.)

After all files have been selected, you are prompted:

Manual or Auto descriptions?
  • Auto descriptions asks you for one description for all files uploaded.

    • Manual asks for a separate description for each file uploaded.

Sysop commands are now active whenever the Copier is loaded as a protocol, not when local or psuedo-local modes are on.  In addition, if you are logged onto the BBS from console mode, you are forced to use the copier.  Anyone accessing the BBS as a sysop must turn on pseudo-local mode to use the copier with the PR command.

Vx, VN The Validate or Validate New commands allow you to validate all uploads to the current U/D library.

If the “no credit awarded until file validated” option (left Fn5 is enabled) is active, you may type % to award a percentage of credits to the user for uploading the file.

(fixme: until validated?)

Otherwise, the full amount of credits is added to the uploader’s account.

UM If the copier protocol is loaded, to Upload Multiple files you are prompted for a pattern.  (Return defaults to *).  You are prompted with each filename matching the pattern, and have the ability to reply:

[Y]es [N]o [S]tart or [A]bort

When all files have been selected, you are given a list of files selected, then an Are You Sure? prompt.

  \* Yes continues with the multi-upload.

  \* No aborts.

DM Just like the Upload Multiple command, you can also Download Multiple files from the current library to the destination drive of your choice.

AS Users can apply for access as the subop of the current board if there is not currently one assigned.

AC Any user with subop or remote maintenance access may add up to 500 credits to any user’s account.

IDx Displays user information just like the UL user list.  Posts, responses, uploads and downloads are shown to subops and SIGops.

A few notes:

  • The current protocol is saved to the user’s stats by using the variable UL (which was previously used for upper/lowercase flag—not needed but still supported in the user file).

\* Any C-64 or C-128 user who currently has this flag set to 1 will have a default protocol of Xmodem.  Be sure to inform your users of this when you put the system up.  Once they change their protocol to Punter, it will remain Punter unless they change it.

Upload/Download System

This is the IMAGE BBS "file transfer base."  All users read the file s.UD when entering the U/D section, regardless of whether they are in "Expert Mode" or not.  (fixme: correct?)

Moving To Another Library

Main U/D prompt

The user is shown the:

  • Total number of files in the directory

  • Number of new files uploaded since his last call

  • Total number of credit points they have

  • Current protocol in memory

  • Blocks free if in local/pseudo-local mode (fixme?)

If they are the library’s subop, they are informed of this.

If a move cannot be made, they are told the requested library number does not exist.

N displays the name of the current library.

Libraries which a user can access are listed by typing L.

Changing protocols

PR New Punter, Slow Punter (for noisy telephone lines) and Xmodem-CRC/1K protocols are available for use with IMAGE BBS.  Commodore 64/128 and Amiga users default to Punter; all others use Xmodem.

\[I have no idea what Starlink is, but I’m including this info anyway:\]

"Slow Punter" has relaxed timing that works very well with Starlink. If your BBS is reachable by Starlink, people will be able to use the "Slow Punter" for file transfer, or you can use it to call boards using Starlink.

Note
These protocols have been updated for IMAGE v1.2a, and are very efficient.  We think you’ll be very happy with them.

Single file upload

Each library allows a maximum of 60 files.  The user is asked for information describing the file, which is saved along with their handle, ID number, and the current date and time.  They receive credit points at the ratio of whatever his access group or flag allows per block uploaded.

There is also an option to add a file comment, used to describe what the file is for.  Other users can view this comment, and add their own.

Multi File Upload

(The user must be using the Multi-Punter protocol.)  The BBS prompts:

Go to multi-send mode!

The BBS records filenames as they are received, entering them into the directory, along with the:

  • Uploader’s handle

  • BBS ID number

  • Current date and time

  • A description which says "Multi-Upload" (fixme: wasn’t this changed?)

Users may edit the entry to provide descriptions.  Credit is given just as with a single file upload.

Note
Occasionally, noise on the phone line will cause multi-uploaded file titles to be corrupted.  While impossible to prevent, it is a rare occurrence, and should not cause much trouble.  You could just use the E option afterward to edit the filename.

D, Dx Single File Download

Type D followed by the file number, from the main U/D prompt

Type D at the "About" prompt.

Note that a user can download a file if:

The files downloaded that call are less than the number of files allowed per call, as dictated by their access group settings, unless the user’s status includes unlimited downloads per call.

The time remaining is sufficient (to begin with; errors causing delays during transfers are ignored, since they can’t be known in advance).

They must have at least as many credit points as the number of blocks that the file contains, unless their status includes unlimited downloads (in this case, no credits are subtracted for a download).

Multi File Downloads

The user is asked for a starting file number, then shown each file in the directory from that file number, and prompted

[Y]es [N]o [S]tart [A]bort

Each Yes selection: the approximate download time is shown for their baud rate.  All the requirements to add the file to the download queue are the same as for downloading a single file.  If everything is okay, they can continue adding files until they reach the maximum number of files, or choose as many files as they want to.

kbd:[\]tart: The BBS shows the list of files chosen, asking them to confirm the list. If they do so, they are given 20 seconds to go to receive mode, and the files will be transferred.

Note
Users can abort any file transfer in any mode and any protocol by sending [kbd:Ctrl+X] three times: that is, holding down the Control key and then typing the letter X three times.

Listing Files

Scanning the file directory shows:

The directory file number

Number of blocks (or kilobytes, blocks divided by four) depending on the user’s computer type)

Number of times downloaded

Filename and file type (PRG or SEQ)

Several scanning variations exist:

S, Sx …​…​…​ Scan titles from first entry, or starting from entry \#x

SA …​…​…​…​ Scan titles uploaded after last call date (all libraries in current SIG)

SN …​…​…​…​ Scan titles uploaded after last call date (current library only)

SS …​…​…​…​ Scan titles sorted by:

  • Number of blocks

  • Number of times downloaded

  • Alphabetically

SU …​…​…​…​ Scan for unvalidated files

Space or / aborts.

Other Commands

A, Ax …​…​…​ About first file, or file \#x. This shows, in addition to information displayed by the "scan" command above:

  • The uploader’s user ID and handle

  • The date and time it was uploaded

  • The date and time it was last downloaded

  • The computer type it’s meant for

  • Comments about the file

Killing Files

A sysop, subop, or the user that uploaded the file may enter K followed by the file number to delete it from the file directory. They are also asked if the file should be scratched from the disk.

If they answer No to this prompt, an entry to the daily activity log titled Kill: plus the filename is made.  If a printer is online, the same notation is printed there also.  This shows a file on disk is not in the file directory.

When a file is killed, credit points are deducted equal to the number of points they were given when they uploaded the file.

Editing Files

A sysop, subop, or the user who uploaded the file may type E followed by the file number to change information about it.

(fixme)

Reading a File

A user may enter R followed by the number of the file to display a SEQ or PRG file.  They may also select R when doing an "About" on a file.

(fixme: dupe)

Validating Files

Sysops, subops, and the user who uploaded the file can "see" all unvalidated (ie, not downloaded and/or tested) files.  When downloaded and verified to be working files, they are validated, available for other users to download and add comments to. In the process of downloading a file to validate, subops:

  • Will not have credit deducted

  • The download does not count against the number of downloads per day (if not unlimited)

  • The time remaining is not checked when subops download in their own libraries.

Subops or sysops validate files by typing:

  • V, Vx to validate either the first unvalidated file (or file \#x)

  • VN to validate new files since their last call

  • VA to validate all files in the library

Unvalidated files will have a leading asterisk in the filename, and show zero for times downloaded:

### Bk’s  Dl’d  Name
001 [200] [000] *"file,s"

When a file is validated, the number of downloads changes to 1.

A user who uploaded a file that is not yet validated has full access to read or download it, but will not have the power to validate it (unless they happen to be the library’s subop).

Copying Files

If a user is in true local mode (from the console), when they enter the U/D subsystem, the "copier" protocol is loaded.  To copy a file, type Dx (where x is the file number).  The BBS tells them the approximate copy time, allowing a filename change, or to be copied to a different device/drive.

If no destination device is specified, it defaults to one number higher than the source device.

Note
Any device may be the target device, but this function will only copy files to drive #0.)

Moving Files

If a user is in local or pseudo-local mode, type M and the file number. They are prompted for the new directory to move the file to.

  \* L lists all available boards.

  \* If the directory is to a different device/drive, the file is copied to that device/drive, otherwise only the directory entry is moved.

  \* If the file is moved, an option is given to scratch the file from its source device/drive after the move is completed.

Full Disk Exchange

Full disk exchange operates very similarly to the U/D section, except files are not placed in directories, but directly read from the device itself (a floppy drive, for example).

UX is sub-divided into libraries just as UD is.  Each can have its own subop, entry file, access and configuration.  Multi upload and download functions the same as in the UD section.

Users may enter UX at most prompts to enter the full disk exchange area.

The file s.UX will be read regardless of Expert Mode status. (fixme: correct?)

Listing Files

A listing of files may be obtained by entering $ or S. The user is prompted for a pattern (if none is given, the default is \* for all files).

Free UD/UX Library

While defining libraries using the .reledit` program, you may specify any of your libraries in the U/D or U/X to be FREE libraries; that is, no credit is deducted from the user when he downloads from these areas. To specify a FREE board, use the `.reledit program or the Z command for local maintenance.

In a FREE download board, the number of files per call and credit points are not checked prior to starting a download.

>>>

Electronic Mail Subsystem

This is IMAGE BBS’s private mail section.  If a user has access to this section, on logon they will be informed if they have mail waiting, and given the option to enter the e-mail subsystem at this time.  Upon entering the mail system, they are told how many messages they have waiting.

A user may also enter the e-mail subsystem by entering EM at any major prompt.  The prompt for this section is E-Mail:.

Listing E-mail

To obtain a list of the e-mail a user has waiting in the order they were received, type L (or L x to begin listing at message #x) at the E-Mail: prompt. This reports:

  • Handle of the sender

  • Date and time the message was sent

  • Message subject

Reading E-mail

Return reads the first e-mail message (or the next message if the user has multiple messages in their inbox).

Once the last message is read, they are told No more mail.

R x reads message #x.

A reads all messages. All messages are displayed in succession.

Typing N reads any new messages since their last call.

Responding To a Message

This replies privately to the user who sent the message being read. After reading a message, the user is presented with several options:

Reply to <sender's handle>:
  • Yes: This replies to the sender.

(fixme)

R x responds to message #x from the list of messages received.

Sending Private E-Mail

The BBS prompts for the handle or user ID number who will receive this message.  If the ID number is entered, the user log is searched, and the handle (if found) is shown.  The sender confirms this is the user they intended to send the message to, and are placed in the BBS text editor.

Deleting E-Mail Messages

D prompts to delete messages. (fixme)

(The user is also prompted to delete messages if there are any left in the mailbox before either Quitting the e-mail subsystem or typing a command to change subsystems, like UD or SB. This encourages users to keep their mailboxes tidy and not use un-necessary disk space.)

When a user deletes their e-mail, they get the following prompt:

Delete [A]ll, [S]ome or [N]one of your mail?
  • All deletes every message held in their mailbox, after confirming an Are you sure? prompt with Yes.

  • None keeps every message held in their mailbox.

  • Some goes through all messages in the user’s mailbox, prompting them:

    [D]elete, [K]eep, [R]ead, [F]ile away:
  • Delete deletes the selected e-mail message.

  • Keep holds the message in the user’s mailbox.

  • Read views the message to help decide whether they wish to keep or delete it.

  • File away Removes the message from the user’s mailbox, but places it in a separate file on the e-mail disk.  These stored messages can be later accessed with the FR (File Retrieval) command at the e-mail prompt, discussed now.

Personal File Storage

FR (File Retrieval) lets users:

  • Read previously “filed away” e-mail messages

  • Get a directory of their personal e-mail files with $

  • (fixme) is there a delete option?

Verifying E-Mail

Type V (and the user’s handle when prompted) to see how many e-mail messages they have, and how many are from you.

Editing E-Mail

Type VE (then the user’s handle when prompted) to edit any e-mail you have already sent to that user.

Forced E-Mail

A user with remote maintenance access may send “forced e-mail;” that is, e-mail which is displayed to a user when they log on to the BBS.  It is unabortable, and cannot be deleted by the user.

The user creating this e-mail is asked whether they want to create or remove a “forced e-mail” file, and prompted for the user’s handle the forced e-mail is for.

When reading a forced e-mail file, if either of the last two lines contain the single word

ERASE, the forced e-mail file is erased.

OFF, the user is logged off immediately after reading the forced e-mail.

Note that ERASE and/or OFF must both be entered with all capital letters.

Leaving the E-Mail Subsystem

Q or a command that takes you to any other subsystem.

If the user has any messages left in their e-mail inbox, they are prompted whether they want to delete them.

News Files Subsystem

The News Files are structurally different from the other file areas of the BBS—such as Movie Files or Program Files—and for that reason they are covered separately here.

NF at most prompts takes you to the News File library. Here, users can re-read BBS news files they see at login, and you can write new ones.

If you have "File Maint Access" the prompt reads News-Maint: Otherwise, the prompt users see is News:.

Maintenance Commands

Adding a News File

A adds a News File to the directory.

  1. Enter the title.

This is shown to the user when they list News Files; it also names the file on disk where the news text is stored.

Note

If the filename begins with a $ (dollar sign), it becomes a “repeating” News File, shown to users each time they log on to the BBS.

  1. Enter the access level of the News File.

  2. Write the text of the News File in the text editor. When done, use .S to save the text.

All News Files are non-abortable the first time they are shown to a user.

Editing a News File

E x edits entry #x. You may then change the information you entered using Add:

  • (fixme: news file name, whether it’s a repeating news item, and access level?)

and the News File text is loaded into the text editor for editing. When the file is re-saved, you can update the date of the News File so it again appears as a new News File.

Killing a News File

K x erases News File #x. (fixme: confirmation?)

User Commands

Reading News Files

Type the number of a News File (similar to List) to read that item.

Listing News Files

Type L or L x (to list from x) at the prompt to list all news files available to that access level. Each is given a number, and if you have News-Maint access, you can also see access level information for that file.

Leaving

Q returns to the main command level. A user may also go to any other section of the board by entering the appropriate command.

The File Libraries (Movie, Plus, RLE, Text)

There are four sections of IMAGE BBS that provide very different functions, but the sections themselves are functionally identical. They use the same routines and all of the same commands.

Types of Subsystems

There are four separate types of files handled by the same program:

Movie Files

SEQuential (text) files containing cursor movement, color, and uppercase/graphics characters, displayed if the user is in Commodore C/G mode). A delay between each character output can be set.

Plus Files

Games or BBS utilities.

RLE Files

Black-and-white, high-resolution graphics which require certain telecommunications or viewer programs. Graphics data is represented by ASCII text. Control sequences begin and end the file, telling the terminal or viewer to switch into or out of high-resolution graphics mode.

Note

RLE is short for “Run-Length Encoded,” and is a type of file compression.

Text files

Plain Commodore PetSCII text files.

Sub-Directories

Since the subsystem libraries may have sub-directories—​and possibly sub-directories under those sub-directories—​the number following the prompt refers to the directory level you are at. When you first enter a subsystem, you are placed in directory level 1 (the Main Directory).

(We’ll use <Subsystem>-Maint as an example in this section, but the same principles apply to the other library types.) If you have “File Maint Access,” you start in <Subsystem>-Maint 1. Otherwise the prompt is <Subsystem> 1.

To enter a sub-directory, type the number of the item tagged (Directory).

If you’ve entered a sub-directory and wish to return to the “parent” directory (the directory “above” the one you are in), type B or < at the subsystem prompt.

M returns you to <Subsystem>-Maint 1 (the Main Directory) from any sub-directory level.

Table 19. Traversing Directories
Action Type

You are in Movie-Files 3 (directory level 3) and wish to return to Movie-Files 1 (the Main Directory).

M

You are in Text-Maint 3 (directory level 3) and wish to return to Text-Maint 2 (directory level 2).

< or B

Movie File Library

MF at most prompts enters the Movie File library.

CS is the Change Speed command, which allows you to set the delay between characters output while viewing the Movie File.

Entering a Sub-Directory/Running a File

Type the number (see List) of a file to:

  • read it (Movie Files, Text Files)

  • run it (Plus Files)

  • enter it (sub-directories)

Adding Sub-Directories

To add a sub-directory, you must have “File Maint access.” Type A at the <Subsystem>-Maint prompt.

  1. Enter the title.

This is the title the user sees when listing the directory.  It has no relation to the actual filename about to be created.

  1. Enter the filename.

Note

To create a directory, type d. followed by the sub-directory filename you want to have on the Directory disk.

Image BBS will add a letter after the d. filename, depending on the subsystem you’re in:

  • m. movie files

  • p. plus files

  • r. RLE files

  • t. text files

If you are in the Movie File subsystem and enter d.movies, the BBS adds m. to the filename, and the sub-directory is saved as d.m.movies.

  1. Enter the access level(s) which see that sub-directory when listing the files available. Access is determined in the usual way; either from the chart shown in , or by typing ? and answering Y or N for each group.

  2. Enter how many credits to charge users to access this sub-directory, if any. You can charge credits for:

    • entering the sub-directory, but make accessing the files free

    • viewing the files within, but not entering the directory itself

    • both entering the sub-directory and viewing the files within

Or you need charge nothing if you wish.  It’s up to you! The credits charged here are put into the BBS-wide credit pool.  Refer to [credit-pool] to learn how to set that up.

Adding a File

To add a file to a directory or sub-directory, enter the directory or sub- directory where you wish to add the file, type A at the prompt.

Here is a discussion of the following prompts:

  1. Title: As above. Again, this is just what the user sees, and has no relation to the actual filename viewed when the item is selected.

  2. Filename: Type the filename as it appears on disk.  (In the PlusFile area, there is no need to type the leading +., the program adds that automatically.)

  3. Device: Type the device number where the item can be found.

  4. Drive: Type the drive number where the file can be found.

If you do not have a dual drive (or the file is not on a dual drive), just press Return.

  1. Access: Type the access level you will allow to view this file. (Remember, you can type ? at the access prompt to let the BBS help calculate it.)

  2. Credits: Type the number of credits (if any) you will charge users for viewing this file.

Killing a File/Sub-Directory

A maintenance only operation, K followed by the number of the file or sub-directory you wish to kill. You will also have the option of scratching the file referenced by the directory entry off the disk. Killing a sub-directory is not possible if there are files present in that directory.

Editing a File/Sub-Directory

If you have “File-Maint” access, type E and the number of the entry to edit.  You can change any of the information you entered originally.

User Commands

List

L lists all files and/or sub-directories available at that level.  Each is listed by number.  If you have “File-Maint” access, you can see the filename, access, credit, device and drive information for that file or sub-directory.

QuickList

QL lists the items in the directory like List does, but

QLeaving

To leave the file areas, Q takes users to the main command level, or type a command taking you to any other area of the BBS.

BBBBS Database Subsystem

This takes users to a bulletin board listing program that allows users to add, list, or delete the numbers for other bulletin board systems.

When first entering the system they are presented with a menu of options and arrive at the BBS database prompt dBASE:

Commands

The active commands for this module are:

    L)ist BBS Numbers

    Q)uit To Main Menu

    D)isplay Notes

    A)dd A Number

    R)emove An Entry

    E)dit An Entry

The last three options only appear if the user has post and respond capabilities.

Listing a Number

L brings up another menu of options which allow users to narrow down the scope of the listing they would like:

Table : Bulletin board listing options

Space or / aborts any of the listings.

Adding a Number

Typing this at the dBASE prompt allows users with post/respond capabilities to add a BBS number to the listing.  They are prompted for the complete information on the board they wish to add, including

  • The BBS name

  • Phone number

  • Baud rate

  • Hours of operation

Several characteristics of the BBS are asked about (and listed when a user lists that BBS):

  • - If it charges a fee

  • Has U/D areas

  • Has online dating, games or role-playing games

  • Is PC Pursuitable, networked, etc.

The database is checked for a duplicate under this phone number.  If there is one, the user is notified, and returned to the dBase prompt.

After all prompts have been answered, the results are shown, and they can

  • change any answers they’ve given

  • continue and write the entry to the database

  • or abort back to the dBASE prompt

Adding an entry first uses any previously deleted entries, otherwise adds to the end of the list.

Removing an Entry

Only the sysop, a user with maintenance access, or the user that posted a number may remove it.  Anyone else attempting to remove a number is told the entry can only be removed by the original poster.

A BBS name is prompted for.  The list will be searched and if the entry was posted by the same user, it will be deleted.

Editing Information

A sysop or the user who posted a BBS number may edit the information. The program asks for the entry number to edit, checking to make sure the user has access.  If so, they may change any information in the entry, and re-file it.

Display Notes

D brings up a listing of abbreviations used in the BBS listings. These include CBM for Commodore, etc.

Quitting

Q quits the BBS Lister, (which takes users to the main command level), or a command taking you to any other area of the BBS.

Voting Booth

The Voting Booth is fixme […​]

VB takes you to the Voting Booth.  If you have Remote Maint Access, you see the prompt Vote-Maint->, otherwise you will see "Vote->".

If there are no topics available and you do not have Vote-Maint access, you are returned to the main command level.

A ADD A TOPIC

Only available in Vote-Maint.  This allows you to add a new vote topic.

An explanation of the prompts:

  \* Subject: Enter a short but descriptive title of the vote topic.

  \* Access: Enter the access level this topic may be seen by.  This     is set as with other areas of the BBS.

Now you are placed in the IMAGE text editor.  Type the question text.

(Do not include the answers, these are entered separately after you save the question text.)  When done, enter .Save on the first column to save the text and continue to the next section.

Now enter the choices a user has for this topic, and a short amount of text which better describes this option.

There is a limit of 9 choices, after which the voting booth automatically saves the topic.  If you have fewer choices, hit Return at the last one, and you save the choices then.

Killing a Topic

This function is only available to users with Vote-Maint access.  Type K and the topic number (see LIST below) to be killed.  You are asked to verify killing the topic.  If you answer Y, the topic is killed from the Voting Booth topic directory, and erased from the disk.

Vote/View Results

Available to all users, typing the topic number allows you to vote on it (if you have not yet voted on that topic) and/or view the results.

The voting booth uses ID numbers and handles to keep track of who voted, so a user cannot vote twice on the same topic.

List Topics

Available to all users, L lists all topics available to that user’s access level and the date each topic was created.

If you have Vote-Maint access, the access level for each topic is also listed.

Quitting

Users may leave the voting area by typing Q to return to the main command level, or type a command which takes them to any other area of the BBS.

User List

Available to those who have their User List flag set, UL lists either all users, or a subset of users according to specific attributes.

Quick Listing

A “quick list” shows you only the handle and user ID number. You can sort the user list one of two ways:

  • Numerically

  • Alphabetically

You can start listing at a particular user ID number or alphabetic character(s) depending on the type of sort you select.

Regular Listing

To search for a particular user or attribute (or if you want more information than just the handle and ID), use this option.

Type the number of attribute(s) to search for, then fill in the information to narrow down the search.

When you are done, or if you wish to list all users, hit Return.

Next, type the number to start the listing from.  The program continues from that point to the end of the user file.

Space or / aborts the list at any time.

If a user has remote maintenance access, the list shows all information about a user:

  • handle

  • ID number

  • last call date

  • computer type

  • area code and phone number

  • access group

  • real name

Otherwise, the list only shows:

  • handle

  • ID number

  • last call date

  • computer type

  • area code

Quitting

To leave the user list, type Q or hit Return (which takes users to the main command level), or a command taking you to any other area of the BBS.

The IMAGE Text Editor

The text editor is where any messages on the BBS will be entered.  It works by letting users type anything they want to type.

This is a line-based editor; you cannot use cursor keys to move up and down a line like you can in most modern text editors/word processors.

Entering Text

Simply type it into the editor.  There is no need to press Return at the end of each line as with a typewriter. Word wrap is implemented; this is a feature that automatically transfers a word for which there is insufficient space from the end of one line of text to the beginning of the next.

Several Control Keys are available while typing to help edit text.

As the sysop, you can define how many lines of text (in multiples of ten) a user can type into the editor.  (See User Flags for more information.)

If a user enters the editor in local or pseudo-local mode, they are allowed 253 lines, and also shown how many bytes are free in the text buffer.

The amount of free memory is kept track of. If this amount becomes too small (less than 256 bytes), the message

`End of Memory`

appears, and you must type .S to save, or .A to abort.

Dot Commands

When the text buffer is full, or if . is typed as the first character on a line, you enter Command Mode.

These are called “dot commands” because they begin with a . (dot) as the first character on a line.  They display Command: and wait for you to press another key.  This is Command Mode.

  • If you press Delete or Return keys, the Command: prompt is removed, and you are returned to the editor.

  • If you press an unrecognized command key, the editor exits to BASIC to check if you have added that command before assuming it is an illegal command.  (The +.WF program uses this technique extensively.  The “put”, “get”, and “view directory” commands in im also use it.  If you wish to program your own commands, we suggest you examine these files to see how it is done.  No documentation is available for this as yet.)

If you press a key corresponding to a command, the editor displays the command, waiting for you to either:

  • enter a line range (or another character, for some commands).

Tip
A command accepts a line range when there is an extra space after it.
  • or press Return to accept the command.

Line Ranges

Most commands allow a line range to be entered after the command, just like BASIC’s list command.  A line range can be specified in one of the following ways:

Table 20. Line range specifications
Specifier Meaning

x

Just line #x

x-

From line #x to the end of the message

x-y

From lines #x to #y

-y

From lines #1 to line #y

Any delimiter (comma, etc.) may be used in place of the -, depending on your preference.

The commands available in the editor are grouped into related commands, and discussed here.

Exiting The Editor

There are two ways to get out of the editor:

  • The first way is to abort the message you were typing, with the .Abort command.

Warning
There is no confirmation, unfortunately. Yet. I almost have that fixed.
  • The second way is to save the message with the .Save Text command.

  • Neither command requires or allows line ranges.

Reading What You Have Typed

There are several options to view the text you have already typed:

  • First, the .Read command.  This displays each line just as it was typed.  Each color change character and MCI command is shown without being acted upon. This might be useful to “proofread” your message.

  • Next, the .MCI Read command.  This interprets MCI commands, and displays color change codes.

  • Finally, you can also .List the text, which displays line numbers (used in line ranges for other commands), plus behaving like .Read.

If no line range is given for the .Read, .MCI Read or .List commands, all text in the buffer is read or listed.

You can pause text with Ctrl+S or Home keys at any time.  Messages may be aborted while paused with Space or / keys.

Manipulating Text

.Delete removes lines of text from your message permanently; there is no “undo” capability.

  • Any line range you type after .Delete is removed from the buffer.

  • If no line range is specified, the last line of text is deleted.

.Edit changes lines of text.  When a line is edited this way, the line number is displayed, then the text itself, just like the .List command does.  You may then type the new line below it.  (See Control Keys for useful editing keystrokes.)

  • Pressing Delete or Return as the first character on the line causes the editor responds with (No Change.) and returns to allowing text entry.

  • Typing . as the first character causes Command:Exit to appear and abort the Edit command, once again allowing text entry.

  • If no line range is specified, .Edit defaults to the last line of text entered.

Editor Modes

Insert Mode

The .Insert command enters Insert Mode.  Any line number you specify after .I is where you start inserting lines.  If no line number is specified, line #1 is assumed.

When you are in Insert mode, it is shown by displaying Ix:, where x is the line number you are inserting at.

As you type each line of text, text on subsequent lines is moved down in the buffer, then your line is put in its place.

You can exit Insert Mode by typing a . as the first character on the line.  This responds with Command:Exit and goes back to the normal editor.

Line Numbering Mode

The .O command toggles Line Numbering Mode on or off.  This mode, when on, displays line numbers as you type text.

Shaping Your Text

The .Justify command allows you to format your text in one of 7 different ways.  After typing the J command, you are prompted:

Justify (C,E,I,P,L,R,U):

These are the seven Justify commands.  Press the key corresponding to which justification mode you want, or to escape, type (fixme: period?) Delete or Return.

If a valid command is selected, the editor displays the command name, and then allows you to enter a line range.

If you do not specify a line range, the Justify commands default to all text in the buffer.

The Justify commands are:

Table 21. Text editor justification commands
Command Purpose

Center

Center text within the current .Column width

Expand

Justify text within the current .Column width

Indent

Indent text a space to the right

Packed

Remove spaces added throughout the line by `E`xpand

Left

Align text to the left margin

Right

Align text to the right margin

Un-Indent

Remove spaces added by `I`ndent

The .Border command puts a border around your text made up of a character you specify after the Border Character: prompt. If you do not specify a line range, it will default to all text entered. If there is not enough room on a particular line to add both border characters, that line is ignored.

Tip
Set the .Columns width to 2-4 characters less than your current line width before typing the text to be surrounded by a .Border.
Tip
If you want to undo a .Border command, there is an .Unborder command in +.WF.

The .Columns command followed by a two-digit number between 22 (for VIC-20s) and 80 (for 80-column Commodore 128s, or ASCII/ANSI terminals) changes the number of characters the editor allows you to type on a line before wrapping text around to the next line.

If you do not specify a column width after the command, the current column width is displayed.

A related command is .. This displays a 40-column scale for manually centering text, among other purposes.  There is no prompt for a line range; the scale gets displayed as soon as you hit .

Starting Over

The .New (Clear Text) command re-starts the editor, erasing all text you have typed.

Warning
There is no confirmation, unfortunately; something I plan on remedying in Image BBS 2.0!

Searching For Text

The .Find command allows you to search for any occurrence of a character, word or phrase.  If no line range is entered, all text will be searched.  Find will prompt you for the text to search for, and will list all occurrences of it.

Replacing Text

The .K (Replace) command will prompt you for an optional line range, then a Search Phrase: as .Find does, but also ask what phrase you want to replace it with.  Then it will go through the text.  If the replacement phrase is too large to fit within the current line length, the editor will display Too Big, Can’t Fit. and skip that line.

Disk Access

(These commands are available from local/pseudo-local mode only.)  The .Get and .Put commands allow you to load a file from, edit using all the normal editing facilities, then save that file to any device and drive, rename it, etc., and resave them to the same device/drive, or a different device/drive if desired.

Tip
See Local Mode Dot Commands for additional editing dot commands only available from local or pseudo-local mode.

Getting Help

Type .? or .H to read a condensed version of this manual section.

Control Keys

Certain key combinations are used to edit your text while you are typing it, whether in the BBS editor or at a BBS prompt.  For example, any character that you delete with the Delete key can be “re-typed” with Ctrl+U.  Other control keys:

Table 22. Text Editing Control Keys
Command Purpose

Delete

Move back one character

Ctrl+B

Delete to beginning of line

Ctrl+D

Delete character under cursor

Ctrl+I

Insert character under cursor

Ctrl+N

Move forward to end of line

Ctrl+O

Duplicate all text on current line

Ctrl+U

Re-type one character from buffer

Ctrl+V

Verify text in buffer (re-print input)

Ctrl+W

Delete previous word

Ctrl+X

Abort input [prints a British pound sign (£) on Commodore terminals, or a backslash (\) on ASCII terminals] 


Ctrl+Y

Re-type word from buffer (move forward one word)

Message Command Interpreter

The Message Command Interpreter (MCI) allows you to do a variety of things within messages you type.  Each MCI command consists of:

  • the British pound sign (£) for Commodore users, or backslash (\) for other computers

  • a command letter (can be either upper- or lowercase)

  • a number or letter parameter

  • any additional parameters.

Since the parameter after a command is usually limited to one character, letters are substituted for numbers larger than 9, as follows:

Table 23. MCI numbering system
Decimal MCI number Decimal MCI number

0

0

8

8 or h

1

1 or a

9

9 or i

2

2 or b

10

j

3

3 or c

11

k

4

4 or d

12

l

5

5 or e

13

m

6

6 or f

14

n

7

7 or g

15

o

This next section was pretty extensively reworked; I think the examples in the original manual don’t always explain themselves very well.

Tip
If you ever need to output a British pound sign, type two of them. This is called “escaping” MCI. The first prepares to interpret the following character as an MCI command, but the second British pound sign cancels MCI interpretation and outputs a British pound sign.

In general, MCI is what “spices up” an IMAGE BBS.  It allows you to add color, cursor movement, and a “personal touch.”  The MCI commands available in IMAGE BBS are:

£AxTEXT£

About

Compare MCI variable £V_x_ to TEXT.  Notice the ending pound sign which delimits the comparison.  (For a list of MCI variables, see the £V command.)  The comparison result can be used with £D or £T.

£A2SYSOP£ Compares the user’s handle (£V2) to SYSOP.

£Bx

Bells

Send x bell characters [CHR$(7)] to the user; if the user’s terminal supports bells, they are heard.

Tip
Speed up or slow down by using the £Sx command!

£Cx

Color

Set the current display color to x from the following table:

Table 24. MCI color codes
Value Color Value Color

1

White

9

Brown

2

Dark red

j

Light red

3

Cyan

k

Dark gray

4

Purple

l

Medium gray

5

Dark green

m

Light green

6

Dark blue

n

Light blue

7

Yellow

o

Light gray

8

Orange

  • 0, black, is omitted since that is usually the color choice for terminal backgrounds.

  • Commodore users can use Ctrl or Commodore 1 - 8 instead of £Cx.

  • In ANSI graphics or Commodore 128 80-column mode, £C8: dark purple, £CK: dark cyan

£Dx

Jump if not equal

Skips x lines when the result of the last compare command (£A or £T) was not equal.

Display an appropriate message based on whether the user’s handle is or is not SYSOP:

£A2SYSOP££D1 Compare user’s handle to SYSOP, skip next line if not

Hello, Sysop!£D1

Output Hello, Sysop!, skip next line

Hey, you can’t read this!

Output message, continue

£X1

Abort the file or message

£Ex

Jump if equal

Skip x lines if the result of the last compare command (£A or £T) was equal.

Display a message based on whether the user’s handle is USER:

£A2USER££E1 Compare user’s handle to USER, skip next line if so

Congratulations, your handle is USER!£E1

Output message, skip next line

Too bad your handle isn’t USER!

Output message, continue

£X1

Abort the file or message

£F1

Clear screen

This command sends a “clear screen” character to the user. [CHR$(147) on Commodore computers, or CHR$(12)--a form feed—​in ASCII mode].

£Gx

Get character

Wait until the user presses a key.  The keypress is stored in an$ (MCI variable £v7).

If x=1, input is converted to uppercase. If x=0, both uppercase and lowercase are allowed.

Press a key: £G1

Prompts the user and waits for one keypress (input is converted to uppercase).

£Hx

Backspaces

Display x backspaces/deletes (depending on the user’s terminal).

Apple£H5Banana

This displays Apple, immediately erases it with five backspace/delete characters, then Banana is displayed in its place.

£Ix

Line input

Pauses output, allowing the user to input a line of text. The input is stored in an$ (MCI variable £v7).

  • If x=0, the input can be in both upper- and lowercase.

  • If x=1, the input is in uppercase only.

Enter your name: £I1

Prompts the user, then accepts input in all uppercase characters.

Hello, £V7!

Echo the user’s input.

£Jx

Jump

Do not display the next x lines of the message or file.

Displayed£J1

This skips the next line

Not displayed

This isn’t displayed

Displayed again

This is displayed

£Gx

Get character

£Kx Kolorific mode

Changes the color of each character output.

  • If x=0 (zero), Kolorific mode is turned off.

  • If x is any other color code (see £Cx), Kolorific mode is enabled, starting with £Cx.

£K2This is a test£K0

Turn Kolorific mode on, starting with the color red. Displays This is a test, then turns Kolorific mode off.

£Lx

Printer control

Control the printer attached to the BBS, if online.

  • If x=0, printed output is stopped.

  • If x=1, printed output is started (or resumed).

Note
Printed output stops at the end of each line; you must include £L1 on each line to be printed.

£LlHello

Print Hello on the printer.

£Nx New line

Display x carriage returns.

£Ox

“Over”

This command repeats character x 19 times.  It is useful for making menus, etc.

£O-£O+

Displays -------------------+

£Px

Print mode

Sometimes referred to as “cursor dancing,” print modes allow each character output to be displayed in a variety of ways, usually to move the cursor, or perform “special effects.”  Replace x with the print mode number.  The print mode is set back to 0 at the end of each line.

There are thirteen very powerful print modes in IMAGE BBS.  We suggest trying to come up with interesting ways to use them—​it is possible to create an entire “movie” file entirely within the IMAGE BBS text editor using these commands!

Table 25. MCI Print Modes
ASCII Commodore C/G

0: normal printing

6: character, 2 cursor lefts (displays !drawkcab)

1: character, backspace, character

7: character, cursor left, cursor up (displays up)

2: character, 8 spaces, 8 backspaces

8: character, cursor left, cursor down (displays down)

3: character, backspace

9: diagonally

4: space, character, 2 backspaces, character

j: diagonally

5: character, bell

k: diagonally

l: diagonally

(fixme: add the rest, 4 diagonals)

£Qx Reset MCI defaults

Turns off the following features:

  • Printer mode (see £Lx)

  • Reverse mode (see £Rx)

  • Uppercase mode (see £Ux)

The current print mode (see £Px) is set to 0 to print normally, and print speed (see £Sx) is set to 0 to output at the fastest speed.

Parameters:

If x=0, then the current color is set to the default color. Otherwise, the default color and current color is set to x.

(fixme: fix what?)

£Rx Reverse mode

Controls displaying text in normal or reverse modes.

Parameters:

If x=0, reverse mode is turned off. If x=1, reverse mode is turned on.

Note
Reverse mode turns off at the end of every line.
Note
Commodore users can also use the keyboard shortcuts Ctrl+9 and Ctrl+0.

£Sx Print speed

Delay character output by a multiple of tenths of a second. x ranges from 1-J (.1 to 1 second)

£TxTEXT£ Test variables

Used in conjunction with £D and £E.  Compares a variable to TEXT (similar to £A).

If x=1, tests user input (an$, in a module).

If x=2, tests access group (ac%, in a module).

£T29££D1 Compare the user’s access level to 9 (£T29£), skip one line (£D1) if not equal

Hi, sysop! Welcome!£X1

display an appropriate message, and abort (£X1) the rest of the file.

£V2, this function is only for sysops.

Display user’s handle (£V2)

£Vx

MCI variables

Display the desired MCI variable. x ranges from 0-M.

Table 26. MCI variables
Variable BASIC variable Displays

£V0

d1$

Current date/time, e.g.: Sun Nov 10, 2019 4:17 PM

£V1

ld$

Last call date (in 11-digit format)

£V2

na$

User’s handle

£V3

rn$

User’s real name

£V4

ph$

User’s phone number

£V5

bn$

Name of BBS

£V6

b$

System variable

£V7

an$

Last user input

£V8

d2$

Sub-board name at entry

£V9

d3$

Last user on system

£VJ

ak$

Separator line the user’s screen width + carriage return

£VK

d5$

True last call date (11-digit format)

£VL

d4$

Current machine language protocol name

£VM

ag$

User’s access group name

£VN

--

Future expansion (fixme)

£VO

--

Future expansion (fixme)

£Wx

Wait

Delay x seconds before proceeding, similar to £Sx.

Parameters: x ranges from 1-J (1 to 15 seconds)

£X1

Abort file

Skips the rest of the lines in a disk file/message, not displaying anything contained in those lines.

Note
The number of lines skipped within a disk file is actually limited to 255; I discovered this while re-writing the BBS editor help menu file.

£#x

Leading characters/zeroes

When you use £%v (below), this specifies either:

  • The number of digits to display

  • To use leading zeroes or spaces

Parameters:

  • When x is a number [between 1 and 5?], x sets the number of digits to display a numeric value with.

  • When x equals zero, as many digits are in the number are displayed.

  • When x is a space character, leading spaces are used, but the number of digits to display is not affected.

See the examples for £%x, below.

£%x

Display integer variable

Display the value of any one-letter integer variable with or without leading characters.

Note
The periods in the examples are not shown in actual use of this command; they only illustrate how many leading spaces are used.
Table 27. Example 1

£4£ £%a

If a%=1, this displays …​1

Table 28. Example 2

£#2£%a

If a%=1, this displays 01

If a%=23, this displays 23

If a%=789, this displays 89, the rightmost two digits.

Table 29. Example 3

£#0£%a

If a%=1, this displays 1

If a%=42, this displays 42

£$x

Display string variable

Display any one-letter string variable (a$, for example).

£$a

Display the contents of the string variable a$.

£←xx

Tab

Tabs the cursor from the left column to column xx.

Note
Type the key to the left of the 1 key.
Note
To tab over less than ten columns, use a leading zero (e.g., £←05, £←08).
Note
If the tab-to column specified is less than the current cursor column, any text after the tab command is displayed where the cursor is.

The Image Terminal Program

IMAGE BBS has a built in Commodore 1670/Hayes-compatible terminal program for dialing out to other BBSes without having to take your BBS off-line.  It is equipped with several features, including:

  • a phone book

  • auto dialer

  • X-modem and Punter file transfer

  • full Commodore C/G capabilities

For the most part it is self-documenting, with several on-line menus to help you.

Using the Terminal Program

To load and use the term program, press at BBS idle mode, and the term will load and display the opening menu, along with several parameters displayed on the top right window of the screen.  To change any of these parameters, select the “Term Parameters” option from the main menu.

From here, you are able to change

  • ASCII/C-G mode

  • baud rate

  • U/D protocol

  • dial mode (tone or pulse)

Other options on the main menu include terminal mode, file operations, phone book, disconnect, return to the BBS environment, and send line break (for the MERIT system).

The Phone Book

Here is where you may dial numbers entered into your s.phonebook file, or any other number that you wish.  When you choose the phone book option from the main menu, you see the first five numbers (if you have the file), along with "dial number not

To write this file, you should include three items of data for each BBS you want in the phone book:

ItemExample

the name of the BBSLYON’S DEN

the phone number1-313-437-9486

the baud rate1200

\[…​mising text…\]

PORT COMMODORE 1-801-423-2734 2400 NIGHT FLIGHT 1-615-824-5488 1200

(NOTE: Make sure that the first line of the file contains the first BBS name and not a carriage return, and that there are no extra carriage returns before, between, or after the information, or the BBS will not read the information in correctly.)

fixme "next page", or "previous page".  Simply hitting return at the prompt will take you back to the main menu.  Selecting next or previous page will go on through the list in your phonebook.  Selecting any of the numbers, or "Dial number not shown", and entering the number when prompted, will then prompt you for the autodial (repeat) option.

If the autodial option is selected, it will keep track of how many tries for that number (Press / to abort the autodialer).

Once a connection is made, you are put into term mode for the connection.

To go back to the main menu, press Ctrl+Commodore key.

File Operations

You can change communication parameters or use file operation functions here, which include:

  • getting a disk directory

  • sending a disk command

  • changing device/drive

  • read/send a SEQ file

  • upload/download functions (including multi-upload & download)

Maintenance Functions

There are several maintenance commands available, with differing availability:

  • only at the main prompt

  • at all prompts

  • from local or pseudo-local mode

  • to users with remote maintenance access

Each type of command is described in this chapter.  Here is a brief synopsis of each command, followed by a more complete description. Commands marked with \* are available only from local/pseudo local mode.

Table 30. Maintenance functions
Command Purpose

??

Maintenance help menu

CA

Add credits to user

BFdv,dr

Report blocks free

CD

Change device number

CP

File copier

DRdv,dr

Get a disk directory

ECS

Extended Command Set editor

ED

Edit a user’s account

MM

Report free RAM

NL

New activity log

PC

Sub-board password change

VF

View feedback

Local Maintenance Commands

2 ".CD" prg 13 ".CP" prg 13 ".ED" prg 2 ".NL" prg 2 ".PC" prg 5 ".RS" prg 38 ".VF" prg 9 ".WF" prg

Extended Command Set Editor

The Extended Command Set or ECS allows you to add or delete commands from your BBS without the need to modify your im module or re-boot the BBS. It also gives you flexibility in these areas:

  • enabling or disabling commands

  • password-protecting access

  • restricting availability of sysop-only commands to local or pseudo-local mode

  • restricting certain commands to specific security levels

  • configuring whether a command calls a plus-file module on disk or a specific line in the memory-resident im module (and whether that call requires a GOTO or GOSUB)

However, it will not allow you to make changes to the BASIC program. The ECS will allow you to add both main level and all level commands either by loading a module or calling a line in your im module. Each command has several flags attached to it:

Table : Extended Command Set flags

Using The ECS Editor

Using the ECS command editor is really very simple—there are just a few things that you should know.

  1. If you Add or Edit any commands while you are in the editor, you should first (S)ave the new configuration then (M)ake it active.

  2. A pre-configured ml.ecsdefs has been included with this package that contains all the standard IMAGE v1.2 commands plus the commands MA (macro toggle) and ECS which loads the ECS editor (+.ecs).

Re-boot your BBS and add or edit any commands that you wish using +.ecs by entering ECS at the main prompt.

User Edit

ED allows you to edit your users' information whenever needed.  Type the handle or ID number of the user to edit.

Tip
If entering the ID number, do not enter the BBS identifier (e.g., if your identifier is SS, and you want to edit user number 50, you would enter 50, not SS50.)

The BBS then loads the user’s stats into memory.  Anyone with pseudo-local maintenance access may change anything they wish.

  • One exception to this is the password, which can only be seen or changed by the sysop (ID #1).

The first page of user information is shown.  If you wish to change anything, type its number at the prompt, or N to view the next page of information.

Then enter the new information.  Don’t worry if you make a mistake: you can change it again if you wish, nothing is permanently changed until you answer Y to the Save changes? prompt when you are done.

If the information you wish to change concerns the user’s "flags"—that is, certain functions the user can access—then you get a list like in the BBS Configuration Editor.

No matter how much I read and re-read this next paragraph, it never made much sense to me.  So I’m re-writing it, hopefully keeping the spirit and intent of the original wording…​ hurty head bad…​

These flags inherit the default settings of whichever access group you gave the user.  Afterwards, they may be customized on a per-user basis.  Changing one flag will not affect any other flags for that user.

You may also delete an account or reserve an account with this function by changing the user’s handle.

  • To delete the account, change their handle to an ^ (up arrow). The BBS prompts with Delete this user? before any action is taken.  If "yes" is selected, the account is considered deleted, and it is now available for a NEW or REServed user (although it is not overwritten, making it possible to "resurrect" a deleted user by changing the handle back, before another new user takes that account).

  • REServed users get prompted for a password, number of credits, and access level.  (More on this in Reserve Account.)

File Copier

CP allows you to access the online file copier, patterned after the popular "Copy-All" program by Jim Butterfield.  Our thanks go to him for supplying us with the source code to help us write this version.  The online copier will copy PRG, SEQ, and USR files from one device or drive to another with little effort.

Note
CP will not copy files to the same device and drive. Use the DC command for this, with standard Commodore DOS commands (e.g., c0:newfile=oldfile).
Note
CP will also not copy REL files. Use +.CP-rel online, or rel copy (for one 1541 drive only) offline to do this.

Write File

With WF, you may access the IMAGE text editor as a mini word-processor, to write or edit any sequential (SEQ) file.

When you type WF at the main prompt, the text editor will load, and you are able to use it to `.P`ut (save) and `.G`et (load) files from any device and drive you have online. This makes it easy to write, edit, or—in the case of “putting” to a file which already exists, append to—a file.

Local Mode Dot Commands

There are also additional editor commands built into the WF function not normally available from the editor subsystem:

Table 31. WF Editor Dot Commands

.!

DOS command

.$

Disk directory

.&

Read SEQ file

.G

Get file from disk

.P

Put file to disk

.Q

Query used lines, show available RAM

.S

Save buffer

.U

Unborder

.! issues a DOS command. If a “new” (n0:diskname,id) or “scratch” (s0:filename) command is issued, you are prompted to confirm your actions.

.$ (View Directory) command views a disk directory of any device and drive, specifying a pattern if desired.

.& reads a SEQuential file on disk. A filename, device and drive are prompted for. You can pause with Home or abort with Space or /.

.Get File allows you to load a text file into the buffer. You are prompted for a filename, and the device and drive the file is on. The file is appended to any text already in the buffer. You can then use all the normal editing facilities.

Tip
If you are working with SEQ files with C/G codes in them, use .Columns 80 first, so lines don’t word-wrap.

.Put allows you to save the buffer to a specified device and drive. If the specified filename already exists, you can either replace the file or append the text in the buffer to the existing file.

.Save saves the buffer (prompting for a filename if one hasn’t been established with the .Get command).  It checks for the presence of an existing file under the given name, and if one is found, it prompts:

[A]ppend [R]eplace [Q]uit:

Here, you can:

  • Append the text in the editor to the existing file

  • Replace the file on disk with the text in the editor

  • Quit to the editor (keeping existing text intact) without saving changes

.Put allows you to save the contents of the buffer.  You are prompted for a filename in the same way as above (if you used .Get, the filename you got is displayed serving as a reminder of the default filename).  You are prompted for the device and drive to save to (the default is 8,0). After the buffer is saved, you return to the editor to continue working.

.Query re-displays the editor’s opening message, showing how many lines used so far, remaining, and bytes of free memory.

.Unborder removes a `.B`order or partial `.B`order that you have done. It removes the first and last lines, and first and last characters from each line if they are the same character.

Run a Plus-File

Run any plus file you have on your plus file disk from the main prompt. Type R. You are prompted:

Run +.

Type the filename (minus the +. prefix) after that.  (Pressing Return by itself exits to the main command level.)

Remote Maintenance Commands

View Feedback

Only those with remote maintenance access may use the VF function. When first entered, it counts the number of messages which fall into the following categories:

  • Feedback

  • Error log

  • New user log

  • Telecheck

  • Canned messages

I’ll let Fred Dart explain the operation of some features, with slight formatting changes to the file:

The following article appeared in the January issue of "`The Reflection`."

It is reproduced here for the benefit of any that may have missed it. It may be used as a text file on other boards, if used in its' entirety.

+.VF

By: Fred Dart (THE CHIEF)

This month we are going to look at one of the truly outstanding features of IMAGE 1.2b, the enhanced +.VF program.

The basic .VF` from the version 1.0 has been expanded and enhanced by Dr. Bob of the "Enchanted Forest BBS" in Philadelphia.  Bob has worked very closely with Little John and has really done a tremendous job with the `.VF.

Some of the new features include "canned" messages and selective deletion of feedback, new user feedback, etc.  We’ll look at all of the different commands.

The feature that seems to cause the most questions is the "canned message" feature.  A "canned message" is simply a pre-written message or "form letter" that you may wish to send to a user, much like the "new user welcome".

From the initial VF: prompt, selecting C will bring up an option menu consisting of A/dd, E/dit, K/ill, L/ist, or S/end.  Selecting the Add option will ask you for a title for the message, and then put you in the editor to write your message.  Your message can be as brief or as long as you’d like and can contain any MCI or color just as any message entered in the editor.

The Edit option will ask which message to edit.  A numeric input is required.  If you don’t remember which one you want to edit, simply entering a ? will bring up a list of titles and numbers. Enter the number of the message you wish to edit and it will be loaded into the editor for whatever editing you desire.

The Kill option works the same way, the number of the message you want killed.  Better be sure here as there is no safety check: if you say kill, it is gone.

List does just that, it will provide a list of available “canned messages”.  You can have up to 60 of them if you desire.

The final option is Send, which simply asks which one to send.  Again, if you don’t know a question mark will bring up the list.  Very neat.

When reading any of the feedback, new user feedback, telecheck log or error log you have several other options available as well, they are:

Accs/Can/CRed/Del/View/Fwd/Rspd/Next/Over/Quit/New #

The ones that are new or changed include the Can/CRed/Del and View. The others are unchanged, or have minor changes.

Selecting Can will give you the option of sending the user any of the “canned messages.” You might even have one that you want to send to people that continually have trouble with the telecheck or you might have one that you send to anyone that runs into an error on your system (though he should have gotten error e-mail). When you select C you will be asked "which one" and ? will bring up the list of those you have available.

CRed is very handy for giving credit.  I’m sure you have all had occasion to need to restore some credit to a user for a bad download or as a reward for something, now you can do it from here, no need to go into ED just to give him credit.

Del is one of my own favorites.  The user that signs on with an obviously fake account or the irate user that says “just delete me from your system if I can’t…​” whatever.  The D works wonders…​ and really feels good afterwards.  May not get a lot of use but when it does it is worth having.

Finally the View.  Particularly good on systems where more than one person may give access.  You can View the person’s account to see what his status is.  If he has been given access or if he wants some credit or whatever, the View is particularly useful.

In addition to these great features there has also been added the "Selective delete" option so you can delete all or any part of your feedback or other messages.  When Delete is selected from the VF: prompt, you select which to delete then have an option of selective or auto delete.

Selective delete picks which messages you want to retain through a menu of options:

[D]elete [K]eep [A]bort

The options should be self-explanatory, I hope.

All in all the VF is now about anything a busy sysop could want to maintain his daily message traffic from his users.  This is really one of the better “hidden” features of 1.2b.  Well done, Dr. Bob.

(A late note here, someone that just converted to IMAGE from CNET 12.0 said that the "+.VF" was one of the best features he had noticed since his conversion.)

(c) January 1990 FandF Products

Permission to reprint is granted provided the file is printed in its entirety.

If the user is in "Local" or "pseudo-local" mode, they are given an option to delete the entries.

Entering N, E, or F will allow them to read the entries beginning with the first entry or with any entry number he may wish to enter (Example: if there were 10 feedback messages, they could start reading number 5 by entering a 5 at the prompt, or enter N to begin reading those entries that are NEW since his last call, if the feedback was not deleted previously).

After each message he has several options, including:

  • advancing to any message by typing the message number

  • N or Return continues on to the next message

  • R responds to the message

  • A changes the user’s access

  • F forwards the message to any other user as e-mail

  • Q quits back to the options menu

After all messages have been read, the user is returned to the options menu.  If access is assigned to a new user the Sysop is given the option of sending the new user a "New User Welcome" that consists of the file s.nu welcome.  (This can be created using the WF command shown above.)

New user feedback may also be archived if desired.  This copies your new user feedback to a file called e.nark (which could be backed up from time to time, as many sysops like to do).  This eliminates the search through older messages each time VF starts up.

Miscellaneous Plus Files

Reserve Account

A reserved account (an account with a pre-assigned password, number of credits and access level) can be established using this command.  A reserved account is useful for a new user who may sign up when you are not available to validate them.

The RS command establishes any deleted account (where the handle is ^) as a reserved account. When first entered, you are prompted to enter the starting account number.

  • Typing a number starts searching at that account number

  • If E is typed, or no deleted accounts are found in the user file, the next valid account is assigned as the reserved account.

A password, access level, and number of credits will be prompted for.

After this information is entered, the BBS reserves that account.

Miscellaneous Online Utilities

9    "+.access"         prg
6    "+.alpha/ind"      prg
5    "+.bar edit"       prg
24   "+.ecs"            prg
26   "+.e.modrc-config" prg
3    "+.file counter"   prg
4    "+.mail weed"      prg
3    "+.program reader" prg
16   "+.reconfig"       prg
56   "+.reledit"        prg
5    "+.text msg ed"    prg
5    "+.weed"           prg

AutoWeed system

+.access

This is used to edit your access groups. You must reboot in order for changes to the access information to take effect.

+.reconfig

This program is an online version of the BBS Configuration Editor. It allows you to re-define such things as number of calls to the system, board name, prime time, etc.  Simply run it and follow the prompts.

+.weed

The weed program allows you to automatically go through your user files, and delete users who have not called within a specified amount of time.

To use it, run +.weed.  You are asked if you would like auto-weed, or selective weed.

  • "Selective weed" prompts whether you want to delete each user that it finds before deleting them. It also includes users with non-weed status, since you will be prompted.

  • Auto-weed doesn’t prompt, but deletes each user it finds that has not called since the cut-off date.  (Non-weed status users are ignored in this mode.)  You are asked for the cut-off date, which will be the date that is checked against the last call date.

Enter it in the format shown, then tell the program which ID number to start from.  Everything else works automatically, and you hear a beep when the program is finished.

Credit Pool Setup [credit-pool]

The RELedit System

This documentation was modified slightly from the text files on the RELedit and Networking plus-file disks.  I in no way take credit for the original documentation, just the cleanup and integration into these more current, streamlined documentation.

RELedit is a program which eases the setup and administration of message and file transfer bases.  Just run +.reledit from the main prompt.

After a short delay as RELedit reads the system configuration, you see the main menu.  Across the top is the title of the program and a copyright message.  Below that is data on your BBS that includes the number of Subs, U/Ds, etc. that are defined, as well as your node number if you are on the network.  Below that are 5 options:

S – Sub

U - U/D

X - U/X

G – SIG

N - NetSubs

Select S, U, X, G or N.

Note
If you are not part of a network, the NetSubs option will not appear.  This documentation assumes you are networked.  If not, operation is exactly the same, you just can’t use the NetSub option.

Editing Sub-Boards

If you select S, the BBS enters the Sub-board list editor’s first screen.  It consists of a listing of the Subs (if any) you have defined.

The list of Subs show:

  • The title

  • Type

  • Whether it is open or closed

  • The device and drive the messages are saved to

  • The ID number of the SubOp (ID\# 0 means no SubOp)

  • The password (if any)

  • The access level required to see/enter it

  • If it is a NetSub, a small n will appear after the access level.

To add a Sub, type A and hit RETURN.

Ranges

Typing ranges of sub-boards to add, delete, move, or insert works similar to BASIC’s LIST command.

Table 32. Editing Ranges

x

List sub #x

Type the board number you want to edit, then press Return. (Pressing Return by itself exits to the main RELedit menu.)

Editing Sub-Board Options

A menu appears with 9 options:

Table 33. RELedit sub-board definitions
x x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

These 9 options are the same for the U/D and U/X editors as well.  The only difference is the Type question which asks Downloads Only? and Free Downloads? as well as Password.

If the access is 0 or the title is ---, the data will not be saved (or deleted if editing an existing record).  The BBS also goes through the SIGs (if defined) and removes the board from any SIGs it is on.

The SIG Editor

This is much like the Sub, U/D and U/X editors.  The list displays:

  • the SIG title

  • access

  • the SIGop ID

  • whether the Subs, U/Ds and U/Xs are open in that SIG

Another new feature found in this version of RELedit (when coupled with the newest version of the TurboRELs) is the ability to "close" a section of the board to a SIG.  What this does is prevent the SIG from being listed when the user enters the "closed" section.

For example, if you have a SIG that shows the U/X section closed, when a user types "UX", the SIG will not display, appearing as if the SIG does not exist in that area.

When you type the number of the SIG you wish to edit, the following options appear:

Table : RELedit SIG editing options

Editing Lists

Using options 7 through 9, you are presented with a list of the Subs, U/Ds or U/Xs (depending on what option you select) that looks very much like the one users see when listing the available boards in SB/UD/UX.

Everything is keyed off of the position of the board in that list.  For example, if you enter D5 it will delete the 5th board in the list of boards for that SIG.

The commands are as follows:

Add board

Add a board to the end of the list of boards for this SIG.  This command accepts ranges, or type just A and you are asked for the board number (which is the record number you saw in the Sub, U/D and U/X editors).

Typing L at the main Edit or Add Which prompts list the defined Subs/UDs/UXs (depending on which type you are editing).

The Add command also allows multiple adds by giving it a range to add. For example, A5-10 will add Subs 5 to 10. Range commands also work at the Add Which prompt.

Insert board

Identify the number before the board(s) you want inserted. Typing S at the edit prompt or the Insert Before Which prompt lists the boards in that SIG (again, you can enter a range here as well).  You can give the board number you want the new boards inserted before by typing I followed by the number.

fixme Table

Pressing Return saves the list, returning you to the editing screen for the SIG information.

When you hit Return at the SIG Edit: prompt, the data is saved, unless the title is --- or the access is 0.

If a SIG is deleted, the SIG list for that SIG is also deleted.

Netsub Editor

This editor lets you list all of the NetSub IDs you have (you can have up to 60) and edit the lists of boards they are linked to as well as what sub-boards on your BBS are part of that NetSub.

To define a networked sub, first set it up (see Editing Sub-Boards).

When you hit N at the main prompt, the BBS looks on your disk for the NetSub data files.  These files are program files that are loaded into memory using one of the new protocol files written for the NetSubs.

Note
If you have a Lt. Kernal, have the Autoload feature turned on, and have a floppy drive with the same device number as the Lt. Kernal, you get a flashing error light on the floppy drive when you enter the NetSub editor as well as every time the new +.NM.netsub files are executed during Network Maint.  You might want to remove the floppy drive from your system if this bugs you, but it will not hurt the operation of RELedit or the BBS.

The list only displays the NetSub IDs you have defined on your BBS.

Type the number on the left of the NetSub ID you wish to edit and you are taken to the editing screen.

You will now see 18 options:

Option 1 lets you modify the NetSub ID.

Options 2 through 17 are Network IDs of the boards that this NetSub is linked to.  This list should only contain the IDs of boards that you send NetSubs directly to, not every board that is linked to that NetSub anywhere on the network.

The board IDs are not verified.  This is inline with the new network design and the reasons for this will be explained when the Image Network is reorganized to make use of the new network features.

Option 18 lets you define which boards on your BBS are parts of this particular NetSub.

The editor that is entered when you select option \#18 is very much like the SIG list editor.  (As a matter of fact, both the SIG editor and NetSub editor use the same routines!)  The only differences are as follows:

  • Up to 60 boards can be defined as being part of a particular NetSub.

  • You can only add boards that are not already identified as being Networked. \[To remove Network status from a particular sub-board, it must be deleted and re-added using the Subs editor.\]

  • The "Multi-Add" and "Multi-Insert" functions skip not only deleted records, but already networked boards.

While the order of the subs in this list does not in any way affect the order in which they are listed to users, it does affect the order in which they are scanned when +.NM.netsub is run. When a message comes in to a board, the boards are searched for a post of the same name in the order defined in this section.  If none are found, the boards are scanned in the same order again for a place to post a new message.

You may want to rearrange the order of the Subs to speed up NetSub operation.  For example: if you have a sub containing older posts not responded to as often as a sub found later in the list, you might want to switch their order so the board with more activity comes first. This way the BBS does not read through older posts for no reason.

Overflow Subs

This is a system allowing you to set multiple boards as being part of a particular NetSub ID.  When a network message comes in, all subs part of a particular NetSub ID are searched, and the response (or new post) is added where appropriate.

That should just about cover the options available to you in the new RELedit.  I hope you enjoy it and find it useful in maintaining your BBS.

Nightly AutoMaint

The "AutoMaint" feature in +.lo is designed as a building block to add nightly maintenance functions—you may add any sort of functions you wish.

As it now stands, it will rotate the caller and AutoMaintenance logs every night at midnight (or as soon as possible thereafter, if a user happens to be online at around that time, AutoMaintenance is delayed until after they log off).

A week’s worth of logs are maintained under the filenames e.log x (where x is the day of the week: 1=Sun…​7=Sat, like setting the weekday when changing the BBS clock manually).  They may be viewed with the LG command online.

Anyone with limited disk space who does not wish to use this feature can set the variable am to 0 in line 1 of .lo`, and use `.NL (New Log) whenever the log reaches a certain size.

Networking

About NetMail

IMAGE NETMAIL V1.2.4 DOCUMENTATION

Copyright 1990, New Image Software

UPDATED 7-1-90

NetMail 1.0 is a system which allows files to be transferred between BBSes automatically. In this version of NetMail, it supports E-Mail transfers among users, and general file transfers among sysops. Also, if the TurboREL SIGs are used, Network Sub-Boards are available.

All of this is accomplished by means of a program called +.NMauto. This program is run automatically by the system at regular intervals. (Usually one hour apart.) The program checks for the existence of files that need to be transferred to other systems. If any exist, the necessary phone calls are made, and the files are transferred.

Each node in the network will need to pick a node ID. This is just a 3 character identifier that will represent that node. We suggest that an abbreviation of the BBS name be used so that it will be familiar.

NetMail Paths

To avoid the problems of having your BBS call all of the other nodes on your network, the number of connections that can be made to any node is four. At first, this may seem like a small number. However, in our testing, we have found that it keeps the traffic through any one node low enough, and limits the number of calls that any one node has to make.

Node IDs are used in paths. For example, say you had a network with 6 nodes in it. The path from, say LDE to GFD might be /LDE/WZK/GFD/, whereas the path from JMS to PGN might be /JMS/LDE/PGN/. The path describes how to send files from one place to the other. For the most part, you will not need to worry about paths. You just need to know that they are there.

One other restriction is placed on the layout of the network. That is that there can only be one path between any two nodes in the network. If the network is planned with any loops in it (places where files could be sent in circles) then the network will have problems.

Network Maintenance

One BBS on the network will be responsible for network maintenance. It is the sysop of this BBS who will set up the paths that were described above. It is not up to this sysop to plan all of the paths, just to configure them into the network.

The sysop in charge of the network also has the ability to send "NetNews." This is a news file that will be automatically installed on all of the nodes in the network. The purpose of this is to provide a way to relay current information about the network to all of its users. Such information might include new nodes that have been added or local news that is of interest to everyone.

Network Planning

Planning a network is not as difficult as it may seem. There is a simple method of planning a network of any size. You get a piece of paper, and write the node ID of your BBS in the middle of it. Then draw four long lines, one going up, down, right, and left. These are places where you can add nodes. Write the IDs of the nodes at the ends of the lines. Then draw three short lines from each of these. (See [Figure 1: Simple network].) Add nodes on the end of each line. The process can be continued indefinitely.

Note that you could not connect PCM to JMS because that would cause a loop, as mentioned above.

        |
      -PCM-
        |
        |
  |     |     |
-WZK---LDE---JMS-
  |     |     |
        |
        |
      -PGN-
        |

Figure 1: Simple network

General Setup

Where to Put the Files

These files should be put on your Plus Files disk:

Table : Networking Plus Files

Installing NetMail

You will need to make two small changes to Image in order to make NetMail run on your system. Line 1 of the program .lo` has `nf=.` or `nf=0` in it. It needs to be changed to read `nf=1`. The same is true of the program `.EM.

If you have a very busy BBS, you may also want to change the rs=. (or rs=0) in line 1 of +.lo, to read rs=1. This will reserve your system from 3-4 AM each night, so that NetMail will get through.

Getting Ready to Go!

This is the most important part. You need to find someone to network with. Once you find someone, or a group, you need to decide who is going to be the network operator. At this point you would skip forward to the appropriate section. If you are the network operator, read the section entitled Creating a New Network, and if you are not, then read the section entitled Joining an Existing Network. If you want to join the existing Image Network that we are running, contact THE CHIEF on Port Commodore (THE CHIEF @ PCM, in Net-Lingo).

Creating a New Network

Network Planning

Plan your network. Get out paper and a pencil, and draw a map. Try to avoid long distance calls by "chaining" nodes together. You will need to get all of the available information about the BBSes that will be in your network. It’s not hard to add new nodes later, but it is hard to remove them once they are there. One of the easiest ways to plan the network is to first find 4 nodes to connect to your node. Then work on finding 4 to connect to each of those. However, it is not necessary to fill up all of the connections. You can leave some open so that you can later expand. See Network Map which has the current map of the network that we are running.

Note that we have left plenty of room left to expand, and welcome anyone to join.

Assign each of your nodes a number. Start with 1, which will be your node, and then number the rest. This will be important later.

Network Map

fixme

ABC-REG WZK SCJ RRT-TNS
| | | |
STF-JMS GFD-CHF-DAG-GOC FII-SBD
 | | |
SSF-PGN-LDE---------PCM-TCN-SOK-ECY
 | |
EFB-GJ2-PAD RHQ-FRW-LDW
 | | |
TRN | SWD TFD TYP CRO-LOZ
 | | | |
LKR-CMR-LWR-WN2-TWB
| | | |
TTC | TGD | TBB TER SPT D38
| | | | | |
CST-DRC-INI | INS DII-MMA-ALD
| | | | | | |
CSP MIA TCB-WN3-TWZ-ASN CDX SOM
| |
TPO-TAH-TTS-SSW-TGI HCL
| | |
CIA-TST WOL TOS

Configuring Your Network

Now comes the fun part. From within Image, run the plus file +.NM/utils. Since you have never configured a network on your system, it will ask you if you want to create a network. Say Yes.

Then, you will be taken to the Utilities menu. There are several options available. You will need to edit the nodes, using option A.

You need to edit node 1, and put your info into it. Make sure to set everything. Then, add the other nodes in the same way.

Note that you need to change the connections while in the node editor. When changing a connection, you need to make sure that you edit both nodes to make the connection complete. Leave any empty connections as 0. When you are done, press Return to get back to the utilities menu, and select the option to Make 'nm.create'. This will make the file that you must give to each of the sysops in your network so they can configure themselves in. You must also tell each sysop what his/her node # will be.

You will also have to tell the sysop of each node who will be connected to them. They will all need to make up passwords for their nodes, and each one will need to give their passwords to the sysops of the nodes that are connected to them.

When you are done, run the program +.NM/config. You need to set all of the different options, so just go through each of the menu items.

Everything in the section Joining an Existing Network will apply to you as well, so you should read that section also.

Adding a New Node

When you need to add new nodes, just enter the Node List Editor again, and add them in. Make sure to edit the nodes they are connected to so that they will be connected in both directions. When you are finished, make the nm.create file again, and be sure to give this to the new network members. They will configure just as the original members did. Don’t forget to give them their node numbers.

Next, you must send a Node Update. This will send a file out to the other BBSes in your network to tell them what changes have been made. It will automatically install the changes in their system.

Joining an Existing Network

Configuring Your System

You will need to get a copy of the file nm.create from your network operator. Put this file on your Email disk. Also, you need to find out what your node number is, and what BBSes are connected to you. You will need to make up a password, and give it to each of the sysops of the BBSes who are connected to you. They will have to give you their passwords as well. Be sure to go through each of the options in the configuration menu to make sure that they are set correctly.

If you wish to have the modem be off hook while NetMail is doing its work, turn the "Off Hook" flag on. Note that this will not work with all modems. Also note that NetMail will not work with modems that do not accept Hayes-type commands.

An explanation is needed for the connection editor. What you must first do is decided when you want calls to be made by the BBS, based on what "type" of day it is. For example, perhaps on weekends you want to allow 24 hour calling, while on weekdays you only want calling at night. The 24 hour type is pre-defined as "+". So you must configure another type to have the hours you want for the weekends.

The option "Change call times" is what you use to edit the types. You would set the first call type 0 to the hours you want to allow. If you want to define other types, you have the 1 to 9 to work with as well.

After defining the types, you should use the option to "Edit connections". That will bring you to another menu. Choose "Normal Connections". (The other option, "Shortcuts" is not yet fully implemented, but will be in future versions.)

When editing the nodes, you can enter the passwords, define the type of day for each day of the week (for calling hours) and set the number of calls per day for each day of the week.) When setting the calls/day, "" means infinite calls. When setting the types of days, "" means 24 hours and "-" means no calls that day.

Once you finish configuring, you are all set! NetMail is up and running on your system. Any time more nodes are added, it will automatically add them into your system.

E-Mail Forwarding

E-mail forwarding lets you pick a few people whose E-mail will be automatically sent from your BBS, though the network, and end up on some other BBS. For example, it might be nice to forward E-mail for the sysops of the other BBSes on the network. There is an option on the configuration menu for this. You need to specify what their handle is on your BBS, and what it is on the destination BBS, and, of course, what the destination BBS is.

NetMail Online Functions

NetMail adds several commands into the e-mail section of Image BBS. Those commands are listed here, along with descriptions of what they do:

Table : NetMail Commands

Network File Transfers

Files may be transferred between sysops through the network. There is a separate program to do this, called .NM/file`. When files are transferred, they are put into a special `nm.F` file. This allows multiple files to be sent at one time, by just sending a single file. When you receive files, it will notify you in your e-mail. You should then run `.NM/file.

When you run the program, it will scan to see if any of these nm.F files are waiting for you. If any are, it will ask you if you want to extract the files. Extracting the files will put them on the Email disk, so be sure you have enough room. The program will tell you the length of the nm.F file. The extracted files will have approximately the same number of blocks total.

When that is finished, or if there were no files received, it will ask you if you want to send files. The prompts are self-explanatory here.

Keep in mind that some of the Nodes that you send files though may not have enough disk space to hold the file (even temporarily) while it is waiting to be sent on to the next node. It is not generally a good idea to send a lot of files at a time for this reason, or very large files. Also, since some of the connections may be long distance, you may be running up someone’s phone bill considerably. (And yes, they will know exactly who did it because they will know where the files came from, and where they were going. You don’t want to get your fellow network members mad at you!)

NetGrf/NetWall

Two versions of the Network "Wallwriter" are supplied with the Network. One is the normal Wallwriter with network abilities added. The other is a 10-line version that allows a lot more text. MCI commands are not allowed on the wall, but color codes and graphics are. Both versions can be accessed by the program +.NW.

The easiest way to install NetWall is by adding it into your PF section. Or, you could add it in as a command in your im file. (This is only suggested if you are familiar with doing such things.) The other option, and some people have already done so, is to merge it into your +.on file, so that it can be used during the logon sequence, just as Wallwriter is.

There is one important thing to know about the NetWall. It will get big! Very big! As responses come in from all over the network, they will accumulate. It is up to you to keep it to a useable amount. When you run +.NW while in Local Mode, it will ask you if you want to edit the wall. This will allow you to selectively delete messages from the wall. Deleting them on your system will not delete them from other systems, so you are free to keep as many as you like, or as few as you like. We suggest that you check the size of the file at least once a week.

There is also a Weed option that will do this for you. You only need to tell it how many days back to set the cutoff point, then it will delete the messages older than that day.

If you do not want to use the NetWall, then you should change the g1=1 in line 801 of +.NW.walls to g1=0. This will turn the 10-line version off.

If you do not want to use the Network WallWriter, then you should change the g2=1 in line 801 of +.NW.walls to g1=0. This will turn the 1-line version off.

NetMail Support/Information

If you wish to have any further information about netmail, you can contact PROFESSOR, on Lyon’s Den East. The phone number is (313) 453-2576.

Compatibility Notes

This software has been tested on the following list of equipment:

COMPUTERS

  • Commodore 64

  • Commodore 128 in 64 mode

MODEMS

  • Commodore 1670 (old and new)

  • Supra 2400

  • Transcom 1200H

  • Aprotek 2400 (MiniModem)

DISK DRIVES

  • Commodore 1541, 1571, and 1581

  • Commodore SFD 1001 with IEEE Flash interface

  • Lt. Kernal hard drives

Please note that we cannot guarantee that it will work with anything that is not on this list. However, most modems are compatible with those tested, as are most disk drives. As a general rule, most equipment that will work with IMAGE BBS, will work with NetMail.

The IMAGE Network

As we have mentioned in several places in this manual, we are running this network software on our Image Support BBSes. This network is growing fast, and any who have bought the NetMail software are welcome to join it. There is only one catch. In order to join our network, you have to find someone who is already on our network who is willing to sponsor you. If you are local to one of our nodes, then this is usually not a problem. But if you are not local, then you must find someone who is willing to connect you long distance to their BBS.

This is not usually a problem. A typical long distance network call lasts about 3-4 minutes, and they do not necessarily occur every night. Using 2400 baud helps a lot for the phone bill, as it will take only half the time to send the same files. Estimates are at about $30 a month for a long distance connection.

In the future, we may request that sysops who do not have long distance connections on their nodes to voluntarily contribute $15 - $25 per month, which would be given to those sysops that do have long distance connections. The idea being to share the costs a bit, so no one has to bear the whole burden.

Programming Notes

fixme

E-Mail System

The e-mail system for Image 1.2 was written while the Network was in the planning stages, over a year ago. Several "hooks" were put into it so that when the Network was available, E-Mail would be ready. The file .NMextra` is a mini-module that E-Mail loads when NetMail is active. The routines in `.NMextra handle all of the network functions that the users can access.

Configuration Editors

The file +.NM/config is a stand-alone module that handles all of the network configuration that a sysop would need to be able to do.

The file +.NM/utils is a stand-alone module that handles the Network Administrator’s functions.

Network Maintenance

The file .NMauto` is loaded by the `.lo program whenever Network Maintenance needs to be done. It is this module that handles incoming and outgoing calls. In addition to +.NMauto there are several mini-modules that process files as they are received. These include processors for Mail, the Netwall, NetNews, Updates, and so on. Also, when the TurboREL Sigs are used, there are processors for NetSubs.

ML Support

There are a few ++ files that do a lot of the "dirty work" for the network.

Table 34. NetMail Plus Files
File Purpose

x

x

x

x

x

x

x

x

x

x

Future Changes

More additions are planned for the network system. A few online games that send results via the net are planned, and some new features are going to be added to e-mail. Updates will be available on Lyon’s Den East, and other Image Support BBSes.

Programming and Troubleshooting

This chapter provides programming information for those interested in the programming details of IMAGE BBS, and troubleshooting information for those that may be having problems.

Overall Description

IMAGE BBS is a modular program, consisting of both BASIC and machine language files interchanged by the program to add the capability of never running out of memory for program space!  It performs this miracle by loading modules (overlays) when needed to perform specific tasks. Using this technique, you may do about anything you wish to on the BBS, not worrying about memory constraints.

Of course, every great concept has its drawbacks, and this one is no exception.  The price we have to pay for it is the fact that loading these modules takes time, slowing down the BBS somewhat, since you must wait for them to load.  However, we feel the trade-off is well worth it!  If you have a RAM Expansion Unit, CMD RAMLink, or faster disk drive (IEEE, Lt. Kernal, CMD HD, etc.), the load process is speeded up considerably-or is in some cases instantaneous-and helps quite a bit!  Those that do not experience more waiting, but no loss of capabilities on the BBS.

The BBS was written with the programmer in mind.  Special attention was given to making it easy to modify and customize.  Several custom features can be added without even changing the program, but if you can program in BASIC a little, you’ll be surprised at how easy it is to add your own ideas.

Modules

IMAGE uses a main BASIC program (im), and several machine language modules (the ml. files) which remain in memory at all times.  It also uses BASIC modules (.*` files), and machine language modules (`+ * files).  You may write as many of your own modules as you’d like, adding them at any time.  The main consideration is to know which variables and subroutines to use, and how to use them.  Be careful when modifying the main program (*im) so you do not add too much, or you will find yourself running short on memory, slowing down or possibly crashing due to being short on free memory.

Adding to a plus-file cannot hurt, as long as you do not go over 56 CBM disk blocks for any individual module.  However, defining new variables—​especially arrays—​can eat up memory and cause the same problems mentioned above, so be selective in your variable usage. There are many routines in the program which are available for you to use.  We will describe a few of the most commonly used here.  This is not meant to be a detailed guide to programming, only a brief description so you may get the idea.

I have HTMLized the programmer’s reference guide, and am working on continuing to improve it.

Common Subroutines

Table 35. IM subroutines
Call With Line Purpose

GOSUB

1001

Position RELative file pointer

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

Variable Handling in Modules (Plus-Files)

IMAGE variable usage in programming modifications and modules should be done carefully.  If you were to change any variables that the BBS uses for particular functions, you could be in serious trouble!  This could corrupt your user files, or do any number of nasty things!  Because of this, we are giving you a list here of all system variables that you should never use.  Even if you are using "temporary" variables, make sure any subroutines in the main program or program module you are modifying do not change these variables and wreak havoc!  Most one-letter variables, integer variables, and string variables are usually OK to use (with a few exceptions noted below).

Variables not in this list are cleared when the main prompt is reached, so don’t use one to count the number of times a game is played per call in that manner; the BBS will not permanently remember it.  However, the same routine allows you to DIMension variables and arrays in modules without worrying about a ?redim’d array error.  Be careful not to waste memory with excess variables, or your modules will run slowly, and possibly even crash the BBS.

Here is a list of reserved system variables that you should NEVER use, except for their intended system functions:

Since I think it’s sort of important to know what the variables are actually used for, and not just their names, I’m going to steal a page from the “Image BBS Programmer’s Reference Guide” and explain their meanings to the best of my ability. Feel free to set the record straight if you know otherwise, 'k?

Reserved String Variables

Table 36. Reserved string variables
Name Purpose

a$

Reserved for output to screen and modem.

ag$

Access group name of user currently online. (Also £vm)

ak$

Prints line across screen (" " + "-" * LL% -2 + R$). (Also £vj)

an$

Last user input. (Also £v7)

Reserved Integer Variables

The current reserved integer variables for Image v1.2 are as follows:

Table 37. Reserved integer variables
Name Purpose

ac%

Access level (0-9) of user online

ao%

Access level of user at login

Reserved Floating Point Variables

The current reserved floating point variables for Image v1.2 are as follows:

Table 38. Reserved floating point variables
Name Purpose

bd

Total number of CBM blocks downloaded by user online.

bu

Total number of CBM blocks uploaded by user online.

Arrays

The following arrays are dimensioned by the BBS. Most can be used for your own programs, except where noted.

Table 39. Reserved arrays
Variable Purpose

ac%(31)

Can be used for any plus file outside of UD/UX/SB.

bf(x,y)

Blocks free on system drives. Should never be used.

co$(9)

Text for computer types supported. Should never be used.

Table 40. Variables from programmer’s ref guide
Variable Purpose

AC%(

AG$

Access group name

AK$

"Line divider;" space, LL%-2 "-"'s, RETURN character

AN$

Last user input

BF(6)

number of blocks free on the six system disks

BN$

BBS name

C1$

"Entering chat" message

C2$

"Exiting chat" message

C3$

"Returning to editor" message

CA

CC$

2-character BBS identifier

CM$

Displayed in the "Area" section (when the top screen mask is enabled)

CN

CO$()

User’s computer type name array

CO%

User’s computer type number array

CR

User’s credits

CT

User’s calls today?

CT%

BBS calls today?

d1$

11-digit current date/time

dl$

Again, d1$? bad ocr?

dl%

Again, d1%? bad ocr?

d2$

d2%

D3$

Last user on BBS

d4$

Current ML protocol

d5$

True last call (date? fixme: more info)

d6$

da%

Downloads allowed

dc

Download count

dc%

dd$

dr

Set 1-6 to designate system drive number

dr$

drive number prefix (e.g., 0:)

dv%

device number

dv%()

el

Error line, reported by +.er

em

User’s expert mode: 0=off, 1=on

f1

f2

f3

ff$

User’s real first name

fl

fl$

User’s User Flags

f1$()

gs

i1$

i2$

i3$

id

User’s ID number

kk

Lines of text in BBS editor; if 0, aborted or time limit expired

l1

lc

ld$

User’s last call date (11 digits, like D1$)

le

Lines allowed in Editor (from fl$)

lf

User’s linefeed flag?

ll$

User’s last name

ll%

User’s line length

lp

lt$

Logon time?

ld$

11-digit date format of user’s last call

MW

NA$

User’s handle

NC

ND

NL

User’s current graphics mode: 0=ASCII, 1=Commodore C/G

NL$

chr$(0), a null character

NP

Number of posts

NR

Number of responses

nv

oc$

Old SEQ subs "open/closed?" string (?)

NV

OC$

P$

pt%

prime Time enabled flag

P1%

P2%

P3%

PH$

User’s phone number

pl

If user input at prompt is uppercase (0) or upper- and lowercase (1)

PM

Prompt mode

PO$

Main prompt string

PP$

PQ

PR

Protocol loaded

PR$

PS

\# of posts?

PT%

prime time flag

PU$

PW$

some password

QB

bits per second rate ("current baud")

QE

QT$

CHR$(34), a quote character

R$

CHR$(13), a Return character

RC

RN$

User’s real name (FF$ + " " + LL$)

RP

\# of responses

RQ

RS

SH

Updated by ML routines; "spacebar hit": 0=no, 1=yes

SO%(

Subop array, used in SB, UD, UX subsystems

SR

Logical file number in certain routines

ST

Commodore BASIC reserved variable; serial status

ST(

SY$

T1

TC%

Total calls to system (grand total?)

TF

TI

Commodore BASIC reserved variable; jiffy clock

TI$

Commodore BASIC reserved variable; 24-hour clock

TR%

User’s time remaining, in minutes

tt$(254)

Lines of text stored in editor

U$

Stacked commands

UC

UH

Highest user account number in user file

UL

UR

X$

Image Output Routine

In order to send text to the modem and screen (PRINT, for you BASIC people) as easily as possible, we have developed a routine that works very similar to the BASIC PRINT statement.  Used properly, this routine also eliminates much of the garbage collection that the C64 is notorious for.  Just as many are used to using the question mark as a shortcut to PRINT something in BASIC:

?"Hello There!"

You may use the ampersand (&), IMAGE’s “print” character, to do the job:

&"Hello There!"

will have the desired effect in the BBS environment!  Well, almost.  By default, Image displays the above like using PRINT with a semicolon on the end.  (That does not move down to the next line when finished PRINTing the current line.)  If you want a carriage return to separate lines, add one anywhere inside quotations by typing function key f6, which displays K.

&"Hello There!f6"

You may also:

&an$ or &tt$(x) (anything using a string variable)

but

&str$(i) (numeric variable output--&i is not supported yet).

Some oddities in syntax:

  • You must follow a then clause with a colon before using the ampersand.  In other words:

if b then &"hello" will not work.

if b then:&"hello" must be used instead.

  • If the ampersand is used all by itself:

b=b+l:&:if b then …​ (& outputs the contents of a$)

Other & Calls

The ampersand is also used with arguments to call all of the machine language routines in IMAGE BBS.  The table of arguments that are useful in BASIC and a brief description follow:

Table 41. & calls
Function Purpose

&

Output quoted string or contents of a$

POKEs

This is a list of some of the memory locations used by IMAGE that can be usefully POKEd:

Table 42. Useful POKE locations
Location Purpose

17138

Password mask character

Common Modifications

Hidden Lt.Kernal User

In setup, line 93 has a REMmed out line that Lt.Kernal SysOps might be interested in.  If you unREM this line and move your boot disk files to another user on your drive, you can boot from that user and the BBS automatically switches back to user 0 during initialization.  This lets Lt. Kernal SysOps "hide" their boot files on a normally unseen user and boot the BBS as normal.

LtK Fast Blocks Free Read

In line 1081 of im, about ¼ of the way through the line, there is a statement that looks like this:

on-(dv%<>0)goto1083

Changing the dv%<>0 to dv%<>8 tells the BBS you have a Lt.Kernal running DOS v7.2 or higher set up as device 8.  This mod allows the Lt. Kernal fast blocks free reads to be done on just the Lt. Kernal and the standard routines for all other drives, thus allowing you to easily mix a Lt. Kernal and standard serial drives without losing the fast blocks free read on the Kernal.

For users of Lt. Kernal DOS v7.1 and earlier, do not change this line. You can still access all of the LUs, but the fast blocks free read routines will not work and will lock up your system.

Automatic CMD Device Clock Set

In setup, line 117 is REMed out.  It contains the hook for routines to set the Image BBS system clock based on the CMD’s internal clock.

Enabling Macros

If you have Macros defined and would like them to come up automatically, simply add the following to the end of line 82 in setup:

:&,52,21,1

Removing Extra Login Security Checks ("telecheck")

If you want, you can remove the extra security questions (sometimes referred to as "telecheck" after the e.telecheck file which contains a log of incorrect login attempts, viewable with the VF command).

One thing that really annoys me is the extra security checks after entering your login ID and password. To get rid of those extra checks all you have to do is remove the following lines from +.lo on the Plus File disk.

— Marc "Deadman" Honey
Note
Spaces not present in the BASIC code on disk were added here for clarity.
+.lo:
673 &"Additional Information:":a=int(rnd(1)*5)+1:on a goto 675,676,677,678
674 p$="FIRST name ":t$=ff$:goto 679
675 p$="LAST name ":t$=ll$:goto 679
676 p$="AREA CODE (???)XXX-YYYY ":t$=mid$(ph$,2,3):goto 679
677 p$="DIALING PREFIX (XXX)/???-YYYY":t$=mid$(ph$,7,3):goto 679
678 p$="LAST FOUR DIGITS (XXX)/YYY-???? ":t$=right$(ph$,4)

Change line 679 from:

679 gosub 1006:c$=an$:goto 156

to:

679 goto 156

Change line 157 from:

157 if pw$=z$ and t$=c$ and z$<>"" and c$<>"" then 160

to:

157 if pw$=z$ and z$<>"" then 160

That’s all there is to it! As an added bonus, removing those few lines will drop your +.lo file size from 40 blocks to 39 blocks and every little bit helps on space and speed ;)

Troubleshooting / Q & A

Here are some of the most common questions and problems that people have:

Q: I load the program, and it never gets to the idle screen.  What is wrong?

A: There are several things that could cause this.  Check all the following:

  1. Has your BBS been properly and completely configured using the instructions in the setup chapter under CONFIG?

  2. Is each system disk in the correct device/drive?

  3. Are all the files copied to the correct system disks, especially the plus-file disk?  If an error light is flashing on any of the drives, it usually means that it cannot find a needed file.

  4. Are all disk units in proper alignment?

  5. Is everything connected to the computer (printers, drives, etc.) turned on?  Problems can arise if they aren’t, even if the BBS is not using them.

  6. The disk or disk image could be faulty.  Try re-copying or re-downloading it.

The Boot Process

The following article appeared in the May issue of the Image BBS newsletter, “The Reflection.”

It is reproduced here for the benefit of any that may have missed it. It may be used as a text file on other boards, provided it is used in its' entirety.

IN THE BEGINNING

By: Fred Dart (THE CHIEF)

This month we’ll take a look at the “boot up” process and show what files are accessed and in what order.

There has been a lot of confusion and thus a lot of questions about what was happening and when, this should help a bit.

IMAGE BBS is loaded by an “autoboot” program called image 1.2b. This autoboot program loads the ML (machine language) portion of the program, called simply ml 1.2.

After the ML is loaded, program control and execution is turned over to that portion of the program, which in turn loads the files called screen 1.2, im, and finally, setup (these files vary from version to version with some additional "ml" routines loaded both before and after "setup") and then program control is turned over to the BASIC portion of the program by RUNning the setup program.

setup will “set up” all of the system variables, DIM all variables that the system needs to operate and load additional files, if necessary, and will then look for a file called bd.data which contains all of the device and drive information for the system.

bd.data is a SEQuential file and can be on the boot disk, if there is a separate boot disk, or on the disk that the system is booted from. If the bd.data file is not found there will be a prompt to

Insert All System Disks And Hit Return.

If bd.data is found the program will next open the u.config file and read the information from record one (the sysop information) which is stored in the variables i1$ and i2$. On later versions, u.index is then opened and the actual number of users is read. (Note that the index is manipulated and read with the file ++ 4).

Following this, the file called e.data, a RELative file that contains 31 or 32 records of 31 bytes each, is accessed. The information that is read in from e.data at this time is the total number of calls to the system (record 1), the total number of users (record 12), the total number of handles in version 1.0, from record 16, the last user on the system (d3$) from record 17, the system password for password subs (pp$) from record 18,the last date/time the system was accessed in record 19, whether there is a prime time and what the time limits are in record 20, the information for the user flags is read in from records 21 to 30, and the next ID number to be assigned to a new user in record 31 (l1).

If the bd.data, u.config or e.data files are not found on the device and drive that they are assigned the system will prompt with the same message:

Insert All System Disks And Press Return

After the information has been read from e.data the RELative file e.stats is opened and the first 30 records are read. e.stats contains the information shown on the BAR Stats and is a file consisting of 38 records of 10 bytes each.

The program file .lo` is then loaded and program control is turned over to that file. The `.lo file is a smaller file and cannot exceed 40 blocks, since it must load another file, the +.modem file, into a protected area of memory reserved for “little modem files”. The “little modem files” are finding much more widespread use in the system than just as modem files and are now being used in on-line games, such as “Wallstreet” and in other areas of the board.

After the modem file is loaded it will send the proper set of commands to the modem to prepare it to answer a call and then the board will go to the “System Idle” screen and the load sequence will be completed.

Some additional information about a couple of the files here may be in order. bd.data contains several important board parameters in addition to the device/drive designations for all of the assigned system drives. The information is stored sequentially, with the first 12 entries being the devices/drives for the six system drives (dr=1 through dr=6), followed by the board identifier that you use on your board (LD, CH, TN or whatever).

That is followed by the number of credits you give to new users when they sign on the system, then by a number that represents the highest device number you have attached to your system minus 7. For example, if you are using devices 8, 9, 10, and 11 the number in field 15 would be a 4 (11-7). For a Lt. Kernal system using device 8 only the number is a 1.

The following number in field 16 is the number of DRIVES attached to your system. If you have all 1541/71/81 types it would be a 1 since they are all SINGLE drive units, if you had a Lt. Kernal with 9 LUs accessed it would be a 9. The next field, number 17 contains your board name. This is the information that is printed out with the MCI variable £v5 or the string bn$.

The last information to be accessed is the prompt information, which is read in and stored in po$. The final line of bd.data contains the copyright information.

The information contained in e.data is detailed above for the most part, since most of it is accessed. There is some that is not accessed by setup though and is not read in until it is needed. We’ll examine, briefly, some of the other information in e.data. Record one, as stated, is the total number of calls to the system. Records two through 11 are the names of the access groups, from “New User” to “Sysop” or whatever names you have on yours. In addition to the name of the group there is a bit of information attached to the very beginning of the name. The first character of the name of each group contains some access information that is stored in bits.

This information is the calls per day, time per call, minutes allowed to idle and so on. If you simply TYPE the e.data on a Lt. Kernal, the first character could appear as a color or some other strange character; the program edata edit properly interprets the characters and can be used to view the entries. +.access or the off-line config program should be used for editing.

Record 12 is the total number of users plus 1.

Note
This following paragraph only applies if you are using the SEQuential style message bases maintained by config. It does not apply if you are using the newer “TurboRELs”.

Records 13, 14 and 15 contain the flags for whether your individual message bases, UD libraries, or UX libraries are open or closed. If all are open then the three records would contain 30 zeros each, if any were closed there would be a one in the position corresponding to the closed board.

Record 16 contains the total number of handles you have on version 1.0. It is not used on the enhanced versions.

Record 17 is the handle of the last user on the system.

Record 18 the password for the password subs.

Record 19 is the date/time the last user signed off.

Record 20 is for prime time: whether you have a prime time and, if so, the start and end times. The information is stored as three numbers separated by commas. For example: 0, 0, 0 is no prime time, of course. If the first number is not a 0 it would indicate that you had a prime time, the second number would be the start time and the third number would be the end time. The variables pt%, p1%, p2% and p3% are used.

Records 21 through 31 have been covered previously.

Record 32 is used to hold the modem string, a string of seven characters with the information for each individual modem on version 1.2.

In addition version 1.3 will contain some new data in the "e.data" file. More information will be available later.

u.config contains all of the user data and will not be covered here.

There is one additional bit of information that is worth mentioning in the setup file. Many people have asked where the message Entering Chat Mode or Exiting Chat Mode is stored. The information is put in c1$, c2$ and c3$ during the boot process and remains there. It can be changed in setup if desired.

An additional “tidbit” for the enhanced version is the location of the password mask. The location is 17138 and can be POKEd with just about any PRINTable character. Just decide what character you want, say a ? for example, use the statement print asc("?") and it would print out the number 63. You would then POKE that value into 17138 and change the password mask from an X to a ?.

Note that you could also use this: poke 17138,asc("?") and achieve the same results. It is even possible to randomize the password mask by adding the poke in +.lo and having it poke a random value from a string of acceptable characters.

(c) May 1990 FandF Products

Permission to reprint is granted provided the file is printed in its entirety.

Questions And Answers

Q: As reported by Ray “The Wiz” LeJuez: the bootup process seems to freeze with his C128D in C64 mode, after the message

Reading System Configuration...

The internal 1571 drive is set to device #8, his Lt. Kernal HD is device #10.

bd.data devices/drives were set for device 10, drive 0.

A: There is some speculation that a modification to the Lt. Kernal HD for burst mode in 128 mode may have caused the problem; it boots to the “waiting for call” screen just fine on his C64.

Q: My users cannot log on or send e-mail using the handle.  Using the ID number works fine.  Why?

A: Files can sometimes get corrupted by what we call an “act of God” (why does He always get blamed for this stuff?).  A power brownout/blackout, surge, etc. during a write can do nasty things like this.

This particular problem is caused by the u.config file being corrupted.  Run +.alpha/ind, and it should clear things up.  (This program can take quite a while to run, especially if you have a lot of users, so be patient here!)

Select the options in the following order: LOAD, CLEAR, MAKE, SAVE.  The u.index file will be re-generated.

Notice as the list is created, it shows what alphabetical position the user is in for the u.index file; this has no bearing on the user’s BBS ID number.  Also, a bit of debugging information (the a% and b% values, used in the call to the indexer) is shown.

Notes About Users

From Marc Honey:

If for some reason you find yourself with a corrupted u.config file (where the users are stored) and have to re-create one from scratch, don’t forget to edit the e.data file to reset both the user count and the next available user #. If you don’t do this then someone can login and type a user # that was previously assigned but no longer exists. When this happens the person logging in will get a password prompt but once they type in a password and hit Return the BBS will lock up. Another odd side effect of not updating the e.data file is that should someone login as NEW they will get id 0 for their login id which is invalid. There is a BASIC program called edata edit which is on disk \#2 of the image 1.2b BBS distro. You can edit record number

If this still does not remedy the situation, go into ED and see if user information is still correct.  If not, contact Pinacolada for help.  He is working on (as of 1/2008) a user file backup/restore program; after losing half his users' information due to random binary garbage in the user file, he vowed that would never happen again.

Q: My BBS has started to do (any number of strange things) it was not doing before.  What is wrong?

This question gets asked frequently during beta-testing.

A: This is usually caused by some modification that has been made to the BBS or a plus-file module.  It may not show up for days after a modification has been made, so the problem may not be readily apparent. The fix is to:

  • Copy the original file in question over from your back-up copy of IMAGE BBS, or previous system file(s) you were running

  • Isolate which file the problem is in, perhaps using the "IMAGE Mod Maker"

  • Correct the error, or notify the program maintainer, if there is one.

Also, have you added anything new (hardware? a new game plus file?) to your BBS recently?  What has changed since the problem started? Many times, some of the smallest changes can create the largest problems.

Q: My modem (or telnet bridge device) will not work correctly.  What can I do?

A: First of all, don’t panic. (Apologies to the late, great Douglas Adams.)  Seriously…​ since the advent of Rascal’s e.modrc fix which adds a configurable modem initialization string and the ability to customize modem response codes, there are many more options to consider than in the old days.

Plus, if you’re running a telnet BBS with a bridge program, there are additional things to consider, some of which are discussed in Modem Configuration.

  • DCD carrier detect options in tcpser

  • file transfer issues with tcpser

If you have a Supra 2400 baud modem, you will need to set it up specially before you put it on line. Run the 2400 setup program on the IMAGE disk with the modem on-line and turned on, and then boot your IMAGE BBS!

Index

Appendix A: Footnotes


1. Source for RS232/EIA232F terminology: Data Communications: A Business User’s Approach, Fourth Edition, p. 120. Also, Rascal’s excellent dissertation of modem terminology included with his “e.modrc” fix.
2. American National Standards Institute Standard X3.64
3. A misleading name, since it doesn’t automate anything as the MX or MACS user commands do