






                 Ŀ
                 Ŀڿ ڿ ĳ
                 ĳڿ   ĳ
                  ĳ
                 



          GEnius v1.50 - A revolution in personal telecommunications



                   (c)1991,92 Key Research and Development, 
                      Portions (c)1991,92 DSD Software



                Written by Chris Lautenbach and Derek Snider



                        March 1992 - World Release





  -------------------------------------------------------------------
  A few quick thanks before we begin.......
  -------------------------------------------------------------------

  Thanks to TurboPower Software, for saving me hours and hours of
  work, Borland International, for without the language, obviously,
  it wouldn't exist.  To Rick Di Lorenzo, Reuben Sumner, Ross West, 
  Gavin Peters, Almiro Ricci, Evan Towle, Jeff Wong, Julio Mosquera, 
  and anyone else I missed, for their tireless bashing of the program.  
  Seems to have shaken all the bugs loose.  And of course, to the people 
  who've taken the time to register GEnius.

  -------------------------------------------------------------------








                    T A B L E   O F   C O N T E N T S

  1.0 ........................................ Introduction
      1.1 .................................... Included files
      1.2 .................................... System requirements
      1.3 .................................... Notes on EMS/XMS memory
      1.4 .................................... Upgrading from v1.0

  2.0 ........................................ Configuring GEnius v1.5

  3.0 ........................................ Terminal mode
      3.1 .................................... Terminal mode commands

  4.0 ........................................ GEnius features
      4.1 .................................... Pulldown menus
      4.2 .................................... Dialing directory
          4.2.1 .............................. Add an entry
          4.2.2 .............................. Edit an entry
          4.2.3 .............................. Delete (Kill) an entry
          4.2.4 .............................. Dial an entry
      4.3 .................................... Macros
      4.4 .................................... File transfer
      4.5 .................................... Backscroll
      4.6 .................................... Doorway mode
      4.7 .................................... GEnius script language

  5.0 ........................................ The wrap-up
      5.1 .................................... Other K-RAD products
      5.2 .................................... Copyright acknowledgments
























  -------------------------------------------------------------------
  1.0 - Introduction
  -------------------------------------------------------------------

  There are MANY features we wanted to add to this release, but fearing
  we might become as backlogged as some other authors (which we won't
  name) we decided to release 1.50.  Instead of waiting ages to release
  2.0, we're going to go with 1.6, 7, 8, 9 etc - and keep you updated 
  all along the way.

  -------------------------------------------------------------------
  
  Welcome, traveller, to the world of GEnius.

  We call it personal telecommunications, because there are alot of us
  who don't need alot of extra features.  Just something small and easy
  to use, for BBS'ing!

  We're sure that you've used other communications packages, such as 
  Telix(r), and Qmodem(r).  

  We used to use those packages too - but found them too cumbersome, 
  and too 'robust' for our needs.  We didn't need a terminal program with 
  80,000 features - just a reliable one that worked, was small, and fast.  
  So far, we haven't seen one like that, have you?

  If you need special emulations, internal multitasking, or slow
  operation - don't look at this program, it doesn't have it.  

  Right now, it's got a dialing directory, a color/tagging/ansi
  stealing backscroll, more-than-full-featured macro capabilities, 
  ANSI support, the full suite of Xmodem/Ymodem/Zmodem protocols for 
  both uploading and downloading, an upload manager and a full-featured 
  script language.

  In addition, it looks nice, and is pretty damn fast, if I may say
  so myself.

  *******************************************************************
  NOTE!  THIS PROGRAM IS NOT PUBLIC DOMAIN, NOR IS IT FREE!
  *******************************************************************
  GEnius is marketed under the shareware concept.  You are hereby 
  licensed to evaluate this program for a period of no more than
  thirty days, after which you should either register it, or 
  discontinue use of it.

  Many hundreds of hours of work have gone into the development of 
  this software package.  If you like it, and use it, please register
  today.
  *******************************************************************
  End of speech......  now on with the program....




  -------------------------------------------------------------------
  1.1 - Included files
  -------------------------------------------------------------------
  The following files should be included in this archive:

  config   exe     25376 03-13-92   2:24p - GEnius configuration program
  convert  exe      4766 01-09-92   5:53a - Convert v1.0 to v1.5 fon dir
  genius   exe    109296 03-20-92   1:42a - GEnius main EXE file
  whatsnew 150      4454 03-20-92   1:26a - What's new since last version
  genius   ovr    159756 03-20-92   1:42a - GEnius main overlay file
  script1  gsl       236 06-26-91  11:10p - Sample script file
  script2  gsl       245 01-04-80  12:37a - Sample script file
  tlxcnvt  exe      5536 03-18-92   4:28p - Convert tlx fon dir to GEnius
  genius   cfg      4840 03-20-92   2:43a - GEnius configuration data
  genius   fon      1064 03-20-92   2:42a - GEnius phone directory
  genius   txt     XXXXX 03-16-92   1:25a - This manual.

  The following files will be created by GEnius, if they are not already
  present:

  GENIUS.FON       KEYLOG.TXT
  MACROS.DAT       GENIUS.LOG

  -------------------------------------------------------------------
  1.2 - System requirements
  -------------------------------------------------------------------

  IBM PC/AT 80286 8mhz or faster *
  Hard disk 
  Minimum 384k RAM
  Standard serial port with 8250A/16450 or 16550AFN UART 
  CGA or Monochrome display
  
  Optional:

  Up to 16MB EMS or XMS memory.  GEnius will use EMS for disk swapping,
  overlay management, and backscroll memory if directed to.  XMS however,
  may only be used for backscroll.

  VGA display, for enhanced (43/50 line) mode.

  * GEnius WILL run on XT's, but a faster machine is recommended, as is
    VGA.











  -------------------------------------------------------------------
  1.3 - Notes on EMS/XMS memory
  -------------------------------------------------------------------
  
  Many of GEnius's features, and actually, GEnius itself are capable
  of utilizing EMS and XMS memory.  

  When EMS or XMS are present, you will find GEnius will operate more
  quickly in certain areas.  These include shelling to DOS, and just
  general program operation.

  GEnius uses a system called overlays for memory management, when you
  have EMS memory, these are loaded into memory (rather than being from
  loaded off of disk) which increases execution speed many-fold.

  During shells to DOS, there is an option within GEnius to have it swap
  it's code to EMS or disk at this time.  If you have EMS, code is copied
  there - and obviously, sending it to EMS would be faster than writing
  it to your hard disk.

  If you have a 286 or greater machine with more than 1mb of RAM, then
  you've got the hardware required for EMS or XMS.  All you need now, is
  a memory manager, such as QEMM-386, or QRAM from Quarterdeck Software.
  If you have Microsoft MS-DOS v5.0, then you already have a memory 
  manager, EMM386.EXE.  See your manuals on how to install these fine
  products.

  In addition, for all applications we highly recommend using a software
  disk cache, like Central Point's PC-Cache (comes with PC-Tools), or
  Hyperdisk.  Both are marvelous products.  If you can't afford them, and
  you have MS-DOS v5.0, you can use SMARTDRV.SYS, the MS-DOS disk cache.

  -------------------------------------------------------------------  
  1.4 - Upgrading to GEnius v1.5 from a previous version
  -------------------------------------------------------------------

  Basically, you'll need ALL the files from the 1.50 zip file, with 
  the exception of GENIUS.FON.  In fact, the file format is different,
  but I would assume you'd want to convert your old file to the new
  format.  Therefore, I've included CONVERT.EXE to upgrade your FON
  file to 1.50.

  Other than that, run CONFIG, and set up your configuration, or
  just edit the file GENIUS.CFG with your favourite ASCII editor.

  -------------------------------------------------------------------
  1.5 - Command line parameters
  -------------------------------------------------------------------

  /R <script name>       - runs a specified script
  /NOINIT                - do not initialize modem
  /NOWAIT                - do not display title screen (registered 
                           version only.
  -------------------------------------------------------------------
  2.0 - Configuring GEnius v1.5 for your system
  -------------------------------------------------------------------

  The one thing we kept hearing from users of v1.0; was that the 
  configuration file was too difficult.

  For purposes of configuration, we've added CONFIG.EXE.  This 
  program, will make configuring GEnius alot simpler, and quicker.

  To run CONFIG, just type "CONFIG GENIUS.CFG" at the DOS prompt.  Next
  you will see something that looks like this:

---------------------------------------------------------------------
             GEnius v1.50 Configuration - Press ESC to exit/save.

                                 Modem Options
                                 ~~~~~~~~~~~~~

Startup baud rate..........: 300 1200 2400 4800 9600 19200 38400 115200
Comport to use.............: COM1: COM2: COM3: COM4:
Word length................: Five Six Seven Eight
Parity.....................: None Odd Even Mark Space
Stop bits..................: One Two
Software flow control......: on off
Hardware flow control......: on off
Modem initialization string: ATZ^MAT X3 S11=40^MATM1E1^M

                                Dialing Options
                                ~~~~~~~~~~~~~~~

Connect delay..............: 5
Dial time..................: 40
Dialing prefix.............: ATDT
---------------------------------------------------------------------

Obviously, most of the options under 'Modem Options' are fairly straight-
forward.  Software flow control is simple XON/XOFF, and hardware is
CTS/RTS - supported by most modems, including USRobotics HST's.

Connect delay is the number of seconds without a keypress that GEnius will
wait after connecting to a host system.  After this delay is depleted,
GEnius will just drop back to terminal mode.  Dial time, is the amount of
time GEnius will wait for a response from the modem (ie BUSY, NO DIALTONE,
etc) before cycling to the next call.

Dialing prefix is the command your modem requires before the phone number,
to dial the modem.  ATDT is standard for any Hayes compatible modem, when
dialing TouchTone, if you have a Pulse line, set it to ATDP.





After entering these options (using the Up and Down arrows to select the
item to change, and Right and Left arrows to highlight the option desired) and
pressing the down arrow on the last option, you'll come to the next page
of options:

---------------------------------------------------------------------
             GEnius v1.50 Configuration - Press ESC to exit/save.

                               Terminal Options
                               ~~~~~~~~~~~~~~~~

ANSI emulation.............: on off
Filter ANSI while logging..: on off
Destructive Backspace......: on off
Add linefeeds after carriage returns: on off
43/50 line mode............: on off
Keystroke logging..........: on off
Maintain event log ........: on off
Keystroke log filename.....: KEYLOG.TXT
Name and path of Macro file: MACRO.DAT

                                 File Transfer
                                 ~~~~~~~~~~~~~

Zmodem overwrite option....: Newer/Longer Append Clobber Newer Never
Download path..............: C:\ASD
Upload path................: C:\ASD
Text file transmission line delay...: 1
---------------------------------------------------------------------

The setting for ANSI emulation, determines whether or not an ANSI-BBS
terminal emulation will be maintained during your sessions.  If you
are an average BBS'er, this will probably always be set to ON.

Filter ANSI while logging; if this is enabled, whenever you turn on the
"Log to file" option in GEnius, ANSI codes/colors will be stripped from
the incoming data.

Destructive backspace, when in the ON position, will ensure that all
incoming backspaces will erase the character before the cursor.

Add linefeeds after carriage returns; this is seldom needed, except on
certain systems which do not send the standard CR/LF combination required
for and IBM PC compatable to advance to the next screen line.  If you
notice that all incoming data is appearing on a single line, turn this
option ON.

43/50 line mode; this is a matter of preference.  If you have a EGA/VGA
video adapter, and would like 43 or 50 lines per screen, then feel free
to activate this option.




Keystroke logging.  When enabled, this will cause GEnius to log all key
strokes pressed to a file specified under "Keystroge log filename".  This
is useful if other people are using your computer, and you'd like to know
what they're up to when you aren't around.

Maintain event log.  This option determines whether or not GEnius will 
keep track of which BBS's you call, when you call them, how long you are
on for, what files you upload/download, how long they take, and what CPS
rates you are getting.  Event logging is particularly useful if you do
alot of long distance.

Name and path of macro file.  This is the path and filename for the 
default macro file GEnius will load upon startup.

Now, for the FILE TRANSFER OPTIONS.

Zmodem overwrite option.  This applies only if the there is a file in your
download directory, with the same name as one being downloaded.  Here are 
the settings:

   Newer/longer - If the file being downloaded is newer or longer than
                  the one on disk, then overwrite the old one.

   Append       - Write the new file to the end of the old file.

   Clobber      - Erase the old file no matter what.

   Newer        - If the file being downloaded is newer, then overwrite
                  the old one.

   Never        - Never overwrite an existing file for any reason. (Default)

Download path/upload path.  This is the path where you wish downloads to go,
and uploads to come from.

Text file transmission line delay, is the number of seconds to wait after
each line is transmitted.  (Some systems do not appreciate full-speed ASCII
uploads)

After you have finished configuring this screen and are on the last line,
press the down arrow to go to the next page.













---------------------------------------------------------------------
             GEnius v1.50 Configuration - Press ESC to exit/save.

                                 Other Options
                                 ~~~~~~~~~~~~~

Terminate program if carrier lost...: on off
Fancy wipes/fades..........: on off
Swap to disk during shell..: on off
Type of backscroll.........: RAM EMS XMS
Lines of backscroll........: 5000
Bell tone..................: 600

                                  Color setup
                                  ~~~~~~~~~~~
Color of status line.......: 1
Menu Color 1...............: 15
Menu Color 2...............: 0
Menu Color 3...............: 15
Menu Color 4...............: 4
Menu Color 5...............: 12
---------------------------------------------------------------------

Fancy wipes and fades, GEnius comes with several neat little screen
wipes to bring back original screens, after downloading, using the
backscroll, and exiting the program.  Setting this option to OFF will
disable them; as they may become monotonous on slower machines.

Swap to disk during shell; when enabled, GEnius will swap most of it's
code to EMS or disk during a Shell to DOS.  This will maximize the amount
of memory you have while in DOS.  Note: When this option is enabled, you
will lose any data that comes in while you are in the shell.  

Type of backscroll.  GEnius supports up to 65,000 lines of backscroll,
when used with EMS or XMS memory.  If you have this option set to RAM, it
is advisable you do not try to use more than 1,000 lines.

As a general rule of thumb; when trying to figure out how much backscroll
you can have, use this as a calculation:

5000 lines * 164 bytes per line = 820,000 bytes or 820k. 

Therfore, you can have approximately 6,000 lines of backscroll per meg of
EMS/XMS you have, up to a maximum of 65,000 lines.

Bell tone; in hertz.  This defines the pitch of the beep produced by an
incoming ^G.  (ie. the beep PCBoard sends when you first connect)

The rest of the options are color options, and are self-explanatory.

Pressing the down arrow on the last line of this screen will bring you
to the next page of options.


---------------------------------------------------------------------
             GEnius v1.50 Configuration - Press ESC to exit/save.

                           Dialing Directory Colors
                           ~~~~~~~~~~~~~~~~~~~~~~~~

Dialing dir background.....: 0
Dialing dir entry color....: 12
Color of BBS name..........: 3
Color of baud rate.........: 11
Color of phone number......: 14
Dialing dir line foreground: 0
Dialing dir line background: 2
Dialing dir bar foreground.: 0
Dialing dir bar background.: 7

                              Message Box Colors
                              ~~~~~~~~~~~~~~~~~~

Message box foreground.....: 15
Message box background.....: 1
---------------------------------------------------------------------

Again, more colors, self-explanatory.

---------------------------------------------------------------------
             GEnius v1.50 Configuration - Press ESC to exit/save.

                           Dialing Directory Colors
                           ~~~~~~~~~~~~~~~~~~~~~~~~

Dialing dir background.....: 0
Dialing dir entry color....: 12
Color of BBS name..........: 3
Color of baud rate....͸
Color of phone number.                                 
Dialing dir line foreg  Save current settings? Yes No  
Dialing dir line backg                                 
Dialing dir bar foregr;
Dialing dir bar background.: 7

                              Message Box Colors
                              ~~~~~~~~~~~~~~~~~~

Message box foreground.....: 15
Message box background.....: 1
---------------------------------------------------------------------

Once you proceed past the last line of this screen (the last one), or you
press <ESC> on any page/option, SETUP will display the prompt shown above.
Use the right/left arrow keys to make your selection, and press <ENTER>.



  -------------------------------------------------------------------
  3.0 - Terminal mode
  -------------------------------------------------------------------

  While in terminal mode, the following line will always be displayed
  at the bottom of the display screen (except when in Doorway mode):

  Last call: K-RAD/DSD!         Offline   38400bps 8N1   Alt-Z for help

  This is called the status line; and it contains information pertinent
  to your current settings and connection status.

  The first block, will contain the name of the BBS last dialed from 
  the dialing directory.  If you have not dialed a system, it will 
  display "K-RAD/DSD!".  When you aren't connected to anything it will 
  also say "Last call:" in front of it.

  The next portion simply indicates whether you are online or offline.
  Please note that this depends solely on the Carrier Detect line (CD) 
  that is controlled by your modem.  Some modems are defaulted to having
  Carrier Detect ALWAYS on, regardless of connection status.  If it is
  set like this on your modem, you will notice difficulties in dialing,
  connecting, etc.

  The second last portion displays current communications parameters,
  bps (bits-per-second) rate, databits, parity, and stop bit settings.

  The last box simply says, "Alt-Z for help".

  -------------------------------------------------------------------
  3.1 - Terminal mode commands
  -------------------------------------------------------------------

  Here are the keystrokes to bring up the options in terminal mode:

  <Alt-D>   -    Dialing directory
  <Alt-M>   -    Macro programming menu
  <Alt-B>   -    Backscroll 
  <Alt-C>   -    Clear screen
  <Alt-H>   -    Hangup modem
  <Alt-=>   -    Doorway mode
  <Alt-Z>   -    Help screen

  <Alt-X>   -    Exit 
  <PgUp/Dn> -    Download/Upload a file

  <Alt-F>   -    Displays pulldown menus for those unfortunate of
                 you who are mouseless.






  -------------------------------------------------------------------
  4.0 - GEnius features
  -------------------------------------------------------------------
  
  This section describes all of GEnius's features in (hopefully)
  easy to understand terms.

  -------------------------------------------------------------------
  4.1 - Pulldown Menus
  -------------------------------------------------------------------

  Press [Alt-F] to get them if you have no mouse.  Otherwise, move 
  the mouse cursor to the second line of the screen, and click your 
  right mouse button.  You'll see something that looks like this:

  Ŀ
   <File> Parameters  Macros  Other  
  
   >DOS shell<           
    Log to...            
    Change download path 
    Change upload path   
    Exit GEnius          
   

   This shows the File menu, while 'pulled down'.  From here, you've
   got access to DOS Shell, Log to file, change upload/download path (only
   for this session), and of course Exit to DOS.

  Ŀ
    File <Parameters> Macros  Other  
  
        >Baud rate<            
         Local Echo            
         Add linefeeds         
         Destructive Backspace 
         Word Length           
         Parity                
         Stop Bits             
        

  This is the 'Parameters' menu, in it's pulled down state.  From here,
  you can alter all of GEnius's current communications parameters, and
  settings.  Again, changing these only affect your current session and
  are not saved.








 
  Ŀ                                   
    File  Parameters <Macros> Other  
  
                    >Change<          
                     View             
                     Add new          
                     Delete macro     
                     Load macrofile   
                     Create macrofile 
                    


  The Macros menu.  Using this menu, you can add, change, view and delete
  macros.  You can also load or create new macro files.


  Ŀ                                   
    File  Parameters  Macros <Other> 
  Ŀ
                            >Dial<                        
                             Hangup                       
                             Backscroll     
                             ANSI emulation 
                             Configuration  
                             25/43/50 lines 
                             Run a script   
                            


  The Other menu.  This gives you access to miscelleneous options, as well
  as some of GEnius's primary features such as the Dialing Directory, and
  the Backscroll.

  The pulldown menus are controlled by click on the option you want with
  the right mouse button.  For keyboard control, simply use your arrow
  keys and <ENTER> key to select options.


















  -------------------------------------------------------------------
  4.2 - Dialing Directory
  -------------------------------------------------------------------

  To activate the dialing directory, type [Alt-D] in terminal mode.
  You should see something that looks like this (without all the 
  entries, of course :-)

---------------------------------------------------------------------
1.   Bozo's BBS                                   38400     555-5338
2.   Computing Canada On-line [v.32/HST]          19200     497-5263
3.   Opticomm                                     2400      921-6366
4.   Datapac/iNet 2000 [79100067 iNet 2000]       1200      868-4100
5.   Metropolis                                   2400      292-8757
6.   GST BBS                                      19200     1-800-267-4500
7.   Toronto Twilight Communications              38400     733-9012
8.   Toronto Twilight Communications v.32         19200     733-9020
9.   Foxwood!                                     38400     640-3501
10.  Club Insanity [v.32]                         9600      755-6045
11.  Exec PC multiline BBS [v.32bis]              19200     1-414-789-4360
12.  Sam Smith's TOOL SHOP                        2400      1-818-891-6780
13.  Sam Smith's TOOL SHOP [HST]                  9600      1818-891-3772
14.  Hard Times                                   19200     555-1233
15.  Citylink                                     2400      602-6057
16.  Citylink [HST]                               19200     602-6071
17.  Hellturno                                    19200     555-2344
18.  Demon's Board [v.32bis]                      19200     555-1822
19.  ATI Support BBS [v.32]                       9600      756-4591
20.  Hello! Hello!                                38400     555-1233

<Dial>  Kill    Add    Edit    Tag    Load    Exit Dialer

Dial the currently selected entry                          File: GENIUS.FON
Last call: K-RAD/DSD!               Offline   38400bps 8N1   Alt-Z for help

  At the bottom of the screen, just below the seperator line, 
  you'll see the different commands for the dialing directory.  You 
  may either press the first letter of the command to execute it - or 
  use the right/left arrow keys, hilite the option, and press <ENTER>.

  Options:

  4.2.1 - (A)dd to the dialing directory  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Simply select the baudrate, parity, stopbit, and databit options.
  You may also enter in your name and password for this system, and
  send it using a macro (see name/password sending under macros).

  Specifying a script name here will execute that script when a 
  connection is made.




  Pressing Ctrl-Enter during any field will save the entry and return
  you to the dialing directory.

  4.2.2 - (E)dit a BBS entry
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
  Simply hilight the entry you wish to edit, using the up and down 
  arrow keys; then press (E) or hilite edit on the commandline, using
  the right and left arrow keys, then press <ENTER>.

  4.2.3 - (K)ill a BBS entry
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
  Again hilight the entry you wish to kill (delete) and press (K), or
  hilight the KILL option on the commandline using the right/left arrow
  keys and press <ENTER>.  You will be asked to confirm that you wish
  to delete the entry, before it is deleted.

  (SPACE) tags an entry for multiple dialing.

  4.2.4 - (D)ial 
  ~~~~~~~~~~~~~~
  This will initiate the dialer.  If you have multiple entries flagged
  for dialing, they will be dialed in numerical order.  However, if 
  none are flagged, the currently hilighted entry will be dialed.  Like
  all other dialing directory commands, the same effect may be achieved
  by hilighting DIAL on the commandline, using the right/left arrow keys
  and pressing <ENTER>.

  During dialing, you may use (SPACE) to skip to the next entry,
  or to redial immediately; (ENTER) to exit the dialing window;
  or (ESC) to abort dialing altogether.

  -------------------------------------------------------------------
  4.3 - Macros
  -------------------------------------------------------------------

  To bring up the macro programming menu, type [Alt-M] (to see this
  menu, look under 4.1 - Pulldown menus, Macros).

  Codes that you may embed into your macros;

  |n - sends name for the last BBS dialed at this point.
  |p - sends password for the last BBS dialed at this point.

  |m - sends a carriage return.

  |s - sends everything after this code, with a 100ms delay between
       characters. (slow mode)

  |k - reads ONE character from keyboard, and sends it at THIS
       POINT in the macro.  (Great for online games)




  -------------------------------------------------------------------
  4.4 - File Transfer
  -------------------------------------------------------------------

  The older versions of GEnius required you to have Omen Technologies'
  DSZ protocol driver in order to do file transfers.  GEnius now has
  Ymodem, Xmodem, and Zmodem internal protocols.  If you wish to use
  MobyTurbo Zmodem - an option is available on the transfer menus, as
  before, just make sure you have DSZ.COM in your current directory,
  or pathed.

  For simplified transfers, we've included Zmodem Autodetect, which
  will automatically initiate a Zmodem transfer when a Zheader is
  identified.

  For uploading, you'll find a complete pop-up directory list, and 
  you need not do more than simply hilite the files you wish to
  upload and press <ENTER>.  You'll see the files you've selected
  to download appear in a little list beside the directory dialog 
  box.

  From terminal mode, use the (PgUp) key to upload, or the (PgDn) 
  key to download.  While selecting the protocol, a brief description
  of the protocol will be displayed near the bottom of the screen, 
  above the status line.

  You will have a choice between:
 
  Xmodem, Xmodem-1k, Xmodem-1k-G         (internal)
  Ymodem, Ymodem-1k-batch, Ymodem-1k-G   (internal)
  Zmodem, Zmodem Crash Recovery          (internal)
  MobyTurbo Zmodem (r)                   (external, DSZ.COM)

  In the future support for other external protocols such as Super
  Zmodem, Jmodem, Megalink, Bimodem, HS-Link, etc will be added.

  -------------------------------------------------------------------
  4.5 - Backscroll 
  -------------------------------------------------------------------

  The backscroll may be activated from terminal mode, by holding down
  [Alt] and pressing B (Alt-B).  

  If for some reason, you forget which key to press, help is available,
  by pressing [H].

  Manoeuvering through the backscroll couldn't be easier, just use the
  [Up] and [Dn] arrows, and [PgUp] and [PgDn] keys.

  To tag lines, simply highlight the line you wish to tag, and press 
  <ENTER>.  If you wish to highlight several lines in a row, hold down
  <SHIFT> and use the [Up/Dn] arrow keys to 'drag-tag'.


  To clear any lines you may have tagged, press [C] and they will be
  untagged.

  To write tagged lines to disk, press [W].  You will be prompted for 
  two things before it is actually done; a filename, and whether or 
  not you want the lines to be saved in color (ANSI).  This is 
  especially useful for SysOp's, who occasionally might wish to borrow
  someone elses ANSI logon.

  Note: If the file specified, already exists on the disk, the new data 
  will be appended to the file.  It will NOT be overwritten.

  Pressing [S] will send all tagged lines back to the modem.  GEnius will
  prompt you for a 4-5 character beginning for the lines; this is intended
  for message quoting.  (eg. if you were quoting Bill Jones, you could put
  "BJ>")

  Under some circumstances, you may wish to edit a line in the backscroll,
  perhaps to add a comment to a file you are about to write to disk.  
  Primitive editing commands are supported, including cursor key movement,      
  Home/End, Insert (on/off).

  Microsoft compatible mice are supported in this mode too.

  Right button, tags a line.  

  Left button will move the tag bar to the line the mouse cursor is 
  'sitting' on.

  Pressing both buttons simultaneously will let you edit the line.

  To move up, move the cursor to the top line, and press the left 
  mouse button.    
  
  To move down, move the cursor to the bottom line and press the left mouse     
  button.
 
  -------------------------------------------------------------------
  4.6 - Doorway mode
  -------------------------------------------------------------------

  By holding down <Alt> and pressing =, you will invoke Doorway mode.
  This is intended for use when calling programs which support full
  keyboard scancode operation.

  Doorway, by Marshall Dudley, the remote PC operation system, supports
  this, as does Clark Development's PCBoard v14.5a (at least it does
  within the full-screen editor).

  Please note however, GEnius provides a full-screen (25 line) Doorway
  mode to permit the remote execution of most programs, without losing
  the first line of the screen.



   To get out of this mode, simply press Alt-= again.

  -------------------------------------------------------------------
  4.7 - GEnius script language
  -------------------------------------------------------------------
  
  GEnius' script language, though very simple, provides enough commands 
  to do a wide variety of automated functions, and for the user who 
  plays online games, the script language, and its interface to the macros 
  make the games almost play by themselves.

  GEnius Script Language Reference
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMMMAND / SYNTAX               DESCRIPTION & USAGE
=============================================================================

ALARM ON or OFF              - Turns alarm on or off.

                               This can be used to alert the user
                               by sounding an alarm continuously until turned
                               off, or the script is finished.

APPEND var,filename          - Adds a var to a file.

                               APPEND will add whatever text specified
                               in a variable to the end of a file.

CLEARSCREEN                  - Clears the local screen.

CLS                          - Clear the screen and send a ASCII $0B to the
                               com port.

                               When a script is hosting a user through the com
                               port, this routine is used to clear the screens
                               on both the host side, and the user side.

CONCAT var1,var2             - Concatinates var1 to the end of var2.

                               VarS1="Hello
                               VarS2=" there
                               CONCAT VarS1,VarS2

                               The above results in VarS2 containing the string
                               "Hello there".

COPY var,index,count         - Function.  Returns a subscript of a string.

                               VarS1="Hey dude!
                               VarS1=COPY VarS1,5,4

                               The above results in VarS1 containing the string
                               "dude".


DEC varI[,decrement]         - Decrements varI by a decrement.  (Default=1)

                               VarI1=20              Set VarI1 to 20
                               DEC VarI1             Decrement VarI1 by 1
                               DEC VarI1,6           Decrement VarI1 by 6

                               The above results in VarI1 containing the value
                               of 13.  (20 - 1 - 6 = 13)

DELAY xxxxms                 - Delays for a certain amount of time.

                               DELAY 1000           Delays for 1 second

DIAL var                     - Dial an entry in the dialing directory.

                               DIAL 5               Dials the fifth entry in
                                                    the dialing directory.

DOWNLOAD protocol,Var        - Downloads a file, (stored in var), using
                               either Xmodem, Ymodem or Zmodem.

                               VarS1="Genius15.zip
                               DOWNLOAD Z,VarS1

                               The above results in a Zmodem download of a file
                               name "Genius15.zip".  (With Zmodem, the filename
                               is not important, as the filename is included as
                               part of a Zmodem download automatically.)

END.                         - Ends the script file.

                               This command will end a script before the actual
                               physical end of the script file.  (This does not
                               need to be at the end of a script file.)

                      Example: PRINT "What is the best terminal program?
                               READLN VarS1
                               IFCI VarS1="GENIUS
                               GOTO RIGHTON
                               PRINT "What!  ^1 is a LOSER terminal program!
                               PRINT "Get lost!
                               END.
                               [RIGHTON]
                               PRINT "Right on!  GEnius is superior!

EXEC path,cmdline            - Executes a COM or EXE file.

                               EXEC command.com,/C dir/w

                               The above will use command.com to display a
                               wide listing of the current directory.



GETKEY varname               - Get a keystroke from the keyboard.

                               GETKEY VarS1        Returns a keystroke to VarS1

GOTO labelname               - Goes to a label in the script.

                               GOTO MYROUTINE

                               The above would result in going to a part of
                               the script with the label [MYROUTINE].

GRABAWORD var                - Gets a word and puts it in var.

                               GRABAWORD VarS1

                               The above would result in the next incoming word
                               to be put into VarS1.  (A word is any text or
                               number separated by punctuation, a space or a
                               carriage return.

GRABUNTIL var,character      - Grabs incoming until a specific character is
                               received.  String stored in var.

                               GRABUNTIL VarS1,^M

                               The above would result in all incoming data to
                               be put into VarS1 until a carriage return,
                               (character $0D), is received.

HALT [exitcode]              - Stops the script and exits GEnius.

                               HALT 1

                               The above would stop the script, exit Genius
                               and return a DOSERRLEVEL1
HANGUP                       - Hangs up the modem.

IF var="text                 - If true then next line will be executed.
                               (Valid operators:  =  <  >  <=  >=  <>)

IFCI var="text               - Same as above but case insensitive.













IFIN var,filename            - If var is in a file then execute next line.

                               [LOOP]
                               Print "What is your name?
                               Readln VarS1
                               Print "What is your password?
                               Readln VarS2
                               VarS3="^1, ^2
                               IFIN VarS3,passfile
                               GOTO VALID
                               Print "WRONG!
                               GOTO LOOP
                               [VALID]
                               Print "Correct!  Welcome!

                               The above would ask the user for a name and a
                               password, put them together separated by a comma
                               and a space, then check to see if that data
                               exists in a file called "passfile", if so, the
                               program displays a message and ends, otherwise
                               the user is prompted to enter a name and password
                               again.
 
INC varI[,increment]         - Increments varI by an increment.  (Default=1)

                               VarI1=2               Set VarI1 to 2
                               INC VarI1             Increment VarI1 by 1
                               INC VarI1,6           Increment VarI1 by 6

                               The above results in VarI1 containing the value
                               of 9.  (2 + 1 + 6 = 9)
 
LENGTH var                   - Function.  Returns length of string.

                               VarS1="Hello
                               VarI1=LENGTH VarS1

                               The above would result in VarI1 containing the
                               length of the string in VarS1, which is five.

LET var="text...             - Assigns a string to a variable.

                               LET VarS1="hello
                                     or
                               VarS1="hello

                               LET VarI1=50
                                   or
                               VarI1=50

                               The above shows how to assign data to a variable
                               (the LET statement is optionial.)


LOOKUP var,filename          - If var is equal to a line in the file, then
                               var is set to whatever text in the next line
                               of the file.

                               Print "Let's see what we can look up for GEnius!
                               VarS1="GEnius
                               LOOKUP VarS1,infofile
                               Print VarS1

                               If a file name "infofile" contained the folowing
                               two lines of data:

                               GEnius
                               A really great terminal program.

                               Then the lines of code above would look for the
                               text "GEnius" in the file, and read the follwing
                                                                                                          line into VarS1, then display it to the screen.

                               Note: If the text is NOT found in the file, the
                               string "Entry not found." will be returned in
                               the variable.  Likewise if the file specified
                               does NOT exist, the string "File not found."
                               will be returned in the variable.

MORE REPLY=Text...      (**) - Sets the reply string when using WAITFOR-M.
                               (See WAITFOR-M)

                               MORE REPLY=N^M

                               The above would set the reply to an "N" plus a
                               carriage return, (character 13.)

MORE STRING=Text...     (**) - Sets the more string when using WAITFOR-M.
                               (See WAITFOR-M)

                               MORE STRING=More?

                               The above would set the more string to "More?"

NOSOUND                      - Turns off sound.

                               Sound 500
                               Delay 100
                               NOSOUND

                               The above would produce a 500Hz tone for 100ms,
                               then turn off the sound.






ON CARRIER DROP GOTO label   - Goes to a line when carrier is lost.

                               ON CARRIER DROP GOTO DONE
                               HANGUP
                               VarI1=0
                               [LOOP]
                               Delay 100
                               Inc VarI1
                               IF VarI1>30
                               GOTO UNSUC
                               GOTO LOOP
                               [DONE]
                               Print "Modem disconnected
                               END.
                               [UNSUC]
                               Print "Modem failed to disconnect

                               The above code would attempt to hang up the
                               modem, and report if successful or not.

OUTPUT "text...              - Output text to screen and comport.

                               OUTPUT "Hello there!

                               The above would output "Hello there!" to the
                               screen and the current comport.

PRINT "text...               - Output text to the screen.

                               PRINT "Hello there!

                               The above would display "Hello there!" to the
                               screen.

READKEY varname[,seconds]    - Check the keyboard or the comport for a key
                               and optionally wait for a specific amount of
                               seconds instead of until a keystroke is
                               received.

                               READKEY VarS1,10

                               The above would wait for 10 seconds or until
                               a keystroke is received from the comport or
                               the keyboard.










READLINE var[/char]          - Reads a line of input with echo from comport
                               and/or the keyboard.  Option of a specified
                               character to echo instead for passwords.

                               Output "Enter your password (dots will echo):
                               READLINE VarS1/.

                               The above would send the prompt to both the
                               screen and comport, and allow input of a string
                               but echo only a dot, ("."), for each keystroke.

READLN var                   - Reads the keyboard with echo to screen.

                               READLN VarS1

                               The above would read a line of text from the
                               keyboard into VarS1, echoing keystrokes to the
                               screen only.

SEND "text...                - Send a string of text to the comport.

                               SEND "Hello there!

                               The above would send the string "Hello there!"
                               to the current comport only.

SOUND xxxxHz                 - Emits a sound from the speaker.

                               SOUND 500

                               The above would produce a 500Hz tone, until
                               turned off by the NOSOUND command.

SURPRESS                     - Surpresses messages from WAITFOR command.

                               SURPRESS

                               The above would surpress the messages from the
                               WAITFOR command, (ie: "Waiting for..." and 
                              "Found ...")

SWAP var1,var2               - Swaps var1 with var2.

                               VarS1="Hello
                               VarS2="friend
                               SWAP VarS1,VarS2

                               The above would result in VarS1 containing the
                               text "friend", and VarS2 containing the text
                               "Hello".




TYPE filename                - Display a file to the screen and comport.

                               TYPE menu1

                               The above would display the file "menu1" to the
                               screen and the current comport.

UNSURPRESS                   - Re-activates messages from WAITFOR command.

                               UNSURPRESS

                               (See SURPRESS)

UPLOAD protocol,Var          - Uploads a file, (stored in var), using either
                               Xmodem, Ymodem or Zmodem.

                               (See DOWNLOAD)

WAITFOR "text...             - Wait for a certain string to be received.

                               WAITFOR "name
                               Send !NAME

                               The above would wait for the string "name" and
                               send the text in the NAME field in the dialing
                               directory entry.  Also, while waiting, this
                               routine remains in interactive terminal mode.

WAITFORCI "text...           - Wait for a certain string to be received.
                               (Case insensitive.  See WAITFOR)

WAITFOR-M "text...           - Same as WAITFOR, but with check for MORE.  (**)
                               (See WAITFOR for usage.)

                               While waiting for a certain string of text, this
                               version of the WAITFOR command also check for
                               a certain prompt specified by the MORE STRING
                               command.  If that string is encountered, the
                               routine will then reply with the string specified
                               by the MORE REPLY command.  (See MORE STRING and
                               MORE REPLY.)

WAITUNTIL hr:mn:sc ?.m.      - Wait until a specific time.

                               Similar to WAITFOR, but waits for a specific
                               time instead.

                               WAITUNTIL 10:30:00 p.m.

                               The above would wait until 10:30 pm.




WRITE "text...               - Send string to com and screen w/o CR.
                               Same as OUTPUT, but does not send a carriage
                               return at the end of the string.

WRITECOM "text...            - Send string to COMport without CR.
                               Same as SEND, but does not send a carriage
                               return at the end of the string.

WRITECRT "text...            - Send string to CRT without CR.

                               Same as PRINT, but does not send a carriage
                               return at the end of the string.

  LABELS
  ~~~~~~
  [Labelname] alone on a line signifies a label.

  VARIABLES
  ~~~~~~~~~
  Variable     Type
  ========     ====
  VarS1       string
  VarS2       string
  VarS3       string
  ...
  VarS17      string     (!Name)
  VarS18      string     (!Password)

  VarI1       longinteger
  VarI2       longinteger
  VarI3       longinteger
  ...
  VarI17      longinteger
  VarI18      longinteger

  EMBEDDED TEXT CODES
  ~~~~~~~~~~~~~~~~~~~
  These codes may be embedded inside a string of text, and 
  make variable handling much easier to do.

  Code                                   Value
  ~~~~                                   ~~~~~
   ^A                                    ASCII $01
   ^B                                    ASCII $02
   ...
   ^Z                                    ASCII $1A
   ^[                                    ESC - $1B
   ^\                                    ASCII $1C
   ^]                                    ASCII $1D
   ^1 through ^0                         VarS(value)
   ^:                                    Current time
   ^/                                    Current date


  MACRO SCRIPT CODES
  ~~~~~~~~~~~~~~~~~~
  These codes may be inbedded into a macro to send the values contained 
  in any of the first nine VarS, (string), variables.

  Code                                 Variable
  ~~~~                                 ~~~~~~~~
  |1                                    VarS1
  |2                                    VarS2  
  |3                                    VarS3  
  |4                                    VarS4  
  |5                                    VarS5  
  |6                                    VarS6  
  |7                                    VarS7  
  |8                                    VarS8  
  |9                                    VarS9

  SAMPLE SCRIPTS
  ~~~~~~~~~~~~~~
  *This Script asks for two numbers
  *And tells you their relation.

  writecrt "Enter a number: 
  readln VarI1
  print "
  writecrt "Enter another number: 
  readln VarI2
  print "
  if VarI1=VarI2
  print "the numbers are equal
  if VarI1<VarI2
  print "the first is smaller
  if VarI1>VarI2
  print "the second is smaller

  ----------------------------

  *This script, when put in the
  *dialing directory of a board
  *running "MAJOR BBS", and the
  *Name and password set in the
  *Dialing directory, will auto-
  *matically log the user in.

  surpress
  waitfor "Member-ID or "NEW".
  send !name
  waitfor "your Password.
  send !password





  -------------------------------------------------------------------
  5.0 - The wrap-up.....             
  -------------------------------------------------------------------

  Please note; version 2.0; should be released before June 1992. It
  will include:

  - AVATAR graphics support
  - Full integration and script generation with PC-Mail Elite v2.0
  - Completely restructured and rewritten script language
  - New INBOUND macros, as well as OUTBOUND (what it currently has) will 
    allow software authors to make GEnius display ANSI screens directly
    from your hard drive for faster access, and MUCH MUCH MORE!
  - And much much more!

  IMPORTANT NOTE!  For all you avid mailwriting people, we are soon
  releasing PC-Mail Elite, our .QWK mail compatable mailreader.  It
  currently supports up to 1000 conferences per packet, 650 messages
  per conference, 250 lines per message.  Handles 600k+ packets no 
  problemo!  Features it's own editor, unzip's it's own packets,
  zips it's own reply packets, and comes with scripts for PCBoard to 
  retrieve your mail using GEnius!  Watch for it!

  -------------------------------------------------------------------

  If you should have any problems with GEnius, you can leave contact
  us at:
 
  Data    416-733-9012  (Toronto Twilight Communications)
  Voice   416-730-9380  (between 9am and 7pm EST)

  Toronto Twilight Communications is three nodes, node 1 - Dual Standard 
  v.32bis, nodes 2 and 3 - HST 14.4k v.42bis.

  We run PCBoard v14.5/E3, and have several fun doors online, Qmail 4,
  Rosemail, carrying NANet, ShadowNET, DevNet, City2City and LocalNet.
  We have 3.2 gigabytes of online storage, including 2 CD-ROM drives.

  We would love to hear what you think of GEnius, good or bad, and 
  any suggestions you might have.  We'd like to make this program
  something YOU use for a REASON.

  If you discover a bug, please let us know.
  
  Registering GEnius provides you with many benefits.  In addition to
  receiving the latest version on floppy (your choice 3.5 or 5.25 inch),
  and a typeset manual, you'll become a beta-tester, and be able to 
  download the newest version from our support BBS.  New GEnius versions 
  are online on our BBS daily, and available only to our beta testers!

  Registration is only $35.00 US, or $39.00 CDN.  Ontario residents
  add 8% PST, and 7% GST.


  Your donation will help ensure the continuation of this vital project. 

  Send it to (and make cheques payable to):

  Key Research and Development,
  17 Annapearl Crt., 
  Willowdale, Ontario 
  CANADA M2N 4H6 

  -------------------------------------------------------------------
  5.1 - Other fantastic Key Research and Development products     8-)
  -------------------------------------------------------------------

  CONFLIST v1.0 - Make beautiful conference lists from your PCBoard v14.5a
                  CNAMES file.  Includes support for mail networks, PCB
                  @X?? color codes, and much more.

  PCMail Elite v1.0 - A great little .QWK mail reader, from the people
                      who brought you GEnius.  Features are too many 
                      to list.  

  MiniDOS v1.2 - A fantastic miniature DOS shell.  Refers to files by
                 numbers, not names.  This shortens most commands to
                 a single letter, plus the number of the file to apply
                 it to.  Standard DOS syntax is greatly relaxed as well,
                 permitting use of / instead of \ in most cases.  File
                 tagging (batch deletion/copying/etc) fully supported,
                 internal support for shareware editors, list programs,
                 and archivers.  Uses only 12k of RAM when running your
                 applications.

  -------------------------------------------------------------------
  5.2 - Legal stuff 
  -------------------------------------------------------------------
  GEnius is a trademark of Key Research and Development.
  PC Mail Elite is a trademark of Key Research and Development.

  Telix is a registered trademark of Exis, Inc.
  Qmodem is a registered trademark of The Forbin Project.
  MobyTurbo is a registered trademark of Omen Technologies, Inc.
  DSZ is a registered trademark of Omen Technologies, Inc.
  PCBoard is a registered trademark of Clark Development Corporation
  QEMM and QRAM are registered trademarks of Quarterdeck
  MS-DOS,SMARTdrive,EMM386 are registered trademarks of Microsoft Corporation
  PC Tools and PC Cache are registered trademarks of Central Point Software
  -------------------------------------------------------------------
