USE CURSOR KEYS TO SCROLL TEXT. USE CURSOR KEYS TO SCROLL TEXT. 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 _,integer%) Sender's ID (read using BASIC's INPUT _,string$) Sender's name padded with spaces to 20 characters (read using BASIC's INPUT _,string$) - may be null if the sender wishes to remain anonymous Number of undeleted messages (read using BASIC's INPUT _,integer%) and then for each message: Destination ID (read using BASIC's INPUT _,string$) Deleted flag (read using BASIC's BGET _) - 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.