used. Upon loading and executing the editor the SYSOP will be asked a group of questions. 1. Log-on type? This specifies how far you want a new caller to get onon the system. Type 1 - No access unless the user has an entry in the userlog. Type 2 - User may register if not in the userlog but will not be able to access the main system. Type 3 - Will operated like type 2. User will be shown NEWUSER/TXT if available. Type 4 - User may register if not in the userlog and have access to the main board. 2. Menu to enter in? This is the menu that will be loaded when a user gets past logon. This menu number is initially set in the user's log entry when first logging on. This may later be changed by the user through the Menu Control Editor. 3. New user time-out? This sets the time a new user is allowed to use the system. The value may be from 0 to 255. Time is figured as 5 minutes times the value so 4, for instance would be 20 minutes. 4. New user privilege? Sets the priviledge level of a new user. May be any value from 0 to 255. 5. New user P1 flags? Sets any flags desired for a new user. Reply with the actually set of flags like "00000000". Only a "0" and "1" is allowed. 6. New user P2 flags? Same as P1 flags, except this is for the last 8 of 16 flags. 7. Check for messages? If answered yes the system will check to see if there are any messages on the system for that user after logging in and before loading the main board routine. If answered no then this routine will be skipped and the system will go directly to the main board routine after logging in the user. 8. User prompt? Sets the new users prompting level. Refer to the information on the Menu Control Editor for the different prompts. 9. Trace user's operation? The tracer option maintains a log of a user's operation while on the system. The file to which the information is printed is determined by this flag. The options are: 0 - No trace 1 - Cassette (reserved) 2 - Disk drive 3 - Printer (available if using the PAK.) 10. Drive for HDR/SYS? Specify which drive the message header is on. 11. Drive for MSG/SYS? Specify which drive the message text is on. 12. Drive for USERL/SYS? Specify which drive the userlog is on. 13. Drive for MENU/SYS? Specify drive for the board's menu file. 14. Drive for TRACER/SYS? Specify which drive for the system's trace file if used. 15. Drive for REGISTER/STS? Specify drive for registration file. After answering all questions the system will show all the selections. If they are correct then the file will be saved to the disk's directory. This will be the system disk that must be in drive 0. THIS SYSTEM DISK MUST BE IN DRIVE ZERO. ANY DISK USED FOR THE SYSTEM IN DRIVE 0 MUST HAVE A CONTROL FILE ON IT OR THE PROGRAM WILL NOT RUN. To save a file type "YES" at the first prompt "Ready to Save?". Insert the disk that will by the Drive 0 system disk. At the next prompt "Ready to save" type "Y" and return. SYSTEM MENU FILE EDITOR The next step is to use the System Menu File editor (SMF/EDI) to set up the various menus. NOTE: if the on-line editor is used the RS232 driver must be resident in memory. The menu control file contains all the information needed to present a user with a choice of commands. Each menu has a number, and the number may be from 0 to 255. When a menu is printed, the number of that menu will appear with it's name just before the various commands. The number of the menu will appear in "*"'s. Using this editor the system is told not only which commands should be available but what the privilege requirement is, and if a user flag must be set to see this menu or command. NOTE: To be safe, there should always be a menu 0, with 0 privilege and NO flags set. This will prevent a user from having difficulty upon certain system errors or errors in setting up the new user privileges. Upon loading and running the program the following menu will appear: <1> Create a new menu <2> Edit existing menu <3> Exit editing <4> Return to BBS <1> Create a new menu. Choosing this option will allow the sysop to create a menu. NOTE: THE SYSTEM WILL ASK IF YOU DESIRE TO KILL THE OLD MENU FILE. If answered "yes" THE COMPLETned to the "COMMAND>" prompt and may perform any of the valid commands. The command help table may be printed by pressing "?". LOOKTRAC/BAS This routine is provided to allow the viewing and printing of the tracer file. The file may be printed to the screen or the printer. The trace file will keep up with a caller's name and where he is calling from. It will also note the time he starts and ends. All main commands issued will be recorded along with the menu it was issued on. The system will also note any loss of carrier or system errors. LOOKREG/BAS This routine is provided to allow the viewing and printing of the REGISTER/SYS file. The file may be printed either to the screen or the printer. The registration file will contain the name, address, phone number and password requested by the user. There is a search routine for locating a perticular name within the file. e. The file may be printed either to the screen or the printer. The reÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ STARTING UP WITH THE EDITORS We will start going through all the editors to set up and get the board on line. If you are in a hurry to get on-line a basic system has been provided and set up for one drive. Refer to the "Quick Start" section. I strongly urge the reading and use of the following information first. File Texts There are three files that may be requested by the system while a user is logging on. One of them will always be requested by the system and the other two will be requested if set by SCF/EDI. All three files are for information forthe various callers and must be in ASCII. No buffer control is available. Use the program COCOBUG/BAS to easily set up and customize your files. SIGNON/TXT: This file is requested by the system right after the copyright header when a caller first accesses the system.It may, like all three files, be any length. It may not be aborted by the caller but is required reading. The system will continue if the file does not exist. This file must be on drive 0. NEWUSER/TXT: This file comes right after the system's notification to the caller as to how much time he has and what type of caller he is. Only those callers who are registered as NEW callers will see the file, and the system operator must also request that the file be shown through SCF/EDI. While the text is being listed it may be aborted by sending a "S". The file may be on any drive. POSTLOG/TXT: This file will be displayed just before loading the main board program. The system must be told to look for the file with SCF/EDI. It will be aborted when the system receives the "S" character. This file may be on any drive. NOTE: There are two versions of the various editors when available. If there is a space before the editor's name then the RS232 drive must have been loaded into memory. It need not be executed but must be residing in memory. These routines provide operations from a remote terminal. System Control File Editor The System Control File editor (SCF/EDI) is the first editor to use in setting up the system. This editor creates a file that tells the system certain functions. The editors file is stored on disk in an open area of the directory file so that no additional disk space will be one or change menu number and retain all commands. The privilege level and flags sets those values for that perticular menu. A user must meet or exceed these specifications to be able to access it. When asked if the board is postable the system sets a flag to tell the board program whether or not the menu may be listed as one that may have a message posted to it in reply or as a new message. This prevents the possiblilty of a user who has access to that menu from posting a message to it if there is no read command available for that number. <6> DELETE A COMMAND. Deletes a command from the list. The command will be shown and verification requested before deleting that command. <7> EXIT AND WRITE. Exits the editor and writes the new or modified menu to the menu control file. Returns to the first menu. <8> EXIT. Exits the editor and returns to the first editor menu. No data in the menu file is modified. USERLOG EDITOR The System Userlog Editor (SUL/EDI) is used to modify a user's privilege or other pertinent information. Upon loading and running the editor the following menu will appear: USERS: (NUMBER) EARCH O TO USER # EXT AST ENTRY ODIFY FIELD EGISTER CTIVATE ELETE

RINT LISTING ACKUP NTER USER SER CLASS UIT ARD COPY COMMAND> NOTE: A USER'S INFORMATION MUST BE INITIALLY PRINTED ON THE SCREEN BEFORE ANY MODIFICATIONS MAY BE MADE. EARCH Searches for a user by string comparision. After pressing the "S" the system will prompt for the test string. The test string may be any target in the name or from. Use SHIFT-CLEAR to separate name and from in text string. O TO USER # Jumps to user specified. Note: The user number will change when the userlog is backed up and there are deleted entries. EXT Goes to the next user in the log. AST ENTRY Goes to the previous user in the log. ODIFY FIELD Used to change one of the user listings information. Note: Some listing may not be modified. After choosing "M" the system will ask for field to be modified. See the section on field modification. EGISTER Sets the registration flag where the user will be classified as either a New, Probationary or Registered user. This has no bearing on the operation of the system for that user as all those controls are in the command and user privilege information, but the user may be shown a text file at log-on that only new users will see. CTIVATE "Un-deletes" a user from the log if deleted by accident. ELETE Flags a user to be deleted from the log the next time a Backup is performed.

RINT LISTING Prints the user's record on the screen and shows all pertinent information in his file. ACKUP Backup userlog file. Copies entries over to the file USERL/BAK. While copying the system will not copy over any entries that are flagged to be deleted. The system will ask if you desire to deleted and copy the new file over to the system's userlog file USERL/SYS. NTER USER Allows entering a user into the log without that user having to call the system and register. SER CLASS UIT Exit the editor. ARD COPY Prints the full userlog entries to the printer. Modify Field NOTE: A USER'S INFORMATION MUST BE INITIALLY PRINTED BEFORE ANY MODIFICATION MAY BE DONE. THIS WILL NORMALLY BE DONE EXCEPT WHEN FIRST RUNNING THE EDITOR. When choosing the ODIFY option the system will ask for which field to be modified. A user's entry is formatted as follows: USER # (number of record) A) (user name) B) (password) C) (calling from) D) (registration flags) E) (privilege level) F) (number of times called) G) (first 8 user flags) H) (second 8 user flags) I) (initial log on menu #) J) K) L) (user prompting level) M) (time out value) N) O) (last msg received) P) (caller # on last call) Q) (last time on) Choosing one of the fields to modify the system will print the original data. If is pressed by itself the data will not be changed, while typing the modifications that data will be modified. The user's listing need not be printed out after each modification. After perfoming a modification the sysop is returng the PAK.) 10. Drive for HDR/SYS? Specify which drive the message header is on. 11. Drive for MSG/SYS? Specify which drive the message text is on. 12. Drive for USERL/SYS? Specify which drive the userlog is on. 13. Drive for MENU/SYS? Specify drive for the board's menu file. 14. Drive for TRACER/SYS? Specify which drive for the system's trace file if used. 15. Drive for REGISTER/STS? Specify drive for registration file. After answering all questions the system will show all the selections. If they are correct then the file will be saved to the disk's directory. This will be the system disk that must be in drive 0. THIS SYSTEM DISK MUST BE IN DRIVE ZERO. ANY DISK USED FOR THE SYSTEM IN DRIVE 0 MUST HAVE A CONTROL FILE ON IT OR THE PROGRAM WILL NOT RUN. To save a file type "YES" at the first prompt "Ready to Save?". Insert the disk that will by the Drive 0 system disk. At the next prompt "Ready to save" type "Y" and return. SYSTEM MENU FILE EDITOR The next step is to use the System Menu File editor (SMF/EDI) to set up the various menus. NOTE: if the on-line editor is used the RS232 driver must be resident in memory. The menu control file contains all the information needed to present a user with a choice of commands. Each menu has a number, and the number may be from 0 to 255. When a menu is printed, the number of that menu will appear with it's name just before the various commands. The number of the menu will appear in "*"'s. Using this editor the system is told not only which commands should be available but what the privilege requirement is, and if a user flag must be set to see this menu or command. NOTE: To be safe, there should always be a menu 0, with 0 privilege and NO flags set. This will prevent a user from having difficulty upon certain system errors or errors in setting up the new user privileges. Upon loading and running the program the following menu will appear: <1> Create a new menu <2> Edit existing menu <3> Exit editing <4> Return to BBS <1> Create a new menu. Choosing this option will allow the sysop to create a menu. NOTE: THE SYSTEM WILL ASK IF YOU DESIRE TO KILL THE OLD MENU FILE. If answered "yes" THE COMPLETE MENU FILE WILL BE DELETED WITH ALL MENUS. After answering the prompt the editor's menu will appear. <2> Edit existing menu. This function will allow the sysop to edit any menu in the file. If an improper menu number is given then the first menu will reappear. <3> Exit editing. Exits SMF/EDI and goes into BASIC. <4> Return to BBS. Exits SMF/EDI, loads and runs the main board system. After passing the first menu the sysop will be presented with the editor menu. The following menu will appear: #(menu) (menu name) COMMANDS: (number) <1> ADD A COMMAND <2> CHANGE A COMMAND <3> LIST MENU <4> ADD/CHANGE BOARD MENU <5> LIST/EDIT HEADER <6> DELETE A COMMAND <7> EXIT AND WRITE <8> EXIT The first step is actually function #4, but we will look at them in the order listed. <1> ADD A COMMAND After choosing #1 the system will ask for "INSERT AFTER: ". Pressing "L" will add the command to the end of the list, or the sysop may specify which command the new one will come after. The system will ask for the needed information of each command. TEXT: (enter command text up to 16 characters) KEY: (enter key that the system will look for to execute the command.) PRIV: (privilege level required to see this command.) P1: (first 8 of sixteen flags. Enter either "0" or "1" only.) P2: (Same as P1 except second 8 flags.) TYPE: (type of command) DATA: (optional data required by some commands.) <2> CHANGE A COMMAND. The function allows editing of a command. You will be asked which command number you wish to edit. While the various command information is presented pressing will retain the original entry while typing new information will replace the original. <3> LIST MENU. Allows the listing of each command or the text as it would appear on the system under full text prompting. While looking at the various full command listing use a "Q" to exit the listing, or any key to continue to the next one. <4> ADD/CHANGE BOARD MENU. Option 4 determines what menu number is entered and whether it is a newllows the user to change the password that he uses to access the system. STARTING UP WITH THE EDITORS We will start going through all the editors to set up and get the board on line. If you are in a hurry to get on-line a basic system has been provided and set up for one drive. Refer to the "Quick Start" section. I strongly urge the reading and use of the following information first. File Texts There are three files that may be requested by the system while a user is logging on. One of them will always be requested by the system and the other two will be requested if set by SCF/EDI. All three files are for information forthe various callers and must be in ASCII. No buffer control is available. Use the program COCOBUG/BAS to easily set up and customize your files. SIGNON/TXT: This file is requested by the system right after the copyright header when a caller first accesses the system.It may, like all three files, be any length. It may not be aborted by the caller but is required reading. The system will continue if the file does not exist. This file must be on drive 0. NEWUSER/TXT: This file comes right after the system's notification to the caller as to how much time he has and what type of caller he is. Only those callers who are registered as NEW callers will see the file, and the system operator must also request that the file be shown through SCF/EDI. While the text is being listed it may be aborted by sending a "S". The file may be on any drive. POSTLOG/TXT: This file will be displayed just before loading the main board program. The system must be told to look for the file with SCF/EDI. It will be aborted when the system receives the "S" character. This file may be on any drive. NOTE: There are two versions of the various editors when available. If there is a space before the editor's name then the RS232 drive must have been loaded into memory. It need not be executed but must be residing in memory. These routines provide operations from a remote terminal. System Control File Editor The System Control File editor (SCF/EDI) is the first editor to use in setting up the system. This editor creates a file that tells the system certain functions. The editors file is stored on disk in an open area of the directory file so that no additional disk space will be used. Upon loading and executing the editor the SYSOP will be asked a group of questions. 1. Log-on type? This specifies how far you want a new caller to get onon the system. Type 1 - No access unless the user has an entry in the userlog. Type 2 - User may register if not in the userlog but will not be able to access the main system. Type 3 - Will operated like type 2. User will be shown NEWUSER/TXT if available. Type 4 - User may register if not in the userlog and have access to the main board. 2. Menu to enter in? This is the menu that will be loaded when a user gets past logon. This menu number is initially set in the user's log entry when first logging on. This may later be changed by the user through the Menu Control Editor. 3. New user time-out? This sets the time a new user is allowed to use the system. The value may be from 0 to 255. Time is figured as 5 minutes times the value so 4, for instance would be 20 minutes. 4. New user privilege? Sets the priviledge level of a new user. May be any value from 0 to 255. 5. New user P1 flags? Sets any flags desired for a new user. Reply with the actually set of flags like "00000000". Only a "0" and "1" is allowed. 6. New user P2 flags? Same as P1 flags, except this is for the last 8 of 16 flags. 7. Check for messages? If answered yes the system will check to see if there are any messages on the system for that user after logging in and before loading the main board routine. If answered no then this routine will be skipped and the system will go directly to the main board routine after logging in the user. 8. User prompt? Sets the new users prompting level. Refer to the information on the Menu Control Editor for the different prompts. 9. Trace user's operation? The tracer option maintains a log of a user's operation while on the system. The file to which the information is printed is determined by this flag. The options are: 0 - No trace 1 - Cassette (reserved) 2 - Disk drive 3 - Printer (available if usibuffer will be opened when the menu is listed, it takes on a different meaning when the code number is greater than 2. The format for the data statement in these cases is: BDPxx where, B - download type D - drive to access for downloads P - if a "P" is included then the user may not download any program with an extention of "/SYS", "/BAK" or "/BIN". Type 3 This type limits the user's access to only the drive specified in DATA. If a "P" is included then the user may not download any program with extentions noted in the format above. Type 4 This type allowsthat is specified in DATA is ignored. A "P" restriction may also be used in this type. Under both types, the user will be asked for the buffer control he desires when the file is downloaded. All files that are downloaded must be in ASCII. To download a machine language file it must first be converted to HEX using FCONV/BAS. One other command is available. When prompted for the file to download a directory may be obtained and listed by using the DIR command for the drive desired. If a user is downloading under type 3 then he will only be be shown a directory of the drive that is his authorized to use. The DIR command will show ALL files on the disk specified in data. UPLOAD COMMAND Upload type "U" NOTE: UPLOADS SHOULD ONLY BE MADE AVAILABLE IF THE SYSTEM IS USING A RADIO SHACK RS232 PAK, OR SIMILAR EXTERNAL RS232 PORT. THE SYSTEM CAN BE MODIFIED TO DO AN ACCEPTABLE UPLOAD BY TURNING OFF THE "ECHO" AND ONLY SENDING THE ">" PROMPT TO THE USER IF THE PAK IS NOT USED. All uploads are the same for any menu, but there are options available to the SYSOP determined by DATA. The format of DATA is: TDxxx where, T - type of upload D - drive to upload to xxx - ignored by system The following types are available: Type 1: Upload to specified drive in DATA. User provides 8 character file name and the system adds "/UPL" extension. If file exist already it may not be overwritten. Type 2: User specifies file name and extention. Upload goes to drive specified in DATA. No overwrites permitted. Type 3: User specifies file name, extension and drive for file to write to. If file already exist it may not be overwritten. Type 4: User specifies file name, extension and drive for file to write to. If file exist it WILL BE overwritten. SYSOP OPTION COMMAND These type "hooks" are available for the sysop to customize the board. These should be used instead of those noted as reserved as those reserved have future commands planned. Type "+" Line # 43 Type "," Line # 44 Type "-" Line # 45 Type "." Line # 46 Type "/" Line # 47 The system user a "hook" for each type and the line number for that hook is the ASCII value of the character. Replace the "RETURN" with a GOTO to point to the start of your routine. Always end your routine if placed within COBBS/SYS with a RETURN statement. It would be adviseable to use the hooks to load and run your own programs as the main board program uses just about all available memory. Check lines 600-699 for key input routines and lines 9700 - 9799 of USER/SYS for carrier detect routines. You might want to merge other housekeeping routines in to maintain user control and security. MISCELLANEOUS COMMANDS Type "'" Command to print pre-written message. May be used to set up a dummy file, or change a command's type yet still show the command prompt in the menu. DATA determines what is printed. 0 - "File not available at this time." 1 - "Sorry, you are not authorized." Type "*" Give time command. Will show the user start time, end time and time on system. Type "=" Print system configuration. Will show the user his configuration, and clear screen codes. Type "B" Type "C" Chat command. Will page system with audio tones, then prompt the user to continue using the system until the SYSOP breaks in. Entry into chat is by pressing the . To exit chat mode press "SHIFT-CLEAR". Type "F" Type "H" Type "I" Type "J" Type "K" Kill message command. Will allow user to kill any message and is not dependant upon which menu, just message number. Only a message TO or FROM a user may be KILLed by that user, except for a user with a privilege of 255 who may kill any message. Type "P" Password change command. A list HELP file. If the file name was BBS then the file the system will look for is "HELPBBS/TXT". Type "0" List HELP file. Opens and list file names HELPname/TXT. Type "1" List INFO file. Type "2" List TEXT file. Type "3" List BULL file. MENU CONTROL COMMAND Type "@" This command is used to permit the user some controls in how the menus list and which menu he will access the system when logging on. The first part is the Menu Control Editor. This allows the user to specify which menu he will initially use after getting through the log on routine. It is normally set to menu 0 through SCF/EDI for new users, but may be changed by the user to any menu that he is authorized. If changed, the NEXT TIME the user calls he will automatically start on that menu after logging in. The second part of this command allows the user to determine how the various menus will prompt him. The user will have the following options: 1. Full text where the user sees the complete menu text. 2. Abbreviated text where the user sees the header information, and the first word of each command. 3. Key prompts where the user sees the menu number, name and the keys of the commands available to the user. 4. Command only where the user only sees the menu number/name and the "COMMAND: " prompt. Even if an user choses a higher menu prompting, if he gets lost or cannot remember what the various commands are, he may hit the carriage return key to get a full listing of the menu. DOWNLOAD COMMANDS Download Type "D" The following discussion explains download format when using a buffer code of 0 and 1. This format requires more work but gives the system operator a download menu option and control over who has access to each program. Type 3 and 4 gives more direct access to program files and are discussed later. This is the standard download of the board, and all files must be in ASCII. A good understanding is required of the way the system determines the file names. The download type has a privilege level and 16 flags as do all commands of CoBBS. The DATA is formatted: BNAME where, "B" is the buffer code. "NAME" is the download's one to four letter name. The best way to understand how the downloads function is to take an example. Consider the following command specification. Type: D Priv: 30 P1: 10000000 P2: 00000000 DATA: 0COCO The type is "download", the privilege required is 30, and the user must also have the first flag of his userlog entry set to see this command. DATA is "0COCO". The buffer number is zero, and this means that when the directory of programs available is listed the user's buffer will not be opened and closed automatically. A "1" as a buffer number would specify "open buffer, list directory, close buffer." The download's name is COCO. The system takes the name "COCO" and adds the following: "DOWN" + "NAME" + "/MNU" so the name of the text that contains the directory of programs available is "DOWNCOCO/MNU." The directory should contain a program number or designation for each item listed. An example of a download directory is: 1. INVENT/BAS Program to maintain your inventory. 2. DIRPRINT/BAS Print out your disk directory. 3. STREK/BAS Excitement of Cpt. Kirk. The user will then be prompted for the number to download. This is why you want to set up a directory with preferably numbers. The download command takes this number to specify the file to be downloaded. The format for this is: "NAME" + "number" + "/DOW" So, for our example if the user choses number "1" then the file that the system will look for will be: "COCO1/DOW" After determining all this, the user will then be prompted as to whether he wants to use buffer control or not. If he chooses "no" then the system will prompt him to get ready and open buffer, and after a short pause, the file will be listed. The system will pause also at the end of the listing. Otherwise, the system will open and close the buffer for him. SYSOPS should include at the end of each file the statement " REM - END OF FILE" for those who do not have auto buffer control to know that the download is ended and close his buffer before the system continues. There is a totally different type of download available to the system operator and is set up by using a "3" or "4" in the buffer code of the DATA statement. While a buffer number of "1" or "0" determines whether or not the user's Read Type "R" This is the standard user read command. The user may read any message that is public, and any private message if TO or FROM that user on the menu specified in DATA. Read Type "V" This READ command permits the reading by any user authorized to read all messages on the menu specified in DATA. Private message may be read even if they are not addressed TO or FROM the user. Read Type "W" This READ command permits the reading by any user of all public message on AND below the menu specified in DATA. It also allows the reading of any private messages that are TO or FROM that user. Read Type "X" This is the SYSOP type of read. It allows the user to read ALL messages, public and private, on OR BELOW the menu specified in DATA. Private messages may be read even if they are not addressed TO or FROM the user. SCAN COMMANDS These types allow the scanning of the message headers. The user is given the option of going to the next message, reading the message's text or stopping the scan function. Note: A privilege of 255 allows the user to DELETE the message from the scan prompt, even if the option is not shown in the list of commands. Scan type "S" This is the standard scan type. It allows the user to scan message headers on the menu specified in DATA. The user will see any public message and any private message if it is directed TO or FROM him. Scan type "7" This allows the user to scan message headers of any message public or private even if the private message is not TO or FROM him on the menu number specified. Scan type "8" Allows the user to scan all public messages ON or BELOW the menu number specified in DATA and also any private message if the message is TO or FROM him. Scan type "9" Allows the user to scan all public and ALL private, even if not TO or FROM him of any menu number on or below that specified in DATA. SYSOP scan would specify menu 255 to read ALL messages. SYSTEM MOVEMENT The following commands are used to move between menus and also out of the system. Type "A" This is considered an ABORT command. This will exit a menu and go to another one based on DATA. The following types are available.: 0 - return to menu the user last came from. 1 - return to menu specified as the log on menu. 2 - return to menu 0 Type "E" Command to Exit and run basic program specified in DATA. Note: if no extention is given on a file name it is assumed to be /BAS. Type "G" This is a GOTO command. The system will "goto" the menu number specified in DATA. Type "Q" This command is the same as "END". It stops the board program and puts the user into BASIC. DATA: 0 - Exit immediately 1 - Exit with password. The format is TPASS where T=type of quit PASS=4 character password if type 1. off the system, command. DATA specifies whether the user is asked if he wants to leave a SYSOP message or not. DATA types are: 0 - terminate immediately 1 - Allow the user to leave a private message to the SYSOP. The message will be put on number 255. Type "Z" Restart BBS. This command loads USER/BAS and restarts the log on. Gives the user the option to re-log on without having to terminate and call back. LOAD COMMANDS The following types are considered "loading" commands that load the various system editors. When load through one of these commands a flag is set which allows the user access to the editor, but when finished he may only terminate, restart or return to the BBS. The user will not be allowed into BASIC from the editor. Only use this command with editors modified for online use. Type "!" Loads SMF/EDI and runs Type """ Loads SMH/EDI and runs Type "#" Loads SUL/EDI and runs Type "$" Loads SCF/EDI and runs Type "%" Type "&" Type "(" Load LOOKTRAC/BAS and runs. Type ")" Load LOOKREG/BAS and runs LIST COMMANDS These commands are used to list text files for various system use. They are all handled the same way, the difference being the first four letters of the file name. The format of DATA is: BNAME where, B - buffer control 0 - no buffer 1 - auto buffer control NAME - one to four letter name of file. The system adds the four letter type name to the one to four letter name of file plus the extention "/TXT". A type "0" for instance is aog on by pressing the "@" key. Enter your name as: "SYSOP; " Be sure there is a space after the semi-colon. Your password is "PASSWORD". Use the change password routine or the userlog editor to modify you password. I have included my own entry in the userlog along with full access privilege. This is not a requirement for using this software, but I do ask that you maintain enough access for me to be able to call your system and leave information on upgrades or whatever for you eyes only. Always keep backups of the master and all system disks. How often you make backup of the disk on-line depends on the type of use your system receives. Backups should be done with a "fresh" system. Power down and back up. Always backup before a message purge and possibly when modifying in the userlog to be safe. A few extra minutes can save you some grief when a disk has some type of error on it or is worn out. SYSOP KEYS Up Arrow Prints user on line at the time. Does not interfere with user's display. Shift UP Arrow Exit into BASIC * When system is idle allows the the setting of Date/Time. @ Allow sysop log on without the SIGNON/TXT and re-booting. Enter chat mode. Shift RIGHT Arrow Terminate user. These commands are available to the system operator from keyboard. Read Information After selecting a read type the system will request how to view the messages. 1. FORWARD-The user will be shown the number of the starting and ending message. He may either enter the message number that he wants to start or press which will default to the first message. The system will show the user all the available messages based on the read type in ascending order. 2. REVERSE-The user will be shown the starting and ending message number. He may either enter the number or start at the last message by pressing . The system will show all messages in decending order based on the read type. 3. NEW-The system will show all messages in ascending order starting with any message left since the last time the user logged on. Which messages the user sees is based on the read command. 4. INDIVIDUAL-The system will show the starting and ending messages. The user may enter the number of the perticular message he wants to read. After displaying the message the system will return to the menu. When reading messages the system will ask if the user wants to pause after each message or not. If answered "yes" then the user will be given various options after each message. The user may go to the next message, reply to that message or stop reading messages. If the message is addressed either to or from the user he will also have the option to delete that message. A reply will only be authorized if the user's privilege meets or exceeds that of the first Leave command on that menu. If the message is public then only a public message reply may be used. If a private message is replied to then the user will have the option of making the reply public. If a message is read and then deleted the user will be asked if he wants to reply. NOTE: A user, like the SYSOP, will be able to delete and reply to any message if he has a privilege of 255. Choosing no pause will cause the messages to display without the options at the end of each message unless it is address TO or FROM the user in which case he will be given the DELETE and all other options. Several commands are available while reading a message's text. The following keys may be used: P - Pause Message scroll. Continue by pressing . N - Goto Next message. S - Stop and return to menu. NOTE: Systems using the software driver for the serial port must receive an "attention" signal before receiving one of the above key commands To get the system's attention the user must send a SPACE BREAK or true BREAK. When the system acknowledges receipt of this break it prints an " *". At this point the user may issue the desired command. READ COMMANDS Access to any READ command is allowed to any user who meets or exceeds the required privilege and flags. The menu information required is contained in DATA. 10000000 00000000 Access Tracer 30 00000000 10000000 Terminate 0 00000000 00000000 Figure 1 Each user that has access to this menu will see the header, menu number and name. But from there on each of the following will see something different on the SAME menu. User #1 Priv=20 P1=00000000 P2=00000000 This user will only see the terminate function. His privilege is to low for the system to allow him access to any of the other commands. User #2 Priv=25 P1=10000000 P2=00000000 User #2 may read messages since he meets that command's requirments. He may also terminate but that is the only commands that he will see. Even though he has the first flag of P1 (the user's flags) set he still cannot leave, access userlog or tracer because he does not have the privilege required. User #3 Priv=30 P1=00000000 P2=100000000 User #3 may read and leave messages. He may also access the tracer routine since his first P2 flag is set. He may NOT access the userlog though because he does not have the first P1 flag set. Of course, he may also terminate. User #4 Priv=40 P1=11111111 P2=11111111 This user has access to everything because all levels of user access meets and/or exceeds those required. This type of operation allows the system operator to have control over the use of his system by each individual calling, and can actually be set up so that a menu is different to each caller on the system. STARTING UP The disk included contains files to get a board up fast. It is set up for everything to be on Drive 0. A small menu file is provided. To get started format a new disk and BACKUP the master disk to the system disk. NEVER USE THE MASTER DISK ON-LINE. You may want to modify some parts of the system's parameters or the number of files on the disk you keep on line. The best way is to follow the Getting Started steps that follow. New users who call will have aprivilege of 25 and no flags set. To upgrade an user's access to the leave commands, and other higher privilege commands use the Userlog Editor and change the privilege level of that user to 30. To show the user as registered use the "R" command in the Userlog Editor. Getting Started 1. Format a disk for each drive to be used on the system. The one refered to as the system disk" is the one in drive 0. 2. Load and run the System Control File editor and create the system parameters you desire to match you equipment on line. 3. There are three programs that are only used once when booting up the system. If you do not wish to keep them on-line and save disk space then format another disk for these files and copy them over: 64/BAS STARTUP/BAS COTERM/SYS 4. Copy the following files over to the system disk that will be in drive 0: USER/SYS COBBS/SYS 5. Copy the follow files to the disk that will keep that data as specified by SCF. For example, if you specified the message header to be on drive 1 then copy HDR/SYS to the disk that will be in drive 1. MENU/SYS USERL/SYS HDR/SYS MSG/SYS 6. If you are going to call up an editor from the board then copy over the ones desired to drive 0. The editor must be the version with a space in front of the file name to work on-line from a remote terminal. 7. Load and run 64/BAS. When the CoBBS prompt comes up type PCLEAR1 . 8. Load and run STARTUP/BAS. Enter the correct date, day (first three letters) and time. You will be prompted as to whether or not you want to "PROTECT?" the system. If answered "yes" then the system's BASIC will be modified. When under protection if the board ever breaks into BASIC it will lock up. The routine is crude but effective and secure. If the boot programs above were put on a separate disk, insert the system disk in drive 0 before answering the protect question. After answering the system will load the log in routine, and present you with the standby screen. Note: With the system in protection you as the sysop may not break into BASIC with the BREAK key, but press and hold the SHIFT key. Then press the up arrow key while still holding down the shift key. Once you break into BASIC this way the system is no longer protected. To re-protect type GOTO10000 while the login routine is in memory. You may l 10 '**************************** 20 '* DOS64.CC * 30 '* 64K RAM BASIC MODS * 40 '* VERSION 3.2 2/16/84 * 50 '* REQUIRES 64K COCO * 60 '* AND DISK SYSTEM * 70 '* * 110 '* * 160 '* * 170 '* CCSIG MEMBERS ARE * 180 '* MODIFY THIS PROGRAM AND * 190 '* RE-SUBMIT THE MODIFED * 200 '* VERSION, OR PROVIDE THE * 210 '* DETAILS OF THE MODS TO * 220 '* WAYNE DAY (76703,376) * 230 '* FOR INCLUSION INTO THE * 240 '* NEXT VERSION OF DOS64.CC * 250 '* * 260 '**************************** 270 ' 280 ' LOW RAM USAGE = 290 ' 300 ' $7CAA->7CFF 64K RESET MOD 310 ' $7D00->7D19 ROM TO RAM 320 ' 330 ' 340 ' HIGH RAM USAGE = 350 ' 360 ' 370 ' $FD21->FD32 ML "RUN" MOD 380 ' $FD33->FE2D AUTONUMBER 390 ' $FE2E->FE84 LC COMMANDS 400 ' $FE85->FEEF AUTOKEY RPT 410 ' $FEF0->FEF9 CHANGE PROMPT 420 ' 430 ' 440 ' 450 POKE&HFF40,0 'STOP DISK MTR 460 ' 470 '***** LOAD ROM TO RAM 480 ' 490 ' START=$7D00 END=$7D19 EXEC=$7D00 500 ' 510 FOR X=&H0E00 TO &H0E19 520 READ A 530 POKE X,A 540 NEXT 550 EXEC &H0E00 560 DATA 26,80,142,128,0,236,132,183,255,223,237,129,183,255,222,140,216,0,37,241,183,255,223,28,175,57 570 ' 580 ' 590 ' 600 '**** BEGIN MODIFICATIONS 610 ' 620 ' 630 ' 640 ' *** MOD 3 *** 650 ' CHANGE PROMPT TO NEXT-> 660 ' 670 ' 680 POKE &HFEF0,32 690 FOR X=1 TO 7:POKE&HFEF0+X,ASC(MID$("[CoBBS]",X,1)) 700 NEXT 710 POKE &HFEF8,&H0D 720 POKE &HFEF9,0 730 POKE&HAC77,&HFE:POKE&HAC78,&HF0 740 ' 750 ' 1390 CLS:PRINT" 64K CoBBS CUSTOM DOS VERS 3.2":PRINT" -----------------------------" 1400 PRINT:PRINT:PRINT: 1405 PRINT" PCLEAR 1":PRINT CoBBS]",X,1)) 700 NEXT 710 POKE &HFEF8,&H0D 720 POKE &HFEF9,0 730 POKE&HAC77,&HFEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Welcome to CoBBS the mmunity ulletin oard operating system and the world of telecommunications. The system was initiated to provide the user with versitle yet easy to manage software. Included in the CoBBS system are the following programs: STARTUP/BAS COTERM/SYS USER/SYS COBBS/SYS SMF/EDI SUL/EDI SMP/EDI SCF/EDI LOOKTRAC/BAS LOOKREG/BAS Public domain software included is: Error Trap - Andy Kluck Clock - A. B. Trevor COCOBUG/BAS FILETEST/BAS FCONV/BIN TIMEIT/BAS CoBBS is an operating system within an operating system. Through control files created by the system operator the various functions of each menu is defined. First an understanding of privilege and flags is required. CoBBS maintains a privilege level (0 to 255) and sixteen flags for EACH menu, command and user. This provides for very powerful controls over the access of each individual user to each other menu and/or command. For example, let's say a menu is set up with the following access requirements: Priv=30 F1=00000000 F2=00000000 Before a user may access that menu he must have a privilege of 30, or higher. Since no flags are "set" none are required in the user's flags. If the access requirment was: Priv=30 F1=00000001 F2=00000000 then a user would not only have to be given a privilege of 30 for him so see the menu, but he must also have the 8th flag, the last flag of group F1, set or he will not be allowed on that menu. The same is true of each command and each menu. Without a user having the same access or higher he will not be able to see that function. Each menu may have up to 21 commands. Each individual command is specified by the system operator. Without considering the various types at this time let's look at figure 1 then see how each user would be affected. Command Priv F1 F2 Read Messages 25 00000000 00000000 Leave Messages 30 00000000 00000000 Access Userlog 30 5,X,255 640 DATA "

OST SYSTEM MESSAGE",P,254,255,255,L,255P 650 DATA "ENU EDITOR",M,254,255,255,!," " 660 DATA "OWNLOADS - FULL ACCESS",D,254,255,255,D,43 670 DATA "PLOADS - FULL ACCESS",U,254,255,255,U,40 680 DATA "XIT TO SYSTEM",E,0,0,0,G,0 690 DATA "ERMINATE",T,0,0,0,T,0 700 '-MENU/SYS 710 FF$="MENU/SYS":K1=0 720 OPEN"D",#1,"MENU/SYS",250 730 FIELD#1,1 AS M1$,1 AS M2$,1 AS M3$,1 AS M4$,16 AS M5$,200 AS M6$,1 AS M7$,29 AS M8$ 740 RETURN 750 FIELD#1,35 AS B$(1),35 AS B$(2),35 AS B$(3),35 AS B$(4),35 AS B$(5),35 AS B$(6),35 AS B$(7),5 AS B$(8) 760 RETURN 770 OPEN"D",#1,"MENU/SYS",250 780 FIELD#1,250 AS A$ 790 K1=LOF(1) 800 FOR A=1 TO K1 810 GET#1,A 820 CLS:PRINTA:PRINT 830 PRINTA$ 840 IFINKEY$=""THEN840 850 NEXTA:CLOSE B$(2),35 AS B$(3),35 Aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 10 '-CREATE HDR.SYS AND MSG.SYS 20 CLEAR5000 30 NU$=CHR$(0) 40 CLS:PRINT:PRINT:LINEINPUT"INSERT DISK FOR FILES";A$ 50 GOSUB420 60 LSET H1$=MKN$(1) 70 LSET H2$=NU$ 80 A$=CHR$(4)+CHR$(20)+CHR$(85) 90 LSET H3$=A$ 100 A$=CHR$(20)+CHR$(0) 110 LSET H4$=A$ 120 A$="RICHARD DUNCAN"+NU$+"SYSOP"+NU$+"WELCOME"+NU$ 130 LSET H5$=A$ 140 LSET H6$=MKN$(1) 150 LSET H7$=MKN$(5) 160 LSET H8$=CHR$(1) 170 LSET SP$="" 180 PUT#1,1:PUT#1,2 190 CLOSE:PRINT:PRINT 200 PRINT"CREATED HDR.SYS":PRINT 210 PRINT"CREATING MSG.SYS":GOSUB470 220 L$(1)="WELCOME TO COBBS. I HOPE THAT" 230 L$(2)="ENJOY THE SYSTEM AS MUCH AS I" 240 L$(3)="HAVE. LET ME KNOW IF YOU HAVE" 250 L$(4)="ANY QUESTIONS." 260 L$(5)=" RICH" 270 L$(6)=" 71515,1420" 280 L$(7)=" " 290 L$(8)=" BBS # 501/735-5614" 300 K2=1:A$="1":LSET MG$=A$:PUT#2,K2:A$="" 310 FOR A=1 TO 8 320 B$=L$(A)+CHR$(13):IFLEN(A$)+LEN(B$)>250THEN A=A-1:A$=A$+STRING$(80,0):C$="":GOTO350ELSE A$=A$+B$ 330 L0=LEN(A$):IFL0<80THEN370 340 C$=RIGHT$(A$,L0-80):A$=LEFT$(A$,80) 350 LSET MG$=A$:K2=K2+1:PUT#2,K2:A$="" 360 IFLEN(C$)>0THEN A$=C$:GOTO330 370 NEXTA 380 IF LEN(A$)=0 THEN 400 390 LSET MG$=A$+STRING$(80,0):K2=K2+1:PUT#2,K2 400 LSET MG$=STRING$(80,255):K2=K2+1:PUT#2,K2 410 CLOSE:PRINT"MSG.SYS CREATED":END 420 '-OPEN MSGHDR/SYS- 430 F$="HDR/SYS" 440 OPEN"D",#1,F$,110 450 FIELD#1,5 AS H1$,1 AS H2$,3 AS H3$,2 AS H4$,80 AS H5$,5 AS H6$,5 AS H7$,1 AS H8$,8 AS SP$ 460 K1=LOF(1):RETURN 470 '-OPEN MSG/SYS- 480 F$="MSG/SYS" 490 OPEN"D",#2,F$,80 500 FIELD#2,80 AS MG$ 510 K2=LOF(2):RETURN 4$,80 AS H5$,5 AS H6$,5 AS H7$,1 AS H8$,8 AS SP$ 460 K1=LOF(1):RETURN 470 '-OPEN MSG/SYS- 480 F$="MSG/SYS" 490 OPEN"D",#2,F$,80 500 FIELD#2,80 AS MG$ 510 K2=LOF(2):RETURN ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:GOTO9625 9700 '-CD CHECK- 9705 IFPEEK(4658)=0THEN9740 9710 CD=PEEK(65385)AND32 9715 IF CD<>0THEN9750 9740 RETURN 9750 CLOSE:RUN 9800 '-TERMINATE- 9805 GOSUB9600 9810 CLOSE:POKE65386,106:RUN 9850 PRINT"THANKS FOR CALLING CoBBS.":PRINT"WE WILL CONTACT YOU SHORTLY" 9855 PRINT"TO UPGRADE YOUR ACCESS." 9860 GOTO9800 9900 '-UNABLE TO ACCESS- 9905 H$="SYSTEM IS DOWN//" 9910 POKE65386,106:FORT=1TO100:NEXTT 9915 POKE65386,107 9920 IFPEEK(65385)AND32<>0THEN9920ELSEGOSUB675:IFCH$=H$ THEN II$="_":GOTO31 9925 FOR A=1 TO 5:PRINT:NEXTA 9930 PRINT"THANKS FOR CALLING...":PRINT:PRINT"WE ARE UNABLE TO ACCESS THE" 9935 PRINT"SYSTEM PROPERLY AT THIS TIME.":FORT=1TO500:NEXTT 9940 PRINT:PRINT:PRINT 9945 PRINT"PLEASE CALL AGAIN LATER.":PRINT:FORT=1TO1000:NEXTT 9950 PRINT"PLEASE HANG UP.":PRINT:PRINT 9955 GOTO9900 10000 POKE65386,106 10005 POKE&HAC7D,&H0E:POKE&HAC7E,&H00 10015 MOTOROFF 10020 X=&H112B:POKE X,&H86:POKE X+1,&H0D:POKE X+2,&HB7:POKE X+3,&H11:POKE X+4,&H81:POKE &H1127,&H10 10025 RUN FORT=1TO1000:NEXTT 9950 PRINT"PLEASE HAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 10 '-CREATE MENU.SYS 20 CLEAR2500 30 CLS:PRINT:PRINT"PLEASE STAND-BY..." 40 NU$=CHR$(0) 50 BN$(0)="MAIN MENU":PR(0)=0:P1(0)=0:P2(0)=0:N(0)=0:CM(0)=0:BT$(0)="WELCOME TO COBBS..."+NU$ 60 BN$(1)="GENERAL":PR(1)=0:P1(1)=0:P2(1)=0:N(1)=1:CM(1)=1:BT$(1)="GENERAL MESSAGES"+NU$ 70 BN$(2)="EMAIL":PR(2)=0:P1(2)=0:P2(2)=0:N(2)=2:CM(2)=1:BT$(2)="EMAIL...FOR PRIVATE ONLY"+CHR$(13)+NU$ 80 BN$(3)="LOCAL":PR(3)=0:P1(3)=0:P2(3)=0:N(3)=3:CM(3)=0:BT$(3)="LOCAL FEATURES"+NU$ 90 BN$(4)="SYSOP":PR(4)=254:P1(4)=255:P2(4)=255:N(4)=200:CM(4)=1:BT$(4)="SYSOP OPERATION AREA"+NU$ 100 CD(0)=6:CD(1)=5:CD(2)=4:CD(3)=7:CD(4)=7 110 GOSUB700 120 FOR X=0 TO 4 130 GOSUB730 140 K1=K1+1:PRINT:PRINT:PRINTBN$(X) 150 LSET M1$=CHR$(N(X)) 160 LSET M2$=CHR$(PR(X)) 170 LSET M3$=CHR$(P1(X)) 180 LSET M4$=CHR$(P2(X)) 190 LSET M5$=BN$(X)+NU$ 200 LSET M6$=BT$(X) 210 LSET M7$=CHR$(CM(X)) 220 LSET M8$="":PUT#1,K1 230 Z=1:GOSUB750:K1=K1+1 240 FOR Y=1 TO CD(X) 250 READ MN$,KY$,PR,F1,F2,TY$,D$ 260 PRINTTAB(5)MN$ 270 C$=CHR$(PR)+CHR$(F1)+CHR$(F2)+TY$+LEFT$(D$+" ",5)+KY$+LEFT$(MN$+STRING$(25,0),25) 280 LSET B$(Z)=C$ 290 Z=Z+1:NEXT Y 300 FOR Y=1 TO 7 310 IF Y>CD(X) THEN LSET B$(Y)=STRING$(40,255) 320 NEXT Y 330 PUT#1,K1:K1=K1+1 340 U=1 350 FOR Y=1 TO 8:LSET B$(Y)=STRING$(35,255):NEXT Y 360 PUT#1,K1:K1=K1+1 370 PUT#1,K1 380 GOSUB730 390 NEXT X 400 PRINT:PRINT" MENU/SYS CREATED":CLOSE:END 410 DATA "<*>TIME ON SYSTEM",*,0,0,0,*," " 420 DATA "ENERAL MESSAGES",G,20,0,0,G,1 430 DATA "MAIL - PRIVATE ONLY",E,30,0,0,G,2 440 DATA "OCAL FEATURES",L,20,0,0,G,3 450 DATA "ERMINATE - BYE",T,0,0,0,T,1 460 DATA "YSOP",S,254,255,255,G,200 470 DATA "EAD MESSAGES",R,25,0,0,R,1 480 DATA "CAN MESSAGES",S,25,0,0,S,1 490 DATA "EAVE MESSAGES",L,30,0,0,L,1 500 DATA "XIT",E,0,0,0,G,0 510 DATA "ERMINATE - BYE",T,0,0,0,T,1 520 DATA "EAD MESSAGES FOR YOU",R,30,0,0,M,2 530 DATA "EAVE PRIVATE MESSAGE",L,30,0,0,N,2 540 DATA "XIT",E,0,0,0,G,0 550 DATA "ERMINATE - BYE",T,0,0,0,T,1 560 DATA "HANGE PASSWORD",C,25,0,0,P," " 570 DATA "ENU EDITOR",M,30,0,0,@," " 580 DATA "EAVE SYSOP A MESSAGE",L,25,0,0,Y,255 590 DATA "OWNLOADS",D,30,0,0,D,"0GENN" 600 DATA "<*>TIME ON SYSTEM",*,0,0,0,*," " 610 DATA "XIT",E,0,0,0,G,0 620 DATA "ERMINATE - BYE",T,0,0,0,T,1 630 DATA "EAD ALL MESSAGES",R,254,255,25 RUN T 900:CLOSE:ET=ET+1:IF ET>9 THEN 9900 910 ' 915 ER=PEEK(&HFD):EL=PEEK(&HFE)*&H100+PEEK(&HFF) 920 IF ER=>54 THEN EA=&HC242+ER:GOTO935 925 IF ER=>50 THEN EA=&H88D9+ER:GOTO935 930 EA=&HABAF+ER 935 ER$="**ERROR: TYPE "+CHR$(PEEK(EA))+CHR$(PEEK(EA+1))+" IN LINE"+STR$(EL)+" :USER" 940 TR$=TR$+CHR$(13)+ER$:GOSUB9600 945 ' 950 ' 955 ' 960 TR$=TR$+CHR$(13):GOSUB9600 965 PRINT:POKE&H0168,PEEK(4681):POKE&H0169,PEEK(4682) 970 PRINTER$:PRINT:FORA=1TO1000:NEXTA 975 POKE&H0168,&H10:POKE&H0169,&HE6 980 RUN T 900:GOTO24 1000 '-CD CKECK- 1005 IFPEEK(&HFF21)>100THEN RUN 1010 RETURN 4100 '-DECIMAL TO BINARY 4105 F=ASC(F$):E=128:F$="" 4110 FOR Q=1 TO 8 4115 J=INT(F/E) 4120 IF J=0 THEN F$=F$+"0"ELSEF$=F$+"1" 4125 F=F-(E*J):E=E/2 4130 NEXT Q 4140 RETURN 4200 '-BINARY TO DECIMAL 4205 W=LEN(F$):E=1:F=0 4210 FOR Q=W TO 1 STEP -1 4215 IFMID$(F$,Q,1)="1"THEN F=F+E 4220 E=E*2:NEXTQ:F$=CHR$(F) 4225 RETURN 7000 'NEWUSER/POSTLOG/TXT 7005 IFPEEK(4667)<>0THEN259ELSEF$="NEWUSER/TXT:":GOTO7015 7010 IFPEEK(4659)<>0THEN260ELSEF$="POSTLOG/TXT:" 7015 D=-1:CLOSE:UNLOAD 7020 D=D+1:IFD>3THEN7045 7025 FT$=F$+DR$(D):RUNT7020:OPEN"I",#1,FT$ 7030 RUNT7045:IFNOTEOF(1)THENLINEINPUT#1,S$ELSE7045 7035 EXEC&H10DA:CH$=CHR$(PEEK(4481)):K=INSTR("pPSs",CH$):IFK>0THEN7050 7040 GOSUB9700:PRINTS$:GOTO7030 7045 CLOSE:UNLOAD:IFUT=1THEN260ELSE259 7050 IFK>2THEN7045 7055 EXEC&H10DA:IFPEEK(4481)<>13THEN7055 7060 GOTO7030 8000 '-SCREEN- 8005 RUN T 900:GOSUB8100 8010 POKE&H0168,PEEK(4681):POKE&H0169,PEEK(4682) 8015 CLS3 8020 GOSUB9000:IFK1=0THEN8045 8025 GET#1,1:RE=CVN(H1$) 8030 GET#1,2:RS=CVN(H1$):XY=LOF(1)-1 8040 HR$=RIGHT$(STR$(PEEK(4615)),2):MN$=RIGHT$(STR$(PEEK(4616)),2):TZ$=HR$+":"+MN$:FOR Q=1 TO 4:IFMID$(TZ$,Q,1)=" " THEN MID$(TZZ$,Q,1)="0":NEXTQELSENEXTQ 8045 CLOSE 8050 GOSUB9200:GET#1,1 8055 K=INSTR(UN$,CHR$(0)):N$=LEFT$(UN$,K-1):L=INSTR(K+1,UN$,CHR$(0)):L$=MID$(UN$,K+1,L-1-K):X=ASC(U7$)*256+ASC(U8$):CA=LOF(1)-1 8060 PRINT@66,"COLOR BULLETIN BOARD SYSTEMS"; 8065 PRINT@140," 1984";:PRINT@167,"by RICHARD DUNCAN"; 8070 PRINT@228,"STARTING MESSAGE:";RS;:PRINT@260," ENDING MESSAGE:";RE;:PRINT@328,"CALLS: ";X;:PRINT@360,"USERS: ";CA; 8075 NN$="LAST CALLER: "+N$:A=LEN(NN$):IFA>32THEN B=0:GOTO8080 ELSE B=INT((32-A)/2) 8080 GOSUB9400:PRINT@448+B,NN$;:PRINT@490,"TIME: ";TZ$; 8085 POKE&H0168,&H10:POKE&H0169,&HE6 8090 CLOSE:RETURN 8100 '-SYSTEM CONTROL FILE- 8105 DSKI$ 0,17,18,S1$,S2$ 8110 POKE4629,ASC(MID$(S1$,9,1)) 8111 POKE4664,ASC(MID$(S1$,10,1)) 8112 POKE4663,ASC(MID$(S1$,11,1)) 8113 FOR A=0 TO 2:POKE4660+A,ASC(MID$(S1$,12+A,1)):NEXT A 8114 POKE4628,ASC(MID$(S1$,15,1)) 8115 POKE4666,ASC(MID$(S1$,16,1)) 8116 POKE4669,ASC(MID$(S1$,17,1)) 8117 POKE4679,ASC(MID$(S1$,18,1)) 8118 POKE4680,ASC(MID$(S1$,19,1)) 8119 POKE4667,ASC(MID$(S1$,20,1)) 8120 POKE4659,ASC(MID$(S1$,21,1)) 8121 POKE4694,ASC(MID$(S1$,22,1)) 8122 FORA=0TO6:POKE4670+A,ASC(MID$(S1$,23+A,1)):NEXT A 8199 RETURN 9000 '-OPEN HDR/SYS- 9005 RUNT9900:FF$="HDR/SYS:"+DR$(PEEK(4670)) 9010 OPEN"D",#1,FF$,110 9015 FIELD#1,5 AS H1$,1 AS H2$,3 AS H3$,2 AS H4$,80 AS H5$,5 AS H6$,5 AS H7$,1 AS H8$,8 AS SP$ 9020 K1=LOF(1):RETURN 9100 '-OPEN BOARD MENU- 9105 ' 9110 OPEN"D",#2,"MENU/SYS",250 9115 FIELD#2,1 AS M1$,1 AS M2$,1 AS M3$,1 AS M4$,16 AS M5$,230 AS M6$ 9120 K2=LOF(2):RETURN 9200 '-OPEN USERLOG- 9205 FF$="USERL/SYS:"+DR$(PEEK(4672)) 9210 OPEN"D",#1,FF$,96 9215 FIELD#1,50 AS UN$,8 AS UP$,1 AS UR$,1 AS UA$,1 AS U1$,1 AS U2$, 1 AS UU$,1 AS UE$,5 AS U5$,5 AS UM$,5 AS UD$,1 AS U3$,1 AS U4$,1 AS UO$,1 AS UL$,4 AS US$,1 AS U7$,1 AS U8$,7 AS SP$ 9220 KX=LOF(1):K1=KX-1:RETURN 9400 '-GET TIME- 9405 DC=VAL(HEX$(PEEK(&H0EFD))):HR=VAL(HEX$(PEEK(&H0EFE))) 9410 MN=VAL(HEX$(PEEK(&H0EFF))):SS=VAL(HEX$(PEEK(&H0F00))) 9415 HR$=RIGHT$(STR$(HR),2):IFHR<10THEN MID$(HR$,1,1)="0" 9420 MN$=RIGHT$(STR$(MN),2):IFMN<10THEN MID$(MN$,1,1)="0" 9425 TI$=HR$+":"+MN$:IF SS<57 OR MN>58 THEN 9440 9430 MN=MN+1:IF MN>59 THEN MN=0:HR=HR+1:IF HR>23 THEN HR=0 9435 X=USR0(HR*256+MN) 9440 X=PEEK(4611):IF X<>DC THEN 9455 9445 DA$=RIGHT$(STR$(PEEK(4608)),2)+"/"+RIGHT$(STR$(PEEK(4609)),2)+"/"+RIGHT$(STR$(PEEK(4610)),2) 9450 RETURN 9455 MM=PEEK(4608):DA=PEEK(4609):YY=PEEK(4610):DA=DA+1:IFDA>31THEN DA=1:MM=MM+1:IF MM>12 THEN MM=1:YY=YY+1 9460 POKE4608,MM:POKE4609,DA:POKE4610,YY:POKE4611,DC:GOTO9445 9600 '-TRACER- 9605 CLOSE:FF$="TRACER/SYS:"+DR$(PEEK(4675)) 9610 FR=PEEK(4669):IFFR=0THEN9625ELSEIFFR=1THEN9640ELSEIFFR=3THEN9660ELSERUNT9630:OPEN"D",#1,FF$,128 9615 FIELD#1,128 AS X$:K1=LOF(1) 9620 LSET X$=TR$:K1=K1+1:PUT#1,K1 9625 CLOSE:TR$="":RETURN 9630 POKE4669,0:GOTO295 9640 OPEN"O",#-1,"TRACER":WRITE#-1,TR$:GOTO9625 9660 PT=PEEK(&HFF22)AND1:IFPT=1THEN9625ELSEPRINT#-2,TR$250 CLOSE:PRINT"AS A ";:IFRIGHT$(R$,1)="0"THENPRINT"NEW USER.":PRINT:GOTO7000 255 IFMID$(R$,2,1)="1"THENPRINT"REGISTERED USER #";R ELSEPRINT"PROBATIONARY USER." 259 PRINT:IFPEEK(4629)<4THEN9800ELSEIFPEEK(4659)=0THEN UT=1:GOTO7010 260 PRINT:PRINT:IFPEEK(4666)=0THEN292ELSEPRINT"CHECKING FOR MESSAGES TO YOU.":CS$=NA$+NU$:GOSUB9700:CLOSE:GOSUB9000:F=0:IFK1=0THENCLOSE:GOTO293 265 FOR A=2 TO K1:GOSUB9700 266 EXEC&H10DA:CH=PEEK(4481):IFCH=83ORCH=115THENPRINT"MESSAGE CHECK ABORTED.":GOTO292 267 GET#1,A:K=INSTR(H5$,CS$):IFK=0THEN291ELSEK=INSTR(H5$,CHR$(0)):L=INSTR(K+1,H5$,CHR$(0)):M=INSTR(L+1,H5$,CHR$(0)):XX=L-K-1:IFXX<1THEN N$=""GOTO268ELSEN$=MID$(H5$,K+1,XX) 268 FR$=LEFT$(H5$,K-1):XX=M-L-1:IFXX<1THENS$=""ELSES$=MID$(H5$,L+1,XX) 269 IFN$<>NA$ THEN 291 270 ' 271 M5$=STR$(ASC(H8$)) 283 F$=H2$:GOSUB4100:RF$=F$:IFMID$(RF$,2,1)="1"ORMID$(RF$,3,1)="1"THEN291 285 IFF3=0THENPRINT:PRINT"MESSAGES WAITING!":F3=1:PRINT:MW=1 287 IFMID$(RF$,1,1)="1"THENPRINT"PRIVATE MESSAGE" 289 PRINT"#";CVN(H1$);"- MENU #";M5$:PRINT"FROM: ";FR$:PRINT"SUBJ: ";S$:PRINT 290 REM 291 NEXTA:IF MW=0 THEN PRINT"SORRY, NO MESSAGES FOR YOU.":CLOSE:GOSUB9700:PRINT 292 CLOSE:GOSUB9700:PRINT 293 TR$=CHR$(13)+STRING$(20,"=")+CHR$(13)+STR$(CN)+" "+DA$+" "+TI$+CHR$(13)+NA$+" / "+LO$+CHR$(13):GOSUB9600:CLOSE 294 R1=INT(R6/256):R2=R6-(R1*256):POKE4690,R1:POKE4691,R2 295 GOSUB9400:POKE4615,HR:POKE4616,MN:POKE4617,S:PRINT:LOAD"COBBS/SYS",R 300 '-NEW USER- 305 RUN T 900:IFPEEK(4629)<2THEN9800 310 UY=0:'GOTO50000 315 PRINT:PRINT:PRINT:PRINT"SORRY, YOU ARE NOT ENTERED":PRINT"IN THE USER LOG." 320 ' 335 PRINT:PRINT:PRINT"PLEASE LEAVE THE FOLLOWING":PRINT"INFORMATION. ALL QUESTIONS":PRINT"MUST BE ANSWERED TO BE REGISTERED" 340 PRINT:PRINT:GOSUB9700 345 PRINT"NAME: ";NA$:EXEC&H10DA 350 GOSUB9700:PRINT"ADDRESS: ";:RUNT350 351 GOSUB650:IFCH$=""THEN350ELSE AD$=CH$ 355 PRINT"CITY: ";LO$ 360 GOSUB9700:PRINT" ZIP: ";:GOSUB650:IFCH$=""THEN360ELSE ZP$=CH$ 365 PRINT:PRINT"PHONE: ";:RUNT365 366 GOSUB9700:GOSUB650:IFCH$=""THEN365ELSE PH$=CH$ 370 PRINT:PRINT"ENTER A PASSWORD OF UP TO 8":PRINT"CHARACTERS. NOTE: UPPER AND":PRINT"LOWER CASE IS TREATED DIFFERENTLY." 371 PRINT:PRINT"PASSWORD: ";:RUNT371 372 GOSUB9700:GOSUB650:IFCH$=""ORLEN(CH$)>8THEN371ELSEPW$=CH$ 375 PRINT:PRINT:PRINT 380 PRINT"I HAVE IT AS:" 385 PRINTTAB(5)NA$:PRINTTAB(5)AD$:PRINTTAB(5)LO$:PRINTTAB(5)PH$ 390 PRINT:PRINTTAB(5)"PASSWORD: ";PW$:PRINT:PRINT 395 PRINTTAB(5)"IS THIS CORRECT (Y/N)? "; 400 GOSUB9700:GOSUB600:IFCH$="Y"ORCH$="y"THENPRINT"YES":GOTO430 405 IFCH$="N"ORCH$="n"THENPRINT"NO"ELSE400 410 PRINT"NAME: ";:RUNT410 411 GOSUB9700:GOSUB675:IFCH$=""THEN410ELSENA$=CH$ 415 PRINT"ADDRESS: ";:RUNT415 416 GOSUB650:IFCH$=""THEN415ELSEAD$=CH$ 420 PRINT"CITY, STATE: ";:RUNT420 425 GOSUB9700:GOSUB675:IFCH$=""THEN420ELSELO$=CH$:GOTO360 430 RUN T 460:FR=FREE(0):IFFR<2THEN460 450 OPEN"D",#2,"REGISTER/SYS",32:FIELD#2,32 AS L$:K2=LOF(2):X$=STRING$(32,0):LSET L$=DA$+" "+TI$+X$:K2=K2+1:PUT#2,K2 455 K2=K2+1:LSET L$=NA$+X$:PUT#2,K2:K2=K2+1:LSET L$=AD$+X$:PUT#2,K2:K2=K2+1:LSET L$=LO$+X$:PUT#2,K2:K2=K2+1:LSET L$=ZP$+X$:PUT#2,K2:K2=K2+1:LSET L$=PH$+X$:PUT#2,K2:K2=K2+1:LSET L$=PW$+X$:PUT#2,K2 460 CLOSE:UNLOAD:GOSUB500 465 IFPEEK(4629)<3THEN9850ELSE210 500 '-LSET NON REGISTERED USER- 505 GOSUB9400:POKE4615,HR:POKE4616,MN:POKE4617,0 510 GOSUB9700:RUN T 900:GOSUB9200 515 LSET UN$=NA$+CHR$(0)+LO$+CHR$(0):LSET UP$=PW$+STRING$(8,0) 520 LSET UR$=CHR$(0):LSET UA$=CHR$(PEEK(4660)):LSET U1$=CHR$(PEEK(4661)):LSET U2$=CHR$(PEEK(4662)) 525 LSET UU$=NU$:LSET UE$=CHR$(PEEK(4664)):LSET U5$=MKN$(0):LSET UM$=MKN$(0) 530 LSET UD$=DT$:LSET U3$=NU$:LSET U4$=NU$:LSET UO$=CHR$(PEEK(4663)):LSET UL$=CHR$(1) 535 LSET US$=" ":LSET SP$="" 540 IFFREE(PEEK(4572))<2THEN545ELSE R=LOF(1)+1:PUT#1,R 545 RETURN 600 '-SINGLE KEY ENTRY 605 EXEC4314:CH$=CHR$(PEEK(4481)):IC$=INKEY$:IFIC$<>""THEN CH$=IC$:GOTO615 610 GOSUB9700:IF CH$=CHR$(0)THEN605 615 RETURN 625 GOSUB605:CH=ASC(CH$) 630 IFCH>96ANDCH<123THEN CH=CH-32 635 CH$=CHR$(CH):RETURN 650 '-REMOTE INPUT **KEYBOARD ONLY 655 LINEINPUTCH$:GOSUB9700 660 ' IFPEEK(&HFF21)=180 THEN RUN 665 RETURN 675 GOSUB655:G$="":IFCH$=""THENRETURN 680 FOR A=1 TO LEN(CH$) 685 G=ASC(MID$(CH$,A,1)):IFG>96ANDG<123THEN G=G-32 690 G$=G$+CHR$(G):NEXTA:CH$=G$:RETURN 700 '-COMPARE FLAGS- 710 K7=0 720 FOR Q=1 TO 8 730 IFMID$(F$,Q,1)="0"THEN750 740 IFMID$(PX$,Q,1)<>"1"THEN K7=1 750 NEXTQ:RETURN 800 '-SET TIME- 805 POKE65386,106:CLS:PRINT:PRINT:PRINT 810 INPUT"MM,DD,YY";MM,DD,YY 815 DC=VAL(HEX$(PEEK(&H0EFD))):POKE4611,DC 820 INPUT"HH:MM";HR,MN 825 X=USR1(HR*256+MN) 830 POKE4608,MM:POKE4609,DD:POKE4610,YY 835 POKE65386,107 840 RETURN 900 '-ERROR ROUTINE- 905 0 '-COBBS (USER/SYS) 1984 RICHARD DUNCAN 1 ' these mods were made by charles w. gordon, cobbs #8 los angeles, for HIS board. 5 '-LOGIN ROUTINE- 10 CLEAR500:RUNT9925:DSKI$ 0,17,18,S1$,S2$:IFLEFT$(S1$,5)<>"COBBS"THEN9925 15 POKE65386,107:CLOSE:UNLOAD 20 CLEAR4000:NU$=CHR$(0):RUNT900:DEFUSR0=&H0ED3:CJ$=CHR$(13)+CHR$(8):DR$(0)="0":DR$(1)="1":DR$(2)="2":DR$(3)="3":POKE4658,255 24 POKE&H016B,&H10:POKE&H016C,&HCD 25 CLS:PRINT:PRINT:Z=PEEK(65385):Z=Z AND 32:IF Z=0 THEN 40 26 GOSUB8000:TIMER=0 30 II$=INKEY$ 31 IF II$="@"THENCLS:POKE4658,0:GOTO66ELSEIFII$="_"ANDPEEK(4684)<>188THENPOKE&HAC7D,&HA3:POKE&HAC7E,&H90:FOR X=&H112B TO &H1136:POKE X,&H12:NEXT X:END 34 II=TIMER:IFII>19999ANDPEEK(4694)<>0THEN CLS0:IFII>60000THEN TIMER=20000 35 IF II$="*"THENGOSUB800:GOTO26 36 IF II$<>""THEN40 37 CD=PEEK(65385)AND32:IF CD=0THEN FOR A=1TO200:NEXT A:GOTO40 38 GOSUB9400 39 GOTO30 40 CLS:POKE&H016B,197:POKE&H016C,PEEK(4684):EXEC&H10DA:POKE4657,0 50 FOR A=1 TO 10:PRINT:NEXT 60 CLS:PRINT"COLOR BBS SYSTEM":GOSUB9700:PRINT"COBBS #PD" 61 RUNT65:D=0 62 F$="SIGNON/TXT:"+DR$(D) 63 OPEN"I",#1,F$ 64 RUNT66:IFNOTEOF(1)THENGOSUB9700:LINEINPUT#1,A$:PRINTA$:GOTO64ELSECLOSE:D=5 65 D=D+1:IFD<4THEN62 66 RUN T 900:GOSUB9000:IFK1=0THEN67ELSEGET#1,1:RE=CVN(H1$):GET#1,2:RS=CVN(H1$):CLOSE 67 CLOSE:GOSUB9400:POKE4612,HR:POKE4613,MN:POKE4614,S:DT$=CHR$(PEEK(4608))+CHR$(PEEK(4609))+CHR$(PEEK(4610))+CHR$(HR)+CHR$(MN):POKE&H016B,16:POKE&H016C,205:TR=0 68 RUNT9810:EXEC&H10DA:TR=TR+1:IF TR>3THEN9810ELSEPRINT:PRINT"ENTER # (NEW=0):";:GOSUB675:R5=VAL(CH$):CH=R5:IF R5>2THEN110ELSE70 70 EXEC&H10DA:TR=TR+1:IF TR>3 THEN9810ELSEGOSUB9700:RUN T 70:CLOSE:PRINT:PRINT:PRINT"ENTER FIRST AND LAST NAME":PRINT"NAME: ";:GOSUB675:K=INSTR(CH$,CHR$(32)):IFK=0ORCH$=""THEN70 71 NA$=CH$:IFLEN(NA$)>90THENPOKE65387,106:RUN:ELSEIFLEN(NA$)<5THEN70 75 K=INSTR(CH$,";"):IFK>0THEN NA$=LEFT$(CH$,K-1):CH$=RIGHT$(CH$,LEN(CH$)-K):K=INSTR(CH$,";"):IFK=0THEN LO$=CH$:GOTO90 ELSE LO$=LEFT$(CH$,K-1):GOTO90 80 GOSUB9700:RUN T 80:PRINT"FROM: ";:GOSUB 675:IFCH$=""THEN70ELSE LO$=CH$ 90 PRINT:PRINT:PRINT:PRINTTAB(5)"NAME: ";NA$:PRINTTAB(5)"FROM: ";LO$:PRINT:PRINTTAB(5)"CORRECT (Y/N) ";:GOSUB625 100 IFCH$<>"Y"THENPRINT"YES":GOTO70ELSE TR$=NA$+CHR$(13)+LO$+CHR$(13) 110 RUN T 900:PRINT:GOSUB9200:GET#1,1:C1=ASC(U7$):C2=ASC(U8$):CN=C1*256+C2:PRINT:PRINT"CHECKING USERLOG...";:IF R5>1THEN R=R5:IF R>LOF(1)THEN67ELSEGET#1,R:R6=R:GOTO173 120 FOR R=2 TO LOF(1):GOSUB9700 130 GET#1,R:R6=R:K=INSTR(UN$,NU$):IF LEFT$(UN$,K-1)<>NA$ THEN 170 140 L=INSTR(K+1,UN$,NU$):F$=MID$(UN$,K+1,L-1-K):IF F$=LO$ THEN 180 150 PRINT:PRINT:PRINTLEFT$(UN$,K-1):PRINT F$:PRINT"IS THIS YOU? ";:T=0:EXEC4314 160 GOSUB 600:IF CH$="Y" OR CH$="y" THEN PRINT"YES":GOTO180ELSEPRINT"NO" 170 NEXT R:PRINT:IFPEEK(4680)>0THENPRINT"WRITING USER...":GOTO460ELSEPRINT"USER NOT FOUND":GOTO300 173 IF UP$<>" " THEN 180ELSEPRINT"NO PASSWORD IN LOG.":PRINT"PLEASE ENTER A PASSWORD OF UP":PRINT"TO 8 CHARACTERS: "; 175 GOSUB655:IF CH$="" OR LEN(CH$)>8 THEN PRINT"ENTER A PASSWORD: ";:GOTO175 177 LSET UP$=CH$:GOTO210 180 IF UY=1 THEN 210 ELSE PRINT:EXEC&H10DA:PRINT"PASSWORD: ";:A$="":RUN T 180 190 EXEC4314:CH$=CHR$(PEEK(4481)):IC$=INKEY$:IFIC$<>""THEN CH$=IC$:GOTO191ELSEIFCH$=CHR$(0)THEN190 191 K=INSTR(CJ$,CH$):ON K+1 GOTO192,200,193:GOTO190 192 A$=A$+CH$:IFPEEK(4679)>0THENPRINTCH$;:GOTO190ELSEPRINT"*";:GOTO190 193 IFLEN(A$)>0THENA$=LEFT$(A$,LEN(A$)-1):PRINTCH$; 194 GOTO190 200 R5=R0:PRINT:A$=LEFT$(A$+STRING$(8,0),8):IF A$=UP$ THEN 210 ELSE T=T+1:TR$=TR$+CHR$(13)+A$:IF T>2 THEN 9800 ELSE180 210 RUN T 900:C2=C2+1:IFC2>255THEN C2=0:C1=C1+1:IFC1>255THEN C1=0:C2=C2+1 211 LSET U7$=CHR$(C1):LSET U8$=CHR$(C2):CN=C1*256+C2:GOSUB9700:IF UY=1 THEN LSET UM$=CHR$(0) 215 PUT#1,1:FORA=1TO10:PRINT:NEXTA:PRINT"WELCOME ";NA$:PRINT"PLEASE WAIT....":GOSUB9400:PRINT:PRINT 220 PR=ASC(UA$):F$=U1$:GOSUB4100:P1$=F$:F$=U2$:GOSUB4100:C3=0:P2$=F$:BC=ASC(UE$):LG=CVN(U5$):LM=CVN(UM$):DB$=UD$:TI=ASC(UO$):UL=VAL(UL$):LSET UD$=DT$:POKE 4618,ASC(UE$):POKE4619,ASC(UO$) 230 LSET U7$=CHR$(C1):LSET U8$=CHR$(C2):F$=UR$:GOSUB4100:R$=F$:LG=LG+1:LSET U5$=MKN$(LG):LSET UM$=MKN$(RE):IF UY=1 THEN LG=1 235 PRINT"LOW SYSTEM MESSAGE";RS:PRINT"HIGH SYSTEM MESSAGE";RE:GOSUB9700 236 FORA=1TO5:A(A)=ASC(MID$(DB$,A,1)):NEXTA:C4=1:PRINT"LAST ON:";STR$(A(1));"/";RIGHT$(STR$(A(2)),2);"/";RIGHT$(STR$(A(3)),2);" ";STR$(A(4));":";:A$=RIGHT$(STR$(A(5)),2):IFVAL(A$)>9 THEN PRINTA$ELSEMID$(A$,1,1)="0":PRINTA$ 237 CN=C1*256+C2:PRINT"YOU ARE CALLER NUMBER";CN 240 PRINT"YOU HAVE LOGGED IN:";LG" TIMES":PRINT"LAST MESSAGE RECEIVED:";LM:PRINT:PRINT"YOU ARE AUTHORIZED";ASC(UO$)*5;"MINUTES" 245 MW=0:IFLOF(1)<2THENPUT#1,2 oPZ<x }€ÃŽ_¦€÷ÿ˜·ÿ™\Á%ó†@·ÿœŽ¿¿80ˆPŒ€%ó¿RŽ¿¿† ¾††4·ÿ˜·ÿ™5L·ÿ˜÷ÿ™9¾0ˆO†↠¼'0 ï9Æ÷ÿ˜öÿ˜*û·ÿ›€C0¾0‰0Ž †ÿ´¦ &† Š€ÿÕ0Œp%è9¾Œ0+#ª¾0ˆPŒP+ Žà¿¿Ž¿† ÿw±947ŽŸöXn•§ Çå&¼#0¿† ÿzÿB _ &€þ0ˆP¿¿ÿ–ÿ* G &¾¿ 8 &þï 2&†·5· %#4þÿ5ÿ/0¿¾0ˆP¼"¿ÿMþá5·Ž7¡€'0æ„&ö5·ün”AdB…C·D¡€CHYYRjMþ‰5·Æ÷5·¾¿þ5·³4üƒP³$Ã0ýãáýþ|5·³4üðÃPƒ0%ƒ0ó ׳ƒ*ÌOóýþJ5·³ÃƒP%é€ÃO_ å€ #†ÆP=óýýþ!†·5·€ O#†O˜Oóýþ5·Ž ¿rÌ_O§€O§€Z&û95¦€'þ{ ÷n„οPO·ÿ@ŽœŸr޳¿¿O·ÿi†6·ÿk†«·€Cÿjïÿ´ývÿÀCOTERM Copyright 1985 (c) by SRB Software Programed by Steve Bjork for the PBJ Word Pak II and the Radio Shac€Ãk DeLux RS-232 Pak Use the down arrow as the CRTL key. CRTL codes are sent when typed. To Send text line buffer, press Left arrow is use as backspace on text in line buffer The key will clear the text buffer line Pressing the CRTL-@ €Ãkey will pause the screen with incoming data store in a buffer. Press CRTL-@ to resume displaying data. Use the RESET to exit €Cprogram COTERM IS NOW READY, HAVE FUN! ýŒûÏtù¶&¾¼'¦€œt%޳¿ûý¶t'¶ÿi„'Õ¾r¦€¿r·ÿh '½ ÄuM+_„'º '­€Ã&¾rŒ 'ªo„†_§‚¿rûj œ &|t§ŸrŽ ¿r ‰" öÿiÄ'ù·ÿhÿx¾rŒo$ÿn§€†_§„¿rû.ÿ_€€&s}ÿUJ&sÿL4TÎËŽuOJ·ÿyÿ$Y3Ap€C‰¨„¤„ç€M'ì÷~ÆøË3HD$ù3XöÿF'3Èp 1'3È8¦Ä'%÷ÿŽ0&ü4±~&¦Äö}* a%z"€ M5ÔO5Ô†·ÿ¶ÿC„@9†ï·ÿ¶ÿC„9¶ÿŠ€}ÿ+Š@4öÿ€ÃÅï5&Š9@abcdefghijklmnopqrstuvwxyz 0123456789:;,-./ `ABCDEFGHIJKLMNOPQRSTUVWXYZ^ €!"#$%&'()*+<=>? pC  0123456789:;,-./ 4öÿiÅ'¶ÿhÄ'Š€¾§€œt%޳¼'¿5–P·ÿÞq†3·ÿO‹·ÿœnŸÿþÿ klmnopqrstuvwxyz 0123456789:;,-./ `ABCDEFGHIJKLMNOPQRSTUVWXYZ^ €!"#$%&'()*+<=>? pC ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 0 '-COBBS (COBBS/SYS) COPYRIGHT 1984 BY RICHARD DUNCAN 1 ' these mods were made by charles w. gordon, cobbs #8, los angeles, for HIS board. 9 RUN T 30:PRINT 10 CLEAR3500:DIM BC$(21),L$(80),TY$(21),TX$(21),D$(21),KY$(21):NU$=CHR$(0):DR$(0)="0":DR$(1)="1":DR$(2)="2":DR$(3)="3" 11 DEFUSR0=&H0ED0:DEFUSR1=&H0ED3:DEFUSR2=&H0E81 15 RUNT30:GOSUB9500 20 GOSUB25:GOTO1000 25 '-CARRIER CHECK- 26 IFPEEK(4658)=0THEN28 ELSE CD=PEEK(65385):CD=CD AND 32:IF CD<>0 OR PEEK(4657)<>0 THEN 27 ELSE28 27 CLOSE:FORT=1TO100:NEXTT:TR$=TR$+"LOSS OF CARRIER":GOSUB9615:LOAD"USER/SYS",R 28 II$=INKEY$:IFII$=""THEN29ELSECH$=II$:K=INSTR("^_ ]",II$):IFK=0THEN29ELSE ON K GOSUB800,31,7130,9800 29 RETURN 30 PRINT:PRINT"UNABLE TO ACCESS PROPERLY.":PRINT"PLEASE CALL BACK LATER....":POKE65386,106:LOAD"USER/SYS",R 31 IFPEEK(4684)<>188THENPOKE&HAC7D,&HA3:POKE&HAC7E,&H90:GOSUB860:GOSUB880:ENDELSEGOSUB860:GOSUB880:FORX=&H112B TO &H1136:POKE X,&H12:NEXTX:END 33 LOAD" SMF/EDI",R 34 RETURN 35 LOAD" SUL/EDI",R 36 RETURN 37 RETURN 38 RETURN 39 PRINT:PRINT:D=VAL(D$):IFD=0THENPRINT"FILE NOT AVAILABLE AT THIS TIME.":RETURN ELSEIF D=1 THENPRINT"SORRY, YOU ARE NOT AUTHORIZED.":RETURN 40 LOAD" SMP.EDI",R: ' i modified this file to work off sysop menu. 41 LOAD"LOOKREG.11",R: ' this is a very short mod to go to printer--works for me!! 42 PRINT:PRINT:PRINT:F3=1:GOSUB710:F3=0:RETURN 43 RETURN 44 RETURN 45 RETURN 46 RETURN 47 RETURN 48 X$="HELP":GOTO7000 49 X$="INFO":GOTO7000 50 X$="TEXT":GOTO7000 51 X$="BULL":GOTO7000 52 RETURN 53 RETURN 54 RETURN 55 BQ=VAL(D$):F6=1:G0=1:GOTO2000 56 F6=1:GOTO87 57 F6=1:GOTO88 58 X$="":GOTO7000 59 RETURN 60 RETURN 61 RETURN 62 RETURN 63 RETURN 64 GOTO300 65 X=VAL(D$):GOTO200 66 RETURN 67 GOTO7100 68 B=VAL(LEFT$(D$,1)):TD=B:IFB<3THEN D$=RIGHT$(D$,4):GOTO1200 ELSE ZK=INSTR(D$,"P"):ZD=VAL(MID$(D$,2,1)):GOTO1200 69 GOTO550 70 RETURN 71 B0=BC:BC=VAL(D$):RETURN 72 RETURN 73 RETURN 74 RETURN 75 GOTO1900 76 ZK=INSTR(D$,"K"):PF=INSTR(D$,"P"):BL=VAL(D$):GOTO1400 77 ML=1:BQ=VAL(D$):F6=0:GOTO2000 78 ZK=INSTR(D$,"K"):PF=INSTR(D$,"P"):ML=1:BL=VAL(D$):F6=0:GOTO1400 79 GOTO900 80 GOTO400 81 IFVAL(D$)=0THEN31ELSE750 82 BQ=VAL(D$):F6=0:GOTO2000 83 BQ=VAL(D$):F6=1:GOTO2000 84 IFVAL(D$)=0THEN9800ELSEPRINT:PRINT"WOULD YOU LIKE TO LEAVE":PRINT"THE SYSTEM OPERATOR A MESSAGE? ":GOSUB625:IFCH$="Y"THENÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@Ä    ÇÃÇÄÈ"#$%&'()*+,ÉÄ/0Æ2345Ã78Ã:Å<=È?ÂAÄÿÿS2 DOCÿ6¥COBBS3 DOCÿ98COBBS4 DOCÿ;`COBBS5 DOCÿ>¼COBBS6 DOCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCOTERM BIN COBBS SYSÿ!>USER SYSÿÙMENU MAKÿêHARMSG MAKÿLUSERL MAKÿ-à64 BASÿ¯COBBS DOCÿ³COBBS TXTÿ.ECOBBS1 DOCÿ1COBBS2 DOCÿ6¥COBBS3 DOCÿ98COBBS4 DOCÿ;`COBBS5 DOCÿ>¼COBBS6 DOCÿkÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPRINT"YES":GOSUB95:GOTO9800 ELSEPRINT"NO":GOTO9800 85 TU=VAL(LEFT$(D$,1)):TD=VAL(MID$(D$,2,1)):GOTO1300 86 MQ=1:BQ=VAL(D$):G0=1:F6=0:GOTO2000 87 BQ=VAL(D$):G0=2:GOTO2000 88 BQ=VAL(D$):G0=3:GOTO2000 89 GOSUB95:RETURN 90 TR$=TR$+CHR$(13)+"RESTART LOG ON":GOSUB9615:LOAD"USER/SYS",R 95 MF$=NA$:MT$="SYSOP":MS$="SYSOP MSG":BL=255:ML=2:GOSUB1445:RETURN 100 '-GET TIME- 101 DC=VAL(HEX$(PEEK(&H0EFD))):HR=VAL(HEX$(PEEK(&H0EFE))) 102 MN=VAL(HEX$(PEEK(&H0EFF))):SS=VAL(HEX$(PEEK(&H0F00))) 103 HR$=RIGHT$(STR$(HR),2):IFHR<10THEN MID$(HR$,1,1)="0" 104 MN$=RIGHT$(STR$(MN),2):IFMN<10THEN MID$(MN$,1,1)="0" 105 TI$=HR$+":"+MN$:IF SS<54ORMN>58 THEN 108 106 MN=MN+1:IF MN>59 THEN MN=0:HR=HR+1:IF HR>23 THEN HR=0 107 X=USR1(HR*256+MN) 108 X=PEEK(4611):IF X<>DC THEN 111 109 DA$=RIGHT$(STR$(PEEK(4608)),2)+"/"+RIGHT$(STR$(PEEK(4609)),2)+"/"+RIGHT$(STR$(PEEK(4610)),2) 110 GOTO118 111 MM=PEEK(4608):DA=PEEK(4609):YY=PEEK(4610):DA=DA+1:IFDA>31THEN DA=1:MM=MM+1:IF MM>12 THEN MM=1:YY=YY+1 112 POKE4608,MM:POKE4609,DA:POKE4610,YY:POKE4611,DC:GOTO109 118 AX=PEEK(4615)*60+PEEK(4616):PT=HR*60+MN:IFF3=1THEN124ELSEUO=PEEK(4619):IF PT-AX<(UO*5)-5 OR UO=255 THEN 121 119 T0=PEEK(4619)*5:T1=T0-(PT-AX):IFT1<1THEN T1=0:GOTO120 ELSE PRINT"YOU ONLY HAVE";T1;"MINUTES LEFT!":GOTO121 120 PRINT"YOU HAVE NO TIME LEFT!":TR$=TR$+"TIMED OUT "+TI$:GOSUB9615:GOTO9820 121 ' 124 RETURN 150 '-DECIMAL TO BINARY 152 F=ASC(F$):E=128:F$="" 154 FOR Q=1 TO 8 156 J=INT(F/E) 158 IF J=0 THEN F$=F$+"0"ELSEF$=F$+"1" 160 F=F-(E*J):E=E/2 162 NEXT Q 166 RETURN 175 '-BINARY TO DECIMAL 177 E=1:F=0 179 FOR Q=8 TO 1 STEP -1 181 IFMID$(F$,Q,1)="1"THEN F=F+E 183 E=E*2:NEXTQ:F$=CHR$(F) 185 RETURN 200 '-MENU ABORT 205 ' 210 ' 215 ON X+1 GOTO 220,230,240 220 BC=B0 225 RETURN 230 BC=PEEK(4618) 235 RETURN 240 BC=0 245 RETURN 300 '-MENU CONTROLS- 303 BX=1:M=0:B=PEEK(4618):P9=0 306 CLS:PRINT:PRINT:PRINT" MENU CONTROL EDITOR":PRINT:GOSUB339 309 PRINT"PRESENT LOG-ON MENU:";B:PRINT:PRINT" FOR LIST, OR":PRINT"NUMBER TO LOG ON: ";:GOSUB650 312 IFCH$="?"THEN303ELSE BE=VAL(CH$):IF BE<0 OR BE>255 THEN 309 ELSE FOR X=1 TO LEN(BA$):IF BE=ASC(MID$(BA$,X,1)) THEN 315 ELSE NEXT X:GOSUB369:GOTO309 315 CLS:PRINT:PRINT:PRINT" MENU PROMPTING":PRINT" 1 - FULL TEXT PROMPT":PRINT" 2 - ABBREVIATED PROMPT":PRINT" 3 - KEY PROMPT":PRINT" 4 - COMMAND ONLY":PRINT"ENTER PROMPT: ";:GOSUB600:P=VAL(CH$):IF P>4ORP<1 THEN 315ELSEPRINTCH$ 318 PRINT:PRINT"HOLD ON, WE'RE LOOKING.."; 321 CLOSE:GOSUB9200:GET#1,1:LSET UE$=CHR$(BE):POKE4618,BE 324 LSET UL$=CHR$(P):POKE4628,P:UL=P:UX=P 326 PUT#1,1:X$=UN$+UP$:K7=PEEK(4690)*256+PEEK(4691):IFK7>LOF(1)ORK7=0THENK7=2 327 GET#1,K7:Y$=UN$+UP$:IFX$=Y$THEN R=K7:GOTO330ELSEFOR R=2 TO K1:GET#1,R:IF LEFT$(A$,58)=X$ THEN 330 ELSE NEXT R:PRINT:PRINT"UNABLE TO PROPERLY ACCESS.":PRINT"PLEASE TRY LATER.":CLOSE:RETURN 330 LSET UE$=CHR$(BE) 333 LSET UL$=CHR$(P) 336 PUT#1,R:CLOSE:PRINT:RETURN 339 CLOSE:GOSUB9400:BA$="" 342 FOR RM=1 TO K1 STEP 4 345 GET#1,RM:PB=ASC(M2$):PO=ASC(M7$):IFP9=1ANDPO=0THEN372 348 GOSUB825 354 ON BX GOTO 357,366 357 IF PRBE THEN 372 ELSE IF PR=>PB AND K7=0 THEN 375 369 M=1:PRINT"YOU ARE NOT AUTHORIZED FOR THAT MENU.":GOTO 375 372 NEXT RM:IF BX=2 THEN 369 375 CLOSE:RETURN 400 '-CHANGE PASSWORD- 405 RUNT1170 410 C=0:EXEC&H10DA 415 PRINT:PRINT"Please wait. Accessing userlog." 420 CLOSE:GOSUB9200:GET#1,1:TT$=UN$+UP$:K7=PEEK(4690)*256+PEEK(4691):IFK7=0ORK7>K1 THEN425ELSE GET#1,K7:IFTT$=UN$+UP$ THEN A=K7:GOTO440 425 FOR A=2 TO K1 430 GET#1,A:IF TT$=UN$+UP$THEN440 435 NEXTA:CLOSE:PRINT"UNABLE TO ACCESS PROPERLY.":RETURN 440 PRINT"PRESENT PASSWORD: ";UP$:EXEC4314 445 PRINT"ENTER NEW PASSWORD: ";:GOSUB650 450 IFCH$=""THEN460ELSEIFLEN(CH$)>8THENPRINT"TOO LONG. MAXIMUM OF 8 CHARACTERS.":GOTO445 455 CH$=LEFT$(CH$+STRING$(8,0),8):LSET UP$=CH$:PUT#1,A:GET#1,1:LSET UP$=CH$:PUT#1,1 460 CLOSE:RETURN 480 CLOSE:RETURN 500 '-COMPARE FLAGS- 505 K7=0 510 FOR Q=1 TO 8 515 IFMID$(F$,Q,1)="0"THEN525 520 IFMID$(PX$,Q,1)<>"1"THEN K7=1:RETURN 525 NEXTQ:RETURN 550 '-RUN PROGRAM TTTTT- 555 RUN T 1170 560 LOAD D$,R 600 '-SINGLE KEY INPUT 604 GOSUB25:RUNT1170 605 EXEC&H10DA:CH$=CHR$(PEEK(4481)):IC$=INKEY$:IFIC$<>""THEN CH$=IC$:GOTO615 610 IFCH$=CHR$(0)THEN605 615 RETURN 625 GOSUB604:CH=ASC(CH$) 630 IFCH>96ANDCH<123THEN CH=CH-32 635 CH$=CHR$(CH):RETURN 650 '-LINE INPUT- 655 GOSUB25:RUNT1170:LINEINPUTCH$:GOSUB25:RETURN 675 GOSUB655:G1$="":IFCH$=""THENRETURN 680 FOR G=1 TO LEN(CH$) 685 G1=ASC(MID$(CH$,G,1)):IFG1>96ANDG1<123THEN G1=G1-32 690 G1$=G1$+CHR$(G1):NEXTG:CH$=G1$:RETURN 700 '-TIME ON SYSTEM- 705 F3=0 710 GOSUB100:PT=(HR*60)+MN 720 LT=(PEEK(4615)*60)+PEEK(4616):IF PT9THENPRINTA$ELSEMID$(A$,1,1)="0":PRINTA$ 732 PRINT" TIME:";STR$(HR);":";:A$=RIGHT$(STR$(MN),2):IFVAL(A$)>9THENPRINTA$ELSEMID$(A$,1,1)="0":PRINTA$ 735 PRINT:PRINT"TIME ON SYSTEM:";STR$(HT);":";:A$=RIGHT$(STR$(MT),2):IFVAL(A$)>9THENPRINTA$ELSEMID$(A$,1,1)="0":PRINTA$ 736 ' 745 RETURN 750 '-EXIT W/PASS- 755 PRINT:PRINT 760 PRINT"EXITING TO DOS..." 765 PRINT"PASS: "; 770 GOSUB650 775 IFCH$=RIGHT$(D$,4)THEN TR$=TR$+"+++EXIT TO BASIC+++":GOSUB9615:GOTO31 780 PRINT:TR$=TR$+"**EXIT DENIED**":GOSUB9615 785 PRINT:RETURN 800 '-PRINT USER- 805 GOSUB870 810 PRINT:PRINT"** ";NA$;" **" 815 GOSUB880 820 RETURN 825 'COMPARE 830 F$=M3$:GOSUB150:F1$=F$:PX$=P1$:GOSUB500:IFK7=1THEN840 835 F$=M4$:GOSUB150:F2$=F$:PX$=P2$:GOSUB500 840 RETURN 850 'I-OFF 855 POKE&H016B,197:POKE&H016C,PEEK(4684):RETURN 860 'I-ON 865 POKE&H016B,16:POKE&H016C,205:RETURN 870 'O-OFF 875 POKE&H0168,PEEK(4681):POKE&H0169,PEEK(4682):RETURN 880 'O-ON 885 POKE&H0168,&H10:POKE&H0169,&HE6:RETURN 900 '-USERLOG LIST 905 GOSUB9200 910 FOR A=1TO5:PRINT:NEXT:PRINTTAB(5)"1 - ENTIRE LIST":PRINTTAB(5)"2 - SEARCH FOR USER":PRINTTAB(5);">"; 915 GOSUB600:PRINTCH$:PRINT:K=INSTR("12",CH$):IFK=0THEN999 920 IF K=1 THEN935 925 PRINT" NAME: ";:GOSUB675:NT$=CH$ 930 IF NT$=""THEN999 935 PRINT:PRINT:PRINT" PRESS 'S' TO STOP - 'P' PAUSE":PRINT:FOR A=1 TO K1 940 GET#1,A:X=INSTR(UN$,NT$):IF K=2 AND X=0 THEN 960 ELSE X$=UN$ 945 X=INSTR(X$,CHR$(0)):N$=LEFT$(X$,X-1):X$=RIGHT$(X$,50-X) 950 X=INSTR(X$,CHR$(0)):L$=LEFT$(X$,X-1) 955 PRINT:PRINTTAB(4)N$:PRINTTAB(4)L$:IFINKEY$="S"THEN999 960 EXEC&H10DA:CH$=CHR$(PEEK(4481)):GOSUB25 965 Y=INSTR("SsPp",CH$):IF Y=0 THEN 980 970 IF Y<3 THEN 999 975 EXEC&H10DA:GOSUB25:IFPEEK(4481)<>13THEN975 980 NEXTA 999 CLOSE:RETURN 1000 '-MENU LIST- 1005 GOSUB850:GOSUB25:RUNT1170:SS$=STRING$(20,255) 1010 TT$="":CT$="":T$="":PRINT:PRINT" HOLD ON...";:PR=PEEK(4620) 1015 GOSUB9400:EXEC&H10DA 1025 FOR R=1 TO K1 STEP 4 1030 GET#1,R:IF ASC(M1$)<>BC THEN 1050 1035 GOSUB825 1040 IFK7=1THEN1046 1045 IF ASC(M2$)<=PR THEN 1060 1046 PRINT:PRINT:PRINT"YOU ARE NOT AUTHORIZED ON THIS SECTION":PRINT:CLOSE:CLOSE:BC=B0:GOTO1000 1050 NEXT R:GOSUB100 1055 BC=B0:GOTO1000 1060 BN$=M5$:BT$=M6$:T$="":PL=0 1065 FIELD#1,35 AS B$(1),35 AS B$(2),35 AS B$(3),35 AS B$(4),35 AS B$(5),35 AS B$(6),35 AS B$(7),5 AS B$(8) 1070 GET#1,R+1:FORA=1TO7:BC$(A)=B$(A):NEXTA 1075 GET#1,R+2:FORA=8TO14:BC$(A)=B$(A-7):NEXTA 1076 GET#1,R+3:FORA=15TO21:BC$(A)=B$(A-14):NEXTA:' couldn't handle high-speed poke 1080 FOR A=1 TO 21 1083 IF LEFT$(BC$(A),20)=SS$ THEN CO=A-1:GOTO1109 1084 TY$(A)=MID$(BC$(A),4,1):IFTY$(A)="L"ORTY$(A)="N"THENIFPL=0THEN PL=ASC(LEFT$(BC$(A),1)) 1085 IF ASC(LEFT$(BC$(A),1))>PR THEN 1088 1086 F$=MID$(BC$(A),2,1):GOSUB150:PX$=P1$:GOSUB500:IF K7=1 THEN 1088 1087 F$=MID$(BC$(A),3,1):GOSUB150:PX$=P2$:GOSUB500:IF K7=0 THEN 1090 1088 BC$(A)="":GOTO1100 1090 D$(A)=MID$(BC$(A),5,5) 1095 KY$(A)=MID$(BC$(A),10,1):TX$(A)=RIGHT$(BC$(A),25):K=INSTR(TX$(A),CHR$(0)):IFK=0THEN1100ELSETX$(A)=LEFT$(TX$(A),K-1) 1100 CT$=CT$+KY$(A):NEXTA 1109 PRINTSTRING$(11,8):GOSUB850:UX=UL:IFUX<1ORUX>4THEN UX=1 1110 TT$=CT$:GOSUB1165:IFK>0THEN1140ELSEGOSUB25:CLS:PRINT:IF UX>2THEN1115ELSEX=INSTR(BT$,CHR$(0)):IF X=0 THEN 1115 ELSE FOR B=1 TO X:A$=MID$(BT$,B,1):IF A$="\" THEN PRINTCHR$(13)ELSEPRINTA$;:NEXT B 1115 GOSUB25:ML=0:PRINT:GOSUB800:PRINT"*";BC;"* ";BN$:G0=0 1116 FOR A=1 TO CO 1120 GOSUB25:IF TX$(A)=STRING$(25,32) ORBC$(A)="" OR LEFT$(BC$(A),25)=STRING$(25,255) THEN 1130 1125 ON UX GOTO1126,1127,1128,1129 1126 PRINTTX$(A):GOTO1129 1127 K=INSTR(TX$(A),CHR$(32)):IFK=0THEN1126ELSEPRINTLEFT$(TX$(A),K-1):GOTO1129 1128 PRINTKY$(A);" "; 1129 GOSUB1165:IFK>0THEN1140 1130 NEXT A:POKE65494,0:PRINT:IF PL=0 THEN PL=250 1131 GOSUB860:GOSUB100:PRINT"COMMAND: ";:X0=0 1135 GOSUB625:IF CH$=CHR$(13) THENPRINT:UX=1:PRINT:GOTO 1110 ELSEX=INSTR(CT$,CH$):IF X>0 THEN PRINT CH$ELSE1135 1140 FOR A=0 TO 19:IF MID$(BC$(A),10,1)=CH$ THEN 1145 ELSE NEXT A:GOTO1135 1145 TY$=MID$(BC$(A),4,1):D$=MID$(BC$(A),5,5) 1150 G=ASC(TY$):CLOSE:B1=BC:GOSUB860 1155 GOSUB9600:ON G-32 GOSUB33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90 1160 IF BC=B1 THEN 1110ELSE1000 1165 EXEC4314:CH$=CHR$(PEEK(4481)):CH=ASC(CH$):IFCH>96ANDCH<123THEN CH=CH-32:CH$=CHR$(CH) 1166 CV$=INKEY$:IFCV$<>"" THEN CH$=CV$ 1167 K=INSTR(TT$,CH$):IFK>0THENPRINT:PRINTCH$:RETURNELSERETURN 1170 '-SYSTEM ERROR- 1175 PRINT:PRINT"SYSTEM ERROR, PLEASE WAIT..."; 1176 CLEAR1000:X0=X0+1:IFX0>3THEN9820 1180 ER=PEEK(&HFD):EL=PEEK(&HFE)*&H100+PEEK(&HFF) 1181 IF ER=>54 THEN EA=&HC242+ER:GOTO1185 1182 IF ER=>50 THEN EA=&H88D9+ER:GOTO1185 1183 EA=&HABAF+ER 1185 ER$=CHR$(13)+"***ERROR TYPE "+CHR$(PEEK(EA))+CHR$(PEEK(EA+1))+" IN LINE"+STR$(EL)+"***":GOSUB870:PRINTER$:GOSUB9615:TR$=STRING$(32,"+")+CHR$(13)+ER$+CHR$(13)+STRING$(32,"+")+CHR$(13):GOSUB9615 1190 RUNT1170:GOSUB880 1195 PRINT:PRINT:RUN 1200 '-DOWNLOAD ASCII- 1205 RUNT1229:IFTD>2THENPRINT:PRINT"FILE TO DOWNLOAD: ";:GOTO1215 1206 IF D9=0 THEN D9=1:CH$="M":GOTO1225 1210 CLS:PRINT:PRINT:GOSUB100:PRINT"[M]ENU, TO EXIT OR":PRINT"Number to download: ";:FT$="":F$="" 1215 GOSUB675:RUNT1229:IFCH$=""THEN D9=0:GOTO1110ELSEFT$=CH$:IFTD<3THENIFLEN(CH$)>4THEN1200ELSE1220 1216 IFLEFT$(CH$,3)<>"DIR"THEN F$=CH$:GOTO1226ELSE D=VAL(RIGHT$(CH$,1)):IF TD<4THEN D=ZD 1217 IFD=1THEN DIR1:GOTO1219ELSEIFD=2THEN DIR2:GOTO1219 1218 IF D=0THEN DIR0 ELSE DIR3 1219 PRINT"FREE:";FREE(D):GOTO1200 1220 GOSUB25:IFCH$<>"M" THEN 1230 1225 FT$="DOWN"+D$+"/MNU:":D=-1:GOSUB1245:GOTO1210 1226 IFTD=3THEN D=ZD ELSEPRINT"DRIVE: ";:GOSUB600:RUNT1200:D=VAL(CH$):IFD>3THEN1226ELSEPRINTD 1227 IFZK>0THEN X$=RIGHT$(F$,4):IFX$="/SYS"ORX$="/BAK"ORX$="/BIN"THEN1200 1228 F$=F$+":"+DR$(D):RUNT1290:GOTO1230 1229 GOTO1110 1230 CLS:PRINT:PRINT:PRINT"1 - ASCII, NO BUFFER":PRINT"2 - ASCII, WITH BUFFER":PRINT" TO EXIT" 1235 GOSUB600:RUNT1200:X=VAL(CH$):B=X-1:IFX=0THENRETURNELSEIFX>0ORX<3THENPRINTTAB(3)CH$ELSE1235 1237 IFTD>3THEN1255 1240 FT$=D$+FT$+"/DOW:":D=-1 1245 RUN T 1245 1250 IFTD=3THEN1290ELSED=D+1:IF D>3 THEN1290ELSE F$=FT$+DR$(D) 1255 CLOSE:UNLOAD:RUNT1250:OPEN"I",#1,F$:RUN T 1290:IFCH$="M" THEN1270 1260 IF B=0 THENPRINT"OPEN BUFFER...":FOR O=1 TO 1200:NEXT O 1265 IF B=1 THENPRINTCHR$(18); 1270 IFEOF(1)THEN1275ELSEGOSUB25:LINEINPUT#1,A$:PRINTA$:EXEC4314:CH=PEEK(4481):IFCH=83ORCH=115ORINKEY$="S"THEN1275ELSE1270 1275 RUN T 1200:IFCH$="M" THEN1280ELSEIF B=1 THENPRINTCHR$(20)ELSEFORO=1TO1200:NEXTO 1280 CLOSE:TR$=TR$+CHR$(13)+"DOW: "+F$+CHR$(13):GOSUB9610:GOTO1200 1290 RUN T 1200:PRINT:PRINT"UNABLE TO ACCESS FILE.":PRINT:GOTO1200 1300 '-UPLOAD ASCII- 1305 ' 1310 RUN T 1110:PE=0:PRINT:PRINT 1315 PRINT 1320 X=FREE(TD):IFX<5ANDTU<3THENPRINT"SORRY, SPACE NOT AVAILABLE.":FORA=1TO250:NEXTA:RETURN 1325 PRINT"ENTER FILE NAME: ";:GOSUB675:IFLEN(CH$)>8THEN1325ELSEIFCH$=""THENRETURNELSEA$=CH$ 1330 PRINT" EXT: ";:IFTU<2THENB$="UPL":PRINTB$ELSEGOSUB675:IFLEN(CH$)>3THEN1330ELSEIFCH$=""THENRETURNELSEB$=CH$ 1335 IFTU>2THENPRINT" DRIVE: ";:GOSUB625:D=VAL(CH$):IFCH$=""THENRETURNELSEIFD>3THEN1335ELSEPRINTCH$ 1340 IFTU<3THEN D=TD:RUN T 1390:X=FREE(D):IFX<5THEN"SORRY, SPACE NOT AVAILABLE." 1342 X=FREE(D):IFX<3ANDTU<4THEN1390ELSE FL$=A$+"/"+B$+":"+DR$(D):IFTU<4THEN RUNT1345:OPEN"I",#1,FL$:CLOSE:PRINT:PRINT"FILE ALREADY EXIST...":GOTO1110 1344 IFTU=4THENPRINTTAB(12)"FREE:";X 1345 RUN T 1390:OPEN"O",#1,FL$:EXEC4314 1350 PRINT"READY TO RECEIVE. TYPE":PRINT"'END' ON A LINE BY ITSELF":PRINT"TO EXIT UPLOAD.":PRINT 1355 LINEINPUT">";C$:GOSUB25:IFC$="END"ORC$="end"THEN1370 1360 PRINT#1,C$:GOTO1355 1370 CLOSE:TR$=TR$+CHR$(13)+"UPL: "+FL$:GOSUB9600 1375 RUNT1110:CLOSE:RETURN 1390 UNLOAD:PRINT"DRIVE NOT AVAILABLE.":PRINT:FORT=1TO150:NEXTT:GOTO1110 1400 '-LEAVE MESSAGE- 1405 ' 1410 IF BL=255 THEN GOSUB1660:IF BL=255 OR CH$="" THEN RETURN 1411 X=FREE(PEEK(4671)):IF X<3 THEN PRINT:PRINT"MESSAGE BASE FULL!":RETURN 1415 MD$=CHR$(0):MI$=MD$ 1420 GOSUB25:PRINT:PRINT:MF$=NA$ 1425 PRINT"FROM: ";MF$:EXEC&H10DA 1430 PRINT" TO: ";:GOSUB675:IFCH$=""THENRETURN 1435 MT$=CH$ 1440 PRINT"SUBJ: ";:GOSUB675:IFCH$=""THEN1440ELSEMS$=CH$ 1445 X=FREE(PEEK(4670)):Y=FREE(PEEK(4671)):IF X<2ORY<2 THEN PRINT"MESSAGE BASE FULL!":RETURN ELSE IFML>0THEN P$="10000000":GOTO1450ELSEIFPF=0THEN P$="00000000":GOTO1450ELSEPRINT"MESSAGE PRIVATE (Y/N)? ";:GOSUB625 1446 IFCH$="Y"THEN P$="10000000":PRINT"YES"ELSEIFCH$="N"THEN P$="00000000":PRINT"NO"ELSEGOSUB625:GOTO1446 1450 K=LEN(MF$)+LEN(MT$)+LEN(MS$)+2:IFK>64THENPRINT"SUBJECT TOO LONG":PRINT"LIMIT TO ";64-LEN(MF$)-LEN(MT$)-2:PRINT"TRUNICATING.." ELSE 1452 1451 IFLEFT$(MS$,5)="REPLY"THEN MS$=RIGHT$(MS$,LEN(MS$)-(K-64)) ELSE MS$=LEFT$(MS$,LEN(MS$)-(K-64)):GOTO1450 1452 GOSUB25:PRINT:PRINT:PRINTTAB(5)"FROM: ";MF$:PRINTTAB(5)" TO: ";MT$:PRINTTAB(5)"SUBJ: ";MS$ 1453 IFP$="10000000"THENPRINTTAB(5)"PRIVATE MESSAGE"ELSEPRINTTAB(5)"PUBLIC MESSAGE" 1455 IF ML=2 THEN 1465 ELSE PRINT:PRINT"CORRECT (Y/N)? "; 1460 GOSUB600:K=INSTR("NnYy",CH$):IFK>2THENPRINT"YES":GOTO1463ELSEIFK>0THEN1415ELSE1460 1463 PRINT:PRINT 1465 PRINT:PRINT"ENTER MESSAGE. MAXIMUM OF 2000":PRINT"BYTES. MAXIMUM OF 40 LINES.":PRINT"PRESS ON LINE BY ITSELF":PRINT"TO EXIT.":PRINT:LE=0:EXEC&H10DA 1470 FOR LL=1 TO 40 1475 PRINT">";:LINEINPUTCH$:IFCH$=""THEN1497 1485 L$(LL)=CH$:GOSUB25:IF LE+LEN(CH$)>1999THEN1496 1490 ' 1491 LE=LE+LEN(CH$):IF LL>35 THENPRINT"YOU ONLY HAVE";40-LL;"LINES LEFT." 1495 IFLE>1500THENPRINT"::";2000-LE;" BYTES LEFT..." 1496 IF LE<2000THENNEXT LL ELSEPRINT"BUFFER FULL!!!" 1497 POKE65494,0 1500 PRINT:GOSUB100:PRINT"IST DIT ONTINUE AVE BORT "; 1505 CH=1:GOSUB625:K=INSTR("LECSA",CH$):IFK=0THEN1505 1510 PRINTCH$:ON K GOTO 1515,1520,1475,1555:RETURN 1515 FOR C=1 TO LL:GOSUB25:PRINTC": ";L$(C):NEXTC:GOTO1500 1520 PRINT"LINE TO EDIT: "; 1525 CH=1:GOSUB650:X=VAL(CH$):IFX<1THEN1500 1530 IF X>LL THEN PRINT"NON-EXISTING LINE":GOTO1520 1535 PRINT"PRESENT LINE READS:":PRINT:PRINTL$(X):PRINT:PRINT 1540 PRINT"ENTER NEW LINE:":GOSUB650 1545 IFCH$=""THENPRINT:PRINT"LINE UNCHANGED":GOTO1500 1550 L$(X)=CH$:PRINT"LINE CHANGED":GOTO1500 1555 LL=LL-1 1560 PRINT:PRINT"SAVING MESSAGE. . .":GOSUB850 1564 IF K8=1 THEN 1565 ELSE GOSUB9000 1565 K1=LOF(1):IF K1=0 THEN MN=1:GOTO1575ELSE GET#1,1 1570 MI=CVN(H1$)+1:IF MI>60000 THEN MI=0 1575 LSET H1$=MKN$(MI):F$=P$:GOSUB175:LSET H2$=F$:LSET H5$=MF$+NU$+MT$+NU$+MS$+STRING$(80,NU$) 1580 GOSUB100:Q$=CHR$(HR)+CHR$(MN):LSET H4$=Q$:Q$=CHR$(PEEK(4608))+CHR$(PEEK(4609))+CHR$(PEEK(4610)):LSET H3$=Q$:LSET H8$=CHR$(BL) 1584 IF K8=1 THEN 1585 ELSE GOSUB9100 1585 K2=LOF(2):K2=K2+1:LSET H6$=MKN$(K2) 1590 A$="" 1595 B$="":LSET MG$=STR$(MI):PUT#2,K2 1600 FOR A=1 TO LL 1605 B$=L$(A)+CHR$(13):IFLEN(A$)+LEN(B$)>250THEN A=A-1:A$=A$+STRING$(80,0):C$="":GOTO1620ELSE A$=A$+B$ 1610 L0=LEN(A$):IFL0<80THEN1630 1615 C$=RIGHT$(A$,L0-80):A$=LEFT$(A$,80) 1620 LSET MG$=A$:K2=K2+1:PUT#2,K2:A$="" 1625 IFLEN(C$)>0THEN A$=C$:GOTO1610 1630 NEXTA 1635 IF LEN(A$)=0 THEN 1645 1640 LSET MG$=A$+STRING$(80,0):K2=K2+1:PUT#2,K2 1645 LSET MG$=STRING$(80,255):K2=K2+1:PUT#2,K2 1650 LSET H7$=MKN$(K2):PUT#1,K1+1:PUT#1,1:IFK1<2THEN PUT#1,2:RE=RE+1 1655 GOSUB860:IF K8=1 THEN RETURN ELSE CLOSE:RETURN 1660 PRINT:PRINT:IF PR=255 THEN 1662 ELSE IF BA$=""THEN P9=1:GOSUB339:GOSUB25:GOTO1660 1662 PRINT:PRINT:PRINT"BOARD # OR '?' "; 1665 CLOSE:GOSUB650:IF CH$="?" THEN 1675 ELSE CH=VAL(CH$) 1670 IF CH>-1 AND CH<255 THEN IF PR=255 THEN BL=CH ELSE 1680 1671 RETURN 1675 GOSUB339:GOTO1660 1680 FOR X=1 TO LEN(BA$) 1685 IF ASC(MID$(BA$,X,1))=CH THEN BL=CH:GOTO1671 1690 NEXT X:PRINT"NOT AUTHORIZED TO";CH 1695 GOTO1660 1900 '-KILL MESSAGES- 1905 ' 1910 ' 1920 PRINT:PRINT"KILL MESSAGE #"; 1925 GOSUB650:X=VAL(CH$):IFX=0THENRETURN 1930 GOSUB9000:PRINT 1935 FOR R0=2 TO K1:GET#1,R0:IFCVN(H1$)=X THEN 1945 1940 NEXT R0:PRINT"UNABLE TO LOCATE OR ALREADY DELETED.":CLOSE:RETURN 1945 F7=1:GOSUB2360:PRINT:F7=0 1950 IF NA$=MT$ OR NA$=MF$ OR PR=255 THEN 1960 ELSE PRINT"YOU ARE NOT AUTHORIZED!":PRINT:CLOSE:RETURN 1960 F$=H2$:GOSUB150:MID$(F$,2,1)="1":GOSUB175 1965 LSET H2$=F$:PUT#1,R0 1970 CLOSE:RETURN 2000 '-READ MESSAGES- 2005 F5=0:K9=0:UX=UL 2010 TT$="FRNIA" 2020 PRINTCHR$(12):CLS:PRINT:PRINT:IF UX>2 THEN 2050ELSEPRINT" MESSAGE BASE:" 2025 PRINTTAB(5)"ORWARD":GOSUB1165:IFK>0THEN2060 2030 PRINTTAB(5)"EVERSE" 2035 PRINTTAB(5)"EW":GOSUB1165:IFK>0THEN2060 2040 PRINTTAB(5)"NDIVIDUAL" 2045 PRINTTAB(5)"BORT TO MENU" 2050 PRINTTAB(5)"COMMAND: "; 2055 GOSUB625:IFCH$=CHR$(13)THEN UX=1:GOTO2020ELSEK=INSTR("FRNIA",CH$):IF K=0 THEN2055ELSEPRINTCH$ 2060 ON K GOTO 2070,2070,2070,2070,2065 2065 UX=UL:CLOSE:RETURN 2070 GOSUB9000:GOSUB9100 2075 GET#1,1:RE=CVN(H1$) 2080 FORB=2 TO K1:GET#1,B:F$=H2$:GOSUB150:IFMID$(F$,2,1)<>"1"THEN RS=CVN(H1$):GOTO2083 ELSE NEXT B:RS=RE 2083 IFK=3THENGOSUB2280:GOTO2190 2085 PRINT:PRINT"SYSTEM HAS MESSAGES";RS;"TO";RE:EXEC&H10DA 2090 PRINT"ENTER STARTING MESSAGE: ";:K1=LOF(1) 2095 GOSUB650:R=VAL(CH$):IF R=0 THEN2105 2100 IF RRE THEN CLOSE:RETURN 2105 IF K=4 AND R=0 THEN2100ELSEGOSUB2280:ON K GOTO 2110,2135,2190,2160 2110 '-FORWARD READ- 2112 IF R=0 THEN R=RS 2115 FOR R0=2 TO K1 2120 GET#1,R0:RH=CVN(H1$):IF RHR THEN 2155 2150 GOSUB2300:IFF6=1THENGOSUB2220 2155 IFK9=1THEN2185ELSENEXT R0:GOTO2185 2160 '-INDIVIDUAL READ- 2162 IF R=0 THEN CLOSE:RETURN 2165 FOR R0=2 TO K1 2170 GET#1,R0:RH=CVN(H1$):IF RH<>R THEN 2180 2175 GOSUB2300:IFF6=1THENGOSUB2220:GOTO2186ELSE2186 2180 NEXT R0:PRINT"MESSAGE NOT AVAILABLE":GOTO2186 2185 IFF5=0THENPRINT:PRINT"NO MESSAGES FOUND!":PRINT 2186 CLOSE:RETURN 2190 '-NEW MESSAGES- 2195 IF LM=>RE THEN2185 2200 FOR R0=2 TO K1 2205 GET#1,R0:RH=CVN(H1$):IF RH<=LM THEN 2215 2210 GOSUB2300:IFF6=1THENGOSUB2220 2215 IFK9=1THEN2185ELSENEXT R0:GOTO2185 2220 'SCAN 2225 IFF4=0THENRETURNELSEPRINT:GOSUB100:PRINT"[N]EXT [R]EAD [S]TOP "; 2230 GOSUB625:IFCH$="D"ANDPR>250THEN T$="D":GOSUB2455 ELSE K=INSTR("NRS",CH$):IFK=0THEN2230ELSEPRINTCH$:PRINT:PRINT 2235 ON K GOTO 2240,2250,2260:GOTO2230 2240 RETURN 2250 GOSUB2395:RETURN 2260 K9=1:RETURN 2280 PRINT:IFUL>2THENPRINT"PAUSE? ";:ELSEPRINT"PAUSE AFTER EACH MESSAGE? "; 2285 GOSUB625:C=INSTR("YN",CH$):ON C+1 GOTO 2285,2295,2290 2290 PS=1:PRINT"NO":RETURN 2295 PS=0:PRINT"YES":RETURN 2300 '-PRINT MESSAGE- 2305 K9=0:F4=0 2310 ON G0+1 GOTO 2315,2315,2320,2320 2315 IF ASC(H8$)<>BQ THEN RETURN ELSE 2335 2320 IF ASC(H8$)<=BQ THEN 2335 ELSE2330 2325 ' 2330 RETURN 2335 F$=H2$:GOSUB150:IFMID$(F$,2,1)="1"THENRETURN 2345 GOSUB25:F4=0:BR=ASC(H8$) 2350 R1=CVN(H6$):R2=CVN(H7$) 2355 GET#2,R1:IFVAL(MG$)<>RH THEN RETURN 2360 M0=CVN(H1$):KF=INSTR(H5$,NU$):MF$=LEFT$(H5$,KF-1) 2365 KT=INSTR(KF+1,H5$,NU$):XX=KT-KF-1:IFXX<1THEN MT$="":GOTO2370ELSE MT$=MID$(H5$,KF+1,XX):IFF7=1THENRETURN 2370 KS=INSTR(KT+2,H5$,NU$):XX=KS-KT-1:IFXX<1THEN MS$="":GOTO2371ELSE MS$=MID$(H5$,KT+1,XX):PF=0 2371 FOR YY=1 TO 5:PRINT:NEXT YY:CLS:GOSUB800:IFMID$(F$,1,1)="1"ORML=1THEN IF MT$=NA$ OR MF$=NA$ OR MQ=1 OR G0=1 OR G0=3 THENPRINT:PF=1:PRINT"PRIVATE":GOTO2380ELSERETURN 2375 PRINT:PRINT 2380 IFMID$(F$,3,1)="1"THEN X$=" " ELSE IF NA$=MT$ THEN MID$(F$,3,1)="1":GOSUB175:LSET H2$=F$:PUT#1,R0:GOSUB150:X$=" "ELSEX$="" 2381 F5=1:GOSUB25:PRINT"MESSAGE #";M0;" *";ASC(H8$);"*" 2385 PRINTRIGHT$(STR$(ASC(LEFT$(H3$,1))),2);"/";RIGHT$(STR$(ASC(MID$(H3$,2,1))),2);"/";RIGHT$(STR$(ASC(RIGHT$(H3$,1))),2);" ";STR$(ASC(LEFT$(H4$,1)));":";:A$=RIGHT$(STR$(ASC(RIGHT$(H4$,1))),2):IFVAL(A$)>9THENPRINTA$ELSEMID$(A$,1,1)="0":PRINTA$ 2390 PRINT"FROM: ";MF$:PRINT" TO: ";MT$;X$:F5=1:F4=1 2391 PRINT"SUBJ: ";MS$:PRINT:IFF6=1THENRETURN 2395 FOR C=R1+1 TO R2 2400 GET#2,C:A$=MG$:IFA$=STRING$(80,255)THEN2425 2405 GOSUB25:KX$="NS"+CHR$(13) 2406 K=INSTR(A$,CHR$(0)):IFK>1THEN A$=LEFT$(A$,K-1) 2408 FOR CC=1 TO LEN(A$) STEP 10 2410 PRINTMID$(A$,CC,10);:EXEC&H10DA:CH$=CHR$(PEEK(4481)):GOSUB25:IF CH$=CHR$(0)THEN2416 2412 K=INSTR("NSP",CH$):IF K=0 THEN K=INSTR("nsp",CH$):IF K=0 THEN 2416 2414 ON K+1 GOTO 2416,2450,2465 2415 EXEC&H10DA:IFPEEK(4481)<>13THEN2415 2416 NEXTCC:GOSUB25 2420 NEXTC 2425 PRINT:PRINT:GOSUB100:IFPS=0THEN2430ELSE IF MF$=NA$ OR MT$=NA$ THEN 2430ELSE2450 2430 GOSUB25:IF MF$=NA$ OR MT$=NA$ OR PR=>250 THEN T$="DN":PRINT"ELETE EXT ";:ELSET$=CHR$(255)+"N":PRINT"EXT "; 2431 IF PR=>PL THEN T$=T$+"RS":PRINT"EPLY TOP ";:ELSE T$=T$+CHR$(255)+"S":PRINT"TOP "; 2435 GOSUB25 2440 GOSUB625:K=INSTR(T$,CH$) 2445 IF K=0 THEN 2440ELSEPRINTCH$:ON K GOTO 2455,2450,2459,2465 2450 IF ZK>0ANDMT$=NA$ THEN2455ELSERETURN 2455 IFLEFT$(T$,1)="D"THEN MID$(F$,2,1)="1":GOSUB175:LSET H2$=F$:PUT#1,R0 2456 PRINT"REPLY (Y/N)? ";:GOSUB600:IFCH$="Y"ORCH$="y"THENPRINT"YES":GOTO2460ELSEPRINT"NO":RETURN 2459 IF ZK>0ANDMT$=NA$ THEN MID$(F$,2,1)="1":GOSUB175:LSET H2$=F$:PUT#1,R0 2460 IFPR249THEN BL=255:GOSUB1660:GOSUB9000:GOSUB9100:IFBL=255OR CH$="" THEN K8=0:RETURN 2461 IFLEFT$(MS$,9)="REPLY TO " THEN 2462 ELSE MS$="REPLY TO "+MS$ 2462 GOSUB1445:K8=0:RETURN 2465 K9=1:IFZK>0ANDMT$=NA$ THEN2455ELSERETURN 7000 '-LIST DATA FILE- 7005 ' 7010 UNLOAD 7015 T$=RIGHT$(D$,5):BU=VAL(LEFT$(T$,1)):E$=RIGHT$(T$,4):PRINT:PRINT 7020 FT$=X$+E$+"/TXT":D=0 7025 RUN T 7070 7030 D=D+1:IFD>3THEN RUNT7070:RETURN 7035 F$=FT$+":"+DR$(D) 7040 RUNT7030:OPEN"I",#1,F$:IF B=1THENPRINTCHR$(18); 7041 RUN T 7060 7045 IFEOF(1)THEN7060ELSEGOSUB25:LINEINPUT#1,S$:GOSUB25 7050 PRINTS$:EXEC&H10DA:CH$=CHR$(PEEK(4481)):GOSUB25 7055 IFCH$="S"ORCH$="s"THEN7060 7056 K=INSTR("Pp",CH$):IFK=0THEN7045 7057 EXEC&H10DA:GOSUB25:IFPEEK(4481)<>13THEN7057ELSE7045 7060 RUNT7070:CLOSE:IF B=1THENPRINTCHR$(20):RETURNELSERETURN 7065 D=D+1:IF D>3 THEN CLOSE::PRINT:PRINT"FILE NOT AVAIABLE":RETURN ELSE7025 7070 GOTO1000 7100 '-CHAT MODE- 7105 ' 7110 ' 7115 PRINT:PRINT:PRINT"PAGING SYSOP..." 7120 FORC=1TO15:IFINKEY$<>""THEN7130ELSEPRINT".";:SOUND150,5:NEXTC:GOTO7125 7125 PRINT:PRINT"SYSOP HAS BEEN PAGED. PLEASE":PRINT"CONTINUE TO USE THE SYSTEM.":PRINT"HE WILL BREAK IN IF AVAILABLE.":RETURN 7130 GOSUB860:GOSUB880:POKE65494,0:PRINT:PRINT:PRINT"SYSOP ENTERING CHAT" 7135 LINEINPUT">";A$ 7140 IFA$="\"THENRETURN 7145 GOTO7135 9000 '-OPEN MSGHDR/SYS- 9010 F$="HDR/SYS:"+DR$(PEEK(4670)) 9015 OPEN"D",#1,F$,110 9020 FIELD#1,5 AS H1$,1 AS H2$,3 AS H3$,2 AS H4$,80 AS H5$,5 AS H6$,5 AS H7$,1 AS H8$,8 AS SP$ 9025 K1=LOF(1):RETURN 9100 '-OPEN MSG/SYS- 9110 F$="MSG/SYS:"+DR$(PEEK(4671)) 9115 OPEN"D",#2,F$,80 9120 FIELD#2,80 AS MG$ 9125 K2=LOF(2):RETURN 9200 '-OPEN USERLOG- 9205 F$="USERL/SYS:"+DR$(PEEK(4672)) 9210 OPEN"D",#1,F$,96 9215 FIELD#1,50 AS UN$,8 AS UP$,1 AS UR$,1 AS UA$,1 AS U1$,1 AS U2$, 1 AS UU$,1 AS UE$,5 AS U5$,5 AS UM$,5 AS UD$,1 AS U3$,1 AS U4$,1 AS UO$,1 AS UL$,4 AS US$,9 AS SP$ 9220 K1=LOF(1):RETURN 9400 '-MENU/SYS 9405 FF$="MENU/SYS:"+DR$(PEEK(4673)):OPEN"D",#1,FF$,250 9410 FIELD#1,1 AS M1$,1 AS M2$,1 AS M3$,1 AS M4$,16 AS M5$,200 AS M6$,1 AS M7$,29 AS M8$ 9415 K1=LOF(1):RETURN 9500 '-GET USER INFO- 9505 ' 9510 GOSUB9200:GET#1,1 9520 K=INSTR(UN$,CHR$(0)):NA$=LEFT$(UN$,K-1) 9530 PR=ASC(UA$):F$=U1$:GOSUB150:P1$=F$ 9540 F$=U2$:GOSUB150:P2$=F$:UL=ASC(UL$):IF UL<1ORUL>4THENUL=1 9550 BC=ASC(UE$):LM=CVN(UM$):POKE4619,ASC(UO$):POKE4628,UL 9560 POKE4618,BC:POKE4620,PR:POKE4621,ASC(U1$):POKE4622,ASC(U2$) 9580 CLOSE:RETURN 9600 '-TRACER ROUTINE- 9605 TR$=TR$+BN$+"("+CH$+") " 9610 IFLEN(TR$)<64THENRETURN 9615 FR=PEEK(4669):RUNT9670:IFFR=0THEN9635ELSEIFFR=1THEN9640ELSEIFFR=3THEN9660ELSECLOSE:F$="TRACER/SYS:"+DR$(PEEK(4675)):OPEN"D",#1,F$,128 9616 FR=FREE(PEEK(4675)):IFFR<3THENCLOSE:RETURN 9620 FIELD#1,128 AS X$:K1=LOF(1) 9625 K1=K1+1:LSET X$=TR$+CHR$(0) 9630 PUT#1,K1 9635 CLOSE:TR$="":RETURN 9640 OPEN"O",-1,"TRACER/SYS":PRINT#-1,TR$:GOTO9635 9660 PT=PEEK(&HFF22)AND1:IFPT=1THEN9635ELSEPRINT#-2,TR$:GOTO9635 9670 POKE4669,0:GOTO1000 9800 '-TERMINATE- 9805 ' 9810 RUN T 9840:FORA=1TO10:PRINT:NEXTA 9815 F3=1:GOSUB100:GOSUB710:TR$=TR$+CHR$(13)+TI$:GOSUB9615 9820 PRINT:PRINT:PRINT"THANKS FOR CALLING COBBS #8, ":PRINT" ";NA$;" " 9825 PRINT"PLEASE CALL AGAIN...":PRINT:PRINT 9830 POKE4615,HR:POKE4616,MN:POKE4617,SS 9840 PRINT"PLEASE HANG UP NOW.":POKE65386,106:LOAD"USER/SYS",R 10000 POKE&HAC7D,&H0E:POKE&HAC7E,&H00:MOTOROFF 10005 X=&H112B:POKE X,&H86:POKE X+1,&H0D:POKE X+2,&HB7:POKE X+3,&H11:POKE X+4,&H81:POKE &H1127,&H10 10010 RUN POKE4615,HR:POKE4616,MN:POKE4617,SS 9840 PRINT"PLEASE HANG UP NOW.":POKE65386,106:LOAD"USER/SYS",R 10000 POKE&HAC7D,&H0E:POKE&HAC7E,&H00:MOTOROFF 10005 X=&H112B:POKE X,&H86:POKE X+1,&H0D:POKE X+ 10 '-CREATE USER.SYS FOR COBBS 20 CLEAR1000 30 NU$=CHR$(0) 40 CLS:PRINT:PRINT:LINEINPUT"INSERT DISK FOR FILE";A$ 50 GOSUB270 60 A$="SYSOP"+NU$+" "+NU$ 70 LSET UN$=A$ 80 LSET UP$="PASSWORD" 90 LSET UR$=CHR$(65) 100 LSET UA$=CHR$(255) 110 LSET U1$=CHR$(255) 120 LSET U2$=CHR$(255) 130 LSET UU$="" 140 LSET UE$=NU$ 150 LSET U5$=MKN$(0) 160 LSET UD$=STRING$(5,0) 170 LSET U3$=NU$ 180 LSET U4$=NU$ 190 LSET UO$=CHR$(255) 200 LSET UL$=CHR$(1) 210 LSET US$="" 220 LSET U7$=NU$ 230 LSET U8$=NU$ 240 LSET SP$=NU$ 250 PUT#1,1:PUT#1,2 260 CLS:PRINT:PRINT:PRINT"FILE USER/SYS CREATED":END 270 '-OPEN USERLOG- 280 F$="USERL/SYS:"+DR$(PEEK(4672)) 290 OPEN"D",#1,"USERL/SYS",96 300 FIELD#1,50 AS UN$,8 AS UP$,1 AS UR$,1 AS UA$,1 AS U1$,1 AS U2$, 1 AS UU$,1 AS UE$,5 AS U5$,5 AS UM$,5 AS UD$,1 AS U3$,1 AS U4$,1 AS UO$,1 AS UL$,4 AS US$,1 AS U7$,1 AS U8$,7 AS SP$ 310 K1=LOF(1):RETURN UU$,1 AS UE$,5 AS U5$,5 AS UM$,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCoBBS Introduction. CoBBS, the lor ulletin oard ystem is written for the TRS-80 Color Computer. At least 1 disk drive is required and 2 or more is a lot better, the RS232 PAK, R/S MultiPort, and auto answer modem is also required. CoBBS first went on line July 5, 1984 and mine has been up since then. At this time it has received almost 6000 calls and 3000 messages. The system will support a message base and ASCII uploads and downloads. There are many options available to the system operator and include: * Up to 255 different menus, and up to 21 commands in each menu. Each menu is set up by the system operator. Every menu and each command has a privilege level and 16 flags which may be used to control each users access to the system. CoBBS is a type of operating system within the BASIC operating system. Each command has a "command type" which tell the system what to do like read or leave messages, change password, etc. * There are editors written to control, change or modify the userlog, menus and commands, message purge (get rid of old messages) and system controls. * ASCII uploads and downloads are supported and may be totally controlled by the sysop, or the user may be given direct access to the drives and anywhere inbetween. * Tracer routine to see just what each caller is doing and how he operated on your system. A quick list of the various commands available to the sysop follows: COMMAND TYPES TYPE NAME DATA :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ! LOAD "SMF/EDI",R " # LOAD "SUL/EDI",R $ LOAD "SCF/EDI",R % & ' Print messages 0 or 1 ( LOAD "LOOKTRAC/BAS",R ) LOAD "LOOKREG/BAS",R * Time on system + , - . / 0 List HELP file BNAME 1 List INFO file BNAME 2 List TEXT file BNAME 3 List BULL file BNAME 4 5 6 7 Scan, 1 menu,all msgs Menu # 8 Scan, menu down, pvt TO/FROM Menu # 9 Scan, menu down, all msgs Menu # : ; < = > ? @ Menu control editor A Abort out of menu 0,1,2 B C Chat. Page system D Download a file BNAME E Exit and run program program name F G Goto menu # Menu # H I J K Kill messages L Leave messages (stand.) Menu #, (P) M Read E-mail (private) Menu # N Leave E-mail (private) Menu # O P Password enter/change Q Quit. Exit to BASIC 0,1 R Read messages, standard Menu # S Scan messages, standard Menu # T Terminate 0,1 U Upload an ASCII file 0,1,2,3,4 V Read, 1 menu, all msgs Menu # W Read, menu down, TO/FROM Menu # X Read, menu down, all Menu # Y Leave SYSOP message Z Restart log on The system has one bug which I have not been able to figure out. The system must be operated in the 64k mode or it will crash. There is a stack problem within the system. In the 64k mode a few bytes of the first section of BASIC at $8000 is written over, but it does not affect the system's operation. This board was written for the original COCO I. The Coco II has been used by other sysops, and there are provisions within the program for the Coco 2, but the COCO BASIC 1.1, EXTENDED 1.1 and DOS 1.0 is highly recommended. For more information about the system download the documentation files. These will explain the various functions in more detail. CoBBS is COPYRIGHTED. It may not be sold, but authorization is given to copy and distribute as long as there is no charge involved. The only thing I ask is that the Copyright and credit that appears when a user first accesses the system is left intact. I spend over 2 1/2 years writing this software and ignoring my wife. At least give me credit for my work and thank the wife for her patience. If you do not want to or cannot download all the files required I will provide a copy of the software for $30. This also includes my support to you, access to the sysop's section on my BBS and inclusion on my mailing list for any future updates as they come around. My mailing address is: Richard Duncan 2504 N. Gathings Drive West Memphis, AR 72301 CoBBS #1 (HQ) 501-735-5614 or Amateur Radio WB5CNV AB5A MSO @ 7.085 100BAUDOT NOTE: Several of the files will require downloading using XMODEM or VIDTEX protocol "B". N. Gathings Drive West Memphis, AR 72301 CoBBS #1 (HQ) 501-735-5614 or Amateur Radio WB5CNV AB5A MSO @ 7.085 100BAUDOT NOTE: Several of the ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Welcome to CoBBS the mmunity ulletin oard operating system and the world of telecommunications. The system was initiated to provide the user with versitle yet easy to manage software. Included in the CoBBS system are the following programs: STARTUP/BAS COTERM/SYS USER/SYS COBBS/SYS SMF/EDI SUL/EDI SMP/EDI SCF/EDI LOOKTRAC/BAS LOOKREG/BAS Public domain software included is: Error Trap - Andy Kluck Clock - A. B. Trevor COCOBUG/BAS CoBBS is an operating system within an operating system. Through control files created by the system operator the various functions of each menu is defined. First an understanding of privilege and flags is required. CoBBS maintains a privilege level (0 to 255) and sixteen flags for EACH menu, command and user. This provides for very powerful controls over the access of each individual user to each other menu and/or command. For example, let's say a menu is set up with the following access requirements: Priv=30 F1=00000000 F2=00000000 Before a user may access that menu he must have a privilege of 30, or higher. Since no flags are "set" none are required in the user's flags. If the access requirment was: Priv=30 F1=00000001 F2=00000000 then a user would not only have to be given a privilege of 30 for him so see the menu, but he must also have the 8th flag, the last flag of group F1, set or he will not be allowed on that menu. The same is true of each command and each menu. Without a user having the same access or higher he will not be able to see that function. Each menu may have up to 21 commands. Each individual command is specified by the system operator. Without considering the various types at this time let's look at figure 1 then see how each user would be affected. Command Priv F1 F2 Read Messages 25 00000000 00000000 Leave Messages 30 00000000 00000000 Access Userlog 30 10000000 00000000 Access Tracer 30 00000000 10000000 Terminate 0 00000000 00000000 Figure 1 Each user that has access to this menu will see the header, menu number and name. But from there on each of the following will see something different on the SAME menu. User #1 Priv=20 P1=00000000 P2=00000000 This user will only see the terminate function. His privilege is to low for the system to allow him access to any of the other commands. User #2 Priv=25 P1=10000000 P2=00000000 User #2 may read messages since he meets that command's requirments. He may also terminate but that is the only commands that he will see. Even though he has the first flag of P1 (the user's flags) set he still cannot leave, access userlog or tracer because he does not have the privilege required. User #3 Priv=30 P1=00000000 P2=100000000 User #3 may read and leave messages. He may also access the tracer routine since his first P2 flag is set. He may NOT access the userlog though because he does not have the first P1 flag set. Of course, he may also terminate. User #4 Priv=40 P1=11111111 P2=11111111 This user has access to everything because all levels of user access meets and/or exceeds those required. This type of operation allows the system operator to have control over the use of his system by each individual calling, and can actually be set up so that a menu is different to each caller on the system. COMMAND TYPES CoBBS is an operating system within an operating system (BASIC). The various command types determines what the system will do to an user's response. The system operator will choose the various types he wants for each menu depending on what functions he wants to make available to a caller. Command types includes Read and Leave commands, as well as commands to move the user from menu to menu, or even to prorgrams outside the main board program. Each command type is assigned a privilege level and 16 flags by the system operator using the Menu Editor. Any user of the system must meet the privilege level of the command type, and if there is a flag set in the command type, then the user must also have the same flag set in his userlog entry or he will not have access to that command. Command types consist of text, key, privilege, flag 1, flag 2, type and data. Each menu may have up to 21 commands. Note that the speed in which a menu will load and prompt the user will be slower as more commands are included in a single menu. Command type: 1. TEXT - This section contains the text that will be displayed to the user as the prompt for that command. It may contain up to 25 characters. Although not required the text normally shows the user which key corresponds to the type like "eave messages". 2. KEY - This is the key that the system will look for to initiate the command. It may be any key that can be entered from the keyboard. If the command is being set up from a remote terminal the key can even be an control code. 3. PRIVILEDGE - This is the privilege level required for an user to see this command. The privilege can be any number between 0 and 255. 4. FLAG 1 - This is the first set of flags (8) of the sixteen optional flags. If one of these flags is "set" then the user must also have his corresponding flag set before he will see the command. 5. FLAG 2 - This is the second set of flags (9-16) and operates the same as FLAG 1. 6. TYPE - Type is where the system operator actually specifies what command is to be initiate. For example, if the system operator wants this command to be a standard READ then this will be a type "R". If a type is specified that is not defined by the system then either it will not be accepted as a command type, or it will be accepted but ignored by the system when selected. 7. DATA - Data contains additional information that the system requires to process various types. Some types do not require any additional information in DATA, while others require information, and for some the information must be typed in exactly as the system requires. The Menu Editor does not check for the proper information in DATA as required by the command type so the system operator should carefully consult the command type reference to make sure the proper DATA is included. If no text is entered then the system will skip printing any information when the menu is listed. Even though the command does not appear the system will still look for the proper key entry. TYPE NAME DATA :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ! LOAD "SMF/EDI",R " # LOAD "SUL/EDI",R $ LOAD "SCF/EDI",R % & ' Print messages 0 or 1 ( LOAD "LOOKTRAC/BAS",R ) LOAD "LOOKREG/BAS",R * Time on system + , - . / 0 List HELP file BNAME 1 List INFO file BNAME 2 List TEXT file BNAME 3 List BULL file BNAME 4 5 6 7 Scan, 1 menu,all msgs Menu # 8 Scan, menu down, pvt TO/FROM Menu # 9 Scan, menu down, all msgs Menu # : ; < = > ? @ Menu control editor A Abort out of menu 0,1,2 B C Chat. Page system D Download a file BNAME E Exit and run program program name F G Goto menu # Menu # H I J K Kill messages L Leave messages (stand.) Menu #, (P) M Read E-mail (private) Menu # N Leave E-mail (private) Menu # O P Password enter/change Q Quit. Exit to BASIC 0,1 R Read messages, standard Menu # S Scan messages, standard Menu # T Terminate 0,1 U Upload an ASCII file 0,1,2,3,4 V Read, 1 menu, all msgs Menu # W Read, menu down, pvt TO/FROM Menu # X Read, menu down, all Menu # Y Leave SYSOP message Z Restart log on Read, 1 menu, all msgs Menu # W Read, menu down, pvt TO/FROM Menu # X Read, menu down, all Menu # Y Leave SYSOP message Z Rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ READ COMMANDS Access to any READ command is allowed to any user who meets or exceeds the required privilege and flags. The menu information required is contained in DATA. Read Type "R" This is the standard user read command. The user may read any message that is public, and any private message if TO or FROM that user on the menu specified in DATA. Read Type "V" This READ command permits the reading by any user authorized to read all messages on the menu specified in DATA. Private message may be read even if they are not addressed TO or FROM the user. Read Type "W" This READ command permits the reading by any user of all public message on AND below the menu specified in DATA. It also allows the reading of any private messages that are TO or FROM that user. Read Type "X" This is the SYSOP type of read. It allows the user to read ALL messages, public and private, on OR BELOW the menu specified in DATA. Private messages may be read even if they are not addressed TO or FROM the user. SCAN COMMANDS These types allow the scanning of the message headers. The user is given the option of going to the next message, reading the message's text or stopping the scan function. Note: A privilege of 255 allows the user to DELETE the message from the scan prompt, even if the option is not shown in the list of commands. Scan type "S" This is the standard scan type. It allows the user to scan message headers on the menu specified in DATA. The user will see any public message and any private message if it is directed TO or FROM him. Scan type "7" This allows the user to scan message headers of any message public or private even if the private message is not TO or FROM him on the menu number specified. Scan type "8" Allows the user to scan all public messages ON or BELOW the menu number specified in DATA and also any private message if the message is TO or FROM him. Scan type "9" Allows the user to scan all public and ALL private, even if not TO or FROM him of any menu number on or below that specified in DATA. SYSOP scan would specify menu 255 to read ALL messages. LEAVE COMMANDS All leave commands are also governed by a privilege level and 16 optional flags. The menu number that they are to post messages also determine certain operations. Menu 0 - 249 Messages to be posted to menu 0 through 249 are handled normally. If a user meets or exceeds the required authorization the message will be posted to the menu number contained in the DATA. Menu 250-254 Messages to be posted to menu 250 through 254 specified in the command's DATA will be posted to that menu. When the message is received and the system prompts with "REPLY", then if the user replies "yes" because of the menu number he will then be requested which menu to post the message to. He may post it to the same menu or another one that he has authorization for. This gives an option for posting messages in reply to another menu than the one left the original message was left on. Menu 255 This menu may NOT have messages posted to it, but is a valid menu for system use. If menu 255 is specified in the DATA then the user will be prompted for the menu to post the message. These menus being the ones he is authorized. He may not post to menu 255. This provides a "post anywhere" option. Note: The system determines who may reply to a message by the privilege of the FIRST Leave command in the menu. If a privilege of 30 is required to leave a message, and the user only has a privilege of 25 he may not access the leave command. When reading messages he will not be able to REPLY as he did not meet the privilege of 30. If, however, the first Leave was 20, and a second Leave on the same menu is 60, even though the user does not have the privilege of leaving through the 60 command, he may REPLY through read because the system limit was set at 20 by the first Leave. It is best to have "Leave" commands in ascending order of privilege if in the same menu. Leave Type "L" This is the standard leave type. It allows an user to leave a message on the menu specified by DATA. As with all types, as long as the DATA is between 0 and 255 the message may be posted to that menu, even if the specified menu is not in the Menu Control File. Only public message may be left unless a "P" is included in DATA. For example, DATA containing "45" will post message to menu #45, public only, while DATA containing "45P" will allow posting of public and private messages to menu #45. If a "K" is inserted in the DATA, then the message will be automatically KILLED after being received by the addressee. Leave Type "N" This type will function like type "L" except that it may be considered an "E-mail" type in that only private messages will be allowed under this type. Type "N" may have the same menu number as a type "L", but is normally one by itself for private mail messages. Leave Type "Y" This is a special E-mail type of leave. It may only be private, and is only addressed to "SYSOP" with the subject "SYSOP MESSAGE". The user has no option of correcting the header. The message is posted to menu 255, which allows the SYSOP to reply to any menu number. E-mail type of leave. It may only be private, and is only addressed to "SYSOP" with the suÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ SYSTEM MOVEMENT The following commands are used to move between menus and also out of the system. Type "A" This is considered an ABORT command. This will exit a menu and go to another one based on DATA. The following types are available.: 0 - return to menu the user last came from. 1 - return to menu specified as the log on menu. 2 - return to menu 0 Type "E" Command to Exit and run basic program specified in DATA. Note: if no extention is given on a file name it is assumed to be /BAS. Type "G" This is a GOTO command. The system will "goto" the menu number specified in DATA. Type "Q" This command is the same as "END". It stops the board program and puts the user into BASIC. DATA: 0 - Exit immediately 1 - Exit with password. The format is TPASS where T=type of quit PASS=4 character password if type 1. off the system, command. DATA specifies whether the user is asked if he wants to leave a SYSOP message or not. DATA types are: 0 - terminate immediately 1 - Allow the user to leave a private message to the SYSOP. The message will be put on number 255. Type "Z" Restart BBS. This command loads USER/BAS and restarts the log on. Gives the user the option to re-log on without having to terminate and call back. LOAD COMMANDS The following types are considered "loading" commands that load the various system editors. When load through one of these commands a flag is set which allows the user access to the editor, but when finished he may only terminate, restart or return to the BBS. The user will not be allowed into BASIC from the editor. Only use this command with editors modified for online use. Type "!" Loads SMF/EDI and runs Type """ Loads SMH/EDI and runs Type "#" Loads SUL/EDI and runs Type "$" Loads SCF/EDI and runs Type "%" Type "&" Type "(" Load LOOKTRAC/BAS and runs. Type ")" Load LOOKREG/BAS and runs MENU CONTROL COMMAND Type "@" This command is used to permit the user some controls in how the menus list and which menu he will access the system when logging on. The first part is the Menu Control Editor. This allows the user to specify which menu he will initially use after getting through the log on routine. It is normally set to menu 0 through SCF/EDI for new users, but may be changed by the user to any menu that he is authorized. If changed, the NEXT TIME the user calls he will automatically start on that menu after logging in. The second part of this command allows the user to determine how the various menus will prompt him. The user will have the following options: 1. Full text where the user sees the complete menu text. 2. Abbreviated text where the user sees the header information, and the first word of each command. 3. Key prompts where the user sees the menu number, name and the keys of the commands available to the user. 4. Command only where the user only sees the menu number/name and the "COMMAND: " prompt. Even if an user choses a higher menu prompting, if he gets lost or cannot remember what the various commands are, he may hit the carriage return key to get a full listing of the menu. user only sees the menu number/name and the "COMMAND: " prompt. Even if an user choses a higher menu prompting, if he gets lost or cannot remember what the various commands are, he may hit the carÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ DOWNLOAD COMMANDS Download Type "D" The following discussion explains download format when using a buffer code of 0 and 1. This format requires more work but gives the system operator a download menu option and control over who has access to each program. Type 3 and 4 gives more direct access to program files and are discussed later. This is the standard download of the board, and all files must be in ASCII. A good understanding is required of the way the system determines the file names. The download type has a privilege level and 16 flags as do all commands of CoBBS. The DATA is formatted: BNAME where, "B" is the buffer code. "NAME" is the download's one to four letter name. The best way to understand how the downloads function is to take an example. Consider the following command specification. Type: D Priv: 30 P1: 10000000 P2: 00000000 DATA: 0COCO The type is "download", the privilege required is 30, and the user must also have the first flag of his userlog entry set to see this command. DATA is "0COCO". The buffer number is zero, and this means that when the directory of programs available is listed the user's buffer will not be opened and closed automatically. A "1" as a buffer number would specify "open buffer, list directory, close buffer." The download's name is COCO. The system takes the name "COCO" and adds the following: "DOWN" + "NAME" + "/MNU" so the name of the text that contains the directory of programs available is "DOWNCOCO/MNU." The directory should contain a program number or designation for each item listed. An example of a download directory is: 1. INVENT/BAS Program to maintain your inventory. 2. DIRPRINT/BAS Print out your disk directory. 3. STREK/BAS Excitement of Cpt. Kirk. The user will then be prompted for the number to download. This is why you want to set up a directory with preferably numbers. The download command takes this number to specify the file to be downloaded. The format for this is: "NAME" + "number" + "/DOW" So, for our example if the user choses number "1" then the file that the system will look for will be: "COCO1/DOW" After determining all this, the user will then be prompted as to whether he wants to use buffer control or not. If he chooses "no" then the system will prompt him to get ready and open buffer, and after a short pause, the file will be listed. The system will pause also at the end of the listing. Otherwise, the system will open and close the buffer for him. SYSOPS should include at the end of each file the statement " REM - END OF FILE" for those who do not have auto buffer control to know that the download is ended and close his buffer before the system continues. There is a totally different type of download available to the system operator and is set up by using a "3" or "4" in the buffer code of the DATA statement. While a buffer number of "1" or "0" determines whether or not the user's buffer will be opened when the menu is listed, it takes on a different meaning when the code number is greater than 2. The format for the data statement in these cases is: BDPxx where, B - download type D - drive to access for downloads P - if a "P" is included then the user may not download any program with an extention of "/SYS", "/BAK" or "/BIN". Type 3 This type limits the user's access to only the drive specified in DATA. If a "P" is included then the user may not download any program with extentions noted in the format above. Type 4 This type allowsthat is specified in DATA is ignored. A "P" restriction may also be used in this type. Under both types, the user will be asked for the buffer control he desires when the file is downloaded. All files that are downloaded must be in ASCII. To download a machine language file it must first be converted to HEX using FCONV/BAS. One other command is available. When prompted for the file to download a directory may be obtained and listed by using the DIR command for the drive desired. If a user is downloading under type 3 then he will only be be shown a directory of the drive that is his authorized to use. The DIR command will show ALL files on the disk specified in data. UPLOAD COMMAND Upload type "U" NOTE: UPLOADS SHOULD ONLY BE MADE AVAILABLE IF THE SYSTEM IS USING A RADIO SHACK RS232 PAK, OR SIMILAR EXTERNAL RS232 PORT. THE SYSTEM CAN BE MODIFIED TO DO AN ACCEPTABLE UPLOAD BY TURNING OFF THE "ECHO" AND ONLY SENDING THE ">" PROMPT TO THE USER IF THE PAK IS NOT USED. All uploads are the same for any menu, but there are options available to the SYSOP determined by DATA. The format of DATA is: TDxxx where, T - type of upload D - drive to upload to xxx - ignored by system The following types are available: Type 1: Upload to specified drive in DATA. User provides 8 character file name and the system adds "/UPL" extension. If file exist already it may not be overwritten. Type 2: User specifies file name and extention. Upload goes to drive specified in DATA. No overwrites permitted. Type 3: User specifies file name, extension and drive for file to write to. If file already exist it may not be overwritten. Type 4: User specifies file name, extension and drive for file to write to. If file exist it WILL BE overwritten. SYSOP OPTION COMMAND These type "hooks" are available for the sysop to customize the board. These should be used instead of those noted as reserved as those reserved have future commands planned. Type "+" Line # 43 Type "," Line # 44 Type "-" Line # 45 Type "." Line # 46 Type "/" Line # 47 The system user a "hook" for each type and the line number for that hook is the ASCII value of the character. Replace the "RETURN" with a GOTO to point to the start of your routine. Always end your routine if placed within COBBS/SYS with a RETURN statement. It would be adviseable to use the hooks to load and run your own programs as the main board program uses just about all available memory. Check lines 600-699 for key input routines and lines 9700 - 9799 of USER/SYS for carrier detect routines. You might want to merge other housekeeping routines in to maintain user control and security. oard program uses just about all available memory. Check lines 600-699 for key input routines and lines 9700 - 9799 of USER/SYS for carrier detect routines. Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ LIST COMMANDS These commands are used to list text files for various system use. They are all handled the same way, the difference being the first four letters of the file name. The format of DATA is: BNAME where, B - buffer control 0 - no buffer 1 - auto buffer control NAME - one to four letter name of file. The system adds the four letter type name to the one to four letter name of file plus the extention "/TXT". A type "0" for instance is a list HELP file. If the file name was BBS then the file the system will look for is "HELPBBS/TXT". Type "0" List HELP file. Opens and list file names HELPname/TXT. Type "1" List INFO file. Type "2" List TEXT file. Type "3" List BULL file. SYSOP KEYS Up Arrow Prints user on line at the time. Does not interfere with user's display. Shift UP Arrow Exit into BASIC * When system is idle allows the the setting of Date/Time. @ Allow sysop log on without the SIGNON/TXT and re-booting. Enter chat mode. Shift RIGHT Arrow Terminate user. These commands are available to the system operator from keyboard. MISCELLANEOUS COMMANDS Type "'" Command to print pre-written message. May be used to set up a dummy file, or change a command's type yet still show the command prompt in the menu. DATA determines what is printed. 0 - "File not available at this time." 1 - "Sorry, you are not authorized." Type "*" Give time command. Will show the user start time, end time and time on system. Type "=" Print system configuration. Will show the user his configuration, and clear screen codes. Type "B" Type "C" Chat command. Will page system with audio tones, then prompt the user to continue using the system until the SYSOP breaks in. Entry into chat is by pressing the . To exit chat mode press "SHIFT-CLEAR". Type "F" Type "H" Type "I" Type "J" Type "K" Kill message command. Will allow user to kill any message and is not dependant upon which menu, just message number. Only a message TO or FROM a user may be KILLed by that user, except for a user with a privilege of 255 who may kill any message. Type "P" Password change command. Allows the user to change the password that he uses to access the system. r. Only a message TO or FROM a user may be KILLed by that user, excÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿE MENU FILE WILL BE DELETED WITH ALL MENUS. After answering the prompt the editor's menu will appear. <2> Edit existing menu. This function will allow the sysop to edit any menu in the file. If an improper menu number is given then the first menu will reappear. <3> Exit editing. Exits SMF/EDI and goes into BASIC. <4> Return to BBS. Exits SMF/EDI, loads and runs the main board system. After passing the first menu the sysop will be presented with the editor menu. The following menu will appear: #(menu) (menu name) COMMANDS: (number) <1> ADD A COMMAND <2> CHANGE A COMMAND <3> LIST MENU <4> ADD/CHANGE BOARD MENU <5> LIST/EDIT HEADER <6> DELETE A COMMAND <7> EXIT AND WRITE <8> EXIT The first step is actually function #4, but we will look at them in the order listed. <1> ADD A COMMAND After choosing #1 the system will ask for "INSERT AFTER: ". Pressing "L" will add the command to the end of the list, or the sysop may specify which command the new one will come after. The system will ask for the needed information of each command. TEXT: (enter command text up to 16 characters) KEY: (enter key that the system will look for to execute the command.) PRIV: (privilege level required to see this command.) P1: (first 8 of sixteen flags. Enter either "0" or "1" only.) P2: (Same as P1 except second 8 flags.) TYPE: (type of command) DATA: (optional data required by some commands.) <2> CHANGE A COMMAND. The function allows editing of a command. You will be asked which command number you wish to edit. While the various command information is presented pressing will retain the original entry while typing new information will replace the original. <3> LIST MENU. Allows the listing of each command or the text as it would appear on the system under full text prompting. While looking at the various full command listing use a "Q" to exit the listing, or any key to continue to the next one. <4> ADD/CHANGE BOARD MENU. Option 4 determines what menu number is entered and whether it is a new one or change menu number and retain all commands. The privilege level and flags sets those values for that perticular menu. A user must meet or exceed these specifications to be able to access it. When asked if the board is postable the system sets a flag to tell the board program whether or not the menu may be listed as one that may have a message posted to it in reply or as a new message. This prevents the possiblilty of a user who has access to that menu from posting a message to it if there is no read command available for that number. <6> DELETE A COMMAND. Deletes a command from the list. The command will be shown and verification requested before deleting that command. <7> EXIT AND WRITE. Exits the editor and writes the new or modified menu to the menu control file. Returns to the first menu. <8> EXIT. Exits the editor and returns to the first editor menu. No data in the menu file is modified. nd. <7> EXIT AND WRITE. Exits the editor and writes the new or modified menu to the menu control file. Returns to the first menu. <8> EXIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ