home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / comm / sers223.lha / SerServer.doc < prev    next >
Text File  |  1993-03-20  |  33KB  |  791 lines

  1. ***************************************************************************
  2. *                                                                         *
  3. *                          SerServer & Con1-Handler                       *
  4. *                                                                         *
  5. *             All parts (c) Copyright 1993 by Michael R. Mossman.         *
  6. *                                                                         *
  7. *                Released for private, non-commercial use.                *
  8. *                                                                         *
  9. *                         Compiled with SAS 6.20.                         *
  10. *                                                                         *
  11. ***************************************************************************
  12.  
  13.  
  14. What is it?
  15.  
  16.        Maybe a better name would have been CliBBS, but I started with
  17. SerServer and so it will stay. It is a personal (with the lack of a better
  18. word) BBS program. It gives the user a full CLI with restrictions setup by
  19. the sysop. I don't like the word BBS in this case, because, any program
  20. that offers a CLI to strangers, can be a lot of trouble. I wrote the
  21. program so that I can log on to my computer from work and do all of the
  22. things that I do from home in a CLI. I do not recommend that you let any
  23. Tom, Dick or Harry in to use this program. You will end up with formatted
  24. hard drives and sleepless nights. It has three user levels, and full Zmodem
  25. UP/DOWNLOAD. It could be a very useful program for a few friends and your
  26. self to use, when working on a common project. A place to share files. It
  27. offers limited message sending and receiving. A full screen ANSI editor can
  28. be used for remote programming.
  29.  
  30. What files are in the zoo?
  31.  
  32.        Con1-Handler   - this is the DOS handler for the CLI.
  33.  
  34.        SerServer      - this is the serial device interface and 
  35.                         it talks to Con1-Handler.
  36.  
  37.        SSEmacs        - this is the full screen ANSI editor.
  38.  
  39.        SSEmacs.cmds   - text file of Emacs commands.
  40.  
  41.        SySop          - This program configures the "BBS" and 
  42.                         maintains the user/password list.
  43.  
  44.        SShelp         - This is just a text file that you edit,
  45.                         to tell users what commands and devices,
  46.                         are available to them.
  47.  
  48.        SSlogon        - Another text file that the user gets 
  49.                         before they enter their name and 
  50.                         password.
  51.  
  52.        SSgreeting     - Another text file that the user gets 
  53.                         after login.
  54.  
  55.        SSlogoff       - Another text file that the user gets 
  56.                        during logoff.
  57.  
  58.        mountlist      - This shows how to enter the Con1-Handler
  59.                         in your mountlist.
  60.  
  61.        Xprzmodem.library - This library does the Zmodem send and receive
  62.                         functions for SerServer.
  63.  
  64.  
  65. Setting it up!
  66.  
  67.  
  68.        A sample of the config file, looks like this;
  69.  
  70.  
  71. [R] Reconfigure   ~~~~~~~~~~~~~  Configuration  ~~~~~~~~~~~~~
  72.     Home Device      : vd0:
  73.     Modem String     : ATE0 Q0 V1 &D2  &C1 S0=0
  74.  
  75.     Script Path/File : s:bbs-shell
  76.     Check Carrier    : 1
  77.     Terminate        : 0
  78.     Lock BaudRate    : 0
  79.     Modem Uses &D2   : 1
  80.     Max Baud         : 2400
  81.     Upload Level     : 2
  82.     Download Level   : 1
  83.  
  84. [1] Level 1 Cmds   : 10
  85. [2] Level 1 Devs   : 3
  86.  
  87. [3] Level 2 Cmds   : 20
  88. [4] Level 2 Devs   : 5
  89.  
  90.  
  91. The Home Device
  92.  
  93. There must be one device that is common to all level users. This is called
  94. the "HOME DIRECTORY DEVICE". The root of this device is where all level of
  95. users will start from when they log on. It is also the area that all
  96. uploads and downloads take place. A file must be moved here, before it can
  97. be sent. Received files will arrive here.
  98.  
  99.  
  100. The Modem String
  101.  
  102. The modem string has to be just right for this program to work. I use ATE0
  103. L0 M1 Q0 V1 &D2 on a Supra 2400. I will explain each entry in case your
  104. modem is not a Supra.
  105.  
  106.           E0 - Modem does not echo back commands (this is 
  107.                important.
  108.  
  109.           L0 - Low speaker volume (does not matter).
  110.  
  111.           M1 - Speaker on until carrier received (does not 
  112.                matter).
  113.  
  114.           Q0 - Modem returns result codes after commands (this 
  115.                is important).
  116.  
  117.           V1 - Selects Verbal result codes (this is important).
  118.  
  119.          &D2 - Modem hangs up, disables autoanswer, and goes to
  120.                command state upon ON-to-OFF transition of DTR 
  121.                line (this is important).
  122.  
  123.          &C1 - DCD ON indicates a data carrier from the remote modem
  124.                (this is important).
  125.  
  126.  DO NOT PUT THE MODEM IN THE AUTOANSWER MODE eg. ATS0=1.
  127.  
  128.  
  129. Script Path/File
  130.  
  131. Set up a script file that will be run by CLI that the user is in. The path
  132. and file name will be entered into the config file. A sample of this file
  133. is provided later on in the docs. You must have this file.
  134.  
  135.  
  136. Check Carrier
  137.  
  138. This switch can be set to 0 or 1. This switch tells SerServer if you want
  139. the carrier detect line checked. In normal operation, this would be set to
  140. 1. When a user hangs up or something happens to the phone connection,
  141. SerServer will reset if this switch is 1. If you wanted to set up SerServer
  142. on a seven wire hardware interface between two computers without wiring the
  143. carrier detect line, this could be set to 0.
  144.  
  145.  
  146. Terminate
  147.  
  148. This switch can be set to 0 or 1. If you want SerServer to run as a stand
  149. alone program and recycle when a user logs off, then set this switch to 0.
  150. If you want to launch SerServer from another program, like a BBS or a FIDO
  151. frontend (WelMat or TrapDoor), then set this switch to 1. Serserver will
  152. then terminate, and return to the calling program, when a user logs off. In
  153. this configuration, SerServer will not do any modem handling. It will drop
  154. the DTR line if it detects buffer dumps or user problems, but always
  155. returns to the calling program with the DTR high.
  156.  
  157.  
  158. Lock BaudRate
  159.  
  160. This switch can be set to 0 or 1. With normal modems this will be set to 0
  161. (eg. - Supra 2400).  With high speed modems (eg. - HST Dual Standard), you
  162. can set a fixed baud rate between the computer and modem and a variable
  163. line baud rate. This is called "locked baud" and can be used by SerServer
  164. if this switch is set to 1.
  165.  
  166.  
  167. Modem Uses &D2
  168.  
  169. This switch can be set to 0 or 1. If your modem supports &D2 or a like
  170. function (described above), then set this switch to 1.  If your modem does
  171. not support this function, then you can set this switch to 0. SerServer
  172. will then try to send commands to the modem via the "+++" escape sequence.
  173. It will also try to hangup by sending a "+++ATH0". SerServer has more
  174. control if the modem uses the &D2 command.
  175.  
  176.  
  177. Max Baud
  178.  
  179. This is the maximum baud rate of your modem or the locked baud rate if the
  180. "Lock BaudRate" switch is set 1.
  181.  
  182.  
  183. Upload Level
  184.  
  185. This is the level of user that can upload to your system (this is much more
  186. dangerous then downloading and should require a higher level). If you
  187. select a level of 4 for up/downloading, then no level user will be able to
  188. send or receive files.
  189.  
  190.  
  191. Download Level
  192.  
  193. This is the same as above, but is the level required for downloading.
  194.  
  195.  
  196. Level 1 & 2 Commands
  197.  
  198. These are the DOS commands that the different level users can execute.
  199. Choose wisely! (Format seems to be a bad choice.) Commands that open their
  200. own window should not be used, because most of them will not return control
  201. to the CLI and the remote user can not close the window. You might ask, why
  202. two levels? I find that I can trust some people more then others. You might
  203. loan your Corvette to some friends and the Volkeswagon to others.
  204.  
  205.  
  206. Level 1 & 2 Devices
  207.  
  208. These are the devices (eg.- ram:, df0:, vd0: etc.) that are available to the
  209. two lower user levels. Think very carefully about what devices you select.
  210. (I try to keep people off my hard drive.)
  211.  
  212. Now make a mountlist entry for the Con1-Handler. (A sample of this is
  213. included in the lharc.) Make a directory somewhere called "SSbbs". Then
  214. assign it, eg. - assign SSbbs: device:subdirectory/SSbbs. Create a 
  215. subdirectory off of SSbbs: and call it "mail".  
  216. Now execute Sysop and select "R" for configure. It will put a file in the
  217. assigned SSBBS: subdirectory called SSconfig. Enter the previous well
  218. thought out data. Now move SerServer, Sysop, SSlogon, SSEmacs, SShelp,
  219. SSlogoff, and SSgreeting into the assigned SSBBS: subdirectory (the text
  220. files, SShelp, SSgreeting SSlogoff and SSlogon, do not have
  221. to be present for SerServer to work). Copy xprzmodem.library into the Libs:
  222. subdirectory. Copy Con1-Handler into the L: subdirectory. The DOS commands
  223. copy, cd, newcli, mount, run and endcli, must be in the C: subdirectory.
  224. Use Sysop to enter yourself and who ever, in the userlist. This will
  225. create a file called SSpasswords in the assigned SSBBS: subdirectory.
  226. Make sure that the sysop is the first entry in the password file and 
  227. remember the password. You will be asked for this password every time you 
  228. run this program to make changes. The program does this to prevent someone
  229. from uploading the file to the BBS and making changes to the config or
  230. passwords. The program also writes to the log if you fail the password.
  231.  
  232. Now do the following:
  233.  
  234. cd SSBBS:
  235. SerServer
  236.  
  237.  
  238. Now the program is up and running and ready for someone to logon. The text
  239. that is received from the Con1-Handler and the serial device is send to the
  240. CLI window that serserver is started up from. The program can be terminated
  241. by selecting the CLI window and typing Control C. People logging on should
  242. set their terminal programs for 8N1.
  243.  
  244.  
  245. Commands
  246.  
  247. SerServer will parse the command line for level 1 and 2 users. If a user
  248. types "df0:dir" then the parser will eliminate the "df0:" and only "dir"
  249. will be sent to CLI (this assumes that dir is an allowed command). This
  250. along with alias (as shown later) will prevent users from renaming files
  251. (to an allowed command name) and then uploading and executing them.
  252. Commands that should not be allowed to level 1 and 2 users are execute,
  253. alias, assign, protect, endcli and format.
  254.  
  255.  
  256. Help
  257.  
  258. A user can type "help" or "?" along the command line and get a help file
  259. if the Sysop provides a text file called "help".
  260.  
  261.  
  262. Mail
  263.  
  264. At a CLI prompt a user can type "mail" and they can leave private or public
  265. mail. Private mail is created in a file under the users name (the name of
  266. the user who is to receive the mail). Private mail will be deleted after it
  267. is read by the user. Public mail is put in a file called "ALL". It will
  268. grow in size until the sysop either deletes it or edits it. (Some text
  269. editors can handle this file.) All messages are saved in "SSbbs:mail/". 
  270.  
  271.  
  272. Editor
  273.  
  274. SSEmacs is a full screen ANSI editor. It is can be used by users that have
  275. the upload level and if the command "editor" is available  to that level of
  276. user in the config file. To use the editor from remote, you must be using
  277. an ANSI terminal program. To use the editor, type "editor" or "editor
  278. filepath". The FULL path must be given for the file. You can get help for
  279. the editor when in it, by hitting CTRL-C. The editor will wait 5 mins for
  280. something to be typed. If a key is not pressed in that time, the editor
  281. will terminate back to SerServer without saving the file. It will also
  282. terminate without saving on loss of carrier. So save often!
  283.  
  284. SSEmacs is an adapted version of uEmacs from Fish Disk #6. I have tried some
  285. of it's features but I leave it up to you to find it's bugs. Then tell the
  286. original programmer! Many thanks go to Thomas J. Eshelman for the idea of a
  287. remote editor and then the help in getting it. If your friend had not
  288. uploaded the source, SerServer would not have an editor. 
  289.  
  290.  
  291. Logoff
  292.  
  293. To leave the system from remote, just type "logoff" along the  command line.
  294.  
  295.  
  296. MultiPort Serial Cards
  297.  
  298. SerServer will now use the ASDG serial card. I happen to have this one, so I
  299. added support for it. If someone wants to send me programming docs for the
  300. other serial cards, I will add them also. SerServer faults out to
  301. the internal serial device. To use it on the  ASDG card, type;
  302.  
  303.     SerServer siosbx.device 0    <or>
  304.     SerServer siosbx.device 1    <or>
  305.     SerServer serial.device 0    <will also work for the normal device>   
  306.  
  307.  This is done when SerServer is started up or in the script file. 
  308.  
  309.  
  310. Command History
  311.  
  312. The remote user can access a ten command history by typing CTRL-R at the
  313. remote terminal.
  314.  
  315.  
  316. Chat
  317.  
  318. This version of SerServer has a chat mode (in the menu bar). It can only be
  319. entered when the user is waiting on the command line. There is no paging of
  320. the sysop from the users end. This does not prevent you from adding a CLI
  321. command to sound a bell or flash the screen. To terminate chat, the Sysop
  322. types a "*" while in the chat mode.
  323.  
  324.  
  325. Intuition Thingies
  326.  
  327. I have added some menu items to SerServer. SerServer steals the DOS window,
  328. and adds a menu and title to it. It also changes the window  colour, to
  329. prevent you from typing into it (like I have often done). Serserver will
  330. not start up if there is not a window to put output to. Do not try to run
  331. it as a background task. 
  332.  
  333. Things to think about!
  334.  
  335. Level 3 is the highest level user. There is no parsing of the command line
  336. for a level 3 user. If format is in the command path and a level 3 user
  337. says "format drive DH0: name NOTHING" then your brand new hard drive will
  338. erase it's brains. The same thing can happen with any level user, if you
  339. make the command available to them. If you make Alias available as a
  340. command then users can do things like "alias dir format" and type "dir
  341. drive DH0: name NOTHING" and format your hard drive if DH0: is one of the
  342. available devices and dir is an allowed command.
  343.  
  344. How about if you make zoo an available command and a user puts format
  345. renamed as dir in the zoo. They can then de-zoo the file and format your
  346. hard drive because the CLI will find dir command in the current path
  347. (really format) before it goes to c:.
  348.  
  349. Endcli will terminate SerServer from a remote. I felt that this was handy
  350. for the sysop to drop the program from a remote terminal but can be a
  351. problem, if it is an allowed command. What I'm trying to say is, pick your
  352. commands and devices carefully. And most important, know who the hell your
  353. letting on your computer! 
  354.  
  355.  
  356. Timings and Stuff
  357.  
  358. Anyone is allowed one minute to type in their name at the login prompt,
  359. another minute for the password. Everyone is allowed three tries and then
  360. it hangs up. Level 1 and level 2 users are allowed two minutes of
  361. inactivity at a CLI prompt before the program drops them. Level 3 users can
  362. be at a CLI all day and do nothing and the program will not hang up. In the
  363. Mail section of the program, time outs will happen to any level user. There
  364. is no limit to the over all on time for any level user as long as they are
  365. doing something. 
  366.  
  367.  
  368. Log Keeping
  369.  
  370. The program keeps a log in the BBS: subdirectory called "log'. This requires
  371. that BBS disk NOT be write protected.
  372.  
  373.  
  374. Zmodem Stuff
  375.  
  376. The program uses Zmodem for up/downloads. Sending from a remote is easy. I
  377. used Online!, Telix and JrComm for testing. Just select 16 bit CRC and at a
  378. CLI prompt in the BBS, select upload in Online!, JrComm, or Telix. Pick the
  379. files and then sit back and wait (have a beer)
  380. till they all arrive at the BBS.
  381.  
  382. Sending files requires a little more work. First the files have to be in the
  383. "HOME DIRECTORY DEVICE" root. Use copy to move them there. Then along the
  384. CLI prompt line type:
  385.  
  386.      send file1 file2 file3 (etc)
  387.  
  388.  Make sure your terminal program is setup for auto downloads.
  389.  
  390.  
  391. Neet Things
  392.  
  393. There are some neet things that you can do with Alias. It can provide a
  394. whole bunch of extra commands this way. Say you want users to be able to
  395. read the log file but don't want them to have access to Df0: where the
  396. SSbbs: files are kept. You can then set up an Alias that reads like this:
  397.  
  398.       Alias log type SSbbs:log
  399.  
  400. You then add log as a command to the Sysop program, and users can read the
  401. log file. Say you have a bunch of users that don't know dos commands. You
  402. can add help files for each allowed command by doing something like this.
  403. Create a subdirectory off SSbbs: called "help". Then put a text file in
  404. there called "dir". This text file will explain the "Dir" command and it's
  405. options. Then set up an Alias like this:
  406.  
  407.      Alias what type SSbbs:help/[] 
  408.  
  409. The user then types "what dir" and gets a help file on "Dir". What has to be
  410. added to the allowed commands. 
  411.  
  412.  
  413. Scripts
  414.  
  415. Here are a couple example scripts to show you how to set up the the BBS and
  416. use the alias command.
  417.  
  418. assign SSbbs: df0:SSbbs
  419. stack 10000
  420. SSbbs:serserver
  421. endcli
  422.  
  423.  
  424. And here is the remote-shell script. (Used in the config file)
  425.  
  426. stack 10000
  427. cd vd0:
  428. Prompt "(%N) %S>> 
  429. alias dir c:dir                  <---- You should have an entry like these
  430. alias list c:list                      for every allowed command for
  431. alias type c:type                      Level 1 & 2 users. This helps prevent
  432. alias echo c:echo                      users uploading and executing a file.
  433. alias copy copy [] NOPRO BUF=10  <---- allows copied protected files to be
  434.                                        deleted.
  435. alias log type SSbbs:log         <---- Gives the log to users.
  436. alias what type SSbbs:help/[]    <---- If you want help files.
  437.  
  438.  
  439. When you configure the system, you can say that HOME: is the "HOME 
  440. DIRECTORY DEVICE" and then assign it to any place that you want. This
  441. will save going into the SySop program to change it, just reassign it.
  442.  
  443.  
  444. NewCLI ?
  445.  
  446. When SerServer starts up, it executes the command "NewCLI Con1:". This gives
  447. the user a CLI, rather then a SHELL. If you want the features of a SHELL-Seg
  448. (alias command), then you should have the following line in your Startup
  449. -Sequence;
  450.  
  451.         resident CLI L:Shell-Seg SYSTEM pure add
  452.            ( This is not needed under WB 2.04, 2.10 or 3.00 )
  453.  
  454.  
  455. WelMat or TrapDoor
  456.  
  457. When you launch SerServer from either of these two programs or a BBS, you
  458. must have the SHARED bit set for the serial device. You do this in the
  459. config file for both of these programs. To call SerServer from these
  460. programs, you would have a line in their config file, that would look like
  461. this;
  462.  
  463.         SerServer SerialDevice UnitNumber %l
  464. where;
  465.        SerialDevice is either serial.device, siosbx.device or newser.device.
  466.        UnitNumber   is 0 to 4, depending on the port you wish to use.
  467.        %l           is the connect baud rate (link rate) between the two
  468.                     modems.
  469.  
  470.  
  471. BBS Programs and the Likes Of
  472.  
  473. If your board can run doors or external up/download programs, then it
  474. probably can launch SerServer. The following are things to look for;
  475.  
  476.      1) The board can share the serial port.
  477.      2) The board stops receiving serial port I/O during the time SerServer
  478.         is running. A sign of this problem, is when the board receives one
  479.         charactor and SerServer gets the next. 
  480.      3) The command line for SerServer is the same for a BBS as FIDO fronted
  481.         program.
  482.  
  483. SerServer has been tested with the DIALOG Professional BBS program. This BBS
  484. uses a DOS handler much like the Con1: handler in SerServer and normally
  485. expects doing all of the serial device I/O. With the help of a couple of
  486. script files, these problems can be over come.
  487.  
  488.      echo >ram:SerServe.bat "failat 100*nstack 50000*ndlg:tfreeze -p tr0*n
  489.                 SSbbs:serserver serial.device 0*ndlg:tcont -p tr0*nendcli" 
  490.      newshell newcon:0/0/640/100/SerCli from ram:SerServe.bat
  491.      Wait 5
  492.      echo "Returning to the BBS..."
  493.  
  494. (Please Note....The above "Echo" command is all one line. It generates
  495. a script file in Ram:, that is execute by this script.)
  496.  
  497.  
  498. HST or Other Like High Speed Modems
  499.  
  500. SerServer will make connections at the following baud rates;
  501.  
  502.  300, 600, 1200, 2400, 4800, 7200, 9600, 12000 14400, 16800, 19200, 38400.
  503.  
  504.  
  505.  
  506. Note to SerServer Version 2.22 Users
  507.  
  508. If you are running version 2.22 all ready, please transfer Con1-Handler,
  509. SerServer, Sysop, xprzmodem.library and SSEmacs to the correct directories.
  510. These are new versions and SerServer 2.23 will not work properly without
  511. these new files.
  512. Delete the old password file.
  513.  
  514.  
  515. Bugs and Other Critters of the Night
  516.  
  517. SerServer will not work with any of the Arp shells. The Con1-Handler wants
  518. to talk to a BCPL program, so use NewCLI, NewShell or WShell.
  519.  
  520.  
  521. SerServer has been tested under WorkBench 2.00
  522.  
  523. Well this is version 2.23, so what can I say. People doing buffer dumps and
  524. hanging up in the middle of things can always be a problem. I have tried to
  525. catch these problems, but bugs always seem to surface. I am releasing the
  526. executable but will retain the source on this one. Let me know if you find
  527. any problems. Please don't say it just locked up, try to tell me what the
  528. program was doing, when it locked up!
  529.  
  530.  
  531. Things to Do
  532.  
  533. Programs like this always have things that can be added. I been asked to
  534. make SerServer into a BBS program. The answer is "NO!!". I wrote SerServer
  535. as a remote slave CLI for people (me) who like to play on their Amiga when
  536. they are away using an (dirty word) IBM clone.
  537.  
  538.      - Add a menu item to re-read the config file.
  539.      - Add support for more multiport serial cards.
  540.  
  541.  
  542. I program for me first and you last!!  
  543.  
  544.  
  545. CopyRight and Things
  546.  
  547. I am retaining the copyright on Con1-Handler and SerServer Version 2.23 but
  548. will release it's use to the public for non-commercial use.
  549.  
  550.  
  551. How To Rip Me Apart
  552.  
  553. You can contact me on CompuServe, my UI is 76515,3017. You can also reach me
  554. on Fido Net 1:255/19. You can write me,
  555.  
  556.                    Mike Mossman
  557.                    15 Kenneth Dr.
  558.                    Quispamsis, N.B.
  559.                    Canada  E2G 1J1 
  560.  
  561. Thanks
  562.  
  563. Many thanks to Wayne Marchand, Graeme Weir and the Mad Scientist for
  564. debugging and helpful comments. A real big thanks goes out to Mad for
  565. running SerServer under his DIALOG bbs. This found bugs, that would
  566. have taken years to find by using a term prog on my 500 and SerServer
  567. installed on my 2500.
  568.  
  569.  
  570. History
  571.  
  572.    Version 1.00 - Original alpha testing version. Not released to public.
  573.  
  574.    Version 1.01 - Fixed bug in dropped carrier lockup. Program was 
  575.                   waiting on timer message that never came. Fixed 
  576.                    PassWordMaker so that it did not wreck the password 
  577.                    file when editing user entries. Not released to public.
  578.  
  579.    Version 1.02 - Added log keeping and moved sz & rz into the C: 
  580.                   subdirectory from the "HOME DIRECTORY". Not released to
  581.                   the public.
  582.  
  583.    Version 1.03 - PassWordMaker was rewritten by The Mad Scientist and 
  584.                   called Sysop. Thanks a lot Doug! (call his BBS at
  585.               506-455-2808). Added the mail feature and caught a
  586.               few more bugs. Added Mail to the Sysop program so
  587.               the sysop can read his own mail (or anyone's). 
  588.                   Made level 1 and 2 users command line get parsed
  589.               so a path can not be set to a command. Password 
  590.                   protected the Sysop file. Released version.
  591.  
  592.    Version 1.04 - Added raw mode to the Con1-Handler. This is still not
  593.                   used but might be in future versions. Not released
  594.               to the public.
  595.  
  596.    Version 1.05 - Added intuition type stuff and chat mode. Not released 
  597.                   to the public.
  598.  
  599.    Version 1.06 - Added support for multiport serial cards. Only the 
  600.                   ASDG card is used now. Need docs on other cards, so    
  601.               I can set the DTR line. Not released to the public.
  602.  
  603.    Version 2.00 - This was a big one and figured that SerServer needed
  604.                   a new first number. A full screen ANSI editor was added
  605.                   with full serial driving routines. It's run with
  606.                   SerServer in the shared serial mode, like an external
  607.               protocol driver. Now I can program at work on my Amiga.
  608.                   Fixed a bug, where by the parser would allow the command
  609.                   "editor" pass when "edit" was an allowed command. If
  610.                   carrier is lost or dropped in the middle of a command like
  611.                   "dir dh0: all", SerServer will wait till it has received
  612.                   all of the command output from Con1: before it answers the
  613.                   phone. The same holds true if the sysop terminates the 
  614.                   program in the middle of this type of command. SerServer
  615.                   now sets the Process structure pr_WindowPtr to -1, so that
  616.                   requestors are not brought up by it. Fixed a bug in the 
  617.                   chat mode, so that if the carrier was dropped, the program
  618.                   reset properly. Released version.
  619.  
  620.      Version 2.10 Beta - Fixed a bug in the backspace, where by a user
  621.                   could backspace over the "Login" prompt and corrupt
  622.               memory.
  623.  
  624.                   Added a feature in the config file to prevent the
  625.                   checking of the carrier detect line. This allows the
  626.               program to be run over a seven wire hardware interface
  627.               (no modems).
  628.  
  629.               The serial device is now shared everywhere and a full
  630.               seven wire interface must be used between the serial port
  631.                   and modem.
  632.  
  633.                   SerServer now mounts the the Con1: handler and calls
  634.               "NewCLI Con1:".
  635.  
  636.                   The program will no longer attempt to send a file by
  637.               the name of "*", if requested by the remote user.
  638.  
  639.                   A ten line command history has been added. The remote
  640.               user can use this feature by typing CTRL-R at his
  641.               terminal.
  642.  
  643.                  SerServer now gives limited support to modems that
  644.              do not have the &D2 command. It will send the escape
  645.              sequence "+++" to the modem before it sends a modem
  646.              string. It will also try to hang up with an "ATH0"
  647.              command if the config program is told that the modem
  648.              does not support &D2. The best support is with modems    
  649.              that have the &D2 command.
  650.  
  651.              A "*" entered for the user level in the user file,
  652.              will give a message to a user logging on. The message
  653.              is "User Purged From Data Base" and drop them.
  654.  
  655.              SerServer will now terminate on user logoff and return
  656.              to a calling program if the terminate switch is set in
  657.              the config file. This allows BBS programs to run
  658.               SerServer as a door or SerServer to be called by a FIDO
  659.              front end. SerServer has been tested with TrapDoor and
  660.                  WelMat.
  661.  
  662.              Made the file reader run faster. It needed a little
  663.              speed.
  664.  
  665.                  Program now handles complex "CONNECT XXXX" messages from
  666.              HST modems.
  667.  
  668.              Corrected several timing problems which would lock up
  669.              the program.
  670.  
  671.                  Now purges the line after a connect is made. This is
  672.              to "quiet" the line.
  673.  
  674.              LockBaud mode added to config file for support of high
  675.              speed modems running in the locked mode.
  676.  
  677.              Made changes in the Con1-Handler and SerServer, so less
  678.              messages are being passed between them. This gets rid
  679.              of some overhead and possibility of errors.
  680.  
  681.              Better logging is done when problems happen.
  682.  
  683.              Reasons for startup problems are now sent to the Sysop
  684.              in the SerServer window.
  685.  
  686.              SerServer will open it's own window if the terminate
  687.              switch is set in the config file. This is to prevent
  688.              some possible conflicts with the program that launched
  689.              SerServer.
  690.  
  691.              All windows are now in the RAW: mode. This prevents
  692.              the program from locking up if the Sysop types into
  693.              the SerServer window.
  694.  
  695.              Beta release - Not released to the public.
  696.  
  697.   Version 2.20 - Found a bug that prevented SerServer from running in a
  698.                  dos script file. File redirection was incorrectly being
  699.                  done on closing.
  700.  
  701.                  CTRL-C action was changed to prevent the same code from
  702.                  being executed twice when CTRL-C was hit twice by the
  703.                  sysop.
  704.  
  705.                  Fixed problem in SS that caused a system crash if Con1:
  706.                  was not in the mount list.
  707.  
  708.                  Added a file read for log off time, called "logoff".
  709.  
  710.                  Sysop program now prevents incorrect values from being 
  711.                  entered for the switches (eg - terminate). Sysop will
  712.                  now prevent incorrect user levels from being entered.
  713.  
  714.                  SerServer now uses the xprzmodem.library. This allows 
  715.                  more control over the up/download when the carrier is 
  716.                  dropped etc. It has been tested with version 2.1 of this
  717.                  library. It will not work with version 2.0. The sysop
  718.                  can stop the file transfer by hitting the "ESC" key. 
  719.                  Many thanks to W.G.J. Langevel for the XPR concept and
  720.                  to Rick Huebner for the Zmodem library.
  721.  
  722.                  SerServer now supports the CTRL-D break from remote, to
  723.                  stop execution of a script file.
  724.  
  725.                  SerServer now intercepts three Intuition functions to
  726.                  prevent the CLI task from opening windows etc. The three
  727.                  functions are OpenWindow, OpenScreen, and AutoRequest.
  728.                  The code remains resident when SerServer terminates.
  729.                  It only effects the CLI coprocess that runs with Con1.
  730.                  All other processes function normally.
  731.  
  732.                  Added code to support the newser.device. This is a build
  733.                  your own multi-serial board type kit from "Amazing 
  734.                  Computing" and the parts can be purchased from "The
  735.                  Puzzle Factory, Inc" in Veneta, OR. I changed the device
  736.                  driver so that SerServer could control the DTR line. The
  737.                  executable and source are in a file called "NewSer.LZH".
  738.                  To see if you have the right version of device driver to
  739.                  work with SS, do a "type newser.device hex" on the
  740.                  executable, and the version number should be "1.1s".
  741.  
  742.                  Corrected a bug in the Con1-Handler where it would free
  743.                  memory twice when doing a "copy file-name to *".
  744.  
  745.   Version 2.21 - Fixed a small bug that prevented SS from running under 
  746.                  WB 2.04 in the non-terminate mode. Thanks to a nice
  747.                  fellow by the name of Dan Griffin for his help !!
  748.                
  749.                  SS will now only set the shared bit if it is open
  750.                  in the terminate mode. The Front End/BBS controls
  751.                  how the serial port is opened in the shared mode.
  752.  
  753.                  SS now controls the DTR line via the C= method, instead
  754.                  of a direct absolute address hit.
  755.  
  756.   Version 2.22 - Tried to let SerServer use the serial flag bits from 
  757.                  the program that called it (in the terminate mode).
  758.                  This does not seem to work with some programs. SS now
  759.                  opens the serial device in the shared mode, saves the
  760.                  old serial flag bits, sets them to values that SS needs
  761.                  and then  returns them to the previous values before
  762.                  closing.
  763.   
  764.   Version 2.23 - Worked on window opening. Should now work with NSTC,
  765.                  PAL and overscan in both modes.
  766.                  
  767.                - Fixed CTRL-C problem when used on DOS command from
  768.                  remote.
  769.                  
  770.                - Changed the data format for the SSpassword file so
  771.                  that SySop and SerServer are now using the same binary
  772.                  structure for this file.
  773.                  
  774.                - Recompiled under SAS 6.2
  775.                
  776.                - Worked on ZModem transfer screen so that it would allow
  777.                  faster transfers.
  778.                  
  779.                - Added more modem connect rates, so that SS will work better
  780.                  with high speed modems.
  781.                  
  782.                - Added version numbers to Sysop, SerServer and Con1-
  783.                  Handler. You should now be able to type "Version SerServer"
  784.                  and get it's version number.
  785.                  
  786.                - Renamed the SerServer directory to SSbbs: and all of the
  787.                  text and control files to SS-something. This is because
  788.                  the old bbs: directory was in conflict with some
  789.                  bbs programs. The SS-something identifies who the files
  790.                  belong to.
  791.