
                        Parlez internal messaging door
                          [uses BudgieSoft DoorLib!]


                                                                              
                                                .o8b                          
                                               o888P                          
                                              .8P  `                          
           odboooo                            88                              
       .o8888P""888o                         ]88                              
      dP"  88`   Y88[                        ]88                              
     dP    88     888                        ]88                              
    ]8`    88     ]88                        ]88                              
    88     88     ]88      oooo       o      ]88        .o,             .d    
    88     88     ]8[    .888888[   .88[.888 ]88       d888[     .8888888P    
    88,    88     d8`   d8""""88   d888b8888 ]8P      dP ]88     d888888P     
    88b    88    d8P   .8[    88  Y""888" '" ]8[     .8`  88     8"   dP      
    Y88   .88, od8"    d8`    88     88[     ]8[     d8  .8P     P   d8`      
    'P    ]8888""      88     88     88[     ]8[     88  dP      `  .8`       
          ]88          88     88     88      ]8[     88 dP         .8`        
          ]88          88     88     88      ]8[     88dP         .8P     .   
          ]88          88     88     88      ]8[     88P          8P     .8,  
          ]88          88,   d88   , 88      ]8[   d 88      ]   dP      Y8[  
          ]88          88[  d888[.dP 88      ]8b .dP 88[    oP  d8bo     '8`  
          ]88          888od8`8888"  88      ]8888P  ]88, .d8` d88888o,  .P   
     ]88888888888"     ]8888` 888`   88      '888P    88888P   P`"Y888888P    
     """"""""""`        Y8"   YP`    "`       '"`     'Y8"`         ""Y8"     



About Parlez:

     This door behaves in a similar way to the previous Parlez... However this
     is written in C so it'll be:
       1. Faster.
       2. Unhackable (unless you are a masochist).


Installing Parlez:


     BBS MENU OPTION (ARCBBS):

        This is an example menu.data file to call Parlez.

           DOING "Parlez door"
           OSCLI "WimpTask scsi::BBS.$.Doors.BudgieSoft.!Parlez 28"
           DOOR 28
           ECHO "{_>0023 bfgbg wb _>3223}Press any key{eol std}"
           ANYKEY
           GOTO mainmenu

        The '28' defines the door number. There is no longer a 'Configure'
        file.


     !RUN FILE 

        The only 'user alterable' part in here is the line that sets the
        system variable "Parlez$Message$Upload".

        Set this to "Yes" to allow message uploading, "No" to disable it or
        "ArmBBS" if you have ArmBBS...

Snoop:
     Yes, it *DOES* work. It doesn't redraw every character, only when the
     user presses [Return] or redraws the screen or wraps onto a new line.

     You will soon find a 'hidden' feature that shows statistics on the
     user. If you call this up about ten times, the program will stop
     responding to the ports and call it up another 40 or so times and
     it'll crash the program. This is a 'feature' I'm playing around with,
     and may remove in the future.


Versions:

     1.00 First creation. Monochrome. Worked between ports 32 & 33 only.
     1.01 Now asked user which port to send message to.
     1.02 Still sent to port 33. That's fixed. :-)
     1.04 ANSI colour added.
     1.05 Information added. Screen displays tidied up.
     1.06 Problem if port quit during message write. Put routine to rescan
          the ports.
     1.07 Problem if port quit between rescanning and sending message. Highly 
          unlikely this will happen (we're talking 100ths of a second!) but it
          might? Sending a disconnect door request cures this.
          1.07 is the current version.
     1.08 Program spewed piles of junk on ArcBBS1.63 when scanning ports over 
          12. This has now been fixed, by detecting the DoorModule in use 
          (0.07 for 1.64, and less assumed to be 1.63).
     1.09 Now checks to see if user on port # is already in a door. ArcBBS 
          1.63 and CastAVote would respond as port busy, but Graham Cant has 
          had trouble with claiming from his door. Now if the status byte is 
          255 the door isn't claimed and the message isn't sent.
     1.10 If the message send fails, and ArcBBS 1.64 is used, the message will
          be placed in the users mailbox, addressed from the sender of the 
          message.
     1.10B Slight tweaks.
     1.11 Implemented BudgieSoft &16F00 broadcast to CastAVote, and tweaked 
          further.
     1.12 Now checks flag 27 after claiming port. If the user doesn't want to 
          be hassled, Parlez will release the port transparently, otherwise 
          send the message.
     1.14 Some testing and ideas. New help text blah blah blah...
     1.15 Squished and disabling the message generation.
     1.16 "Parle" changed to "Parlez", get my French grammer correct. :-)
          The INFO keypress changed to Ctrl+\ and the Ctrl+I was the TAB key!
          Now you do not see users "Logging on" or New User".
     1.18 Some small tweaks/changes.
          PLEASE NOTE: Parlez will not have an option to 'open a channel' with
          another user. This door is for inter-BBS messaging. It is not 
          Subspace.
     1.19 Bug fixed. Entering ports to message >35 or <0 would create a
          "Subcript out of range" error.
     1.20 The help text is now external to make it easier to play with. Note 
          that it's encoded... 
          Now all users that are preoccupied or in other ways unavailable for 
          messages are shown with their user number in RED.
          The user now has the option to open a private chat with the 
          recipient.
     1.21 Chat bit tidied up a tad or two. :-)
     1.22 Never released.
     1.24 Tidied up information and fixed a few small glitches.
     1.28 Time function implemented, Ctrl+T returns time left.
     1.30 General tweaks.
     1.31 Version 1.21 rescued from disc failure and patched up.
     1.32 Chat tidied up. Time function now works. Can handle user dropping
          carrier. Keeps users up-to-date on other users status. Now has
          a time-out facility, much requested. :-)
     1.40 This version:
          Handles remote user actions better. Display tidied up a little. 
          Polls a little less often so should run faster without noticably 
          affecting BBS operation. Should /hopefully/ only change the cursor 
          colour when a different person starts typing. Internal messages 
          moved into a MESSAGES file, in anticipation. :-)
     2.00 *TOTALLY* recoded in C with no chat/msgupload.
     2.01 Added message upload and split-screen chat.
     2.02 Added a few features, nice bits and Alt+D.
     2.03 Weird bugs needing to be fixed.
     2.04 Implemented Richard Sargeant's patch and chat features word-wrap.
     2.05 Attempt to tidy word-wrap.
     2.06 Converted to DeskLib. Wrap fixed (I think) and snoop added. Would
          have fixed BudgieSoft message protocol only it's 4am and I'm dead
          tired! :-)
     2.07 Added BudgieSoft message protocol, tweaked a few things and added
          User Info stats.
     2.08 Some fixes.
     2.09 Includes option for debugging code (currently disabled). Signal
          handler included for OS errors and STACK OVERFLOW. In these
          conditions, Parlez will attempt to write something to the logfile,
          explain briefly to the user and then it'll bomb out. Fatal things
          /could/ happen if Parlez tried to poll during this (which may
          happen if the door buffer is full). Still, better than before. :-)
          You can force a signal event in a chat:
            ASCII code 253 will cause a SIGOSERROR (type 10) crash.
            ASCII code 254 will cause a SIGSTACK (type 7) crash.
          Please do try this. If it brings your system down, it isn't
          working. If it just dies on you - it is. The user may or may not
          be returned to the server. System integrity is more important than
          an individual user (who can always call back - the BBS can't reboot
          itself!).
     2.10 Richard Sargeant had a look at the code and changed a few things.
     2.11 Changed some of RS's stuff back again (like in-line SWIs <grin>).
          Totally changed the error handler so upon a 'signal' (type 10 and
          type 7 - keys above still active), the BBS will freeze for 10
          seconds or so whilst a coredump is generated (blame fwrite() for
          being so damned slow) and then both users will see an error
          report message. The they'll be released. This /should/ work without
          crashing the BBS or locking up the computer.



Why is Parlez better than, say, SubSpace?

   * Doesn't chuck users out of other doors.
   * Informs you who is on-line, where and if they are available.
   * ArcBBS option to upload message to users mailbox.
   * Friendly and 'nice'.
   * Split-screen chat facility.
   * SysOp snoop window with user information recording.



Support:

     Send messages to:

     Richard Murray  at  2:254/86.1 @ Fidonet
          or
     rmurray@arcticbb.demon.co.uk



                                 Byeeeee!!!!


