Preliminary start on documentation. Feedback welcome!

Preface

To understand the history of Image BBS v3.0 you have to go back to 1991. Ray Kelm and John Moore started work on Image v2.0 and the C128 version. After a couple of years, John passed away and Ray lost interest in the C64 version of the software. Fred Dart who was supplying technical phone support got Ray to send him what he had up to that point. Fred recruited myself, Jack Followay, and Larry Gartin to help at least get the software to the marketplace. We hit the ground running and before long I had the EM section done, VF section done, and NF section done. Jack Followay was working on the im and other items. Larry Gartin was beta testing what we had going on. Fred was testing and fixing what he thought needed to be fixed. In the spring of 1996, I experienced a hard drive failure and left the programming team. At that point Fred Dart brought on Bob Sisco and Bob, Fred, Jack and Larry continued work. At some point over the next few years 2.0 was worked on but never released. When Fred passed away all work pretty much ceased.

In 2015 I was moving to a new home and didn’t want to bring my old Commodore stuff with me so I sent Larry Hedman my backup disks of my BBS’ 2.0 was one of them. He took those files and over the next 3 years cultivated them into a working system. The final release of 2.0 was in December 2018. Days after the release of 2.0 and my BBS on a stick, Larry and I discussed the source code disks we got from Jack Followay. There was a BBS program on there which wasn’t like the 2.0 we worked on. This was a completely renumbered version of 2.0. It was about 50% complete. Most of the subsystems did not work or where not fully written yet. We decided then we would take what was there and complete it and release it as 3.0 since it was a completely new basic portion. We also were able to get some of the ML changed and working. That project was started in December of 2018 and Larry took the helm and he pretty much wrote everything. So that brings us to today.

Thank you for downloading Image BBS v3.0 © NISSA BBS Software.

—Al DeRosa

Special Thanks

Special thanks go out to:

Larry Hedman

For which none of this would be possible today. For his programming skills and his teaching himself a fully new system to which we now have 3.0.

Ryan Sherwood

For his ML programming and knowledge of the ML used by Image BBS.

Jack Followay

For doing the major rewrite of the first set of 3.0 files known then as 2.0.

Bob Sisco

For taking the helm and working with Jack in the late 90’s trying to get 2.0 out the door.

The next few guys I am going to mention are what have made Image BBS what it was and what it is today.

Ray Kelm

For coming out of retirement to fix the issues with the ML and creating a full source code to be able to be mod and rebuild anytime anyone wants. Ray has been amazing me with his programming skills for 30 years and he never ceases to amaze me. Thank You Ray!!

In Memoriam

Last but not least the men who we have lost over the years for without whom Image BBS would never be where it is today!

John Moore

For the original 2.0 Sub-boards and network files.

Don Gladden

Nothing would be possible here without the original 1.0 Image BBS.

Fred Dart

My friend, my business partner, my confidante. The man who made me a better programmer when I was programming non-stop in the 80’s and 90’s

These three guys made Image what is was then and what it is today!

Why a New Version?

While Image BBS 2.0 was a big step forward in overhauling the Image BBS infrastructure, the biggest shortcoming was its lack of free memory. This put a hard limit of 30 messages in a sub-board, 30 files in the upload/download areas, or 30 directory entries in other subsystems. The developers felt they had done almost all they wanted to do with that version, and turned their attention to the newer 3.0 infrastructure.

With a different philosophy behind the core im file, several improvements became obvious:

  • line numbering was flipped from 1.2/1.3’s 1000- to 3.0’s shorter 1-999 scheme

  • grouping related subroutines together was improved

  • more external sub. modules (called im. modules in 2.0) were written to reduce including the same code in multiple files whenever possible

  • a module “call stack” was implemented, so loading a second (or third, or fourth…​) sub. module from the first would reload and return to the previous sub. module

While 3.0’s modules now start with an i prefix instead of 1.x’s + prefix, you can still run modules meant for those older versions of the BBS through an included emulation (or to be more precise, a redirection) layer.

What’s New

Many new features have been added and improvements have been made in existing features for Image BBS 3.0.

Sysop Features

  • First time setup is built in, no separate config program needed

  • Convert from previous 1.2, 1.3, and 2.0 BBS configurations

  • Online IM BBS configuration

    • Access group data changes no longer require a reboot

  • Configurable time zones for both the BBS and the caller show the caller’s local time if the BBS is in a different time zone

  • “Graphic” menus with hotkey item selection

  • “General Files” (GF) section replaces Image 1.2’s separate MF, PF, RF and TF subsystems

    • A single directory can include multiple file types or sub-boards

    • Subdirectory level is now remembered and returned to after executing a module

  • More file transfer protocols TODO: Ymodem? list them

Lightbar
  • Expanded to 8 pages

  • f2 puts a Commodore 128 running in 64 mode into 2 mHz mode

  • Configurable text and boot-up defaults

  • NetMail can be triggered at specific times

  • Alarms can set, clear, or toggle checkmarks at specified times

  • Many new functions added

User Features

  • Word-wrap for text:

    • 40 columns for C64 console

    • 80 columns for C64 console printer

    • the caller’s terminal line length

  • Optional “More” prompt can automatically pause text output when a screen of text has been received

  • Terminal bell sent when nearing idle time limit

  • Stacked commands now maintain a command history:

    • View command history with ^?

    • Execute command history with ^ and a digit 0-9, e.g. ^3 to execute the third most recent command

Text Editor
  • New text editor dot commands:

    • .Banner text: Create large text for fun or emphasis in messages

    • .Text Transfer mode: Prevents text from being displayed in the terminal while text is sent from a buffer

    • .Use Signature (PS edits them): Add “taglines” to your posts

  • / is an alias for . for those used to that command character from other BBS programs

  • New MCI commands:

    • left/right margin set (£<nn and £>nn)

    • floating point variable display (£!n)

Programming Features

  • im line numbering restructured

  • More module types

  • New & functions

    • Structures (&,60 and &,68: RAM block manipulation, load, save, search, store/retrieve bytes and strings, and more) can replace using BASIC arrays

    • Sounds

      • New “gong” sound (&,25,3)

      • repeat parameter: 0=stop repeating, 1-254=repeat count, 255=infinite repeat

  • Image 1.x emulation layer so their +. files can be run (if renumbered to 3000-)

  • BASIC keyword extensions

    • Hexadecimal values can be used in poke, peek, sys and & commands. poke $d004,$0c is the equivalent of poke 53252,12

    • Binary values can also be used, and can be combined with hexadecimal: poke $d004,%00001100 is the equivalent of poke 53252,12

    • load"filename",device,relocate_flag: relocate_flag has an expanded purpose—​specifying the segment of memory to load a particular file to

    • new line_number prepares to load a new module by erasing lines from line_number to the end of the BASIC program

  • variable=usr(0) function reads the stack pointer to display how much free space is on the processor stack

New commands are discussed in detail in the Image BBS 3.0 Programmer’s Reference Guide.

Typography Notes

There are several conventions used in this manual.

Italic text represents a variable.

Example

name

Variable names made of two words are tied together with an underscore (_).

Example 1. Variable Name

first_name

This method differentiates first_name as being separate from two variables named first and name.

The highlighted words FIXME and TODO represent things in the documentation which aren’t complete yet, but are intended to be finished as soon as possible.

Letters enclosed in rounded, shaded squares represent keys on the Commodore 64 keyboard. They generally are either options, or should be pressed, during a series of instructions in the manual.

Example 2. Keyboard Keys

Ctrl or f1: A single keypress.

Shift+T: Two keys with a + between them represent holding down the first key while typing the second key.

.C: Two keystrokes in sequence

The same notation can also represent BBS commands typed at a prompt.

Example 3. User Commands
  • ST, AT, or O!

  • Type Yes

Monospace text on a gray background usually represents output shown on the screen.

Example 4. Output or Prompt
Enter your user name or ID#:

Bold monospace text represents text typed by the user in response to a prompt.

Example

Enter your user name or ID#: 45

Callouts

Callouts are numbers enclosed in circles at the end of a line of instructions or text. They provide a way to add annotations to lines below the block of text. The numbers are not meant to be typed, but match the number below the block of text.

Example code (1)
More examples (2)
1 A longer explanation of what the first line of code, data or instruction does goes here.
2 Another explanation of the next line of example code, data or instruction.

Icons

Icons are used to draw your attention to situations or information. They are presented here, in order of increasing severity, with some examples from throughout the manual:

Note

This is extra information which FIXME

Example

x

Tip

This can be advanced information, or letting you know something helpful which isn’t immediately obvious from what is presented on screen.

Example

When in the Image Term phonebook, some options such as Dial or Edit allow typing either:

  • Dial Return, then answer the Dial Which prompt with 4 Return

  • D4 Return to dial entry #4 directly

Important

x

Example

Also copy im to your modules disk. If a BASIC error is caught by the error-trapping routine, the im module reloads from the modules disk instead of the copy on the boot drive or partition that you booted the BBS from.

Caution

Be careful here; read on-screen prompts if applicable. Something unwanted may happen if you hurry through this section.

Example

The Image BBS text editor currently does not confirm whether you want to clear the text buffer when you type either .Abort or .New Text followed by Return. Once you type either of these dot commands, your text will be erased.

Warning

Your BBS or data could be impacted by doing something (or not) here. The warning should contain an explanation of why doing something is harmful.

Example

Deleting the configuration file bd.data requires you to reconfigure many aspects of your BBS.

Command Path

Like a search path in an operating system, this gives you the steps to reach a command.

Example 5. Command Path Example

The command path is IM, D Logon Editor, D Quicklist.

  1. IM: type these characters at a prompt.

  2. D Logon Editor: A graphic menu option is selected by either:

    • typing D to select Logon Editor (it’s a hotkey, so hitting Return to select it is not necessary)

    • using the cursor keys to move to Logon Editor, and Return to select it

  3. You would follow the same procedure for the second menu option, D Quicklist.

Latin Junk

Because I’m such a nerd:

  • e.g. is short for exemplī grātiā, meaning “for example.”

  • i.e. is short for id est, meaning “that is to say,” or “in other words.”

  • per se (commonly misspelled as “per say”) means “By itself; without consideration of extraneous factors.”

Supported Hardware

A lot of this is from 1.2, although some newer hardware will be talked about.

Disk Drives

  • 1541

  • 1571

  • 1581

This hardware is emulated in VICE 3.5.

These are higher capacity disk drives manufactured by Creative Micro Designs:

  • CMD FD-2000 stores up to 16MB per 3½" disk.

  • CMD FD-4000

This hardware is not emulated in VICE by default, since the CMD FD ROMs do not ship with VICE.

JiffyDOS

JiffyDOS is a serial I/O speed enhancement system. It consists of two ROM chip replacements: a Kernal replacement chip for the C64, and a DOS ROM replacement chip for each disk drive you wish to upgrade.

It offers faster disk access, a built-in DOS wedge, a built-in two drive file copier, and many other features.

Jim Brain sells physical JiffyDOS chips and emulator ROM files at his store, http://www.go4retro.com.

This hardware is emulated in VICE, if you purchase the JiffyDOS ROMs.

Mass Storage

CMD Hard Drive

The Creative Micro Designs hard drive was manufactured by CMD for a high degree of compatability with Commodore 64/128 computers.

As of October 2020, this hardware is emulated in VICE 3.5.

Jim Brain sells the CMD HD 2.80 Boot ROM in his store.

ThunderDrive

This is a clone of the CMD hard drive.

This hardware is not emulated in VICE since the CMD HD is already emulated.

Lt. Kernal Hard Drive

The Lt. Kernal hard drive was manufactured by Fiscal Information, Inc.

As of October 2020, this hardware is emulated in VICE 3.5, although it needs a Host Adapter cartridge image not shipped with VICE.

Both the cartridge image and setup instructions are available for download from a ZIP file in a VICE development thread.

Rear Admiral Hard Drive

This is a clone of the Lt. Kernal.

It is not emulated in VICE since the Lt. Kernal is already emulated.

The RAMLink was manufactured by CMD to be a battery-backed RAM expansion unit. Optionally, you can plug in a Commodore REU into the pass-through port and maintain its memory contents.

This hardware is emulated in VICE 3.5.

SD2IEC

The SD2IEC is a mass storage device which uses an SD/MMC card and interfaces with the IEC bus. The most prominent use of SD2IEC is replacement of a Commodore 1541 disk drive for a C64.

This hardware is not emulated within VICE.

1541 Ultimate II+

This is a Commodore 64 compatible expansion port cartridge that carries an Action Replay and Final Cartridge III (whichever the user prefers). Its main feature is fully-compatible FPGA-based Commodore 1541 emulation that is fed from a built-in SD card slot with C64 compatible files (e.g., .d64 disk images or .prg single program files) and connects to the IEC port of the C64 using a separate cable.

It has many functions:

  • 16 MB REU

  • Kernal replacement

  • SwiftLink emulation on the II+

It is available for purchase from the 1541 Ultimate web site.

This hardware is not emulated within VICE.

Real-Time Clock Chips

Real-time clocks (RTCs) update the timestamps when files are created or modified using mass storage devices like large capacity disk drives, hard drives or RAMdrives.

There are several pieces of hardware which support this.

CMD FD 2000/4000

These high-capacity floppy disk drives have real-time clock chips to timestamp files.

These devices are emulated within VICE 3.5, if you get the drive ROM files.

CMD Hard Drive

This hard drive has a real-time clock chip to timestamp files.

This RAM expansion device by Creative Micro Designs supports timestamping files using its DOS.

Dallas Semiconductor DS12C887 Emulation

This is a RTC which plugs into the expansion (cartridge) port. It reads the date and time from the host operating system.

This feature is emulated within VICE.

The DS12C887 emulation has a number of addresses it can be set to in order to read the operating system’s date and time while in BASIC. While running the BBS, addresses $d500 or $d600 should be used. Other addresses conflict with either:
  • the BBS’s existing ML

  • a SwiftLink-232/Turbo232 cartridge’s default memory addressing at $de00

  • possibly the Lt. Kernal’s host adapter; tests need to be done. (If this works, it will be a good way to set the clock on boot.)

While test code has been written to read the RTC and set the BBS clock, it is not yet officially integrated into Image BBS.

Modems

RS-232 Bridges

Telnet BBS Cable

Peripherals

CMD SuperCPU

A 65816 CPU 8/16-bit upgrade for the C64 and C128. It provides 20 mHz speed enhancements to software.

This is emulated only in xscpu64, the C64 SuperCPU version of VICE.

Created by Dr. Evil Labs, this cartridge uses a high-speed ACIA (Asynchronous Communications Interface Adapter) chip to allow the C64 and C128 to communicate at higher BPS (bits per second) rates than modems connected to the user port.

On a physical C64, the SwiftLink-232 cartridge plugs into the expansion (cartridge) port and provides speeds up to 38,400 BPS.

This is emulated within VICE.

Starting with firmware version 3.7, basic emulation of the SwiftLink cartridge is possible, using the Ethernet port on the 1541 Ultimate for RS232 I/O and allow incoming and outgoing connections using terminal programs or BBSes.

With firmware version 3.10a dated July 2021, the atv1 Hayes command (terse numeric modem responses) is supported, which Image BBS uses.

The 1541 Ultimate II+ is not emulated within VICE…​

…​although the SwiftLink-232 and Turbo232 are.

CMD Turbo232

A re-engineered version of the SwiftLink-232 cartridge was produced by Creative Micro Designs, called the Turbo232. It is capable of up to 230,400 BPS, thanks to a faster clock crystal. It is backwards-compatible with the SwiftLink cartridge, and “Turbo232” can be substituted wherever you see “SwiftLink.”

38.4K is the highest BPS rate that the Image 3.0 RS232 routines support.

This hardware is emulated within VICE.

GGlabs GLink232-LT

A clone of the Turbo232 interface, it can be ordered from GGLabs' store.

This hardware is not emulated within VICE.

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.

This hardware is emulated within VICE.

Setting Up

Image Drive Numbers

Image drive numbers are

Boot Disk

Upgrade From Previous Versions

Upgrade From 1.2

Upgrade From 2.0

New Setup of 3.0

Sysop Information

Handle, First/Last Names, Email Address, Password

Clock Set Method

  • Manual

  • CMD RTC

  • Lt. Kernal

Device/Drive Settings

BBS Information

BBS Name, Main Prompt, Chat Messages, NEW Credits

RS232 Interface Type

Shared Image BBS 3.0 Setup

Since a lot of steps are shared between different upgrade options, I chose to add this “Shared Image BBS 3.0 Setup Steps” section to cut down on a few pages of duplicate instructions. TODO: Verify the steps are in fact word-for-word duplicates.

Introducing the IM Configuration Editor

TODO: Cross-reference more in-depth IM chapter.

GGlabs GLink232-LT

SwiftLink clone

TODO: This will incorporate Larry’s docs plus re-use additional information in the expanded 1.2b docs. Give URL of GGlabs order page. This needs work to be fully converted to ASCIIdoctor still.

Final Notes

end

Set Up Image BBS 3.0

Setting up your BBS should be very simple, as long as you follow the instructions. We suggest you read this chapter carefully and then set up your system step by step, keeping the manual handy for reference.

Supported Hardware

Image BBS v3.0 was tested on the following hardware:

  • WinVice using both 1581 and FD-4000 disk drives, normal User Port communications with both tcpser and BBS Server/VSPE configurations.

  • Lt. Kernal (or Rear Admiral) hard drive with SwiftLink or normal User Port configurations using BBS Server as the “modem”.

  • Creative Micro Designs’ (or ThunderDrive) Hard Drive with SwiftLink, and normal User Port configurations using BBS Server as the “modem”.

  • µIEC/SD by Jim Brain as a mass storage device.

Although we have not tested this software on a great deal of other hardware, it should run with no issues on just about any hardware.

Get Started

Now that you are ready to set up your Image BBS, we recommend that the first thing you do is back up the file(s) you received the BBS software in, then keep them in a safe place. Copying the files out of the original disk images we recommend you use fcopy+ for all the PRG and SEQ files, and copy-all.64l written by Jim Butterfield for the REL files.

Designate Drives

The Commodore 64 is designed to use up to eight devices on the serial bus. However, we recommend not using more than six due to current limitations of the serial bus.

Image BBS supports:

  • single or dual drives

  • logical units (LUs) 0 through 9 on a Lt. Kernal hard drive (IMAGE will not access LU 10, the DOS LU)

  • partitions 0-254 on a Creative Micro Designs hard drive

Plan your setup on what storage space you have available. Read the following information carefully to help you in this regard.

It is possible to run Image BBS v3.0 using only two 1581 disk drives. We highly recommend you use higher capacity drives, since you will find that disk space and directory space gets used quickly.

Some Commodore Storage Terminology

Device refers to either the physical unit, or the device number(s) assigned to the particular device (i.e. one device online is usually set to 8, two devices to 8 and 9, etc.).

FIXME - is this a decent description?

Drive refers to the number of available separate storage spaces available on a device. (These are like volumes on Windows or Linux operating systems.)

  • 0 on a single drive (such as a 1541 or 1571—​the count begins at zero)

  • 0 or 1 on a dual drive (such as a 2031)

  • Logical Units: 0 through 9 on a Lt. Kernal (or Rear Admiral) hard drive

  • Partitions: 1 through 254 on a Creative Micro Designs (or ThunderDrive) hard drive. Partition 0 means “current partition.”

If you have multiple devices connected, there may either be a switch somewhere on the device to change the device number, or—​in the case of CMD and Rear Admiral drives—​a “Swap” button to change the device number in software.

Directory space refers to the number of directory entries possible on the drive. The limit depends on the type of disk drive. A 1581 drive allows 296 directory entries, while an SFD 1001 allows 224, etc. Check your drive manual to see what the limitation is.

TODO 1541 limit? LtK limit? Other limits?

Drive space refers to blocks used, while blocks free refers to blocks unused on the drive.

Image Drive Numbers

The terms Image drive or system disk refer to six categories of files used by Image BBS for system functions. They are referred to by the numbers 1-6, since standard Commodore device numbers less than 8 are not typically used.

Technically, device 0 is the keyboard, 1 is the Datasette, 2 is user port RS232, 3 is the screen, 4-5 are printers, and 6 is a plotter.

Each Image drive may be assigned to separate disks, LUs or partitions. As an alternative, several Image drives can be combined onto a single disk, LU or partition. Your drive layout will depend on the type and capacity of your storage device(s).

The six Image drives are described as follows:

  1. The “System Disk”

System files are mostly SEQuential (text) files that do not change often. Menu files, board entry files, and board data files are all included on this disk. Will not use too much directory or drive space.

System files have a prefix of s..

Also, system news files are located here. News files have a prefix of n..

  1. The “E-Mail Disk”

E-Mail files contain all user e-mail messages. Forced mail, e-mail messages that are not optional to view (and can contain various user account manipulation directives), are also stored here. These use much more directory space than disk space.

E-mail files have a prefix of m..

Forced mail files have a prefix of f..

If the BBS is networked, network mail and network configuration files (which have a prefix of nm.) are stored here also.

  1. The “Etcetera Disk”

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

Etcetera files have a prefix of e..

  1. The “Directory Disk”

Directory files group related information into a single file, like a disk directory does. Whether the information is the posts and responses for a particular sub-board, file information in a U/D or U/X library, or modules in a General File library, a directory file helps the BBS index information. These files change often, and this disk will use a fair amount of directory space, but not too much disk space.

Directory files have a prefix of d..

  1. The “Program Disk”

The Program Disk contains module files—​BASIC or ML programs—​that load in when needed to execute functions. They are the main “operating system” of the BBS.

These files have several prefixes (i, sub. and ++), explained in more detail in the Module Types section of this manual.

They do not change, unless modified offline.

These are all the files found on the IMAGE 3.0 D1 disk.

  1. The “User Disk”

User files contain data about the people on your BBS. As new users sign up, the user file is expanded.

There is one REL file (u.config) and two PRG files (u.index and u.weedinfo) that keep all user information available to the system. There are three directory entries, a little over one block per user total.

Device and drive numbers other than the six Image drives can be assigned to individual sub-boards in the SB section, U/D or U/X libraries in the UD or UX sections, and items in the GF section (games, text files, movie files, etc.). As an example, you can assign a movie file entry in the GF section to device 11, drive 6 instead of Image drive 1 (the s. disk) if you had more storage space available there, or wanted to put your movie files on a separate partition.

Configuration Options

Image 3.0 has three methods of installation:

1 Configure a New BBS

2 Convert from 1.2

3 Convert from 2.0

4 Abort

Option 4 is there in case you change your mind—​it does a C64 cold start.

Each method is explained separately. Please refer to the installation instructions for the method you intend to use.

There are Shared Image BBS 3.0 Setup steps to take no matter if you are upgrading from a previous version or a new install.

Configure a New BBS

  1. Configure your hard drive and/or other system hardware for your Image drive assignments.

If you don’t have a lot of storage space available, it’s recommended to:

  • Use separate partitions or drives for Image drives 1 (System), 2 (Mail), and 5 (Program)

  • Combine drives 3 (Etcetera), 4 (Directory) and 6 (User) in a different drive or partition

You’ll probably want two additional drives or partitions for message boards and Upload/Download sections.

  1. Convert the three .d81 and two .d64 files to floppy disk or use some other method of getting the files onto your Image drives.

Copy Files

Use fcopy+, included on the 3.0 UTILS disk, for copying the following files:

  1. All the boot and other module files from Disk 1 to your Program Disk:

Table 1. Boot and Module Files
Filename Purpose

boot

autoboot program

image 3.0

title screen

im

core routines

i*

BBS modules

ml*

assembly language

sub.*

BBS modules

++*

protocols

  1. Copy all the s.* files (SEQ) from Disk 2 to your System Disk.

  2. Copy nm.times (PRG) from Disk 2 to your Mail Disk.

  3. It’s recommended to use copy-all.64l, also included on the 3.0 UTILS disk, for copying all the e.* files (PRG, SEQ, REL) from Disk 2 to your Etcetera Disk.

If you wish to run the “Today in History” logon module, copy all the today.* files to your Etcetera Disk.
  1. The file sub.modem is customized for use with BBS Server using DTR as carrier detect. Line 60080 contains print#131,chr$(27). This is the Hayes AT escape character (set to Escape to avoid BBS Server hanging up when it sees +++).

If you’re using a virtual modem such as tcpser and need to use the Hayes escape sequence instead of DTR hangup, you may need to change the 27 (Escape) to 43 (+) and add ats2=43 (setting the Hayes escape character to +) to your modem init string.

Installation

TODO: Intro here

  1. Turn on (or reset) your computer.

  2. Change device numbers to your Program Disk.

  3. From there, type:

    • load"boot",x,1 (standard Commodore DOS, where x is your boot device number)

    • boot (Lt. Kernal DOS)

    • %boot (JiffyDOS)

  1. When you are prompted

Insert All System Disks In Correct
     Drives, And Press RETURN

type 1 Configure a New BBS.

Image BBS begins collecting information needed to configure itself.

  1. Part I: Sysop Information

Enter the information asked for.

  1. Part II: Set Clock

You are asked to select a method of setting the system clock automatically during boot up:

1 Manually

You need to set the date and time after every reboot.

2 CMD Device w/RTC Option

The RTC (real-time clock) in various Creative Micro Designs devices (CMD FD 2000/CMD FD 4000 floppy drives, or the CMD hard drive) can be polled to get the current date and time.

You are asked which device has the RTC option. Enter the device number of your CMD device.

3 Lt. Kernal Port 1

4 Lt. Kernal Port 2

These are for use with Lloyd Sponenburgh’s Real-Time Clock module attached to the Lt. Kernal hard drive.

  1. Part III: Device/Drive Settings

Configure your Image drive assignments.

  1. Part IV: BBS Information

You can customize information asked for pertaining to your BBS.

TODO: Seems like this part could be folded into Shared Image BBS 3.0 Setup. I’m not sure if the conversion process follows these steps exactly.

At this point, Image BBS creates several files needed for its own operation. When finished, Image BBS displays a message for you to read and asks you to Hit any key.

You are then prompted for the RS232 interface type you have connected to the C64:

  • Enter 0 if you have an OmniTronix or similar user port interface

  • Enter 1 if you have a SwiftLink, Turbo232, or a clone of these on the cartridge port.

Hit a key, and you are taken to the System Idle screen.

Set the Clock

If the time has been set using a real-time clock, Image performs AutoMaintenance.

Manual Set

If not already set by a real-time clock, the status line on the bottom row of the screen continues to flash until the time is set. Hit 1 to set the time.

First, the current date and time are displayed.

Example
          Current date/time is
       Sat Nov 14, 2020  3:19 PM

You are taken through several prompts to set the time and date:

  1. Day

Table 2. Weekday Numbers
Number Day

1

Sunday

2

Monday

3

Tuesday

4

Wednesday

5

Thursday

6

Friday

7

Saturday

  1. Month

  2. Date

  3. Year

Enter only the last two digits of the year here.
  1. Hour

The clock set routine only accepts 12-hour time. 24-hour time is not accepted as valid input.
  1. Minute

  2. AM/PM

The current date, time and time zone are displayed for confirmation.

Example
          Setting date/time to
       Sat Nov 14, 2020  3:19 PM PST

and you are prompted:

 Select Yes to set clock, or
 select No to change: [Yes]

Yes logs the time and date to e.data and sets the system clock.

If a date different than the last saved timestamp was entered, Image BBS performs AutoMaintenance (nightly tasks such as rotating system logs—​more tasks can be added later as desired). After AutoMaintenance is finished, the BBS returns to the System Idle screen.

No restarts the clock setting questions.

Console Login

A console login is when you’re sitting in front of the C64 at the Idle Screen. Here’s how to do that.

Optional: If the lightbar highlight is already positioned on Loc, you can press f1 to go to full screen mode.

The screen mask disappears, and only the bottom status line is visible. The time and date, status line indicators, and time remaining (which is shown as --:-- for now since no one is connected yet) are always visible (unless New right, Enable Screen Blanking, has been selected).

You can always press f1 to toggle between these full and split-screen modes.

If you have the split screen mode enabled, use f3 (move highlight left) and f5 (move highlight right) to move the lightbar highlight to Loc, if necessary.

In either case:

  • Press f7 to put a check mark on the left of Loc.

This starts a console login.

Instant Login

Instant Login is used to bypass many of the activities and questions asked as a user logs on to the BBS. It’s useful if a sysop wants to quickly log in, do some maintenance, then log off.

The BBS copyright message is displayed, and you are prompted:

       IMAGE BBS 64 V3.0 (C) 2020


 Press RETURN For Normal Login or
 Press "I" For Instant Login:
  1. Press I for Instant Login.

QuickList

You can define sysops (yourself included) as being able to perform Instant Logins—​even remotely—​in a list called the QuickList.

There aren’t any users defined in QuickList when a new BBS is set up, but you can go into IM later and set yourself, or other users as you acquire them, to do this.

Once you have done that, users are listed here in the QuickList option. They just type the number of the account to log on, type their password, and they can do an Instant Login.

The command path is IM, D Logon Editor, D Quicklist.

TODO: For more information, see the relevant IM documentation.

  1. When prompted, type your sysop password.

Online Configuration

The BBS greets you with a welcome message and prompts you to select your time zone.

  1. Select your time zone (7=EST, 6=CST, 5=MST, 4=PST)

  2. The BBS will display the current time and Stack Free: 239.

Initially, the time may be off by a few hours. This is because the system’s time zone has not been set for the BBS clock. You can fix this later, during further BBS configuration.
Any Stack Free number less than 239 at the Main Prompt means there is garbage (gosub without return, or for without next statements) on the stack.
  1. At the Main Prompt, type EP to Edit your Parameters. Select Parameters.

  2. Set your Computer Type and any other Terminal Parameters you want.

More? Prompt Off and Cursor Menu Mode On are recommended.

Hit Return to exit.

  1. At this point, it is suggested you log off using the O command and answer Update User File? with Yes. This saves your new parameters to your user file. You can then log back on in any mode you choose.

Always log off with the O, O! or O%! commands. Logging off by hitting f7 (unchecking left Loc) bypasses the module which updates the last 10 callers and causes errors in the time used during the call.

Shared Image BBS 3.0 Setup

These steps are followed if you’re upgrading from a previous version or setting up a new Image BBS. They help set up features specific to Image 3.0.

  1. Log back on to the BBS.

  2. At the Main Prompt, type IM. You are taken to the Image BBS Configuration Editor.

Introducing IM

IM is a cursor-driven “graphical” menu system which allows a sysop to configure virtually any aspect of their BBS while still online. To navigate it, you can either:

  • use the cursor keys to move the cursor (which highlights the current option), and hit Return to select it

  • type the letter to the left of the menu option you wish to select (Return is not needed to select the option in this case).

In this following section, the notation key Menu Item means you can either type key on your keyboard, or use the cursor keys to highlight Menu Item and press Return.

You configure a number of options throughout the next section.

Shared Image BBS 3.0 Setup

Access Groups

Select E Access Groups. The BBS loads the access group editor, then access group information.

TODO: Why not change i/su.config to do this:

The Group 9 flags should already be set for full sysop access. Type 9 and change the group name to Sysop.

Edit any access group name and flags per your preference. Return exits, prompting you to save changes if any modifications were made.

You are returned to the Configuration Editor.

  1. Select I Misc. Features.

    1. At minimum, you need to set G Time Zone and J System ID.

    2. If you are running on a Lt. Kernal hard drive, select A Lt. Kernal Device to set your Lt. Kernal device number.

If you’re upgrading from a previous version and would like custom chat entry/exit messages:

  1. Select M Chat Messages to configure your Entering Chat and Exiting Chat messages.

Otherwise:

  1. Edit any other parameters you wish to.

  2. When finished, select N Quit to go back to the Configuration Editor.

Modem Configuration

  1. Select J Modem Config.

Lt. Kernal Ports

If a Lt. Kernal hard drive is configured, you are asked:

Edit Modem Config for Which Port? (RETURN = 0):

Select Port 0 if you don’t have a multiplexed Lt. Kernal system. Otherwise, select the port number of the Commodore 64 you are configuring.

  1. Select B Setup/Import Modem Config.

  2. Select 1 Setup New Modem Config.

  3. Answer Continue?: Yes

  4. Answer Are You Sure?: Yes

GGlabs GLink232-LT

The following will guide you through how to set up a GGLabs GLink232 (or SwiftLink) modem interfaced to BBS Server.

  1. Type IM at the Main Prompt.

If the BBS is configured for a Lt. Kernal, entering the modem configuration will allow you to configure not only the port your host adapter is set for but any other ports which might be multiplexed.
Enter Modem Brand/Name: GLINK232
Enter Author (Return=New Image): GGLABS
Enter Custom Init String:

(Just hit Return here. No custom Hayes initialization string is necessary.)

Answer the following setup questions with the answers provided:

 1. What is the Max. Connection Rate For This Modem? 6
 2. Select Hang-Up Method For This Modem: D
 3. Auto-Answer (ATS0=1): A
 4. Use an ATH After ESCape Codes?: H
 5. When In Local Mode, Should Phone Be: H
 6. Does This Modem Need a 0 After ATH?: 0
 7. Should ATH be in the Modem Reset/Init String?: H
 8. Select Value For ATX Setting: 1
 9. Is DTR on This Modem Normal or Reverse?: N
10. Select CCITT or Bell Labs Standard: 0
11. Select RS232 Interface Type: 1
12. Is Caller ID Available (Both Modem AND Phone Line): 0

The BBS will create a file on the Etcetera Disk, then display a Setup Completed message. (Ignore the statement about doing customized result codes, we skipped that earlier.)

Then hit any key to return to the Modem Config page.

Review your settings. If any changes need to be made, type the corresponding number (such as if you want to change DTR Hang-Up to ESCape Code Hang-Up, type 2 and select E).

If using ESCape codes, you will need to modify sub.modem as stated in item 6 under Configure a New BBS.

When finished configuring your modem, type X to Exit Modem Config. Answer Update Modem Flags? with Yes.

TODO: More details will be available in the relevant IM documentation.

When finished configuring your modem, select X Exit Modem Config and answer Update Modem Flags? Yes.

The remaining configuration options are custom settings for your BBS, not discussed as part of the installation process.

Introducing RELedit

RELedit is the program that helps you define various parameters of message bases and file transfer areas. Using it, you can assign:

  • names

  • devices/drives that messages or files are stored on

  • access levels

  • opening screens for Commodore graphics and ASCII

  • and other features

for each of your sub-boards. These include the SB (message base), UD (Upload/Download base), and UX (User eXchange base) sections.

You can create and maintain SIGs (Special Interest Groups), defining how related SBs, UDs or UXs are grouped together.

Networked message bases are also configured here, if your BBS is part of a network.

TODO: For more information, see the chapter on RELedit.

  1. Select N Base Editors.

  2. Select G Editor Utils.

  3. Select A Run RELedit.

Here you can define your Subs, U/Ds, U/Xs and SIGs the same way it is done in Image 1.2a. You must define at least one SIG and add your SB, UD and UX assignments.

When finished with RELedit, exit with Return until you end up back at the Base Editor menu.

TODO: Refer to the IM Configuration Editor chapter for further information.

The remaining items in the Base Editor menu are sysop utilities for maintaining the BBS.

  1. Select K Quit to return to the main menu.

  2. Select Q Quit to exit to the Main Prompt.

Refer to Final Notes for further instructions.

  1. Select D Logon Editor.

  2. Select A Logon Mods (Logon Modules).

    1. Type Help for instructions on how to configure your logon modules.

    2. Configure them for your preference.

If you’re upgrading from 1.2 to 3.0, it’s highly recommended you include i/lo-email as a forced module in your login modules. This asks any user whose account is still configured with a phone number to change it to an email address.
If your 1.2 system was networked, go into each netsub you have defined. No changes need to be made from within the netsub but when you exit each netsub, they are updated to a new Image 3.0 file format called a “structure file.”

When finished with RELedit, exit with Return. The BBS performs a series of operations to convert all your 1.2 SIGs to 3.0 format. When finished, you go back to the Base Editor Menu.

If you are using a CMD RTC to set the BBS clock at boot-up, this would be a good opportunity to H Set Time Dv# (set time device number) and I Set CMD Clock of your CMD device.

  1. Type K to quit back to the Configuration Editor.

  2. Type Q to quit back to the Main Prompt.

  3. If you had macros defined in your 1.2 system and don’t want to keep them, delete the e.macros file.

If you would like to convert the file, follow these steps:

FIXME more exact steps.

  1. Type RD at the Main Prompt. Read the SEQuential file e.i.macros. This contains the number of macros you have.

  2. Type RF at the Main Prompt. This is a RELative File editor.

  3. Select e.macros as the filename to read.

  4. View record 1.

You might want to move this record to the end of the file, since the first record is going to be replaced by the macro count.
  1. Edit record 1, replacing the data in it with a number equal to 1 less than the number of macros in e.i.macros.

  2. You can then use DC to scratch e.i.macros, since it is not needed anymore.

Final Notes

From here, explore and become familiar with the new features.

Much has changed since Image 1.2 and 2.0. The best way to learn is to experiment.

You’ll probably be confused and make mistakes along the way, but the learning experience is necessary for any new system.

More information is provided in the TODO Sysop Guide section, but one of the main objectives of Image 3.0 is to make it as sysop- and user-friendly as possible.

As in previous versions of Image BBS software, menus are displayed with ? and a Local Command menu is displayed to level 9 users with pseudo-Local mode access by typing ??.

  • Included in the Image 3.0 package is a games disk containing several ready-to-install games converted to Image 3.0 format.

  • Also included in the Image 3.0 package is a weed mod disk.

TODO: Explain what this is.

Load and run the run me file (Image SEQ Reader) which allows you to read the installation instructions for all the files included on the disk.

In Image 3.0, the GF section replaces the Image 1.2 PF, TF, NF and RF sections. To go there, enter GF at the Main Prompt. If you’re in Maintenance Mode with Graphic Menus on, you will see a list of sysop options for editing the menus. It was designed to be sysop-friendly, and anyone with a little Image 1.2 knowledge should be able to navigate through the functions to get items added to the GF section.

These instructions were written for real hardware, but Image 3.0 runs well in WinVice. In fact, much of the development and testing of this software was done in VICE.

Enjoy the files. Thousands of man-hours have gone into their creation and made them what they are today.

I will answer questions and provide tech support for this software as needed. Contact X-TEC at node 1 of the NISSA Network.

Larry Hedman

Al DeRosa

Convert a 1.2 System

This is the recommended way of converting 1.2 to 3.0. Other ways may work but have not been tested.
  1. Make a complete backup of all your Image 1.2 drives.

  2. You will need two new Image drives (partitions) or use two locations not already assigned as Image 1.2 drives. They are used for your Image 3.0 Program Disk (drive 5) and your System Disk (drive 1).

Do not delete any of your Image 1.2 files unless otherwise told to do so.

Alternately, if you have enough hard drive space (such as on a CMD hard drive), you could make new partitions for all your Image drives and copy everything except the 1.2 boot and program drives to the new partitions. This method allows you to revert back to 1.2 at any time in the condition it was last in.

  1. Either convert the two .d81 files to floppy disk or use some other method of getting the files onto your Image drives.

Either use fcopy+ (included on the 3.0 UTILITIES disk), or log onto your 1.2 system in local mode and use CP for the following steps:

  1. Copy all the files from disk 1 to your new 3.0 Program Disk.

  2. Copy all e. files except for the REL files from IMAGE 3.0 D2 to your Etcetera Disk.

  3. Copy all the s.* files to your new 3.0 System disk.

  4. Copy nm.times to your existing 1.2 E-mail drive.

If you want to keep your existing news files and canned message files, copy the n.* and s.can* files from your 1.2 system drive to your 3.0 System disk.

Edit bd.data

Here you’ll change your device/drive assignments.

  1. Log on to your 1.2 system.

  2. Enter the 1.2 WF editor.

  3. .Get the file bd.data from your 1.2 boot drive.

Lines 1 through 12 identify your Image drive assignments.

  1. .Edit lines 1 and 2 for your new 3.0 System Disk device and drive numbers.

  2. .Edit lines 9 and 10 for your new 3.0 Program Disk device and drive numbers.

  3. .Edit any other device/drive assignments that may have changed.

  4. .List the file and make sure everything is correct.

  5. .Put the file as d.data (not bd.data) to your new 3.0 Program Disk.

Use DC to scratch the file e.last from your 1.2 system. (3.0’s e.last file is in a different format.)
  1. Shut down your computer and reboot the BBS.

Installation

  1. The file sub.modem is customized for use with BBS Server using DTR as carrier detect. Line 60080 contains print#131,chr$(27). This is the Hayes AT escape character (set to Escape to avoid BBS Server hanging up when it sees +++).

If you’re using a virtual modem such as tcpser and need to use the Hayes escape sequence instead of DTR hangup, you may need to change the 27 (Escape) to 43 (+) and add ats2=43 (setting the Hayes escape character to +) to your modem init string.
  1. Turn on (or reset) your computer.

  2. Change device numbers to your Program Disk.

  3. From there, type:

    • load"boot",x,1 (standard Commodore DOS, where x is your boot device number)

    • boot (Lt. Kernal DOS)

    • %boot (JiffyDOS)

  4. When prompted, select 2 Convert from Image 1.2.

  5. Clock setting

You are asked to select a method of setting the system clock automatically during boot up. For this installation method, select 1 Manually. You can change that later during further configuration.

  1. At this point, Image creates several files needed for its own operation.

It reads the Image drive assignments and access group information from d.data, and uses that information to create a new bd.data file on its own Program Disk, modify the existing e.data file with expanded 3.0 information, and create a new file called e.access.

When finished, Image reboots to the System Idle screen.

Convert a 2.0 System

This is the recommended way of converting 2.0 to 3.0. Other ways may work but have not been tested. Since you are already running Image 2.0, keep the same Image drive assignments for the 3.0 upgrade.

The file im line 3074 is preconfigured to run from drive 0. This is the default partition on most drives.

If running on a Lt. Kernal and your boot LU is not LU0, change the 0 in line 3074 to the number of your boot LU.
  1. Make a complete backup of all your Image 2.0 drives.

  2. Copy bd.data from your programs drive to your Etcetera Disk.

  3. Remove all your 2.0 boot and program files from your Program Disk.

  4. Copy all the files from IMAGE 3.0 D1 to your Program Disk.

  5. Copy bd.data from the Etcetera Disk to the Program Disk, but rename it to d.data.

  6. Copy e.lightdefs, e.lightbar and e.ecs.main from IMAGE 3.0 D2 to your Etcetera Disk, replacing the existing files.

  7. Remove all the Image 2.0 s.* files from your System Disk.

What if you’ve written custom board entry files or login screens?
  1. Copy all the s.* files from IMAGE 3.0 D2 to your System Disk.

If you want to run the “Today in History” login module in 3.0, copy all the today.* files from IMAGE 3.0 D2 to your Etcetera Disk.

  1. The file sub.modem is customized for use with BBS Server using DTR as carrier detect. Line 60080 contains print#131,chr$(27). This is the Hayes AT escape character (set to Escape to avoid BBS Server hanging up when it sees +++).

If you’re using a virtual modem such as tcpser and need to use the Hayes escape sequence instead of DTR hangup, you may need to change the 27 (Escape) to 43 (+) and add ats2=43 (setting the Hayes escape character to +) to your modem init string.
  1. Turn on (or reset) your computer.

  2. Change device numbers to your Program Disk.

  3. From there, type:

    • load"boot",x,1 (standard Commodore DOS, where x is your boot device number)

    • boot (Lt. Kernal DOS)

    • %boot (JiffyDOS)

  4. When prompted, type 3 Convert a 2.0 system.

  5. Image 3.0 will perform all the necessary tasks of converting your 2.0 to 3.0 and will end up at the idle screen.

Since the 3.0 modem configuration is different from 2.0, Image BBS won’t communicate with your virtual modem yet. You can fix this in a later step.
  1. Log on to your BBS from the console.

  2. Type IM to go to the Configuration Editor.

Continue to the Shared Image BBS 3.0 Setup section.

Boot Up

  1. Turn on (or reset) your computer.

  2. Change device numbers to your Program Disk.

  3. From there, type:

    • load"boot",x,1 (standard Commodore DOS, where x is your boot device number)

    • boot (Lt. Kernal DOS)

    • %boot (JiffyDOS)

Startup Files

Idle Screen Display

Status Line

Status Indicators

Table 3. Function Indicators
Character Purpose

A

Text output aborted

G

Garbage collection occurring

I

Interrupt occurring

L

Loading data

P

Text output paused

S

Swapping data between RAM and ROM

TODO: More of an explanation.

Table 4. File transfer indicators
Character Purpose

F

RS232 flow control asserted

O

Overrun

TODO: Move to file transfer section?

The Lightbar

Image BBS’s familiar lightbar has been expanded, as compared to previous versions, in both scope and utility. The first two pages remain virtually unchanged from Image 1.2, but the addition of six new lightbar pages adds the ability to monitor and change new features which have been added to this new version.

Lightbar Defaults

During boot-up, lightbar check mark defaults are read. This allows you to configure your BBS more easily than in previous versions of Image BBS. Maybe you want to disable the …​More? (Y/n) prompt, or debug some code with the on-screen trace function, at startup.

The command path is IM, H Lightbar/Alarms, A LightBar Defs.

Lightbar Function Keys

The function keys f1-f8 are used to switch pages, move the “lit” portion of the lightbar, and enable/disable individual lightbar positions, shown in the table below:

Table 5. Lightbar Function Keys
Key Purpose

f1

toggle between full and split screen mode

f2

toggle between 1 and 2 mHz (FAST in BASIC 7.0) mode when using a Commodore 128 in C64 mode

f3

move highlighted position left

f4

page backward through lightbar pages

f5

move highlighted position right

f6

page forward through lightbar pages

f7

toggle the left check mark of the selected lightbar position

f8

toggle the right check mark of the selected lightbar position

f1: Split screen mode is useful when you want to access the lightbar and view BBS status/caller information. Full screen mode allows you to read more text on the screen (it doesn’t show the information displayed while in split screen mode).

You must be in split screen mode to enable or disable lightbar positions via the function keys.

f2: Toggles between FAST (2 mHz) and SLOW (1 mHz) modes on a Commodore 128 in 64 mode.

When you are in FAST mode, the BBS should operate faster at 2 mHz. However, the screen goes blank since the VIC chip cannot display the 40 column screen clearly at 2 mHz. Depending on which disk drives or other storage devices you have connected, disk access might not see any speed increase, since the C64’s serial bus operates at 1 mHz. This is also a restriction while using CMD’s SuperCPU in 20 mHz mode.

Lightbar Functions

The decimal/hexadecimal values of each lightbar position (used for Lightbar Interface: &,52) are included in the accompanying Image BBS 3.0 Programmer’s Reference Guide.

Page 1

Table 6. Lightbar, page 1

Sys

Acs

Loc

Tsr

Cht

New

Prt

U/D

Sys Left: Sysop Available to Chat

Enabled: The sysop is available to chat. If the user types C at any major prompt, a few checks are made:

  1. The number of unanswered chat requests during the call is kept track of. If there are multiple unanswered chat requests pending, a counter increments.

  2. If there are none pending, the user is prompted for the reason for requesting chat. If a reason is given (not just hitting Return):

    • the first 16 characters of the chat reason are shown in the programmable window

    • the window fades between shades of gray and white

    • chat alert bells will sound

    • the reason for chat is logged to e.log weekday.

  1. A file (s.chat x) is shown for that attempt number.

If there is no file for that attempt number, the Excessive Chat Attempt lightbar flag is checked.

  • If that is set, the user’s time remaining is set to zero, and they are logged off at the earliest available opportunity.

  • Otherwise, the user is told Paging Now!, then returned to the prompt where they initiated the chat request.

Disabled: When a user types C, they are told the sysop is unavailable for chat.

Related Checkmarks:

Sys Right: Background Page Enable

Chk Right: Excessive Chat Logoff

Cht Left: Enter/Exit Chat Mode

Sys Right: Background Page Enable

When the sysop is available for chat and the user has entered a reason for chat, the chat page sound will continue playing in the background (while the user is doing other things) until the sysop enters chat mode or the user logs off.

Related Checkmarks:

Sys Left: Sysop Available to Chat

Chk Right: Excessive Chat Logoff

Cht Left: Enter/Exit Chat Mode


Acs left: Edit User’s Access

Change the access group of the user who is online. This changes a portion of the bottom screen mask, A=x (A being short for access, and x being the user’s access group).

f1

sets access group to A=0

f2

sets access group to A=9

f3 / f4

raises access one group (wraps around from A=0…​A=9)

f5 / f6

lowers access one group (wraps around A=9…​A=0)

f7

gives the user the selected access level, exiting this function

If the access group was changed, the new access group flags are loaded from e.access at the earliest available opportunity.

Acs right: Block 300 Baud Callers

Prevent 300 baud users from logging in. When one tries, they are told:

SORRY, NO CALLS LESS THAN 1200 BPS ARE CURRENTLY BEING ACCEPTED.

Loc left: Local Mode (No Modem I/O)

Log in to the BBS from the C64. This is a true local login, with Sysop access enabled—​as compared to a “pseudo-local” login, or ZZ mode being enabled at a prompt, where the caller is given local mode access to perform maintenance tasks.

TODO: See Logging On From the Console for more information.

Related Checkmark:

Loc right: ZZ (Pseudo-Local) Mode

Loc right: ZZ (Pseudo-Local) Mode

Once a user is online, you can grant them pseudo-local mode access in order to perform maintenance tasks if they don’t have the Local Maint access flag set.

Related Checkmark:

Loc left: Local Mode (No Modem I/O)


Tsr left: Edit User’s Time Left

Adjust time remaining for the user online. The time remaining is shown in the bottom right hand corner of the screen, and is always visible.

f1

zeroes time (log off at earliest opportunity)

f2

gives unlimited time (--:00 displays)

f3

+1 minute

f4

+10 minutes

f5

-1 minute

f6

-10 minutes

f7

gives the user the selected time limit, exiting this function

Tsr right: Prime Time Enabled

Toggle Prime Time (limiting all callers to a certain time limit during peak usage hours) for every user.

  • If it’s currently Prime Time, ignore it at logon

  • If not, enable Prime Time

If no Prime Time is designated for your BBS, this has no effect.


Cht left: Enter/Exit Chat Mode

Enters chat mode when a user is online. It first displays the customizable “entering chat” message. By default it is:

 * Entering Chat Mode *

then allows the sysop and user to type anything they wish back and forth to each other for the duration of the chat.

Pressing f7 again ends chat mode, displaying the customizable “exiting chat” message. By default it is:

* Exiting Chat Mode *

Then the user is returned to the area and prompt they were at before entering chat mode. If the user was in the BBS text editor, the BBS displays

* Returning to Editor *

The command path to edit the chat messages is IM, I Misc Features, M Chat Messages.

Cht right: Disable Modem Input


New left: Disallow New Users

Makes the BBS private, and will not allow new users to sign up. They are told that the BBS is not accepting new users at this time.

New right: Enable Screen Blanking

At the BBS console’s idle screen, if no keys are hit or no incoming calls are detected, after a certain time period the screen will go blank to prevent screen burn-in. The screen remains off until a key is hit or an incoming call is detected.


Prt left: Print Spooling

Sends all text output to the printer and the screen.

Prt right: Print Log Entries

Prints all log entries to the printer as well as the disk log.


U/D left: Disable U/D Section

Users cannot access the UD/UX area. They are told the area is closed temporarily.

U/D right: 300 Baud U/D Lockout

300 baud users cannot access the UD/UX area. They are told that they do not have access to that area at this time.

Page 2

Table 7. Lightbar, page 2

Asc

Ans

Exp

Unv

Trc

Bel

Net

Mac

Asc left: ASCII Translation

Enables ASCII translation for the user. Character layout differs between Commodore and ASCII standards, most notably by reversing the position of upper- and lowercase letters.

Asc right: Line Feed After Return

Enables linefeeds for the user. In ASCII mode, terminals need a carriage return to move the cursor to the beginning of the current line. However, they may also need a linefeed character to move the cursor to the next line. (Without one, the user will probably complain that “everything displays on one line.”)

Once online, a user can select EP, Edit Params, option 5 to resolve this problem.

Ans left: ANSI Color Enable

Enables ANSI escape sequences to output color instead of Commodore color characters.

Ans right: ANSI Graphics Enable

Enables ANSI graphics characters, many of which have similarities with the Commodore character set, and other special symbols for the user.

These are a standardized way to set character colors, plus “screen management” things like scrolling, windowing, clearing to end-of-line, and more (which really aren’t utilized on this Commodore 64 BBS).

The cursor controls can be used with the new Graphic Menu system, if it’s enabled.


Exp left: Expert Mode Enable

Enables Expert Mode, which skips many entry screens seen when entering subsystems or changing areas within that subsystem.

Exp right: Disallow Double Calls

Disables users from calling twice in a row. If a user tries, they are told:

Sorry, no back-to-back calls allowed. Try Again Later!

Unv left: No Immediate U/D Credits

Enabled: User receives credit when an upload is validated.

Disabled: Credit is received after the completion of the upload.

Unv right: Allow Auto-Logoff

Enables asking the user whether they wish to log off after a file transfer is complete.


Trc left: On-Screen Trace Enable

Enables a tracing feature that will show, at the bottom of the screen, L= and the BASIC line number currently executing. This is only meant as a debugging tool, and is normally left disabled.

When enabled, execution can be slowed down with the Ctrl key to read line numbers more easily.

Trc right: Time: Reset Clock

Enables the BBS to periodically update its clock from a Creative Micro Designs real-time clock. This can be useful when the BBS runs in VICE and emulation speed slows down due to CPU speed or operating system load issues.


Bel left: Local Bells Enable

Enables playing the bell sound from the console.

Bel right: Local Beeps Disable

Disables playing the beep sound from the console.


Net left: NetMail Enable

If enabled, users have access to NetMail commands, can send NetMail

Net right: NetMail Trigger

(BBS controlled) If enabled, an alarm has occurred to perform NetMail processing.


Mac left: Macros On/Off

When enabled, users can see “macros,” or a random short saying presented before the main prompt.

The command path to edit the macros is IM, N Base Editors, G Editor Utils, G Edit Sayings.

Mac right: MCI Disable in Editor

Disables the use of the Message Command Interpreter in the BBS text editor.

Page 3

Table 8. Lightbar, page 3

Chk

Mor

Frd

Sub

Res

Mnt

Mnu

Xpr

Chk left: Enable MailCheck at Logon

Enables a logon option (M) for the user to check whether they have any mail waiting. They can then choose whether to continue logging on or not.

Chk right: Excessive Chat Logoff

If the user requests more unanswered chat pages than there are s.chat x screens, the user is logged off as soon as possible.

Related Checkmark:

Cht left: Enter/Exit Chat Mode


Mor left: More Prompt On

(BBS controlled) Enables the BBS to pause text after the user’s specified screen height fills up with text. The …​More? (Y/n) prompt is output.

  • If Yes (or any other key than Y, uppercase indicates it’s the default) is hit, text will continue to output.

  • If another key is hit, the BBS attempts to abort text output. (This might not always work, there may not be code present to handle aborting output.)

TODO: Cross-reference MP command.

Mor right: More Prompt Not Available

Enables the BBS to continually output text, and rely on the user to hit Home or Ctrl+S to pause text. Most keys (Home or Ctrl+Q being fairly standard) resume output.

While text output is paused, P displays in the bottom status line, between the current time and time remaining.


Frd left: Full-Color Read Disable

When enabled, this disables outputting color for color-blind users, or terminals not capable of color.

This lightbar position is a homage to Fred Dart, Image BBS support guru and programmer.

Frd right: Undefined


Sub left: Message Bases Closed (SB)

When enabled, users cannot access the sub-boards.

Sub right: Files Section Closed (GF)

When enabled, users cannot access the General Files section.


Res left: System Reserved (Default PW)

If enabled, the BBS is considered “reserved” and a password must be entered to access it. At the idle screen, hit 7 to set or clear a reservation. You can set the reservation for None (which clears the reservation), One call, or All calls.

Res right: Network Reserve

This is usually set during the Network Maintenance period. If a call connects during this time, they are told to call back when network transfers are done.


Mnt left: Zero tr% at Hit Backspace

If Mnt right (Modem Answer Disabled) is active and a call comes in, incoming bytes from the connect process are held in the RS232 receive buffer. When Mnt right is disabled, that buffered data causes the BBS to connect and go to the Hit Backspace prompt. Since there is nobody online, the BBS waits for 6 minutes until tr% counts down to 0, then resets back to the idle screen.

Or, sometimes a real caller (or a bot) connects to the BBS and does nothing at the Hit Backspace prompt. If the sysop is around and sees it happen, they can zero tr% to reset the time remaining to 0, shortcutting the reset back to the idle screen.

Mnt right: Modem Answer Disabled

When enabled, the BBS will not answer an incoming call.


Mnu left: Is User in Menu Mode?

(BBS controlled) The Graphic Menu system uses this flag to check whether the user is currently in Graphic Menu mode.

Mnu right: Are Menus Available on BBS?

If enabled, Graphic Menus are available to users.


Xpr left: Enable Express Logon

If enabled, when the user first connects to the BBS, they have the option Xpress Login available so they can skip login modules and get to the main prompt quickly.

Xpr right: Use s.detect Files

If enabled, the user will see a file called s.detect at login instead of a specific message about their graphics mode.

Page 4

Table 9. Lightbar, page 4

Em3

Sc2

Scp

Alt

Trb

DCD

DSR

$3e

Em3 left: Emulate Image 1.x mode

When enabled, you can run Image 1.x + files, using a redirection layer to point that version’s im calls to Image 3.0’s im calls.

The main prompt Run command checks this lightbar flag and prompts for the appropriate module type. For more information, see Image 1.x Emulation Mode.

Em3 right: Undefined


Sc2 left: Disable 2nd Security Check

If enabled, the user is only prompted for their account password, not their first and last names or their email address.

Sc2 right: Undefined


Scp left: SuperCPU Present

If enabled, the CMD SuperCPU is connected to the system.

Scp right: Turbo Mode On

If enabled, the CMD SuperCPU is operating in 20 mHz mode.


Alt left: Alt last 10 callers display

If enabled, this displays the idle screen last ten callers list in different colors.

Alt right: Undefined


Trb left: Disable Troubleshooting Mode

If enabled, the programmable window will not display variable values for debugging purposes.

Trb right: Undefined


DCD left: Invert DCD Signal

(BBS controlled)

Enabled: The modem hangs up when an inverted (asserted when high) Data Carrier Detect signal is received from the modem.

Disabled: The modem hangs up when a normal (asserted when low) Data Carrier Detect signal is received from the modem.

DCD right: Carrier Present

(BBS controlled)

When enabled, there is either a DCD or DSR carrier signal present.

This can be checked for in BASIC using &,52,$3c,3:if a% then …​.


DSR left: DCD/DSR select

You can choose whether loss of Data Carrier Detect or Data Set Ready signals indicates there is no user connected, therefore the BBS should hang up.

Enabled: If there is no Data Set Ready signal present, then hang up.

Disabled: If there is no Data Carrier Detect signal, then hang up.

DSR right: Show Rx/Tx Windows

If enabled, show data being received/transmitted in receive/transmit windows.

At higher bits per second rates, the data is not shown to achieve maximum throughput.

$3e left: Undefined

$3e right: Undefined

Pages 5-7

Table 10. Lightbar, page 5

$40

$42

$44

$46

$48

$4a

$4c

$4e

Table 11. Lightbar, page 6

$50

$52

$54

$56

$58

$5a

$5c

$5e

Table 12. Lightbar, page 7

$60

$62

$64

$66

$68

$6a

$6c

$6e

Pages 5-7 are undefined and are available for your own use.

Page 8

Table 13. Lightbar, page 8

At1

At2

At3

At4

At5

At6

At7

At8

At1 left: Default Alarm 1 Enable

At1 right: Default Alarm 1 Trigger


At2 left: Default Alarm 2 Enable

At2 right: Default Alarm 2 Trigger


At3 left: Default Alarm 3 Enable

At3 right: Default Alarm 3 Trigger


At4 left: Default Alarm 4 Enable

At4 right: Default Alarm 4 Trigger


At5 left: Default Alarm 5 Enable

At5 right: Default Alarm 5 Trigger


At6 left: Default Alarm 6 Enable

At6 right: Default Alarm 6 Trigger


At7 left: Default Alarm 7 Enable

At7 right: Default Alarm 7 Trigger


At8 left: Default Alarm 8 Enable

At8 right: Default Alarm 8 Trigger

Alarm Triggers

Alarm Triggers are used to modify other checkmarks on the lightbar. Using them, you can enable or disable BBS features at specific times of the day or night.

Features:

  • Alarm on and off times can be specified

  • Activating an alarm can depend on the status of a specific checkmark

  • Alarms can trigger only if another checkmark is enabled

  • After an alarm triggers, it can then enable or disable another checkmark

There is one alarm trigger enabled by default: At1. Every few hours, the Trc right lightbar function (Time: Reset Clock) will poll a CMD RTC to update the BBS clock. If you do not need this feature, disable this alarm.

The command path is IM, H Lightbar/Alarm, B Alarms.

NetMail Alarms

NetMail Alarms define up to 24 times of the day or night that NetMaint takes place.

Lightbar Interface: &,52

&,52,position,mode

position ranges from 0-127 decimal ($00-$7f hexadecimal—​for example, &,52,$30,0 is allowed).

mode is 0-4 as used by BASIC. Mode 5 reads checkmarks in ML routines, and is discussed in the accompanying Image BBS 3.0 Programmer’s Reference Guide.

0

clear checkmark at position

1

set checkmark at position

2

toggle checkmark at position

3

read checkmark at position, return status in a%: 0=off, 1=on

4

move “lit” portion of lightbar to position 0-55 [FIXME: or 1-56?]

Running Modules

Like Image 1.x (1.x stands for 1.0—​1.3) BBS before it, Image 3.0 can run modules from the main prompt by typing R. However, there are more types of modules available in this version of Image.

Image 1.x Emulation Mode

When R is typed from the main prompt, Image checks to see whether you are in Image 1.x emulation mode (when the left side of Em3 on the lightbar is checked). If this is enabled, an “emulation layer” loads, which uses Image 1.x’s im line numbers. You can then run plus files for those older versions instead.

If Image 1.x emulation mode is disabled, you can load Image 3.0 i modules. There are several types of these, with differing filename prefixes and starting line numbers. The following section discusses the additional prompts specifying options for which module type to run.

Command Classes

First, you are prompted for the command class. A number, 3-5, is required here. The command class specifies which module type will be loaded, and which line number it starts executing at.

Table 14. Module Command Classes
Class Prefix Starting line

3

i.

3000

4

i/

4000

5

sub.

60000

Device,Drive Prompt

Next, you are prompted for the device and drive to run the module from.

  • Typing a single number from 1-6 specifies one of the six Image system disks. Depending on the Image 1.x emulation status, system disk 5 is either your i module (Image 3.0) or + file (using Image 1.x emulation) disk.

  • You can also type the device number, a comma, and the drive number to run a module from a specific device and drive. Devices 8-29 and drives 0-254 are supported.

In Xetec’s Lt.Kernal hard drive DOS terminology, the drive number refers to the Logical Unit or LU; in Creative Micro Designs’ (CMD’s) DOS, it is the partition).

Value of Variable

Each type of module uses a different variable within the BASIC code to control which subroutine in the module executes. You are prompted for the value of the variable here.

Table 15. Module Variables
Class Variable

3

mm

4

lm

5

im

TODO: There is a module listing and jump table in the Image 3.0 Programmer’s Reference Guide.

If there is no DOS error, the module should execute.

A file not found DOS error is written to the system error log (e.errlog, viewable with VF) as a load error.

Module Types

Table 16. Module Types
Prefix Starting Line Purpose

+.

1

Image 1.x plus file

++

n/a

Image 3.0 ML module (usually protocols which load at $c000)

i.

3000

Image 3.0 module (system command)

i/

4000

Image 3.0 sub-module

i.XX/YY

3000

Image 3.0 sub-module YY of module XX

i/lo.

3000

Idle screen command

i/lo/

4000

Nightly AutoMaint module

i/lo-

4500

Login module

i/XX.YY

4000

Sub-module YY of module XX

sub.*

60000

im sub-module; common BBS code called by various modules

You can find a more complete breakdown of what most individual modules do in the Image BBS 3.0 Programmer’s Reference Guide.

Command Stacking

Many commands entered at major subsystem prompts can be “stacked” by using the up arrow key (^) between the commands. This has the effect of executing each command between ^s, one at a time, and each prompt encountered displays the next command in the stack as if typed by hand.

As an example, if the following command were entered at the main prompt:

SB9^RN^<^R3^UD^SA

Then the BBS would execute (and display, if possible) each respective subsystem prompt encountered while executing the following commands:

Command Purpose Display

SB9

Take you to sub-board 9

Sub Board #9: RN

RN

Read the new posts there

(read posts)

<

Move backwards, to sub-board 8

Sub Board #8: R3

R3

Read post #3

(text of post)

UD

Enter the U/D subsystem

U/D Board #1: SA

SA

Scan for all new uploads

(list new files)

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.

Command History

New to Image BBS v3.0, you can view the history of commands issued at most major prompts, and execute commands within that history.

This command history is also included in each BBS error log entry (e.errlog, viewable with the VF command). This sometimes helps trace what the user was doing that led to the error.

FIXME do commands in the stack get entered into command history?

Viewing Command History

^? will view up to the last ten commands entered during the user’s session. Each command in the history is numbered 0-9 and the command text is displayed.

Executing Commands in History

^ and a number 0-9 (e.g., ^3) will execute that particular command in the history.

The Text Editor

The text editor is where any messages on the BBS will be entered. It works by letting users type almost 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.

Enter Text

To enter text, simply type it into the editor.

DELete works as usual, but INSerT does not.

There is no need to press Return at the end of each line. The editor uses word-wrap, so words which extend past the edge of the screen will be erased and put at the beginning of the next line.

As the sysop, you can define how many lines of text (in multiples of ten) a user can type into the editor. (TODO: Refer to User Flags for more information.) If a user is in local or pseudo-local mode, they are allowed 253 lines in the editor.

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 use .S to save, or .A to abort.

Entering the editor in local or pseudo-local also mode reports how many bytes are free.

Dot Commands

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

/ (slash) can now be used for those more used other BBS programs which use that as a command prefix; i.e., /s can be typed in place of .s to save text.

Command Mode

When you need to do something with the text you have entered:

  1. Type Return if necessary to start a new line.

  2. Type . (period) or / (slash) as the first character on the line.

This displays Editor Command: and waits for you to press another key (called a “dot command”). This is Command Mode.

When you type as many lines as your Editor Lines user flag allows, you are automatically put into Command Mode in order to either edit your existing text or save it.
  • If you press DELete or Return keys, the Editor 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 i.WF program uses this technique extensively for the .P (Put File), .G (Get File), .$ (View Directory), .& (Read SEQ File) and .! (DOS Command) extensions to the editor. If you wish to program your own commands, we suggest you examine that file 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 enter either:

  • a line range, discussed next

  • another character or string, for some commands

You can tell a command accepts a line range or parameter when there is an extra space after the command, like List .
  • 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:

x represents the beginning line number in the range command, y represents the ending line number.
Table 17. Line Range Specifiers
Type Purpose

x

Just line #x

x-

Line #x to the end of the message

x-y

Lines #x to #y

-y

From the beginning to line #y

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

Exit 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.

There is no confirmation, unfortunately. This is something I have mostly working in Image 1.2, and plan on adding to Image BBS 3.0.
  • The second way is to save the message with the .Save Text command.

  • Neither command requires or allows line ranges.

Read What You 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, including displaying each color change character and MCI command literally and not interpreting it; this might be useful to “proofread” your message:

Example:

Editor Command: Read

£s1This is line one.

£k1This is line two.

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

  • Finally, you can also .List the text. This displays line numbers, used in line ranges for other commands, and the text of each line:

Editor Command: List 1-2

1:
This is line one.
2:
This is line two.

If no line range is given for the .Read, .List, or .MCI Read 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 the spacebar or / keys.

If enabled, the More Prompt also pauses after the number of lines equal to the user’s screen height have been displayed, asking …​More (Y/n). No aborts reading, while keys other than N are taken to mean the default of Yes, and reading continues.

Manipulate Text

These commands delete, edit, insert, move, or copy lines of text. You can also add “signatures” created with the PS command at the main command level.

Delete Lines

.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 Lines

.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. Then the same line number is displayed, and you may then type the new line below it. (Refer to Editor/Input Control Keys for useful editor keystrokes which edit the current line.)

Example:

.Editor Command: Edit 1

1:
This is line one.
1:
_
  • DELete or Return as the first character on the line causes the editor to respond with (No Change.) and return to the main editor.

  • . as the first character causes Editor Command:Exit to appear and abort the Edit command.

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

Personal Signatures

.Use Signature allows you to append a personal signature (made with the PS command) to your message.

Respond to the prompt Which Signature (0-9): with the number of the signature file to append.

Move Lines

.Y (Move) allows you to move a range of lines to the line you specify. Enter the line range after the Move  prompt.

Example

Enter these lines:

line 1
line 2
line 3

.Editor Command:YMove 1

Move To: 3

Editor Command:List

1:
line 2
2:
line 1
3:
line 3

Copy Lines

.Z (Copy) will copy a line range of text to a specified line number.

Continuing our previous Move example:

line 2
line 1
line 3

Enter a line number or line range here:

.Editor Command:ZCopy 1-3

Respond to the Copy To prompt with a line number, and the selected line range is copied to that line number:

Copy To: 4

This example copies lines 1-3 to lines 4-6.

Editor Command:List

1:
line 2
2:
line 1
3:
line 3
4:
line 2
5:
line 1
6:
line 3

Editor Modes

Insert Mode

The .Insert command enters Insert Mode. This is shown by displaying Ix: (where x is the line number you are inserting at).

The line you specify is where you start inserting. If no line number is specified, the first line is assumed.

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 Editor Command: Exit and goes back to the normal editor.

Line Numbering Mode

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

Type .O and the editor displays:

Editor Command:Line Numbers On.
Line Numbering Mode Example:

(Type the bold text.)

1:

text Return

2:

more text Return

Type .O and the editor displays:

Editor Command:Line Numbers Off.

Text Transfer Mode

The .T command enters Text Transfer Mode. This is most useful when sending text from a buffer to the BBS—​it prevents text from being echoed from the BBS to your terminal, which speeds up the process.

Type .T and the editor displays:

Editor Command:Text Transfer On

Then send your buffer contents. Afterwards, you can use the editor normally. There is no need to type .T again to toggle Text Transfer Mode off.

Shape Your Text

You can perform operations on text which can change it in a variety of ways.

Banner Text

The .Banner command creates large letters from text you enter. Type the text you wish directly after the Editor Command: Banner  prompt, hit Return, then use .MCI Read to view it.

In a 40-column display, you are limited to 9 characters before the text will wrap around.

Color controls (Ctrl+1-8 and C=+1-8) are accepted, and do not count towards the character limit.

Columns

The .Columns command followed by a two-digit number (22-80) changes the number of characters the editor allows you to type on a line before word-wrapping text.

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

Justify 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,L,P,R,U):

These are the seven Justify commands. Press the key corresponding to which justification mode you want. To escape Justify mode, type ., 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 18. Text Editor Justification Commands
Command Purpose

Center

Center text

Expand

Insert spaces between words to the limit of your .Columns setting

Indent

Move text right by one column, if possible

Left

Remove leading spaces

Packed

Remove all extra spaces added by Expand

Right

Push text to the right margin

Set the right margin with .Columns first, if you wish.

Un-indent

Moves text one column to the left, if possible

Scale

A related command is .# Scale. 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 (the dot command displays Clear Text) command re-starts the editor, erasing all text you have typed.

There is no confirmation, unfortunately. This is something I have mostly working and plan on adding to Image BBS 1.2 and up.

Search 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 (including line numbers they occur on) of it.

Replace Text

The .K (Replace, think Kill) command will prompt you for an optional line range, then a Search Phrase: as Find does, but also ask what to Replace 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.

Get and Put

While in WF, .Save will not work. Instead, use the .Put command.

The .Get and .Put commands allow you to:

  1. Load (.Get) a file from a device into the buffer

  2. Edit using all the normal editor facilities

  3. Save the buffer (.Put) to any device and drive

.Get appends the file to any text already in the editor’s buffer.

If you are editing SEQ files with C/G codes in them, before using .Get, use .Columns 80 first to set the editor line length to 80 characters. This helps prevent the editor from word-wrapping long lines with C/G characters in them.

.Put can re-save the file to the same device/drive (you are prompted for the current filename, and can change it in the process). Or, you can save to a different device/drive if desired.

If the filename entered already exists, you are prompted:

[A]ppend [R]eplace [Q]uit:
  • Append: add the text currently in the buffer to the file on disk

  • Replace: scratch the current file and replace it with text currently in the buffer

  • Quit: Exit back to the editor

View Directory

.$ (View Directory) command views a disk directory of any device and drive, with a pattern if desired.

Read SEQ File

.& reads an existing SEQ file. A filename, device and drive are prompted for.

DOS Command

.! issues a DOS command.

If a “new” (starts with n) or “scratch” (starts with s) DOS command is issued, you are prompted to confirm your actions.

Get Help

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

Editor/Input 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.

In the following examples, the line of text needing correction is shown, and _ represents the cursor position. The editing key combinations are shown (e.g., Ctrl+B), then the next line represents the corrected line.

Other control keys:

Table 19. Text Editor & Input Control Keys
Key(s) Purpose

DELete

Erase one character to the left in the line

Example:

The quick brown fox jumped over the lazy dog._ DELete

The quick brown fox jumped over the lazy dog_

Ctrl+B

Move back to beginning of line

Example:

The quick brown fox jumped over the lazy dog._ Ctrl+B

_ (at the beginning of the line, having erased the entire line of text)

Ctrl+D

Delete character under cursor

Example:

To correct this error:

The quick brown fox jummped_ Delete 4x

The quick brown fox jum_ Ctrl+D (deletes the extra m)

The quick brown fox jum_ Ctrl+N (re-types to the end of the line)

The quick brown fox jumped_ Line corrected

Ctrl+I

Insert character under cursor

Example:

A different way of correcting this error:

The quick brown fox juped_ Ctrl-W (erases to the previous word)

The quick brown fox_ Ctrl+U 3x (re-types  ju one character at a time)

The quick brown fox ju_ Ctrl+I (inserts a space for the m)

The quick brown fox ju_ m (re-types missing m)

The quick brown fox jum_ Ctrl+N (re-types to the end of the line)

The quick brown fox jumped_ Line corrected

Ctrl+N

Move forward to end of line

Example:

The quick brown fox jumped over the lazy dog._ Ctrl+B (erases to the beginning of the line)

_ Ctrl+N (line erased; re-types to the end of the line)

The quick brown fox jumped over the lazy dog._ Line re-typed

Ctrl+U

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

Example:

The quick brown fox jumped over the lazy dog._ Ctrl+W 3x (erase dog, lazy, and the, one word per keypress)

The quick brown fox jumped over_ Ctrl+U 5x (re-type  the , one letter per keypress)

The quick brown fox jumped over the _

Ctrl+V

Verify (re-display) current line; useful for poor connections

Example:

Image BBS has a pretty decent line-based editor._ Ctrl-V Re-display current input

Image BBS has a pretty decent line-based editor._

Ctrl+W

Move back one word

Example:

Ctrl+X

Abort input

Aborts inputting or editing of the current line and starts editing a new line.

* Prints a British pound sign (£) on Commodore terminals

* Prints a backslash (\) on ASCII terminals.

Mangled, impossibly broken line_ Ctrl+X

Mangled, impossibly broken line£

_ (re-start editing on an empty line)

Ctrl+Y

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

Example:

Dot Command Quick Reference

Command Purpose

.Abort

Exit editor (no confirmation)

.Banner

Create large letters out of typed text

.Columns

Set number of characters allowed per line

.Delete

Delete line(s)

.Edit

Edit line(s)

.Find

Find text in specified line(s)

.Help, .? Help

Show help menu file (s.menu 3)

.Insert

Insert line(s) at specified line

.Justify

Justify text in various ways

.K Replace

Search for and replace text

.List

List line numbers and lines of text

.MCI Read

Read with MCI interpreted

.N Clear Text

Erase buffer (no confirmation)

.O Line Numbering

Toggle between showing and hiding line numbers as text is typed

.Query

Show lines used and remaining

.Read

Read without MCI interpreted

.Save Text

Save text to disk

.Text Transfer Mode

Don’t echo text back to caller

.Use Signature

Append signature made with PS

.Version

Show editor version

.Y Move

Move line range to specified line

.Z Copy

Copy line range to specified line

.# Scale

Show 40-column scale

WF Dot Commands

These commands can be used if in local mode.

Command Purpose

.Get File

Append to buffer a disk file’s contents (filename, device, and drive are prompted for)

.Put File

Save a file (filename is prompted for); can Append or Replace existing file

.! DOS Command

Send DOS command (device, drive, and command are prompted for)

.$ View Directory

View disk directory (device, drive, and pattern are prompted for)

.& Read File

Read SEQ file (filename, device and drive are prompted for)

Appendix A: Lightbar Quick Reference

This appendix lists a short description of what each lightbar function is used for.

Each page of the lightbar has all the labels listed in a horizontal row for quick reference. Beneath that are three columns with more information:

  • The middle column, Label, lists the text of the lightbar option, as well as the numbers (in decimal) used to interface with the lightbar using &,52.

  • The Left and Right columns of the table explain the lightbar function or options for that label’s position. If additional function keys are used with that lightbar option, they are listed, along with what each function key does.

Lightbar Function Keys

The function keys f1-f8 are used to switch pages, move the “lit” portion of the lightbar, and enable/disable individual lightbar positions, shown in the table below:

Table 20. Lightbar Function Keys
Key Purpose

f1

toggle between full and split screen mode

f2

toggle between 1 and 2 mHz (FAST in BASIC 7.0) mode when using a Commodore 128 in C64 mode

f3

move highlighted position left

f4

page backward through lightbar pages

f5

move highlighted position right

f6

page forward through lightbar pages

f7

toggle the left check mark of the selected lightbar position

f8

toggle the right check mark of the selected lightbar position

f1: Split screen mode is useful when you want to access the lightbar and view BBS status/caller information. Full screen mode allows you to read more text on the screen (it doesn’t show the information displayed while in split screen mode).

You must be in split screen mode to enable or disable lightbar positions via the function keys.

f2: Toggles between FAST (2 mHz) and SLOW (1 mHz) modes on a Commodore 128 in 64 mode.

When you are in FAST mode, the BBS should operate faster at 2 mHz. However, the screen goes blank since the VIC chip cannot display the 40 column screen clearly at 2 mHz. Depending on which disk drives or other storage devices you have connected, disk access might not see any speed increase, since the C64’s serial bus operates at 1 mHz. This is also a restriction while using CMD’s SuperCPU in 20 mHz mode.
Table 21. Lightbar, page 1

Sys

Acs

Loc

Tsr

Cht

New

Prt

U/D

Left Label Right

Sysop Available to Chat

Enable sysop chat availability. If C is typed at any major prompt, bells will sound. Chat reason logged to e.log weekday.

0 Sys 1

Background Page Enable

Chat page bell plays continually (even while the user is doing other things) until the chat page is answered or the user logs off.

Edit User’s Access

Change user access level (A=x on the seventh line of the screen mask), using the following function keys:

f1

sets level to A=0.

f2

sets level to A=9.

f3

increases level, wraps from A=9 to A=0.

f5

decreases level, wraps from A=0 to A=9.

f7

exits.

2 Acs 3

Block 300 Baud Callers

Disable 300 baud users from logging in.

Local Mode (No Modem I/O)

Local (“console”) mode login. Log in to the BBS from the C64.

4 Loc 5

ZZ (Pseudo-Local) Mode

Enable pseudo-local mode, which allows using maintenance commands. Can be toggled remotely with ZZ.

Edit User’s Time Left

Change “time still remaining” (time left on user’s call).

f1

zeroes time

f2

unlimited time (--:00 displays)

f3

+1 minute

f4

+10 minutes

f5

-1 minute

f6

-10 minutes

f7

sets selected time limit

6 Tsr 7

Prime Time Enabled

Enable Prime Time if it is set up, and limit the caller’s time remaining to the number of minutes set in Prime Time settings.

Enter/Exit Chat Mode

Enter or exit chat mode. Configurable messages are shown when entering and exiting chat mode.

8 Cht 9

Disable Modem Input

Ignore any data coming from the caller.

Disallow New Users

Prevent NEW users from signing up at login.

10 New 11

Enable Screen Blanking

Enable screen blanking at system idle.

Print Spooling

Print the text output to the console to a connected printer.

12 Prt 13

Print Log Entries

Print log entries to a connected printer.

Disable U/D Section

Disable access to the Upload/Download section.

14 U/D 15

300 Baud U/D Lockout

Prevent 300 baud users from using the Upload/Download section, since they could take a long time to download a large file from the BBS, blocking other users from calling.

Table 22. Lightbar, page 2

Asc

Ans

Exp

Unv

Trc

Bel

Net

Mac

Left Label Right

Enable ASCII translation

This translates the Commodore character set into the ASCII character set. Most notably, the character codes of upper- and lowercase characters are reversed between the two character sets, but there are other differences too.

16 Asc 17

Line Feed After Return

Enabled: Send CR/LF (carriage return/linefeed) pairs at line breaks for ASCII/ANSI terminals.

Disabled: Send CR (carriage return) at line breaks, for Commodore and pre-OSX Macintosh terminals.

ANSI Color Enable

This translates Commodore color codes into ANSI sequences for ANSI terminals.

18 Ans 19

ANSI Graphics Enable

This sends ANSI characters instead of Commodore graphics characters for ANSI terminals.

Expert Mode Enable

If enabled, Expert Mode may present more advanced options in a menu, skip displaying subsystem entry screens, or other things. Users can toggle Expert Mode through XP directly, or EP, P, 6.

20 Exp 21

Disallow Double Calls

Prevent users from making two calls back-to-back.

No Immediate U/D Credits

When a file is uploaded, credits are awarded:

Enabled: After the SysOp or a SubOp validates the file.

Disabled: After the file is successfully uploaded.

22 Unv 23

Allow Auto-Logoff

If enabled, the user is prompted before a file transfer begins whether they want to log off automatically after an upload or download is complete.

On-Screen Trace Enable

Enable BASIC line execution trace, which appears as L=xxxxx between the receive and transmit windows on the screen mask. Slow down execution by holding Ctrl. Normally this is only used for debugging.

24 Trc 25

Time: Reset Clock

Poll CMD RTC every few hours to correct BBS clock drift, if running in emulation.

This is handled by an alarm. If you don’t want this behavior, disable At1 (Alarm Trigger 1).

Local Bells Enable

Bells [chr$(7), Ctrl+G, or the MCI command £bx] sent to the user are heard on the console also.

26 Bel 27

Local Beeps Disable

This prevents beep sound effects from being played when a &,25[,0] command is encountered.

NetMail Enable

This allows NetMail options in the E-Mail subsystem, NetSub options in the sub-boards, and NetMaint to process NetMail and NetSubs.

28 Net 29

NetMail Trigger

This indicates that NetMail processing will take place at the next available opportunity. This could be the usual 3-4 AM window, or occur because of a NetMail alarm trigger running at a specific time.

(BBS-controlled)

Macros On/Off

At the main prompt, random sayings from e.say are displayed.

30 Mac 31

MCI Disable in Editor

The user won’t be able to type the British pound sign (£) to enter MCI commands.

Table 23. Lightbar, page 3

Chk

Mor

Frd

Sub

Res

Mnt

Mnu

Xpr

Left Label Right

Enable MailCheck at Logon

Enables Mail Check option when user logs in. If chosen, this option allows the user to see whether they have e-mail waiting for them; they can then decide if they wish to log on to the BBS or not.

32 Chk 33

Excessive Chat Logoff

If the user requests more unanswered chat pages than s.chat x (x being the chat attempt number) screens exist, the user is logged off as soon as possible.

…​More (Y/n)? Prompt On

Enables page pause functionality. If there are more lines of text output than the user’s screen height, output pauses with this prompt until a key is hit.

34 Mor 35

…​More (Y/n)? Prompt Not Available

This disables the More prompt (e.g., handy in the Movie File section to avoid viewing interruptions).

Full-Color Read Disable

Disable outputting color to caller.

36 Frd 37

Undefined

Message Bases Closed (SB)

Prevents users from entering the Sub Boards section.

38 Sub 39

Files Section Closed (GF)

Prevents users from entering the General Files section.

System Reserved

When a user logs in, they will be notified the BBS is reserved, and a password is required to access it. Upon entry of the correct password, the user is granted access to your BBS. If the BBS is only reserved for one call, the reservation settings are cleared.

40 Res 41

Network Reserved

Nightly NetMaint is running, and a caller during this time will be notified of this and told to call back later.

Undefined

42 Mnt 43

Modem Answer Disabled

Don’t answer incoming calls.

Is User in Menu Mode?

If Graphic Menus are available, this indicates the user’s Graphic Menu mode is enabled. Toggle with GM.

44 Mnu 45

Are Menus Available on BBS?

This indicates Graphic Menus are available to users in Commodore Color/Graphics or ANSI graphics modes.

Enable Express Logon

Enables Xpress Logon option when user logs in. If chosen, this option skips most login modules, going to main prompt as quickly as possible.

46 Xpr 47

Use s.detect Files

After the user first connects and hits Delete or Backspace to determine their graphics mode, this option displays a file, s.detect x.

x Meaning

0

ASCII

1

Commodore C/G

2

ANSI

Table 24. Lightbar, page 4

Em3

Sc2

Scp

Alt

Trb

DCD

DSR

$3e

Option Left Right

Emulate Image 1.x mode

Run Image 1.x + files, if they’ve been renumbered to lines 3000-.

48 Em3 49

Undefined

Disable 2nd Security Check

During login, a second login security question is not asked (first or last names, e-mail address).

50 Sc2 51

Undefined

SuperCPU Present

A CMD SuperCPU is connected to the C64.

52 Scp 53

Turbo Mode On

A CMD SuperCPU is operating in 20 mHz mode.

Alt last 10 callers display

Display the last ten callers on the idle screen in different colors.

54 Alt 55

Undefined

Disable Troubleshooting Mode

Don’t display values of variables in the 16-character programmable window for troubleshooting purposes.

56 Trb 57

Undefined

Invert DCD

Enabled: Hang up when inverted (asserted when high) Data Carrier Detect (DCD) signal received.

Disabled: Hang up when normal (asserted when low) DCD signal received.

58 DCD 59

Carrier Present

(BBS controlled)

A modem carrier signal is present (a user is online).

Check in BASIC using:

&,52,$3b,3:if a% then …​

DCD or DSR Hangup

Enabled: Hang up on no Data Set Ready (DSR) signal.

Disabled: Hang up on no DCD signal.

60 DSR 61

Enable Rx/Tx Windows

Show data being received and transmitted in 10-character windows on the bottom screen mask.

Undefined

62 $3e 63

Undefined

Table 25. Lightbar, page 5

$40

$42

$44

$46

$48

$4a

$4c

$4e

Page 5 is undefined and is available for your own use.

Left Label Right

Undefined

64 $40 65

Undefined

Undefined

66 $42 67

Undefined

Undefined

68 $44 69

Undefined

Undefined

70 $46 71

Undefined

Undefined

72 $48 73

Undefined

Undefined

74 $4a 75

Undefined

Undefined

76 $4c 77

Undefined

Undefined

78 $4e 79

Undefined

Table 26. Lightbar, page 6

$50

$52

$54

$56

$58

$5a

$5c

$5e

Page 6 is undefined and is available for your own use.

Left Label Right

Undefined

80 $50 81

Undefined

Undefined

82 $52 83

Undefined

Undefined

84 $54 85

Undefined

Undefined

86 $56 87

Undefined

Undefined

88 $58 89

Undefined

Undefined

90 $5a 91

Undefined

Undefined

92 $5c 93

Undefined

Undefined

94 $5e 95

Undefined

Table 27. Lightbar, page 7

$60

$62

$64

$66

$68

$6a

$6c

$6e

Page 7 is undefined and is available for your own use.

Left Label Right

Undefined

96 $60 97

Undefined

Undefined

98 $62 99

Undefined

Undefined

100 $64 101

Undefined

Undefined

102 $66 103

Undefined

Undefined

104 $68 105

Undefined

Undefined

106 $6a 107

Undefined

Undefined

108 $6c 109

Undefined

Undefined

110 $6e 111

Undefined

Table 28. Lightbar, page 8

At1

At2

At3

At4

At5

At6

At7

At8

Page 8 consists of 16 Alarm Triggers. Alarms can modify lightbar checkmarks, and more.

TODO: For more information, see the section IM: Lightbar Alarms.

Left Label Right

x

112 At1 113

x

x

114 At2 115

x

x

116 At3 117

x

x

118 At4 119

x

x

120 At5 121

x

x

122 At6 123

x

x

124 At7 125

x

x

126 At8 117

x