The 8BS messaging system
------------------------
Version 1.00
------------
by Steven Flintham (15A)
------------------------
Introduction
------------
The 8BS messaging system aims to
provide a convienient method for
members to send in messages (both 999
and private) and program comments. 8BS
members use a program provided on this
disc to create their messages and then
send the resulting message file to the
editor on their submission disc.
The editor then uses another program to
read the message files and collect all
the messages, ready to be copied onto
the next issue.
Basic instructions
------------------
When run, the program will ask you to
insert your 8BS submission disc. After
doing so, you should then press SPACE.
Note that the program assumes that the
submission disc is in the same format
as the disc you ran the program from.
For example, if you run the program
from an ADFS disc it will assume that
your submission disc is in ADFS as
well. In practice, you will probably
not need to worry about this.
You must NOT take your submission disc
out of the drive until you have
finished using the program. You must
also avoid pressing BREAK, particularly
when editing a message. To be on the
safe side, only press BREAK when at the
main menu or after quitting, although
it will probably be safe to do so at
any time when the disc drive is not
active.
If you have not created any messages
before, you will be asked for your user
ID and name. If you don't know your
user ID, it is displayed in the top
left-hand corner of the 8BS disc menu.
Note that you do not have to enter your
name if you wish to remain anonymous
(simply press RETURN without entering
anything when you are asked for it) but
that if you do enter your name it will
be placed at the top of all your
messages so you should enter (for
example) Steven Flintham rather than
STEVEN FLINTHAM.
Don't forget that you don't have to
create all of your messages at once -
because they are stored on disc you can
come back to them at a later date.
However, you must start with a blank
message file when you start creating
messages for a new issue, otherwise you
will ending up sending the old messages
twice.
Having entered your user ID if
necessary, you will be presented with
the main menu. This has several
options, which are covered here one by
one. In general, pressing ESCAPE will
always return you to the main menu.
New message
-----------
This allows you to create a new
message. On selecting it, you will be
asked to enter the ID of the user who
is to receive the message. You can:
1. Enter an individual member's ID, in
which case he/she will receive the
message privately
2. Enter 999, in which case the message
will end up in the "Messages and ads"
section
3. Enter CCC, in which case the message
will be treated as comments on a
program
Once the destination ID has been
entered, the main editing screen will
appear. The program automatically puts
a heading at the top of the message.
When you enter the editing screen the
cursor is automatically positioned so
that you can type in either the subject
of the message or the title of the
program to which the comment relates,
depending on whether the message is a
program comment or not.
Editing a message
-----------------
In editing mode you can use the cursor
keys to move around the message.
Pressing SHIFT with the left or right
cursor keys will move you to the start
or end of the current line and pressing
SHIFT with the up or down cursor keys
will move you up and down a page at a
time.
Pressing RETURN will move the cursor to
the left hand edge of the next line
down and will automatically place a
teletext colour code there is the
previous line started with one. DELETE
will delete backwards as in a
wordprocessor, closing up the gap
created by moving the rest of the line
to the left. You can insert a space at
the cursor by pressing CTRL-f6.
You can type normally, with word wrap
provided, but this only functions when
you are typing 'forwards' - if you are
editing the text, you may have to
manually arrange the text.
You can insert a line above the current
line by pressing CTRL-f7, provided
there is enough room in the message -
the computer will beep if this
situation arises. CTRL-f8 will delete
the current line and move the rest of
the message up to fill the gap.
Teletext colour codes, which alter the
colour of the text, can be entered by
pressing f0-f6. These take up one
character space. I would suggest that
you put a teletext colour code at the
start of each line - this will be done
automatically most of the time, but you
will need to do it yourself at the
start of the first line and at the
start of any lines you wish to be in a
new colour.
When editing you can press CTRL-f9 for
help.
Note that editing the user ID in the
"To:" line at the top of the message
will NOT change the destination of the
message. You must edit the "To:" line
and also press SHIFT-f9 and enter the
new destination ID.
View/edit the messages
----------------------
This allows you to browse through the
messages that you have created. Use the
cursor up and down keys to scroll
through each message and the cursor
left and right keys to move from
message to message. Note that the
recipient of the message is shown at
the bottom of the screen - this is the
destination which will actually be used
by the editor.
You can delete a message here by
pressing D and answering Y to the "Are
you sure?" question. A limited amount
of recovery of deleted messages is
possible, but you should not rely on
this.
Pressing E will allow you to edit a
message. Once this has been selected,
the program behaves as described in the
section "Editing a message" above.
Pressing f0 will display a help screen
when viewing.
Tidying the messages
--------------------
Without going into details (see later
if you want them), this can be
described using an analogy. Suppose you
are using a ring binder for some work.
You can add new pages and modify pages
already in the binder. When you want to
get rid of a page, instead of taking it
out of the folder you just put a big
red X across it. When the folder starts
to bulge a bit and you find all these
unwanted pages getting in the way, you
might actually go through the folder
and throw all the X-ed pages in the
bin. This is what the program does -
when it wants to get rid of a message,
it just puts the electronic equivalent
of an X over them. The tidy option goes
through the message file and actually
removes the messages which have been
marked in this way.
Re-enter your user ID/name
--------------------------
This allows you to re-enter your user
ID and name if you typed them in
incorrectly when you first ran the
program. If you do have to do this, you
will have to edit any messages you
created earlier, as these will still
have your incorrectly entered ID and
name on. As when first using the
program, you do not have to enter your
name if you do not wish to do so.
Quit
----
This returns you to BASIC.
More advanced use
-----------------
Advanced editing facilities
---------------------------
In addition to the editing facilities
described above, the program also
supports most of the effects possible
in mode 7.
Graphics are supported to a limited
extent. Graphics colour codes can be
inserted using SHIFT-f0 to SHIFT-f6 and
a "pixel toggling" mode can be entered
by pressing f9. This allows you to
toggle the pixels of the graphics
character at the cursor using Q, W, A,
S, Z and X. You can still scroll around
the message using the cursor keys but
no text can be entered. Press f9 again
to exit pixel toggling.
f7 and f8 insert steady and flashing
codes respectively, and SHIFT-f7 and
SHIFT-f8 insert coloured and black
background codes. CTRL-f0 and CTRL-f1
insert contiguous and separated
graphics codes, CTRL-f2 and CTRL-f3
insert hold and release graphics codes
and CTRL-f4 and CTRL-f5 insert double
and single height codes.
Note that you must enter the text on
both lines yourself when using double
height. This is not done automatically
as this might lead to a line of text
being deleted if the double height key
was pressed accidentally.
Tidy messages
-------------
When you delete a message, the program
just sets a flag in the message file
which says "ignore this message". These
messages are not displayed when
browsing and will only reveal their
presence by slightly slowing things
down when you move from one message to
the next. However, they also increase
the file size and so, for either of
these reasons, you might want to get
rid of them. The tidy option recreates
the message file with these deleted
messages missing.
It is worth noting that although the
collection program used by the editor
happily ignores deleted messages, he
could (theoretically at least!) look
through your message file and see any
deleted messages which you had not
tidied away. If you are feeling
paranoid, you might therefore want to
make sure you tidy the file before you
send the submission disc off! Doing
this is probably be a good idea anyway,
as it will slightly reduce the time
taken for the editor to handle the
messages.
Undelete messages
-----------------
This option will remove the deleted
flag from any messages which have one.
It will therefore enable you to get a
message back after you have deleted it,
provided the file has not been tidied
in the meantime. However, you should
only do this as a last resort because:
1. The program will recover EVERY
deleted message, and there will almost
certainly be a lot of them (every time
a message is edited the old copy is
marked as deleted, so just editing an
existing message creates a deleted
message). This means that you will have
to re-delete a lot of messages which
you definitely don't want.
2. The program only allows 25 undeleted
messages in a message file, but there
is no limit on deleted messages.
Therefore, as you undelete the number
of messages in the file approaches the
maximum. Once there are 25 undeleted
messages, no more can be undeleted and
so you may not be able to get back the
message you wanted. You can reduce the
risk of this happening by tidying the
file regularly to keep the number of
deleted messages in the file as low as
possible.
As stated above, this really is a last
resort - avoid using it if at all
possible.
Technical information
---------------------
If you want to write utilities of your
own to modify the message file the file
format is given here. You could, for
instance, write a utility which would
display each deleted message in turn,
ask if it was the one you wanted and
only undelete it if necessary - this
would overcome many of the problems
mentioned earlier, and the only reason
I didn't do it like this in the program
itself is because of memory
constraints. I might write some
utilities for the message files myself,
and no doubt at least one or two 8BS
members will have some ideas.
The message file is now called !Mesg -
it was called !Mess in versions before
1.00. The old file format did not
include a version byte and so a new
filename was needed to allow the
collection program to recognise the new
format. Further filename changes should
not be required as the version byte can
now be used to indicate a new file
format. It is expected that the earlier
file format will rapidly become
obsolete and so your programs need not
handle !Mess files, although you may
handle them if you wish.
The current version of the message
collection program used by the 8BS
editor recognises both formats to allow
for a changeover period, although later
versions will almost certainly handle
only !Mesg files - you should therefore
avoid writing programs which create
!Mess files.
The current file format is:
Version byte - 0 for this format (read
using BASIC's BGET #<channel>,integer%)
Sender's ID (read using BASIC's INPUT
#<channel>,string$)
Sender's name padded with spaces to 20
characters (read using BASIC's INPUT
#<channel>,string$) - may be null if
the sender wishes to remain anonymous
Number of undeleted messages (read
using BASIC's INPUT
#<channel>,integer%)
and then for each message:
Destination ID (read using BASIC's
INPUT #<channel>,string$)
Deleted flag (read using BASIC's BGET
#<channel>) - 0 for undeleted, 255 for
deleted)
The message itself - pure mode 7 "text"
including control codes if appropriate
and terminated by a 152 byte
Your program must complain if the
version byte is not zero, as this will
indicate that a new file format is used
in the file - failure to do so may
result in program crashes when the file
format is changed.
Note that since deleted messages are
not included in the count at the
beginning of the file, if you are
reading the messages in a FOR-NEXT loop
you must use something like:
FOR read%=1 TO num`of`messages%
REPEAT
INPUT #chan%,dest$
deleted%=BGET #chan%
IF deleted%=255 THEN REPEAT:byte%=BGET
#chan%:UNTIL byte%=152:REM Skip deleted
messages
UNTIL deleted%=0
REM Read the message and do whatever
you want with it
NEXT
i.e. you must read any deleted messages
without it taking a whole pass around
the loop.
Of course, this problem will not arise
if you use a REPEAT:REM read
message:UNTIL EOF #chan% construct.
Although these examples use BASIC,
there is nothing to stop you from using
any language you want, provided you can
interpret the strings/integers stored
in BBC BASIC format.