__                                      __
\/ Tommy's Holiday Camp +1 604 361 4549 \/

THC Presents...

Condensed Documentation for Blue Board (64) 3.0/Modified

With information concerning the special mods attached to this
software.

-----------------------------------------------------------------------------
Blue Board:

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

     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
     your users.

Blue Board Files:

     The following is a list and explanation of the files that come with
     Blue Board:

     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
                     they are.

     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
                 linefeeds prompt.

        CTRL-B:  Force fake ring detection.  Useful for some direct-serial
                 logons.

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

        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
                 a terminal.

        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.

     Online Keys:

        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.

     Poke 30208
     +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
                        in BCD
     143                Access level required to view other users access level
                        in BCD
     144                Access level required to enter hidden message base
                        in BCD
     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
                        in BCD
     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
venture,

                -=( 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 )=-