CBBS3.DOC, 02/11/80 Reviewed 11/28/81 CBBS Users: This file was made by looking thru the CBBS .ASM files to  see what was new in the "Version 3" code, and notes made. This  file is primarily of interest to people who have implemented  previous versions of CBBS, but contains information of general  interest, such as description of CBBS operator commands.  However, CBBSOPER.DOC should be consulted as the "true" source. As with all documentation, please communicate errors in  this documentation back to us, either via CBBS, or by mail.  (Ward Christensen, 688 E. 154th St., Dolton, Il. 60419). Heres's some more documentation on LINKASM: (see also  CBBSLINK.DOC) To link to the next .asm file, use: LINK filename ;optional comments where filename is the name (no filetype). For example, my PROM  monitor is in 2 .asm files - PROMON.ASM, and PROMIO.ASM. The  end of PROMON.ASM contains: LINK PROMONIO ;NEXT .ASM FILE The last file simply ends as normal, i.e. no LINK. The format of the LINKASM command is just like CP/M  ASM.COM, i.e. LINKASM filename.ahp where a is the asm disk (a,b) (h) is the hex disk (a,b,z), (p)  is the .prn disk (a,b,x,z). If you want to write a symbol table, add an A: or B: after  the rest: LINKASM CBBS.BAZ B: will assemble CBBS.ASM from the B disk, put the HEX on A, throw  away the .PRN, and write the .SYM to B: Note this is a "cheap and dirty" SYM file - only partly  sorted (by first letter). Thus all the "A"s are together, etc,  but not strictly in alphabetic sequence. --------------- CBBS CHANGES: **************** CBBS.ASM links to CBBSFUNC Nulls now sent with the time. Also a version number is  printed, just to get peoples's attention that something is new. The "Y/N is this your first time..." question now looks at the answer to determine if it was answered in lower case. If so, sets lower case mode. If not, then.. if first time user, ask if lower case can be handled if not first time user ask if lower case can be handled if they go to message entry. The case question is asked only once. A 1 digit speed character is written to the log at login, (1, 3, 4, 6). For unknown speeds, an "X" is logged (such as local use of CBBS. When logging on, a name is looked up in the NEXT file, same as always. Format is: [firstname,lastname,message ....... ] firstname or lastname can end with an * to match any chars. If the ] is followed by a / then that caller is im  mediately dumped. If ] is followed by * then they are flagged  as a twit, i.e. no message entry or kill allowed So, for example, to flag ALFRED NEUMAN as a twit, and immediately dump RED ROVER: [ALF*,NE*,You'r mad! ]*[RED,ROVER,Don't bother coming over!! ]/ The "*" goes with "ALF*,NEU*" and the / with RED,ROVER. **************** CBBSFUNC.ASM (link CBBSBYE) New "A" command to alter baud rate. 62-710 allowed.  Says "OK, press any key to continue at that speed" (or some  thing like that) New "V" command toggles between echoed (between back  slashes) and BS space BS type video backspaces. "N" command number of nulls can now be set from 0 to 255  (!!) NOTES file is typed automatically when password is  entered. Use ctl-C or K if not wanted. (You like this?) Control-C wait before Welcome and Bulletin is now  lengthened to about 3/4 second (from 1/2). A person using only a last initial is now considered a  "twit", i.e. no E or K functions. *************** CBBSBYE links to CBBSSUMM New help function stuck in this .ASM file just because  there was lots of room. You are now asked to enter a keyword,  or ? to list all keywords, or ?? to list keywords and a brief  (1 line) explanation. Help file format is: [KEYWORD=one sentence description ....detailed description.... ] KEYWORD must be in caps. Synonyms allowed, just enter  multiple keyword lines (but still only one ending "]". This is  best understood just by looking at the file HELP itself. After asking for one keyword (or ? or ??) the user stays  in HELP mode, and is asked for another keyword, or to press  return to go back to the menu. **************** CBBSSUMM links to CBBSENT1 In non-expert mode, the summary header is printed every  50 summaries actually printed, not just every 100 scanned. s;-n or q;-n are now allowed, which mean to start the  summary "n" back from the current high message. **************** CBBSENT1 links to CBBSENT2 This is the main message entry routine. CBBSENT2 contains  the edit, list, etc. routines. The password protect has totally been rewritten for  clarity. Unfortunately, the "sense" of the first Y/N question  is now different. Wording is: Protect: (Y/N) want to password protect this msg to keep it from being killed? then Password: Enter 4 char password (if you just press return, only the system operators can kill it) Ctl-I (tab) now supported. Translates to spaces to make  editing and listing easier. Translated back to tabs before  being written to disk. This means the user who just uses lots  of spaces (i.e. 30 spaces then his name) will have their  message truncated by changing to tabs as appropriate. This  function is transparent to the user, and they won't know  anything was done. Will look on retrieve just like it looked  when they entered. Control-K while used in message entry now returns to the  ENTER function sub-menu, not to the main function menu. This  saves people accidentally dumping their almost-entered message,  by using control-K while in the list subfuction of Enter. **************** CBBSENT2 links to CBBSENT2 This is the message entry sub-functions. New subcommands: I to insert a line (asks "before which line). Can't "I" if already have 16 lines. Lines automatically renumbered. C command automatically continues at proper place. D to delete a line (asks which line). Following lines (if any) moved back. Lines automatically renumbered. G gets a previous message. This is super, for retrieving previous "for sale" messages, changing availability or price, and writing it back. Users should be reminded to kill the previous message. You DO have to re-enter the "to" and "subject". Mentioned above, but you can ctl-K out of the list sub  function, and your message won't be thrown away. Have to use  the A command to throw it away. If just a carriage return is entered as a command, then  the detailed list of commands is printed. (even experts forget  once in a while). **************** CBBSRTRV links to CBBSOPER Nothing new here, except code was changed for no-pack  method of calculating file name. Specifically, an equate  called FILEDIV (say 2) is divided into the message number (say  12345) then re-multiplied by FILEDIV. Since this is all  integer arithmetic, the resulting number which is used as the  message file to write to (MESSAGE.Xnn) will be one of  "100/FILEDIV" message files. For a 2 disk system, use 2. For a  1 disk system, use 3 or 4, to have 34 or 25 message files. **************** CBBSOPER links to CBBSKILL CBBSKILL got so involved, it was separated into its own  file. << SEE CBBSOPER.DOC FOR COMMAND INFO>> **************** CBBSKILL links to CBBSDISK When you kill a message, it says "looking for it..." then, types an unformatted message summary: nn,mm/dd/yy,----from----,----to------ ----subject---- and asks "Y/N OK to erase it? (not done in operator mode) Then types: Updating msg, summ, history file, and # of active msgs where pauses occur during the printing as the actual function is taking place. **************** CBBSDISK links to CBBSCLOK No external changes here. **************** CBBSCLOK links to CBBSSUB1 Added elapsed time to T function. Attempts to detect invalid time (hours > 30 or not numeric) **************** CBBSSUB1 links to CBBSSUB2 Ascii C, K, or S, when used while CBBS is sending  something, may be used instead of ctl-C, ctl-K, or ctl-S. Some of the old TRS-80 terminal software forgot about the control key. Ctl-W while keying in, reprints the last word in the  current line. This is to help 110 baud people who take too  long to control-R. For example, if you are correcting the  spelling of a word - ^W retypes from the previous space in a  line, to where you currently are. <> Ctl-L shows the current column location (useful, for  example while entering a subject, which must be limited to 30  chars) Too-long input is not just truncated, but user is asked  "truncate or keep". **************** CBBSSUB2 links to CBBSSUB3 Keyboard input now says "please continue, name" if too  much time has elapsed without input. Dumps user shortly there­ after. Tabs are expanded in the type routine. **************** CBBSSUB3 links to CBBSPMMI, or CBBSIDS, or CBBSHAYS or CBBSMODM. This file just contains the tab compression routine. **************** CBBSIDS/HAYS/PMMI/MODM CBBSPMMI and CBBSMODM are new. MODM is an attempt to  make CBBS usable with an outboard modem. It uses a serial  port, and a control port which has 2 bits, ring detect, and  carrier detect. An output port is used to hang up the phone  (is that how things work?) **************** CBBSWORK Contains all the work areas. 1K of memory is used at the  end of CBBS as a file write buffer for message kill. The  message killed is stored after that buffer, and when the new  output file is finished, the killed message is logged. --------------- See file CBBS33.DOC for details on changes since this file. Also, HISTORY.033.