AOH :: BLUEBBS.TXT|
Blue Board 3.0 (C-64) docs
\/ Tommy's Holiday Camp +1 604 361 4549 \/
Condensed Documentation for Blue Board (64) 3.0/Modified
With information concerning the special mods attached to this
Blue Board is the BBS software written by Martin Sikes for the C-64.
Its ingenious use of RAM and tightly optimised machine code put Blue
Board head and shoulders above any other C-64 BBS (and many Apple and
IBM BBSes of its day) and far, far ahead of its time.
Blue Board supports 300 and 1200 baud operation, multiple drives
(including Hard drives provided they use standard CBM DOS commands
and addressing), and the Epyx Fast-Load cartridge. If your
primary drive is a 1571, even in C-64 mode you can use both sides
of the drive, one side for the message base and one side for download
Blue Board allows up to 9 file areas and 9 message bases, plus a tenth
"secret" message base which is password protected. Blue Board allows
up to 239 users including the sysop, and has a dual password/ID code
user security system.
Blue Board's entire userbase and all message pointers and file/message
definitions are kept in a single file which is stored in RAM when the
BBS is operating. This and the fact it is written in pure machine code
comprise the secrets to its unparalleled speed.
This modification of Blue Board:
The version of Blue Board documented herein differs from the
"official" Blue Board in several important respects. First, it
offers users a "prompt scribble." Second, it gives the sysop an added
degree of flexibility in that an additional prompt/text editor has
been provided. You have complete control over what Blue Board tells
Blue Board Files:
The following is a list and explanation of the files that come with
BOOT V2 This is Blue Board's "Bootstrap" program. You run this to
load Blue Board from disk, give it the current time, and
specify a "data file" (explained later) and modem type to use. The
modified version has been changed to default to the FIRST data file
on the disk, and to default to a 1670 modem. These defaults can be
changed by anyone with even rudimentary BASIC programming knowledge.
MODEM1650.O These files are the Modem Driver sub-programs. In order
MODEM1660.O to conserve precious RAM, only ONE modem type is ever
MODEM1670.O actually supported; the supported modem is defined by
MODEMHAYES.O loading one of the modem driver files (usually in BOOT V2)
NOVOTES.O BOOT V2 will load one of these files, depending on whether
VOTES.O or not you want to enable Blue Board's voting function.
If you want votes, VOTES.O is a subprogram which loads
into the high portion of the C000 block and provides users with up to
eight "Yes/No/Don't-care" type votes. If you don't want votes, have
BOOT V2 load NOVOTES.O, and users attempting to select votes will be
told that votes are not available.
FILE XFER.O One of these files will be loaded, depending on whether
NOXFER.O you want a file section. If you only have one drive,
DO NOT load FILE XFER.O, as the first drive (device 8)
is specially formatted and cannot be used for downloads. This will
be explained later. FILE XFER.O is a subprogram offering file transfers
using Xmodem-checksum or straight ASCII dump for text files. If you
have two or more drives, it is reccommended that you use at least one
for a file section since it won't be much use otherwise.
SET UP The SET UP program initializes a DATA DISK. This is a specially
formatted diskette which is accessed on a random-access
sector-by-sector basis. It contains mainly message data but also
has system bulletins and vote/scribble data. Your DATA DISK **MUST**
be prepared using SET UP. Most often, the backside of the system
disk (the disk with the program files) is used as the data disk.
Once SET UP has finished doing its thing (it takes a while, remember
we 1541 owners have the world's slowest drives...) DO NOT try to write
any files to the DATA DISK. The DATA DISK is exclusively the property
of the Blue Board program from now on.
CHANGER The CHANGER programs allow you to change ANY text output,
CHANGER2 including local sysop prompts and (heh heh) the copyright
notice. This is where Blue Board's flexibility lies. Since
it is generally accepted that sysop defined menu systems are infeasible
on a 64k machine, the least a BBS can offer you is a way to change the
prompts. Blue Board gives you this option, and the THC mods allow
for ALL the text to be changed.
When you are finished making changes to the prompts, and
you are back at the BASIC level, you must SAVE the program file
(BLUE BOARD.O, described below) or your changes will be lost.
PROMPTER1B65.O These are the machine language adjuncts to the CHANGER
PROMPTER.O programs. Don't play with these, they work fine the way
BLUE BOARD.O This is the heart of Blue Board's operation. This 97
block file is a 100% machine language program which
performs all the functions of the BBS, from user accounting to messaging
procedures and sysop functions. This file is modified when you run
the CHANGER programs. If you are EXTREMELY brazen or just a good hacker,
you can modify this program using a monitor to do anything you want.
The disassembly listing, printed out, runs about 250 pages, but the
investment in paper is worth it if you want to hack the code.
In order for BLUE BOARD.O to run, it must have several
other files already installed into memory: either FILE XFER.O or NOXFER.O,
either VOTES.O or NOVOTES.O, one of the MODEM????.O files, and a valid
DATA file (explained below).
If you reset your computer, the "BASIC FRONT-END" portion
of BLUE BOARD.O is wiped out but you can still re-enter the BBS (and
thus save/backup your data file) by typing SYS 2072.
DATA 00/00 00.00 The DATA files (there can be more than one) contain
everything important about your BBS. Your userlog,
message base pointers, and system configuration are all kept here.
The DATA file consists of two segments. The first is a freeform bitmap
segment which contains system configuration data, sysop passwords, and
so on. The other segment is a linked-list heap structure which should
NOT be tampered with unless you are the most competent of hackers and
know exactly, precisely what the hell you are doing. This cannot be
overstressed enough. A description of the bitmap segment will come later
in this file.
The name of the DATA file depends on the time and
date on which it was saved. The 00/00 is the date in MM/DD format,
and the 00.00 is the time in HH/MM format. The data file is loaded
by BOOT V2 and must be present for Blue Board to run at all.
Blue Board Operation:
Getting started: First, check that all the files listed above are
present. If any are missing, phone the pirate contact who gave
you Blue Board and call him a lamer. The disk with these files
will be called the "SYSTEM DISK" from here on. Next, get a BLANK,
UNFORMATTED floppy (most people use the back of the "system" disk)
ready. Now, run the SET UP program. There are some basic onscreen
instructions, follow them. The blank disk will be your DATA DISK.
After about 20 minutes or so, the disk is not only formatted but
prepared for use by Blue Board as a DATA DISK.
Once this is done, you are now ready to run Blue Board. Run BOOT V2.
After a few seconds you the screen will change to white-on-grey and
you will be prompted to put in the DATA DISK. This is the disk that
SET UP just spent 20 minutes working on. Put in the Data Disk and
hit return. You will then be prompted for the time and date, and
whether or not you want to "display bulletin." The bulletin is a
pseudo-file (more on that later) that is displayed to users at logon.
Most sysops DO want to display the bulletin. You'll then hear a
chime, and the system is ready to go!
Waiting for Caller: When waiting for a call, Blue Board displays some
important information. The last eight callers, what time and date they
called, and how long each was online for. If a user has been deleted,
he shows up as ">----------<". If you are starting anew, all eight
"last callers" will probably be deleted users. Also, total
calls-to-system, calls-since-mark, and number of users are displayed,
plus the number of outstanding emails. A number of special keys work
when waiting for a call, these will be discussed later in the file.
Online: When a user is online, the sysop can intervene in the user's
doings as if he was the user himself. The sysop can add time or throw
a user off, or break in to chat. The sysop can freeze output to the
user, and go to the "Blue Junction" (briefly discussed later) to edit
that or any other user. Online sysop keys will be discussed later.
Meanwhile, the user has all the functions available to his access
level at his disposal.
Blue Board Keys:
Waiting For Caller Keys:
F1: "FAST" logon! Instantly puts the sysop online in a local
session using the first account in the user log. The last
two letters of the sysop's ID should be "AA" as this is the
account that F1 logs you in with.
F6: Blue Junction. Blue Junction is a set of self explanatory
sysop functions including user edit and mail edit.
CTRL-A: Local logon, from the very beginning including the
CTRL-B: Force fake ring detection. Useful for some direct-serial
CTRL-C: Clears the buffer and turns the screen yellow.
CTRL-D: Graceful exit. You will be asked if you want to "save data."
ANSWER YES AND THEN PUT IN THE SYSTEM (or "files") DISKETTE!
This is the only way to assure the stability of Blue Board.
Backups of the data file using CTRL-D should be performed
daily. Remember, your ENTIRE userlog and message pointers
are ALL IN RAM! One power blackout or mischievous sibling
can destroy your BBS unless you are well prepared. Also,
beware of falling back on OLD backups. Not only will this
annoy users whose accounts were created after the fact, it
will cause cross linking of messages which makes for no
end of trouble.
MAKE DAILY BACKUPS!
CTRL-E: Does the same as F6, puts you in Blue Junction.
CTRL-F: Resets the mark in "calls since mark." This is useful for
tracking caller trends, for demographic purposes. The
screen will turn blue to acknowledge the dumping of the
CTRL-G: Does the same as F1, puts you in the main BBS menu.
CTRL-I: Blue Term! 3/1200 baud terminal program. Instructions are
given when you enter the terminal. It doesn't do much,
but it's more convenient than backing up the BBS and loading
CTRL-J: Sets some miscellaneous configuration options. The SysOp's
name and BBS name are straightforward, but the others require
clarification. The "J" password is the password a user must
enter to access the hidden message base with the J main
menu command. The "F" password is the password a user must
provide at the CTRL-F command to get more online time. The
"V" password is the password the sysop must enter to access
Blue Junction from remote using the CTRL-V command.
CTRL-K: Puts the sysop in the User Editor, bypassing Blue Junction.
CTRL-L: Loads a text file into the buffer. Users can read this
file online using the "W" command at the main menu.
CTRL-N: Saves the contents of the buffer. The buffer can be filled
in Blue Term, this command allows its contents to be
saved to disk.
CTRL-T: Set the Time and Date.
F1: Put caller at main menu.
F2: Kill chat noise.
F3: Give the user a 5 minute warning.
F4: Break into chat mode. F1 gets you out.
F5: Dump caller because of "time expired."
F6: Blue Junction. It would be wise to freeze caller output before
you select this, because the caller might see another user's
password if you use the user editor.
F7: Change access level of currently online user.
F8: Instant disconnection.
C=A: Open capture buffer. It's 8k in size, and sits under the Kernal.
C=B: Close capture buffer.
C=C: Display contents of capture buffer.
C=D: Kill capture buffer, reset pointer to zero.
C=E: Send message "SysOp Not available"
C=F: Toggle User Output. If you are logged in locally, this will
log you off unceremoniously because it will see that there is
no carrier and go back to the wait-for-caller screen.
C=G: Send message "SysOp Present...". This should be used prior to
turning off user output so that the user knows you are at work
on the BBS and does not assume the BBS has crashed.
Blue Board's Data File: The Bitmap segment
The Data File's bitmap segment holds many configuration options that
can be selected simply by POKing to the right locations in memory.
The configuration portion of the bitmap segment has a base address
of 30208. Here then are the addresses and what they do.
+this offset Result
12 The total number of system calls is stored in
13 30208+12 and 30208+13. 30208+12 is the LSB and
30208+13 is the MSB of this 16-bit number.
129 1=Yes, 0=no: Messages re-ordered when cycled
130 1=Yes, 0=no: New users allowed on BBS before validated
131 P.M. Time Limit (255=no limit) in BCD, i.e. 16=10min.
132 A.M. Time Limit (255=no limit) in BCD
133 New User's access level, in BCD
134 Time (in sec.) to wait for carrier after ring, in BCD
135 Online background colour
136 Border Colour
137 Character Colour
138 Wait-for-calls background colour
139 Cursor Colour (the cursor is a SPRITE!!)
140 Access level needed to kill a message, in BCD
141 Access level needed to enter a message, in BCD
142 Access level needed to request more time with CTRL-F
143 Access level required to view other users access level
144 Access level required to enter hidden message base
145 Access level required to list last 30 callers, in BCD
147 Access level required for New-Scan, in BCD
148 Access level required for Quick-Scan, in BCD
149 Access level required to read messages, in BCD
150 Access level required for Special Scans, in BCD
151 Access level required to see a userlog, in BCD
152 Access level required to view "W" buffer, in BCD
154 Access level required to enter file section, in BCD
155 Access level required to enter scribbles, in BCD
156 Access level required to enter a scribble message
157 Access level required to create a scribble, in BCD
158 Access level granted after initialization
159 Background colour after CTRL-C
160 Background colour after CTRL-F
162 Default transfer protocol, 120=X, 116=T
167 Access required to kill a scribble, in BCD
169 Maximum logon attempts allowed
172 Voting access required in BCD
173 Access required to kill a vote, in BCD
174 Access required to enter a vote, in BCD
That is about all there is to know that is not obvious. If I were to include
obvious things like what each command at the main menu does, then this
would not be a "condensed" file. Happy Hacking and best of luck on your BBS
-=( Tommy )=- 2 year Blue Board veteran.
Additional note, May 1995: As a matter of trivia, I once printed out a
disassembly of Blue Board's main executable code, with an ASCII sidebar
so the text messages would be visible, on an MPS-803 printer with NO
tractor feed! It took four hours and I had to readjust the paper at
least a dozen times. My roommates thought I had slipped a gear (again)
and I thought the MPS would blow a pin. I still have the 300+ page
disassembly to this date, as a memento of my personal Golden Age of
BBSing. That listing helped me make the most radical sysop mods ever
made to Blue Board and later served as the fundamental philosophical
principle behind today's THC and the default appearance of NanoBBS.
Those were the days!
-=( T )=-
The entire AOH site is optimized to look best in Firefox® 3 on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986- AOH
We do not send spam. If you have received spam bearing an artofhacking.com email address, please forward it with full headers to email@example.com.