home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / HILFEN / MODEM / ODYSSEY / ODY150SH.LZH / ODY150SH.DOC < prev    next >
Text File  |  1992-08-05  |  88KB  |  1,872 lines

  1.  
  2.  
  3.  
  4.                       ODYSSEY SHAREWARE USA VERSION
  5.                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6.                                Release 1.50
  7.                                ~~~~~~~~~~~~
  8.                              December 1, 1991
  9.                              ~~~~~~~~~~~~~~~~
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                        Program and this document are:
  18.               Copyright (C) 1991, Don Milne and Micropack Ltd.
  19.                 See README.TXT file for registration details.
  20.  
  21.     Published and exclusively distributed in the US and North America by:
  22.          TRIUS, Inc., P.O. BOX 249, N. Andover, MA  01845-0249
  23.  
  24.                  Published and distributed in the UK by:
  25.         Shareware Publishing, 3A Queen St, Seaton, Devon, EX12 2NY
  26.  
  27.  
  28. LIMITED LICENSE.
  29.  
  30. Notice that Odyssey Shareware Version, is Copyright (C) Don Milne and
  31. Micropack Ltd. You do NOT own the software, you have a limited right to
  32. use and evaluate the software for a period of 30 days. Use of Odyssey for
  33. longer than 30 days requires that you register your copy.
  34.  
  35. You MAY NOT:
  36.  
  37.    o Make changes to the software or documentation provided.
  38.    o Attempt to disassemble, or otherwise reverse engineer the software.
  39.    o Sell, Rent, Lease etc this package to others.
  40.    o Bundle it with other products which you sell.
  41.  
  42. You MAY:
  43.  
  44.    o Evaluate the software for 30 days.
  45.    o Make backup or other copies of the software as required in order
  46.      to fully evaluate it.
  47.    o Give (not sell!) copies to friends, or upload to bulletin boards.
  48.  
  49.  
  50. STATEMENT OF WARRANTY
  51.  
  52. This software is provided to you as is. Neither the publishers nor
  53. the authors make any warranty that ODYSSEY SHAREWARE VERSION is suitable
  54. for any purpose. Under no circumstances will either publisher or the
  55. authors be held responsible for any loss or damage suffered by any user
  56. arising out of the supply, use or operation of this software, whether or
  57. not such such loss or damage be direct, consequential or otherwise.
  58.  
  59. This software is protected by United Kingdom Copyright Law and by
  60. international treaty provision. You may use the software only under the
  61. terms described in the license statement.
  62.  
  63.  
  64.  
  65. NOTE: For space reasons, this manual  is  drastically  abbreviated.  You
  66. will of course receive a full, professionally  typeset  and  bound,  300
  67. page manual when you purchase the full Odyssey package.
  68.  
  69.  
  70. Introduction to Odyssey Shareware Version
  71. -----------------------------------------
  72.  
  73. Odyssey is supplied as two files:-
  74.  
  75.             ODYxxxx.LZH
  76.             INSTALL.EXE
  77.  
  78. The first file is  a  compressed  archive  containing  all  the  Odyssey
  79. programs, data files  and  example  scripts  (the  xxxx  marks  where  a
  80. version  number  will  appear).  The  second   file   is   the   Odyssey
  81. installation program.
  82.  
  83.  
  84. INSTALL is the program you will use to  unpack  all  the  Odyssey  files
  85. into an Odyssey directory on your hard disk or second  floppy.  However,
  86. whichever target you unpack Odyssey files onto, it must  have  at  least
  87. 500K bytes available disk space, which means that you cannot unpack  the
  88. Odyssey files onto a 360K disk. You can unpack  the  files  onto  a  3.5
  89. inch floppy, or a high density (AT format) 5.25  inch  floppy,  both  of
  90. which have adequate capacities. If you have problems installing  Odyssey
  91. then you should contact one of the publishers for support.
  92.  
  93. To install Odyssey you should follow these instructions:-
  94.  
  95.     1. Insert the Odyssey master disk in your floppy drive, either
  96.        drive A or drive B, then close the drive door.
  97.  
  98.        If you downloaded the software from a BBS and have it on your
  99.        hard disk then ignore this instruction, however if the files
  100.        came in archived form (.ZIP etc), then you do need to unpack
  101.        the archive using the correct unpacking tool.
  102.  
  103.     2. If the files are on a floppy then log to that drive by typing the
  104.        drive letter, a colon, and then press the <enter> key. For example,
  105.        if you put the Odyssey disk in drive A, then you should type:-
  106.  
  107.             A: <enter>
  108.  
  109.        If you have done  this  correctly  then  the  DOS  prompt  should
  110.        change to "A>" (or possibly "A:\>" on some systems).
  111.  
  112.        If you have the install files on your hard disk  then  change  to
  113.        the directory containing those files, e.g.:-
  114.  
  115.             cd \comms\download
  116.  
  117.  
  118.     3. Run  the  Install  program,  by  typing  "INSTALL"  (without  the
  119.        quotes), then press the <enter> key.
  120.  
  121.     4. When INSTALL runs, it asks you  which  directory  it  should  use
  122.        i.e., where it should install the Odyssey files. If  yours  is  a
  123.        typical system then the default offered "C:\ODYSSEY" is  probably
  124.        acceptable. You can however enter any directory  name  you  wish,
  125.        provided that you enter it in the above  format,  remembering  to
  126.        include both drive letter and directory  path.  If  you  wish  to
  127.        install the files in the root directory of a disk (e.g. on  drive
  128.        B) then you should enter "B:\". The target directory need not  be
  129.        the directory containing the install files.
  130.  
  131.    5. INSTALL will then proceed to unpack  all  of  the  Odyssey  files,
  132.       copying them into the directory you named. If the named  directory
  133.       did not already exist then INSTALL will create  it.  INSTALL  will
  134.       keep you informed of its progress as it unpacks the files.
  135.  
  136.  
  137.    6. Finally, all the Odyssey files will be unpacked, and INSTALL  will
  138.       proceed to ask you  some  basic  questions  about  your  hardware,
  139.       which you should answer. When this is done INSTALL will create  an
  140.       Odyssey configuration file for you, and you are then ready to  go.
  141.       The questions  you  are  asked  are  discussed  in  the  following
  142.       section.
  143.  
  144. Now that Odyssey has been installed, you should store your Odyssey  disk
  145. in a safe  place.  This  will  be  a  backup  in  case  your  files  are
  146. accidentally deleted.
  147.  
  148. When Odyssey is properly installed you should examine the directory  and
  149. find a file called READ.ME. This file will contain  any  information  on
  150. changes to the software since the manual was printed.
  151.  
  152. Install Questions and Answers.
  153.  
  154. Before answering any of the INSTALL questions,  you  should  first  make
  155. sure that your modem is attached to your PC, and is powered up.  If  you
  156. have an internal card modem then your modem  is  already  connected  and
  157. powered. Doing this allows INSTALL to determine for  itself  which  port
  158. your modem is connected to. However, this check may  not  work  properly
  159. if you have an improper cable with an external  modem  (see  below).  If
  160. you do not intend to use Odyssey with a modem then you can  ignore  this
  161. instruction.
  162.  
  163.     Use which Comm Port? (1,2) : 2
  164.  
  165. This is the first question asked by INSTALL. You will be  shown  a  list
  166. of numbers in brackets, each number indicating the presence  of  a  comm
  167. port. If INSTALL thinks it has detected a modem on one  of  these  ports
  168. then it will offer that port number  as  the  default  choice.  You  can
  169. press <enter> to accept the default, or  you  should  type  one  of  the
  170. valid comm port numbers shown - no other numbers will  be  accepted.  In
  171. the example prompt shown above, two comm  ports  have  been  recognised,
  172. and a modem has been detected on COM2. Odyssey itself can be  configured
  173. to use comm ports which have non-standard locations in  memory,  so  you
  174. can always change the selected port  once  you  get  through  the  basic
  175. installation procedure.
  176.  
  177. If you have a modem attached and powered, but INSTALL does  not  display
  178. a default port number, then it is likely that  DSR  is  not  being  held
  179. high, either because the cable is incorrect, or  because  the  modem  is
  180. configured wrongly (in the case of the DSR signal, this  is  not  fatal,
  181. but may indicate other configuration problems with your  modem),  or  it
  182. may also mean that your comm port is non-standard in some way,  possibly
  183. by being at a non standard address in memory.
  184.  
  185.  
  186.          Use what modem speed? [2400] :
  187.  
  188. The answer to this question  determines  Odyssey's  default  serial  I/O
  189. speed, i.e. the speed Odyssey programs the comm port for  each  time  it
  190. is run. The answer is not important if you intend  to  use  the  Odyssey
  191. dialling facilities to make connections, since  the  dialling  directory
  192. allows you to store an independent speed  for  each  dialling  directory
  193. entry. The default for this question is always 2400 bps, and you  should
  194. either press <enter> to accept this default,  or  type  in  a  different
  195. figure, normally the maximum speed which your modem will accept.
  196.  
  197. If you do not know what speed to use with your modem then the following
  198. table may help.
  199.  
  200.             Modem Type         Speed
  201.  
  202.             CCITT V21           300
  203.             CCITT V22          1200
  204.             CCITT V23          1200          * see note
  205.             CCITT V22bis       2400
  206.             CCITT V32          9600
  207.             Bell 103A           300
  208.             Bell 212A          1200
  209.  
  210.  
  211. You can find out which of the above standards your modem conforms to  by
  212. checking your modem's manual.  If  yours  is  one  of  the  increasingly
  213. prevalent multi-standard modems, then choose the  speed  which  conforms
  214. to the fastest standard. If your modem  uses  a  proprietary  signalling
  215. technique (for example,  US  Robotics  Courier  HST  modems),  then  you
  216. should again consult the modem manual for guidance.
  217.  
  218. **NOTE**: Odyssey only supports V23 modems which are  capable  of  speed
  219. buffering, since the PC does not allow software to set different  speeds
  220. for receive and transmit in any  reliable  way.  Speed  buffering  means
  221. that the modem will receive characters from the  PC  at  1200  bps,  but
  222. will transmit them  at  75  bps,  buffering  any  characters  it  cannot
  223. immediately transmit. Therefore, if  you  have  a  V23  modem  which  is
  224. capable of speed buffering then the correct speed to set is 1200 bps.
  225.  
  226. If your modem supports hardware data compression, i.e.  either  MNP5  or
  227. V42bis, then you should at least double  the  speed  selected  from  the
  228. above table. For example, if you have a V22bis modem with MNP5 then  you
  229. should select a speed of 4800 bps, otherwise you  will  see  no  benefit
  230. from the data compression. This rule ONLY applies to hardware MNP -  you
  231. do not double the port speed when you intend you use Odyssey's  software
  232. MNP.
  233.  
  234.  
  235.             Use Tone or Pulse dialling? [T/P] :
  236.  
  237. Enter T or P in answer to  this  question,  depending  on  whether  your
  238. exchange allows tone dialling or not. If you do not  know  then  P  (for
  239. Pulse dialling) usually works on public exchanges, even when  they  also
  240. support tones. If your phone is a push button type,  and  you  can  hear
  241. tones as you dial, and  you  get  connections  very  quickly,  then  you
  242. almost certainly have tone dialling. If you get no tones  as  you  dial,
  243. and the phone whirs and clicks for several  seconds  after  you  finish,
  244. then you probably still have pulse dialling. In  the  latter  case,  you
  245. should perhaps consider asking  your  local  telephone  company  whether
  246. tone dialling is available, since  the  much  faster  dial  and  connect
  247. sequence is much more pleasant for modem communications.
  248.  
  249.           Should Odyssey use colour? [Y/N] :
  250.  
  251. You will not see this question if you have a  mono  display  adapter  in
  252. your PC. Odyssey can detect for itself whether your display  adapter  is
  253. mono or colour, however it cannot tell if you  actually  have  a  colour
  254. monitor. Your answer to this question will settle the issue. Enter Y  if
  255. you can use colour, or N if not.
  256.  
  257. Now that these questions have been  answered,  Odyssey  installation  is
  258. complete, and you may now run the program by typing  "ODY"  at  the  DOS
  259. prompt.
  260.  
  261.  
  262. Running Odyssey for the first time.
  263. -----------------------------------
  264.  
  265. THE OPENING DISPLAY
  266.  
  267. You run Odyssey by typing "ODY"  at  the  DOS  prompt.  You  could  also
  268. supply a script name on the command  line,  and  Odyssey  would  execute
  269. that script once it starts up, however  when  running  Odyssey  for  the
  270. first time you are unlikely to have a script you wish to run.
  271.  
  272. When Odyssey runs, it briefly displays a logo on  the  screen  while  it
  273. initialises the serial port, after which the screen clears and  you  are
  274. ready to go! In the shareware version  there  is  an  additional  screen
  275. describing the license terms and telling you how to register.  You  must
  276. press a key in order to clear this screen. When you  have  done  so  the
  277. logo will disappear, leaving you looking at the  main  terminal  screen,
  278. which is mostly blank, except for  the  top  and  bottom  lines  of  the
  279. display.
  280.  
  281. The top line of the display is the menu  line,  showing  the  main  menu
  282. options. This menu can be disabled in the setup  section  if  you  wish,
  283. and this is sometimes necessary when the  remote  host  with  which  you
  284. communicate expects a 24 line terminal. To begin with however  you  will
  285. probably want to keep this line present as an aide-memoire.
  286.  
  287. Also present on the menu line is a clock showing the time of  day.  This
  288. clock uses DOS to get the time, so if DOS shows an incorrect  time  then
  289. so will Odyssey.
  290.  
  291.  
  292. The bottom line of the display is the status line, and this  shows  some
  293. basic information about the current state of software and  hardware,  as
  294. described in the following paragraphs.
  295.  
  296. The leftmost field shows the Odyssey version number, but when  a  script
  297. is running, the script name is shown here instead.
  298.  
  299. To the right of the version number is a field which should currently  be
  300. blank, but which will contain the symbol  "DCD"  when  you  establish  a
  301. connection to a remote machine (DCD = Data Carrier  Detected).  If  your
  302. status line already shows DCD, and you are not currently connected to  a
  303. remote  host,  then  either  your  cable  or  modem   configuration   is
  304. incorrect. Some modems come configured by default with their DCD  signal
  305. held permanently high, which  supposedly  makes  life  easier  for  poor
  306. comms software, but in reality causes as many  problems  as  it  solves,
  307. especially for Odyssey, which needs the DCD signal to tell  it  when  to
  308. start software MNP, when a  call  has  arrived  during  host  mode,  and
  309. several other things.  You  should  correct  this  problem  as  soon  as
  310. possible if you have it.
  311.  
  312. If you do have the DCD problem, then you  are  also  likely  to  have  a
  313. related problem, which is that many such modems also come configured  to
  314. ignore the DTR signal from the PC  (DTR  =  Data  Terminal  Ready).  The
  315. RS232 standard requires that if the terminal or PC drops DTR for half  a
  316. second, then the modem should treat this is an instruction  to  hang  up
  317. the line. If your modem is configured to ignore DTR then  you  will  not
  318. be able to hang up the line from the PC keyboard (using ALT-H).
  319.  
  320. Both  of  the  above  problems  are  solved  by  changing   your   modem
  321. configuration,  either  through  switch  settings,  or  using  a   modem
  322. command. You should consult your modem manual for  these  commands.  The
  323. exact wording will naturally depend  on  the  modem,  but  for  the  DCD
  324. problem you should look for a command which  instructs  the  modem  that
  325. "DCD follows true state of carrier", and for the DTR problem you  should
  326. look for the command which tells the modem  that  it  should  "interpret
  327. DTR according to CCITT/RS232/EIA standards".
  328.  
  329. To the right of the DCD field is another field  which  should  currently
  330. be blank, but if you suffer  the  DCD  fault  then  it  may  temporarily
  331. contain "MNP5", because this is  the  field  used  to  inform  you  when
  332. Odyssey is maintaining an error corrected link (MNP =  Microcom  Network
  333. Protocol). The digit at the end of this field tells you which  class  of
  334. MNP has been established, and will always be either 2, 4  or  5  in  the
  335. current version of Odyssey.
  336.  
  337. To the right of the MNP field is the baud rate field, and  displays  the
  338. current terminal speed and parity setting.  For  example  "2400N"  means
  339. 2400 bits per second, no  parity.  "1200E"  would  mean  1200  bits  per
  340. second, even parity.
  341.  
  342. To the right of the baud rate field is the "Log" field. Odyssey has  the
  343. ability to capture (log) any text which it  receives  to  a  text  file,
  344. stored on disk. When you run Odyssey for the first time this field  will
  345. contain "Log: No File", meaning that no log file  is  currently  active.
  346. When you open a log file (ALT-L) then the name you gave to the log  file
  347. will be shown here.
  348.  
  349.  
  350. The next field shows the terminal emulation currently selected.  Odyssey
  351. defaults to a terminal type "TTY", which basically means  a  dumb  ASCII
  352. terminal.  Other  possible  emulations  include  ANSI  or   VT100,   but
  353. whichever terminal is  currently  selected,  its  name  is  shown  here.
  354. Terminal emulations can be selected from the keyboard (via a  menu),  or
  355. by a script, or can be attached to a dialling directory entry.
  356.  
  357. To the right of the terminal emulation field is the line quality  field,
  358. active only when you are on-line, and then only  when  software  MNP  is
  359. being used. Since you are off-line at the moment this  field  should  be
  360. blank. When it is active the field  will  contain  the  symbol  "LQ:xxx"
  361. where xxx is a number which expresses the line quality as a  percentage.
  362. By "line quality" we mean how  "noisy"  the  line  is.  In  other  comms
  363. packages noisy lines manifest themselves as spurious characters  on  the
  364. terminal screen, however this does not happen in  Odyssey  when  MNP  is
  365. being used, so the line quality percentage is a valuable  guide  to  the
  366. actual conditions. A line quality of 100% means a perfectly clean  line,
  367. while a low percentage means a poor connection, which  may  show  itself
  368. as poor throughput and a jerky display. If your line quality drops  much
  369. below  90%  then  you  would  probably  be  best  advised  to  drop  the
  370. connection and redial, hoping for better luck next time.
  371.  
  372. The last field on the line is an on-line clock  (blank  when  you  first
  373. run Odyssey). When you make a connection to a remote machine this  clock
  374. will reset itself to zero,  and  thereafter  will  show  elapsed  hours,
  375. minutes and seconds since the connection was established.
  376.  
  377.  
  378. ONLINE HELP
  379.  
  380. If you press the F1 key  now,  you  will  be  presented  with  a  window
  381. containing help information about  the  keys  you  can  press  from  the
  382. terminal screen. Generally speaking, you can press  F1  anywhere  within
  383. Odyssey, and you will  be  presented  with  help  information  which  is
  384. specific to the Odyssey section which you happen to  be  using  at  that
  385. moment - this feature is often called "Context  Sensitive  Help".  These
  386. help windows are available  in  addition  to  single  line  help,  which
  387. appears on the bottom line of the display when you invoke  most  Odyssey
  388. features. Single line  help  normally  contains  only  the  briefest  of
  389. guides to the keys which can be pressed at that point  in  the  program.
  390. For an explanation of those key presses you would consult the F1 help.
  391.  
  392. When you press F1 and a help window pops up, you then  have  the  option
  393. of pressing the F1 key again,  which  will  display  an  index  of  help
  394. topics. This index allows you to navigate  your  way  through  the  help
  395. system, which is a useful way of exploring many Odyssey features, as  an
  396. alternative to using the manual.
  397.  
  398.  
  399.  
  400.  
  401. THE ESCAPE KEY
  402.  
  403. To leave the help system you  simply  press  the  <Esc>  key.  Generally
  404. speaking, the <Esc> key  is  always  used  in  Odyssey  to  abandon  the
  405. current activity, whether you are in a menu,  an  editor,  the  dialling
  406. directory, or in fact anywhere else.
  407.  
  408. The <Esc> key is also sometimes used as a  "cancel"  key,  depending  on
  409. the context. For example, if you are editing a string at  the  time  the
  410. <Esc> key is pressed, then Odyssey treats  this  as  an  instruction  to
  411. cancel the edit, and restores the original contents of the  string.  The
  412. <Esc> key also cancels currently executing scripts, file transfers,  and
  413. dial attempts. If more than one of these activities is in progress  when
  414. the you press <Esc>, then only  the  most  recently  begun  activity  is
  415. cancelled.
  416.  
  417.  
  418.  
  419. THE MENUS
  420.  
  421. Odyssey has pulldown menus which you can access by typing  the  ALT  key
  422. in combination with the first letter of the menu name.  For  example  to
  423. pull down the "Setup" menu you hold down the ALT key and press 'S'.
  424.  
  425. Once a menu is displayed you can then use the left and right arrow  keys
  426. to move from menu to menu.
  427.  
  428. To select one of the options from a menu you simply move  the  highlight
  429. bar to the option you want using the up and down arrow  keys,  and  then
  430. press <Enter>. If you do not understand the purpose  of  a  menu  option
  431. then simply move the highlight bar to that option and press  F1  for  an
  432. explanation.
  433.  
  434. An alternative way of selecting a menu  option  is  to  type  the  first
  435. letter of that menu option, if it is highlighted. If you  do  this  then
  436. it is not necessary to  press  the  <Enter>  key.  This  method  is  not
  437. available in all menus, since it was  not  always  possible  for  us  to
  438. invent a sensible name which resulted in a unique first letter for  each
  439. option. In those menus there are no highlighted first characters.
  440.  
  441.  
  442.  
  443. QUICK KEYS ("Hot" keys)
  444.  
  445. Beside some menu options are symbols such  as  "ALT-x",  where  x  is  a
  446. letter. This tells you that ALT-x is  an  alternative  keyboard  command
  447. which, if pressed, produces the  same  result  as  selecting  that  menu
  448. option. For example, if you display the File menu you will  notice  that
  449. beside the "S - Dos Shell" option is the symbol  "ALT-O".  So,  in  this
  450. example, ALT-O would drop you into the DOS  shell  (if  you  don't  know
  451. what that is, then don't worry, these  topics  are  discussed  later  in
  452. this manual when we come to describing the menus  in  detail).  Remember
  453. that ALT-O means that you hold down the ALT key while you press the  'O'
  454. key (incidentally, if you just tried it, you type EXIT  and  <Enter>  to
  455. get back to Odyssey).
  456.  
  457. Most spare ALT-letter combinations have been assigned to  major  Odyssey
  458. features, as alternatives to using the menus.  These  are  often  called
  459. "hot" keys, and they allow fluent users to dispense with the  menus  for
  460. most Odyssey tasks, except configuration (Setup). Generally speaking  we
  461. have tried to use the "obvious" ALT key for each function (for  example,
  462. ALT-E to edit),  but  naturally  one  or  two  of  these  mnemonics  are
  463. somewhat contrived, due to the shortage of available letters.
  464.  
  465. If you press F1 at the main terminal screen you will see a help window
  466. which describes all of the available hot keys, and what they do.
  467.  
  468.  
  469. THE FILE PICKER
  470.  
  471. If you press ALT-E now, you will enter the Odyssey message editor  (this
  472. is a Wordstar/Sidekick style editor which is fully described in a  later
  473. chapter). Once the edit window has popped up, press the F3  key  -  this
  474. is the command to select a new file for editing.  Instead  of  typing  a
  475. filename just type "*.*" and press <Enter>. Of course,  you  don't  type
  476. the quotes.
  477.  
  478. What you see is the file picker window. Generally,  throughout  Odyssey,
  479. if you are asked to enter  a  filename  you  also  have  the  option  of
  480. entering a wildcard file name, and the file picker will pop  up  showing
  481. you a list of files in the current directory which  match  the  wildcard
  482. (if you don't know about wildcards then  you  should  consult  your  DOS
  483. manual).
  484.  
  485. Once the File Picker window is displayed, you can move from filename  to
  486. filename using the arrow keys, or you can  press  <Enter>  to  select  a
  487. file, or press <Esc> to leave the file picker without selecting a  file.
  488. In the latter case you will be back at the filename prompt again.
  489.  
  490.  
  491.  
  492.  
  493. Odyssey Configuration
  494.  
  495. This section of  the  manual  provides  a  brief  guide  to  configuring
  496. Odyssey for the first  time,  so  that  it  works  correctly  with  your
  497. equipment. It is  not  a  complete  description  of  the  Odyssey  setup
  498. options, which are covered in  a  later  chapter  (shareware  users  can
  499. consult the F1 help).
  500.  
  501. For most users, no Odyssey configuration will  be  necessary,  the  most
  502. important items having been set up during  installation.  This  will  be
  503. true if you have what we have regarded as typical equipment, i.e.  a  PC
  504. with a hard  disk,  one  or  two  comm  ports,  and  a  2400  bps  Hayes
  505. compatible modem, either internal or external, and without any  hardware
  506. MNP. This chapter tells  you  what  you  should  do  if  your  equipment
  507. differs from this standard in some way. You should avoid making  changes
  508. to the default setup until you are absolutely sure  that  you  need  to,
  509. and that you know what all the settings do.
  510.  
  511. If you type ALT-S from the main  terminal  screen  you  will  enter  the
  512. Odyssey "Setup" menu. From there it is  possible  to  access  sub  menus
  513. which control  how  Odyssey  handles  the  serial  port,  display,  file
  514. transfer, and so forth.
  515.  
  516.  
  517.  
  518. IF YOU HAVE A NON-STANDARD SERIAL PORT.
  519.  
  520. If you want to use Odyssey with a multi-port serial I/O  card,  and  the
  521. port you want to use is not mapped as COM1 or COM2,  then  you  need  to
  522. enter the setup/comms submenu,  by  selecting  "Comms  Setup"  from  the
  523. Setup menu. From there you select "Advanced Setup", and  you  will  then
  524. be presented with a table of base addresses  and  interrupt  levels  for
  525. the eight comm ports which Odyssey can use (unused comm  ports  are  set
  526. to zero). From there you can move from field to field  using  the  arrow
  527. keys, and when you reach a field you want to change you simply  overtype
  528. its contents. The left column of numbers  are  the  base  addresses  for
  529. each of the serial chips, and the right column are the interrupt  levels
  530. (normally 4 or  3).  The  following  table  shows  the  default  Odyssey
  531. settings:-
  532.  
  533.           Port      Base Address      Int. Level
  534.  
  535.            1          03F8                4
  536.            2          02F8                3
  537.            3          03E8                4
  538.            4          02E8                3
  539.            5          0000                0
  540.            6          0000                0
  541.            7          0000                0
  542.            8          0000                0
  543.  
  544.  
  545. The first two rows define the two standard  comms  ports  recognised  by
  546. the industry for IBM PC compatibles. The third and  fourth  rows  define
  547. the addresses most often used for two extra  serial  ports,  however  it
  548. cannot be claimed that this "standard" is widely  recognised.  You  will
  549. need to check the manual  for  yourmulti-port  board  to  determine  the
  550. correct addresses for the serial ports.
  551.  
  552. Notice that you have the complete freedom  to  change  these  fields  as
  553. much as you like. You could for example swap the first and second  rows,
  554. and  Odyssey  would  then  treat  COM1  as  COM2  and  vice  versa  (not
  555. recommended). This merely highlights the fact that as far as Odyssey  is
  556. concerned, the port numbers mean precisely what you say they  mean,  and
  557. nothing more.
  558.  
  559. Hit <Esc> twice when you have finished with this table, and you will  be
  560. back at the Setup menu. Type 'S' to save your changes to disk.
  561.  
  562.  
  563.  
  564. CHANGING THE DEFAULT FLOW CONTROL METHOD.
  565.  
  566. You may  want  to  enable  hardware  flow  control.  There  are  several
  567. possible reasons why this might be needed, for example:-
  568.  
  569.    o If you have a speed buffered V23 modem (Odyssey cannot  use  a  V23
  570.      modem unless it is speed buffered).
  571.  
  572.    o If you have a multispeed modem, also with speed buffering, and  you
  573.      wish to use all modem supported connect speeds without varying  the
  574.      actual data rate between the modem and the PC.
  575.  
  576.    o If you have  a  modem  with  internal  error  correction  and  data
  577.      compression, such as an MNP5, MNP7 or V.42bis modem.
  578.  
  579. In each of the cases mentioned above, flow control is  required  because
  580. you will sometimes be sending characters to your modem  faster  than  it
  581. can transmit them, so the modem needs some way of telling  you  to  stop
  582. sending.
  583.  
  584. To change the flow control setting, select "Comms Setup" from the  setup
  585. menu, then type 'F'. The flow control option will change from "NONE"  to
  586. "XON/XOFF". Type 'F' again and the  option  will  change  to  "RTS/CTS".
  587. This is the hardware flow control setting.
  588.  
  589. Type <Esc> to leave the setup/comms submenu and 'S' to save your changes.
  590.  
  591. **NOTE**: You may also need to configure your  modem  for  RTS/CTS  flow
  592. control, although most modems come configured that way by  default.  You
  593. should check your modem manual if you are not sure.  If  you  find  that
  594. after configuring Odyssey for RTS/CTS flow control  you  can  no  longer
  595. communicate with your modem then it is likely that it is not  configured
  596. for hardware flow  control.  This  means  that  you  will  have  to  set
  597. Odyssey's flow control option back to "NONE" while you reconfigure  your
  598. modem, then perform the above steps again.
  599.  
  600.  
  601.  
  602. MODEM CONTROL
  603.  
  604. For  most  users,  this  part  of  the  configuration  process  is  only
  605. necessary if your modem is not Hayes compatible. Some users however  may
  606. want to check the "Init string" and "Dialler init string" options.  Most
  607. users should not have to change any of these settings.
  608.  
  609. If your modem is not controlled by "AT" commands, then it is  not  Hayes
  610. compatible. This is unfortunate, since it means that you  need  to  make
  611. quite complicated changes to Odyssey's modem control strings,  which  of
  612. necessity requires that you have a good grasp  of  the  requirements  of
  613. your modem. A careful read of your modem manual is called for.
  614.  
  615. Odyssey mainly uses its knowledge of modem  control  when  dialling.  It
  616. needs to know how to get the modem ready to dial, how  to  send  a  dial
  617. command, and how to recognise whether  the  dial  command  succeeded  or
  618. failed (i.e. whether or not a connection was established).
  619.  
  620. To change Odyssey's modem control strings  you  need  to  select  "Modem
  621. Control" from the setup menu. From top to bottom, the  options  in  this
  622. submenu are as follows (only those  required  to  get  you  started  are
  623. described):-
  624.  
  625.    Dial Prefix.
  626.        This is the string which Odyssey  sends  to  the  modem  when  it
  627.        wants to dial a number. The prefix would normally be followed  by
  628.        the number to dial, and a possible suffix. On Hayes  modems  this
  629.        prefix is "ATDT" or "ATDP" depending on whether you have tone  or
  630.        pulse dialling. You need to find the equivalent  string  in  your
  631.        modem manual.
  632.  
  633.    Dial Suffix.
  634.        This is  the  string  Odyssey  uses  to  complete  a  modem  dial
  635.        command. On Hayes  modems  this  is  simply  a  carriage  return,
  636.        symbolised by the character '|' in Odyssey.
  637.  
  638.    Connect String.
  639.        This is the string which the modem sends  back  to  the  terminal
  640.        when it has successfully established a  connection  to  a  remote
  641.        computer.  On  Hayes  modems  the  connect  string  is  a  simple
  642.        "CONNECT" (in actual fact, Hayes compatible  modems  faster  than
  643.        300 bps send back "CONNECT  xxxx",  where  xxxx  is  the  connect
  644.        speed, however you should NOT specify this as the connect  string
  645.        in Odyssey, otherwise Odyssey would not recognise other forms  of
  646.        the string, e.g. if you specified "CONNECT  2400",  then  Odyssey
  647.        would never be able to establish a 1200  bps  link).  Again,  you
  648.        need to find an equivalent connect string in your modem manual.
  649.  
  650.    Failure Strings.
  651.        Odyssey allows up to six of these, and they contain the  messages
  652.        the modem sends when a dial attempt fails,  perhaps  because  the
  653.        number was engaged, or because it was a wrong number.
  654.  
  655.  
  656.    Hangup Command.
  657.        This is the command Odyssey uses to hang  up  the  line  if  some
  658.        part of the dial attempt was not successful (the MNP  negotiation
  659.        for example). If you leave this string blank  then  Odyssey  will
  660.        hang up by dropping DTR for half  a  second,  which  should  work
  661.        with most modems, whether Hayes compatible or not (if  this  does
  662.        NOT work then you will have trouble with some  Odyssey  features,
  663.        such as the ALT-H command).
  664.  
  665.    Init String.
  666.        This is the only modem control string that is  used  outside  the
  667.        Odyssey dialler. If  your  modem  needs  to  be  reconfigured  on
  668.        startup for various options, or it does  not  reliably  save  its
  669.        own configuration in non-volatile RAM between sessions, then  you
  670.        need to enter the initialisation string here. Odyssey sends  this
  671.        string to the modem every time it starts up.
  672.  
  673.    Dialler Init String.
  674.        Odyssey  sends  this  string  to  the  modem  before  every  dial
  675.        attempt. If your modem  needs  some  command  prior  to  dialling
  676.        (perhaps to reset the modem back to a default  speed),  then  you
  677.        put that string here. If your  modem  does  not  require  such  a
  678.        command, then you MUST still enter  something  here.  The  actual
  679.        command does not matter, provided that it produces some  response
  680.        from the modem. Anything harmless will do. Odyssey does not  care
  681.        what the response is, it simply uses this as a test that a  modem
  682.        is actually connected and ready before it wastes time  trying  to
  683.        dial.
  684.  
  685.    Connect Timeout.
  686.        When Odyssey issues a dial command to  the  modem,  it  starts  a
  687.        timer, and waits for a reply. If  the  timer  expires  without  a
  688.        reply having been received then Odyssey  assumes  that  the  dial
  689.        command has failed, and sends a string to  the  modem  to  cancel
  690.        the attempt (the hangup command).  The  connect  timeout  is  the
  691.        time in  seconds  that  Odyssey  allows  for  the  response.  The
  692.        default is 45 seconds, which is enough  for  most  circumstances,
  693.        but longer may be necessary if you are  making  an  international
  694.        call, or you may want  to  make  it  shorter  if  you  have  tone
  695.        dialling, and find that Odyssey is waiting  an  excessively  long
  696.        time  to  report  failure  when  the  dial   attempt   has   been
  697.        unsuccessful.
  698.  
  699.    Number of Redials
  700.        The number of times Odyssey should attempt to dial any number.
  701.  
  702.    Pause between Dials
  703.        When redialing,  or stepping through a dial queue,  Odyssey  will
  704.        wait this number of seconds between dial attempts.
  705.  
  706.  
  707. DISPLAY SETUP
  708.  
  709. The only change that a new user might want to make to the display  setup
  710. is the "Snow Check" option. If you find that  you  get  interference  on
  711. the display when Odyssey displays a window, then you might want  to  set
  712. this option to "ON". Enabling snow checking will stop the  interference,
  713. but has a bad effect on the speed with  which  Odyssey  can  update  the
  714. display. You should therefore  not  enable  this  option  unless  it  is
  715. really required.
  716.  
  717.  
  718.  
  719. GENERAL SETUP
  720.  
  721. Of interest in this menu is the "Strip Parity Bit" option. If  you  want
  722. to call a host using a packet switching network service,  you  may  find
  723. that you need to set seven bits and even parity to use the network,  but
  724. that the host itself works best with eight bits no parity. You  can  get
  725. around the need to switch parity settings in  mid-call  by  setting  the
  726. "Strip Parity Bit" option to "YES" (which it is by default).  This  will
  727. ensure that you never see the IBM "semi-graphic"  characters  which  are
  728. caused by an incorrect parity setting, and allows you to  leave  Odyssey
  729. configured for 8 data bits and no parity.
  730.  
  731. **NOTE**: Loading ANSI terminal emulation resets the "Strip Parity  Bit"
  732. option to "NO".  This  is  because  ANSI  requires  all  eight  bits  to
  733. deliberately display  the  aforementioned  semi-graphic  characters.  If
  734. this happens to you then  you  should  probably  be  using  a  different
  735. emulation, perhaps VT100, or perhaps just stick with "TTY", the  default
  736. emulation.
  737.  
  738. You may also want to change the "Directory for downloads"  option  to  a
  739. directory of your choice. Note that if you name a directory  using  this
  740. menu option that the directory MUST  exist  already.  Odyssey  will  not
  741. create it for you.
  742.  
  743.  
  744. EDITOR SETUP
  745.  
  746. You may want to reduce the editor buffer sizes using this  sub-menu,  if
  747. you find that you are very short of memory (this often happens to  users
  748. who are especially fond of TSR utilities).
  749.  
  750.  
  751. SAVING YOUR CHANGES.
  752.  
  753. The above paragraphs described all of the  configuration  changes  which
  754. might be necessary to get a new user off the ground, and ready  to  dial
  755. a number. Most users will not have had to change anything. If  you  did,
  756. then now is the time to save those changes. To do  this  simply  pop  up
  757. the Setup menu and type 'S'.
  758.  
  759.  
  760.  
  761. MODEM CONFIGURATION
  762.  
  763. Your modem configuration may need to be changed before it  can  be  used
  764. successfully by Odyssey. This section lists some points to look out for.
  765.  
  766.     DCD Signals.
  767.         Your modem must not be configured such that  it  holds  the  DCD
  768.         signal permanently high. You can check this by  running  Odyssey
  769.         and looking at the status line. If the  status  line  shows  the
  770.         symbol "DCD", even when  you  are  not  connected  to  a  remote
  771.         computer, then your modem has DCD tied high, and this will  need
  772.         to be fixed by sending the appropriate command  to  your  modem,
  773.         or making a change to the modem  switches  (if  your  modem  has
  774.         switches). The modem manual will have  details.  If  you  cannot
  775.         fix this problem then you will not  be  able  to  use  Odyssey's
  776.         software MNP, or host mode.
  777.  
  778.     DTR Signal.
  779.         Your modem must not be configured to ignore the DTR signal  from
  780.         the PC. If you find that the ALT-H command in Odyssey  does  not
  781.         drop the line, then your modem is probably configured to  ignore
  782.         DTR. Check your modem manual for the command or  switch  setting
  783.         to fix this problem.
  784.  
  785.     Flow Control (Handshaking).
  786.         Some modems have a software flow control option. If  your  modem
  787.         is configured for XON/XOFF or  ENQ/ACK  flow  control  then  you
  788.         should  disable  this  option,  and  set  it  to  use   hardware
  789.         <$IRTS/CTS>(RTS/CTS) flow control instead.  If  you  do  not  do
  790.         this then Odyssey will be  unable  to  transmit  the  characters
  791.         used for flow control to a remote computer. This  could  prevent
  792.         software MNP or file transfer from working correctly.
  793.  
  794.  
  795.  
  796. Hardware (Modem) vs Software (Odyssey) Error Correction.
  797.  
  798. If your modem supports MNP or some other error correction protocol  then
  799. you will need to decide whether you wish to use Odyssey's  MNP,  or  the
  800. modem's own error correction. Generally, if the modem supports  a  lower
  801. MNP class than Odyssey (i.e. lower than class 5), then you will want  to
  802. disable the  modem's  own  error  correction.  This  is  needed  because
  803. Odyssey's MNP cannot work if the modem is intercepting the MNP  protocol
  804. information before Odyssey can see it.
  805.  
  806. If your modem supports MNP5 or better, then you will  want  to  use  the
  807. modem's own MNP instead of Odyssey's, since the modem can  use  the  MNP
  808. synchronous mode option which is beyond the capability  of  the  IBM  PC
  809. serial chip, and will therefore  provide  better  performance.  In  this
  810. case you should make sure that Odyssey is not  configured  for  software
  811. MNP in the Setup/Comms  menu,  or  in  any  of  the  dialling  directory
  812. entries.
  813.  
  814. **NOTE**: If your modem has hardware MNP5 (or better)  then  you  should
  815. remember to at least double the  speed  at  which  Odyssey  communicates
  816. with the modem. For example, if your modem is a V22bis (2400 bps)  modem
  817. with MNP5 then you should set the Odyssey baud  rate  to  4800  or  9600
  818. bps, otherwise the PC-modem link would be a bottleneck,  nullifying  the
  819. performance improvements of the MNP data compression. You should NOT  do
  820. this if you are using Odyssey's software MNP.
  821.  
  822.  
  823. Command Echo, and other Modem Settings.
  824.  
  825. The modem should be configured so  that  it  echoes  commands  from  the
  826. terminal, and so that it produces  verbal  result  codes.  For  a  Hayes
  827. compatible, the appropriate command is "AT E1 V1" <Enter>.
  828.  
  829. If your modem saves its settings in RAM between sessions, you  may  have
  830. to enter a  command  to  make  any  changes  permanent.  On  some  Hayes
  831. compatible modems the correct command is "AT &W" <Enter>.
  832.  
  833. If your modem does not  save  settings  in  non-volatile  RAM,  and  the
  834. settings you need are not the default settings, then  you  may  need  to
  835. place the above commands in the Modem Init String, which you can  define
  836. using the Setup/Modem submenu. For the above example, the  correct  Init
  837. String would be "ATE1V1~|"
  838.  
  839.  
  840.  
  841.  
  842. THE CABLE
  843.  
  844. This section naturally applies only to those users  who  need  a  cable,
  845. i.e. those using external modems.
  846.  
  847. The correct pinout of cables to be used with external  modems,  or  with
  848. direct PC-to-PC connections is described in Appendix A.  You  should  be
  849. extremely wary of using cables which have previously been used for  some
  850. other task, perhaps for connecting your PC to a  printer.  These  cables
  851. typically have all sorts of wiring patches made to them to stop  the  PC
  852. falling over  because  one  or  other  pin  was  not  held  high.  Modem
  853. communications requires many more signals from the RS232 interface  than
  854. does a serial printer, so you should make sure that the  cable  you  use
  855. correctly makes these signals available to the PC. You  are  advised  to
  856. get a cable made up according to the appropriate diagram in Appendix A.
  857.  
  858. For those with PC/XT or PS/2 type serial ports (i.e. with standard
  859. 25 pin connectors) this is extremely easy, since the cable you require
  860. is simply a flat ribbon cable with a snap on connector at each end.
  861. These cables are cheap and easy to make up in a matter of minutes,
  862. your dealer may be able to help you find someone who can make one.
  863.  
  864.  
  865.  
  866. CHECKING OUT THE INSTALLATION
  867.  
  868. Once you have completed installation and configuration, it  is  time  to
  869. check that basic communication with the modem is  working  properly.  To
  870. do this you send a simple command to the  modem.  If  your  modem  is  a
  871. Hayes compatible, then the following is an adequate test.
  872.  
  873. Make sure that your keyboard has CAPS  LOCK  set.  Then  type  "AT"  and
  874. press <Enter> (do not type the quotes). The modem  should  respond  with
  875. "OK". If you do not get this response then check:-
  876.  
  877.       o That the modem is connected and powered.
  878.       o That Odyssey is configured for the correct port number and
  879.         baud rate.
  880.  
  881. If you do get the "OK" response, then your system is ready for use.
  882.  
  883.  
  884.  
  885. MAKING A FIRST CALL
  886.  
  887. The first thing you need to do to make a call using  Odyssey  is  decide
  888. which system you want to dial. You need to know  what  telephone  number
  889. to use, what baud rate  and  parity  setting  the  system  expects,  and
  890. whether it supports MNP error  correction.  This  information  is  often
  891. published  along  with  the  telephone  number  in   popular   computing
  892. magazines. If there is no mention of MNP in the published data then  the
  893. system may not support error correction.
  894.  
  895. Once you have the information you  need,  press  ALT-N  to  display  the
  896. Odyssey dialling directory. Press the "Ins"  or  "Insert"  key  on  your
  897. keyboard to create a blank line at the first entry. Now press  the  "F2"
  898. key to edit that line.
  899.  
  900. Now from left  to  right,  fill  in  all  the  fields  in  the  dialling
  901. directory entry, pressing <Enter> after changing each field.  The  first
  902. field is the service name,  and  can  contain  anything  you  like.  The
  903. second field is the telephone  number,  which  you  should  enter  in  a
  904. similar format to the other entries. The next field is  the  baud  rate,
  905. followed by the parity setting (this is normally 'N' for no  parity,  or
  906. 'E' for even parity). If the system you  will  call  supports  MNP,  but
  907. your modem does not, then put 'Y' in the MNP column, otherwise put  'N'.
  908. Put 'N' in the "log" column. If the service you want  to  call  needs  a
  909. particular terminal type, then put the name  of  the  necessary  Odyssey
  910. terminal emulation in the "Emul" column. Press <Enter> on  each  of  the
  911. remaining fields on the line. When you press <Enter> on the last  field,
  912. Odyssey should return to highlighting the entire  directory  entry,  and
  913. is then ready to dial.
  914.  
  915. Don't worry if you make a  typing  error  while  you  are  changing  the
  916. fields. You can always go back to a previous field by typing  SHIFT-Tab,
  917. or you could simply re-edit the line when you have  finished  the  other
  918. changes.
  919.  
  920. Once you have entered all the fields correctly, just press  the  <Enter>
  921. key once more. Odyssey will  dial  the  number  you  just  entered,  and
  922. provided a modem answers, you will soon after be online  for  the  first
  923. time. Follow the instructions given by  the  system  when  you  wish  to
  924. disconnect.
  925.  
  926. The above should be more than enough information  to  get  you  started,
  927. but remember that you can always consult F1  help.  Remember  also  that
  928. when you purchase the full Odyssey you will receive  a  full,  300  page
  929. manual, which includes more detailed information on  every  menu  option
  930. and keyboard command in Odyssey.
  931.  
  932. ------------------------------------------------------------------------
  933.  
  934.  
  935. INTRODUCTION TO THE SCRIPT LANGUAGE
  936. -----------------------------------
  937.  
  938. If you like messing about with script languages in comms  packages  then
  939. you are in luck! Odyssey  has  one  of  the  most  powerful  programming
  940. languages  you  will  see  in  any  product  not  aimed  exclusively  at
  941. programmers.
  942.  
  943.  
  944. What is the Script Language for?
  945.  
  946. As a PC user, you are probably familiar  with  the  concept  of  "batch"
  947. files. These are text files, all with a .BAT extension so that DOS  will
  948. recognise them, and all containing a simple sort of  program  which  the
  949. DOS command interpreter can understand. DOS batch files  consist  mainly
  950. of ordinary DOS commands, although batch files can also use  programming
  951. features such as IF, GOTO and REM statements. The purpose of  the  batch
  952. file is to make it easier  for  you  to  perform  any  repetitive  task.
  953. Instead of entering individual commands to change  directories,  load  a
  954. mouse driver, run  a  word  processor,  and  change  back  to  the  root
  955. directory when you exit, you can replace all of the above with a  single
  956. command which executes a batch file containing those instructions.
  957.  
  958. A comms package needs a script language for  similar  reasons.  Many  of
  959. the things you do inside a comms package are repetitive tasks which  you
  960. perform (at least) daily. For example, you may log on to  your  friendly
  961. local BBS to check for any electronic mail which  has  arrived.  If  any
  962. has, then you might want to open a log file, capture the  new  messages,
  963. log off, and read the messages offline. If  you  use  the  same  service
  964. often enough, then it will almost certainly be  worthwhile  for  you  to
  965. prepare a script to automate this procedure.
  966.  
  967. Using a script has at least these four advantages:-
  968.  
  969.     o Your hands are free for other work while the comms package
  970.       gets on with its daily chore.
  971.     o Once a script is prepared it can  be  used  by  anyone,  including
  972.       those who have no knowledge of how to perform the task manually.
  973.     o Time wasting typing mistakes are eliminated.
  974.     o The script responds to prompts and types messages much faster
  975.       than a human possibly could. So online time is minimised, saving
  976.       money.
  977.  
  978. However, there is one fly in the ointment, which is that  a  script  can
  979. be badly affected by line noise. For example, if  a  script  is  waiting
  980. for a particular prompt,  and  that  prompt  is  corrupted  by  spurious
  981. characters, then depending on how carefully the script  was  written  it
  982. could end up waiting all day for a prompt that has already passed by.
  983.  
  984.  
  985. This is where error correction comes into its own. Whether you  use  MNP
  986. (or other error control standard) provided in your modem,  or  Odyssey's
  987. software MNP, the important feature in common is that it  is  no  longer
  988. possible for a prompt to be corrupted by line noise, and so a  breakdown
  989. such as the one  described  above  can  never  occur.  Of  course,  this
  990. requires that the host BBS supports MNP, but these  days  that  is  more
  991. and more likely to be the case.  MNP  cannot  prevent  a  carrier  loss,
  992. another potential cause of script failure, however that  eventuality  is
  993. usually much easier to cope  with  than  the  problem  of  noise.  Error
  994. correction has turned a script language from an arguable white  elephant
  995. into an essential feature of modern communications packages.
  996.  
  997. So, you are now sold on the merits of a  script  language,  however  the
  998. nature of the script language  which  should  be  provided  in  a  comms
  999. package is a matter for  debate.  Should  we,  the  implementor  of  the
  1000. package, go for power or simplicity in the script language? On  the  one
  1001. hand a limited script language is  usually  easier  for  a  beginner  to
  1002. learn, on the other hand our beginner will  not  be  that  forever,  and
  1003. sooner or later will smack into the  brick  wall,  which  is  a  limited
  1004. script language.
  1005.  
  1006. In Odyssey, we decided  to  go  for  power,  but  in  such  a  way  that
  1007. beginners can largely ignore the wide range of features  until  the  day
  1008. comes when they are needed. A learn mode is provided  which  is  capable
  1009. of creating scripts automatically,  requiring  negligible  understanding
  1010. of the underlying language. From  there  you  can  progress  to  simple,
  1011. manually created scripts using a basic set of four script commands,  and
  1012. finally, when you are feeling confident, you have the  option  to  learn
  1013. the complete script language.
  1014.  
  1015. For  programmers:  Odyssey  script  closely  resembles  a   conventional
  1016. programming  language,  especially  structured  languages  like  Pascal,
  1017. Modula-2 or C. If you have a familiarity with any of these, or with  any
  1018. other common language then you should find that you are able to  quickly
  1019. progress to the expert level.
  1020.  
  1021.  
  1022. A Note about Script Execution.
  1023.  
  1024. In some  packages,  running  a  script  takes  over  the  comms  package
  1025. completely, blocking out everything  the  user  does  at  the  keyboard,
  1026. except for the "cancel script"  key,  which  is  usually  an  <Esc>.  In
  1027. Odyssey, the script executes in "parallel" with the  user,  and  so  you
  1028. are free to type Odyssey commands while a  script  is  running,  and  to
  1029. "help a script along" if a mistake in the script  or  a  burst  of  line
  1030. noise causes it to get stuck at a prompt.  However,  this  is  not  true
  1031. "background" operation,  since  entering  any  major  Odyssey  subsystem
  1032. (e.g. the menus, or the editor), will cause the script  to  pause  until
  1033. you return to terminal mode.
  1034.  
  1035.  
  1036.  
  1037. Using Learn Mode to create scripts.
  1038.  
  1039. Learn mode provides the easiest way for a beginner to create an  Odyssey
  1040. script. Typically this facility will be used  to  create  logon  scripts
  1041. for a variety of host BBS services. All you need to know  when  creating
  1042. such a script using learn  mode  is  how  to  log  on  to  that  service
  1043. manually. You teach Odyssey how to do it once,  and  thereafter  Odyssey
  1044. will be able to do the job for you.
  1045.  
  1046. The first step in using Learn mode  to  create  a  logon  script  is  to
  1047. create a dialling directory entry for the new service - see the  chapter
  1048. on "Using Odyssey" for a description  of  how  to  add  entries  to  the
  1049. dialling directory.
  1050.  
  1051. When you create the dialling directory entry, you must put something  in
  1052. the "key" column. This key  can  be  anything  you  like,  up  to  seven
  1053. characters long, but it should be unique to that entry (i.e.  until  you
  1054. are more experienced, you should make sure that the new key is  not  the
  1055. same as that of any other entry). The purpose of  the  key  is  twofold:
  1056. first it allows a script created by learn mode to identify  the  correct
  1057. directory entry to use, secondly it allows a script to  be  attached  to
  1058. that entry so that the script is automatically started when  you  select
  1059. the entry for dialling. A script is "attached" to a  dialling  directory
  1060. entry when the script has the same name as the directory entry key.
  1061.  
  1062. For the sake of the following example, let us suppose that you  want  to
  1063. create a script for dialling a BBS  host  called  "MICROP".  First,  you
  1064. create the dialling directory entry,  making  sure  that  you  have  the
  1065. right settings for baud rate, parity, MNP  and  so  forth.  In  the  key
  1066. field of the new  line  enter  the  word  "MICROP"  (without  the  quote
  1067. marks). Having completed the directory entry,  including  the  key,  you
  1068. then press <Esc> to return to the Odyssey terminal screen. Remember  not
  1069. to press <Esc> before you have completed all the  fields  in  an  entry,
  1070. otherwise the <Esc>  key  will  be  interpreted  as  an  instruction  to
  1071. abandon the changes you have made. The entry  has  been  completed  when
  1072. the coloured bar returns to highlighting the entire line.
  1073.  
  1074. From the terminal mode, press ALT-G to display the  General  menu,  then
  1075. type 'L' to select the "Learn a Script" option.  Odyssey  will  ask  you
  1076. for a name to give to the learned script, in  this  example  you  should
  1077. give the name "MICROP" (without the quotes). The name given  must  match
  1078. the directory entry key you entered earlier, so if you used a  different
  1079. key name, you should also  use  that  alternative  at  the  script  name
  1080. prompt. When you have typed in the script name you should press  <Enter>
  1081. to start learn mode.
  1082.  
  1083. Learn mode is now active. From now on, everything you do will  be  noted
  1084. by Odyssey, and duplicated in the new script, so you should avoid  doing
  1085. anything which is unrelated to the task of logging on to the service.
  1086.  
  1087. Press ALT-N to  bring  up  the  dialling  directory  again,  moving  the
  1088. highlight bar to the entry you created earlier  (this  should  still  be
  1089. highlighted if you exactly followed the instructions given above),  then
  1090. press <Enter> to dial the number, and wait until you get a connection.
  1091.  
  1092.  
  1093. On most host systems, the next thing you  will  see  is  the  BBS  logo,
  1094. followed by a prompt for your user name (the  name  the  BBS  knows  you
  1095. by). You should enter that now. The BBS  will  then  prompt  you  for  a
  1096. password, and again you should respond. You are now  logged  on  to  the
  1097. BBS.
  1098.  
  1099. Odyssey now knows everything it needs to know in  order  to  log  on  to
  1100. that service, so assuming that is as far as you want  to  take  it,  you
  1101. should now leave Learn mode by  pressing  <Esc>.  Odyssey  will  convert
  1102. what it has learned into a script file and write  it  to  disk.  If  you
  1103. have been following this example then the file created  will  be  called
  1104. "MICROP.SCR" (all Odyssey scripts have the .SCR extension, in  the  same
  1105. way that DOS batch files always have a .BAT extension).
  1106.  
  1107. Learn mode is now terminated. Odyssey is no longer remembering what  you
  1108. do. You can if you wish stay on the BBS to  continue  this  session,  or
  1109. you may log off in order to test the newly created script.
  1110.  
  1111. The next time you want to call that service simply  run  Odyssey,  press
  1112. ALT-N to call up the dialling directory, select the correct entry  using
  1113. the  highlight  bar,  and  press   <Enter>   to   dial.   Odyssey   will
  1114. automatically run the learned script,  which  will  not  only  dial  the
  1115. number for you, but also enter your  user  name  and  password  details,
  1116. just as you did the first time, leaving you logged on  to  the  BBS  and
  1117. ready to read messages or transfer files.
  1118.  
  1119. There are other ways of running scripts in Odyssey, a subject  which  is
  1120. discussed later in this chapter (see the section "How to Run a Script").
  1121.  
  1122. WARNING: If, during the learn procedure, something goes wrong  with  the
  1123. login process, for example if you get an engaged tone, then  you  should
  1124. abort learn mode by pressing the <Esc> key, then later you should  start
  1125. again from scratch. Whatever you do, you should NOT  attempt  to  redial
  1126. the number without first stopping and restarting learn  mode  -  if  you
  1127. ignore this warning you will have dialled the number twice, and so  will
  1128. the Odyssey script when you run it!
  1129.  
  1130.  
  1131.  
  1132. Limitations of Learn Mode
  1133.  
  1134. For most systems, Odyssey learn mode will do a  perfectly  good  job  of
  1135. automatically creating a login script for  you.  However,  some  systems
  1136. may cause it problems if the timing of responses is very critical.
  1137.  
  1138. Strict timing problems occur when there is a minimum  delay  which  must
  1139. occur between a prompt and a corresponding reply. Odyssey  is  not  able
  1140. to differentiate between the  delay  of  a  slow  typist,  and  a  delay
  1141. introduced deliberately by the typist because he or she knows  that  the
  1142. system will not react correctly if the response comes too  quickly.  The
  1143. British Telecom PSS service is an example of a system in which you  must
  1144. wait a second or two after a connection is established  before  you  can
  1145. start the <CR>A2<CR> login process. If the delay inserted by Odyssey  is
  1146. too short then you may have to increase it, by editing the  script.  For
  1147. that you can use the built in Odyssey editor, or else use any  preferred
  1148. external editor, provided that it is capable of producing a clean  ASCII
  1149. text file. Look for the "Delay(xx)" commands  inserted  by  learn  mode,
  1150. and increase the number shown between the brackets (which is a delay  in
  1151. seconds). Remember to save your changes - if you use the Odyssey  editor
  1152. then the save key is F2.
  1153.  
  1154.  
  1155. Creating your first script by hand.
  1156.  
  1157. For the slightly more adventurous, this section describes how to  create
  1158. scripts manually, using a minimal understanding of the script  language,
  1159. but providing a little more flexibility  than  is  possible  with  learn
  1160. mode. Reading this chapter will also  allow  you  to  better  understand
  1161. scripts created by learn mode, should you need to modify one.
  1162.  
  1163. A script is created with a text editor;  probably  the  most  convenient
  1164. editor would be the  one  built  into  Odyssey  (accessed  with  ALT-E),
  1165. however you are free to use any external text editor  provided  that  it
  1166. produces clean ASCII text files.  Use  of  the  Odyssey  editor  is  not
  1167. described here; if you are not familiar with it then you should  perhaps
  1168. read the chapter on the editor first, before  delving  into  the  script
  1169. language. A script file must have an extension of .SCR  before  it  will
  1170. be recognised by Odyssey, and furthermore it must have the same name  as
  1171. a  dialling  directory  entry  key  if  the  script  is  to  be  invoked
  1172. automatically when  that  directory  entry  is  selected.  You  are  not
  1173. required to attach scripts in  this  way,  since  scripts  can  also  be
  1174. invoked from the Call menu, or from the DOS command  line  when  running
  1175. Odyssey. Remember  to  put  the  script  file  in  the  "Odyssey  Files"
  1176. directory, so that Odyssey can find it. This directory is named  in  the
  1177. Setup/General menu, or  if  not  named  then  the  current  DOS  working
  1178. directory is assumed.
  1179.  
  1180.  
  1181. The Odyssey script language currently provides more than  100  built  in
  1182. commands, yet it is quite  possible  to  write  useful  Odyssey  scripts
  1183. using only four of them. However, first you must learn rule number  one,
  1184. which is that all Odyssey  scripts  start  from  the  following  minimum
  1185. outline:-
  1186.  
  1187.       SCRIPT myscript;
  1188.       BEGIN
  1189.  
  1190.       END;
  1191.  
  1192. This "skeleton" is  what  Odyssey  expects  from  any  script,  and  its
  1193. purpose is to allow Odyssey to easily  confirm  that  this  file  it  is
  1194. trying to use is indeed a script, and  helps  it  to  more  easily  find
  1195. where a sequence of commands begin and end.  The  "myscript"  name  need
  1196. not be literally as shown, in fact it can be almost  anything  you  like
  1197. (its purpose is to give the script  a  meaningful  name  which  will  be
  1198. understood by a person reading a printed listing). However,  you  should
  1199. perhaps leave it as shown until  you  become  familiar  with  the  rules
  1200. surrounding the naming of things in the Odyssey  script  language.  Note
  1201. the semicolons after the "myscript" and after the  "END"  are  required.
  1202. The words "SCRIPT", "BEGIN" and  "END"  are  shown  in  upper  case  for
  1203. clarity only. You can enter them in lower case if you prefer.
  1204.  
  1205. Once you have created the basic script skeleton as shown above, you  may
  1206. then enter commands between the BEGIN and  END  lines.  The  basic  four
  1207. commands you may use  are  DIAL,  WAITFOR,  TRANSMIT  and  DELAY.  These
  1208. commands are described below.
  1209.  
  1210. DIAL()
  1211.  
  1212. The Dial command is used to dial a number, taking the necessary  details
  1213. from a dialling directory entry. In order to use the  dial  command  you
  1214. must pass it the name of a directory entry key, and that key must  match
  1215. an existing directory entry, otherwise the  dial  command  will  not  be
  1216. able to proceed. Here is an example of the dial command:-
  1217.  
  1218.         Dial("MICROP");
  1219.  
  1220. Note that the key name is surrounded both by  double  quotes  and  round
  1221. brackets, and that the command is followed  by  a  semicolon.  This  may
  1222. seem like excessive punctuation, but once you  get  around  to  learning
  1223. the complete language you will find out why they are required.  For  the
  1224. moment simply follow the rules.
  1225.  
  1226. In the above example, the script would  look  up  a  dialling  directory
  1227. entry with a key of "MICROP", and would dial  that  number.  The  script
  1228. will resume from  the  statement  following  the  Dial  command  once  a
  1229. connection has been established.
  1230.  
  1231.  
  1232.  
  1233. WAITFOR()
  1234.  
  1235. WaitFor is a basic command which you will use a lot, however expert  you
  1236. become. This command  tells  the  script  to  wait  until  a  particular
  1237. sequence of characters (called a "string") arrives from the  host.  Here
  1238. is an example of the waitfor command:-
  1239.  
  1240.         WaitFor("User name?");
  1241.  
  1242. Note again the use of double quotes, round brackets and the  terminating
  1243. semicolon. In this example the script will wait until the  string  "User
  1244. name?" arrives from the host.
  1245.  
  1246. You can also, optionally, add a timeout to  the  WaitFor  command.  This
  1247. would mean that instead of the WaitFor command waiting forever  for  the
  1248. string to arrive, it can terminate either when the  string  arrives,  or
  1249. when the timeout period has elapsed. This is an example of  the  WaitFor
  1250. command making use of a timeout:-
  1251.  
  1252.         WaitFor("User name?",10);
  1253.  
  1254. In the above example the WaitFor will terminate when  the  string  "User
  1255. name?" arrives from the modem, or when a ten second period has passed.
  1256.  
  1257.  
  1258. TRANSMIT()
  1259.  
  1260. The Transmit() command tells the script to transmit  a  string  via  the
  1261. serial port. Here is an example of the transmit command:-
  1262.  
  1263.         Transmit("John Smith|");
  1264.  
  1265. In this example the script would  transmit  the  characters  inside  the
  1266. double quotes to the modem, and hence to the  host  BBS.  Note  the  '|'
  1267. character which forms part of this string. This is treated as a  special
  1268. character by the  transmit  command,  in  that  it  is  not  transmitted
  1269. literally, but instead tells the transmit command to send the  code  for
  1270. newline (usually  the  carriage  return  character).  This  is  required
  1271. because if you were typing this manually, in most cases the  host  would
  1272. require you to press <Enter> to complete the answer to the prompt.
  1273.  
  1274.  
  1275. DELAY()
  1276.  
  1277. This is the last of  the  four  basic  commands.  The  purpose  of  this
  1278. command is to insert a delay into the script, usually to  avoid  sending
  1279. messages to the host BBS before  it  is  ready  to  receive  them.  This
  1280. command is given a number which is the delay you  require,  in  seconds.
  1281. Here is an example of the delay command:-
  1282.  
  1283.         Delay(2);
  1284.  
  1285. In the above example, the script would pause for two seconds, and  would
  1286. then continue with the next command.
  1287.  
  1288.  
  1289.  
  1290. PUTTING IT ALL TOGETHER.
  1291.  
  1292. Now that you know what the basic commands are, we  can  proceed  to  put
  1293. them together in the form of a script to log on to an imaginary BBS.
  1294.  
  1295. In the following example the script will dial a BBS which has  an  entry
  1296. in your dialling directory with a key of "MICROP". The script will  then
  1297. wait for the username prompt from the BBS  and  enter  a  name  of  John
  1298. Smith, then it will wait for the password prompt,  and  answer  it  with
  1299. "smithy". In both cases it will follow the characters in the reply  with
  1300. a carriage return code.
  1301.  
  1302.         SCRIPT myscript;
  1303.         BEGIN
  1304.              Dial("MICROP");
  1305.              WaitFor("User name? ");
  1306.              Transmit("John Smith|");
  1307.              WaitFor("Password? ");
  1308.              Transmit("smithy|");
  1309.         END;
  1310.  
  1311. Note the indentation of the lines containing the commands. This  is  not
  1312. a requirement of the script language, but in many  people's  opinion  it
  1313. does make the script look nicer, as well as making it  a  little  easier
  1314. to follow. This is a good habit to get  into  early,  since  readability
  1315. becomes very important once you begin to write larger scripts using  the
  1316. advanced script features.
  1317.  
  1318. These four basic commands should enable you to write a login script  for
  1319. any service. However, such a script does  not  deal  with  errors  which
  1320. might occur (such as an engaged tone). If that happens then  you  should
  1321. press the <Esc> key to abort  the  script.  The  next  section  contains
  1322. information on how to have the script recognise errors  itself,  however
  1323. you needn't read that now unless you are feeling confident!
  1324.  
  1325.  
  1326. DEALING WITH ERRORS
  1327.  
  1328. Although the example script shown above  will  work  perfectly  in  most
  1329. cases, it does have a problem, in that it makes no  attempt  at  all  to
  1330. cater for those  occasions  when  things  do  NOT  work  perfectly.  For
  1331. example, suppose the number dialled is engaged - the script  shown  does
  1332. not check whether the dial attempt succeeded, so succeed  or  fail,  the
  1333. script will go on to execute the next statement. The next  statement  is
  1334. a WaitFor, and that is never  going  to  succeed  if  the  dial  attempt
  1335. failed, because Odyssey is at that time not even connected to the  host.
  1336. We therefore need to put some error protection into  the  script,  which
  1337. we can do using an IF statement.
  1338.  
  1339. An IF statement can be used to test whether  a  command  succeeded.  You
  1340. cannot test the success of all commands, because not  all  of  them  can
  1341. fail. However, among the commands you can test are DIAL and WAITFOR.
  1342.  
  1343.  
  1344. Here is the example script again, but this time we test the  success  of
  1345. the DIAL command using an IF statement.  If  the  dial  command  is  not
  1346. successful then the script stops:-
  1347.  
  1348.         SCRIPT myscript;
  1349.         BEGIN
  1350.              Write("Calling the MICROP BBS Service.|");
  1351.              IF Dial("MICROP") THEN
  1352.                  WaitFor("User name? ");
  1353.                  Transmit("John Smith|");
  1354.                  WaitFor("Password? ");
  1355.                  Transmit("smithy|");
  1356.              END;
  1357.         END;
  1358.  
  1359. Note the extra END which has appeared. The IF statement  always  has  an
  1360. END associated with it in the same way that a BEGIN always has  an  END,
  1361. and it serves  the  same  purpose,  i.e.  to  "bracket"  a  sequence  of
  1362. commands. In the above example the  sequence  of  commands  between  the
  1363. "IF" line and the first "END" will only be executed if the dial  attempt
  1364. succeeds. You could if you wished put other  commands  before  the  "IF"
  1365. line, or following  the  first  "END"  line,  and  these  would  not  be
  1366. dependent on the "IF" test. In  other  words  those  commands  would  be
  1367. executed whether or not the dial  attempt  succeeds.  This  is  how  you
  1368. control the execution of commands in the Odyssey  script  language.  The
  1369. "Write" command is an example of such a command  which  will  always  be
  1370. executed when you run this  script  (the  Write  command  has  not  been
  1371. previously discussed, it simply displays a message on  the  screen,  but
  1372. does not transmit that message to the modem).
  1373.  
  1374. Finally, we would like to cope with the situation that occurs  when  you
  1375. get a connection  with  a  modem,  but  the  remote  computer  does  not
  1376. respond. To handle this, you can again use an IF  statement,  this  time
  1377. using it to test the success of a WaitFor command.  Since  we  now  want
  1378. the WaitFor to give up  after  a  certain  period,  we  will  specify  a
  1379. timeout this time - ten seconds in the following example:-
  1380.  
  1381.         SCRIPT myscript;
  1382.         BEGIN
  1383.              Write("Calling the MICROP BBS Service.|");
  1384.              IF Dial("MICROP") THEN
  1385.                  IF WaitFor("User name? ",10) THEN
  1386.                      Transmit("John Smith|");
  1387.                      WaitFor("Password? ");
  1388.                      Transmit("smithy|");
  1389.                  END;
  1390.              END;
  1391.         END;
  1392.  
  1393.  
  1394.  
  1395.  
  1396. SEMICOLONS
  1397.  
  1398. We  should  perhaps  return  to  the  question  of  the   placement   of
  1399. semicolons. In the first script example there was a semicolon  following
  1400. the first use of WaitFor, yet there was no  semicolon  after  the  first
  1401. WaitFor in the most recent example shown. Also, there  is  no  semicolon
  1402. on either of the two "IF" lines. If you study the above script  you  may
  1403. be able to spot  the  common  factor  for  yourself,  which  is  that  a
  1404. semicolon tells the script processor where a  complete  statement  ends.
  1405. Let us take the last script from top to bottom - "SCRIPT myscript" is  a
  1406. complete statement, so it is followed by a semicolon. "BEGIN" is  not  a
  1407. complete statement, since it must have a matching  end,  so  it  is  NOT
  1408. followed by a semicolon. The "Write" line is a  complete  statement,  so
  1409. there is a semicolon. The first "IF" line is NOT a  complete  statement,
  1410. since like the "BEGIN", it must have a matching "END" - and so  on  down
  1411. the list. In the case of the first  "WaitFor",  it  is  not  a  complete
  1412. statement, since it forms part  of  an  "IF  condition  THEN"  sequence,
  1413. whereas an unconditional "WaitFor" is a complete statement,  and  so  is
  1414. followed by a semicolon.
  1415.  
  1416. The semicolon in the Odyssey script language serves  more  or  less  the
  1417. same purpose as the full stop which terminates  a  written  sentence  in
  1418. the English language. The  only  real  difference  is  that  the  script
  1419. language grammar allows  any  "sentence"  to  be  constructed  from  any
  1420. number of smaller sub-sentences, each of which is also  terminated  with
  1421. a semicolon.
  1422.  
  1423. Take all the time you need to understand this section of the manual.  If
  1424. all was not clear the first time you read it then you are encouraged  to
  1425. read it again. When you have read and understood  the  above  discussion
  1426. you will know everything you need to know in order  to  manually  create
  1427. your own login scripts for any BBS, and have them cope with  almost  any
  1428. eventuality.
  1429.  
  1430.  
  1431. HOW TO RUN A SCRIPT.
  1432.  
  1433. From the Call menu.
  1434.  
  1435. You can run a script from  the  Call  menu.  Press  ALT-C  from  Odyssey
  1436. terminal mode and the Call menu will be displayed.  This  menu  contains
  1437. the names of each of the scripts which Odyssey  finds  in  its  "Odyssey
  1438. files" directory (named in Setup/General),  or  if  not  named,  in  the
  1439. current DOS working directory. If there are more scripts available  than
  1440. can be displayed in a single menu (eight), then other script  names  can
  1441. be seen by paging up and down the list using the PgUp and PgDn keys.  To
  1442. execute any script from the Call  menu  simply  type  the  number  shown
  1443. alongside the menu option.
  1444.  
  1445. From the Files menu.
  1446.  
  1447. A script can also be executed from the  Files  menu.  Press  ALT-F  from
  1448. Odyssey terminal mode to display the  menu,  then  select  the  "Execute
  1449. Script" option. This menu option allows you to access scripts which  are
  1450. not stored in the "Odyssey files" directory, you must  therefore  supply
  1451. a complete path, for example "c:\otherdir\myscript".
  1452.  
  1453. From the Dialling Directory.
  1454.  
  1455. When you press <Enter> on a dialling directory entry in order to dial  a
  1456. BBS, Odyssey will check for an "attached" script, and will load and  run
  1457. one automatically, if it finds that an attached script  exists.  Odyssey
  1458. considers a script to be attached to a  dialling  directory  entry  when
  1459. the name of the script matches the key field of that dialling  directory
  1460. entry. For example, if the key for the chosen entry is "MICROP",  and  a
  1461. script file exists called "MICROP.SCR", then Odyssey will load  and  run
  1462. "MICROP.SCR" instead of dialling the  number.  What  happens  from  that
  1463. moment is entirely up to the script, but in most cases it will  at  some
  1464. point make a call to  the  script  "DIAL"  command,  thus  allowing  the
  1465. dialling procedure to continue.
  1466.  
  1467.  
  1468. From another Script.
  1469.  
  1470. A script has the facility to chain to any other script. It does this  by
  1471. making use of the script "CHAIN" command.  The  script  which  used  the
  1472. chain command is halted, and the chained script (if found) is  executed.
  1473. Odyssey has no facility to "call"  another  script,  i.e.  with  control
  1474. returning to the original script, however one possible approach  if  you
  1475. need to do that would be to explicitly chain back to the  parent  script
  1476. from the child.
  1477.  
  1478. From the DOS Command Line or Batch File.
  1479.  
  1480. You can execute Odyssey scripts directly from the DOS command  line,  or
  1481. from a DOS batch file, by supplying the name of the script as a  command
  1482. line argument to Odyssey. For example the DOS command:-
  1483.  
  1484.          C:\ODYSSEY> ody microp
  1485.  
  1486. would tell Odyssey to execute the script "MICROP.SCR" immediately  after
  1487. loading. Odyssey does not display  its  normal  welcome  banner  when  a
  1488. script is named on the command line.
  1489.  
  1490.  
  1491. Stopping a Script
  1492.  
  1493. Pressing the <Esc> key  while  a  script  is  running  will  cancel  the
  1494. script, unless the script has used a  special  CanEscape(FALSE)  command
  1495. to disable this feature. If  you  want  to  type  and  transmit  an  ESC
  1496. character while a script is running, without aborting the  script,  then
  1497. a keyboard command has been provided for that purpose - try ALT-F2.
  1498.  
  1499.  
  1500.  
  1501. Script Commands
  1502. ---------------
  1503.  
  1504. The above should be enough to get you started with simple  scripts.  The
  1505. manual for the full Odyssey package does  of  course  cover  the  script
  1506. language syntax in much  greater  detail,  as  well  as  providing  full
  1507. descriptions of each of the built in  commands, with an example for each
  1508. one. This summarised guide however will simply list the  commands  which
  1509. are available:-
  1510.  
  1511.  
  1512. Modem and Serial I/O Commands.
  1513.  
  1514. PROC AutoAnswer(On:Flag);
  1515. PROC Break(tenths:Number);
  1516. FUNC Dial(key:String):Flag;
  1517. FUNC DTESpeed():Number;
  1518. PROC HangUp();
  1519. FUNC LocalEcho(enable:Flag):Flag;
  1520. FUNC MNPAnswer():Flag;
  1521. FUNC MNPConnect():Flag;
  1522. FUNC MNPClass():Number;
  1523. FUNC OnLine():Flag;
  1524. PROC Paste(s:String);
  1525. PROC PortInit(Baud,Databits,Parity,Stopbits:Number);
  1526. PROC Receive(VAR s:String; timeout:Number [; NoEcho]);
  1527. PROC RestoreDefaults();
  1528. PROC SetPort(PortNo:Number);
  1529. PROC Sleep();
  1530. PROC Transmit(s:String);
  1531. FUNC WaitForCall():Number;
  1532.  
  1533.  
  1534. Odyssey Setup/Mode Commands
  1535.  
  1536. PROC SetASCII(CharDelay,LineDelay:Number; BlankExpansion:Flag);
  1537. PROC SetCISB(AutoInvoke,IntResponse,SAok,EscapeCtl:Flag);
  1538. PROC SetDialPrefix(PrefixS:String);
  1539. PROC SetDialTimeout(Secs:Number);
  1540. FUNC SetDiallingDir(Filename:String):Flag;
  1541. PROC SetScreenMode(MenuLine,StatusLine,BigScreen:Flag);
  1542. PROC SetStripParity(on:Flag);
  1543. PROC SetBackspace(Key:Number; Destructive:Flag);
  1544. PROC SetAutoWrap(on:Flag);
  1545. PROC SetRawLogging(on:Flag);
  1546. FUNC CRinTranslation(CR or CRLF):Number;
  1547. FUNC CRoutTranslation(CR or CRLF):Number;
  1548. PROC SetSoundEffects(Windows,Bells,FTransfer:Flag);
  1549. PROC SetZmodem(AutoDownload,FullStreaming,EscCtrls:Flag);
  1550.  
  1551.  
  1552.  
  1553.  
  1554. Display and Keyboard Commands
  1555.  
  1556. PROC Alarm(Seconds:Number);
  1557. PROC BackGnd(Colour:Number);
  1558. PROC ForeGnd(Colour:Number);
  1559. PROC CanEscape(enable:Flag);
  1560. PROC ClrEol();
  1561. PROC ClrEos();
  1562. PROC ClrLine();
  1563. PROC ClrScr();
  1564. FUNC ColourDisplay():Flag;
  1565. PROC DelLine();
  1566. PROC InsLine();
  1567. PROC DisableCursor();
  1568. PROC EnableCursor();
  1569. FUNC Emulate(emulation:String):Flag;
  1570. PROC GotoXY(x,y:Number);
  1571. FUNC KeyPressed():Flag;
  1572. FUNC RdKey():Number;
  1573. PROC KillWindow();
  1574. PROC UseWindow(win_handle:Number);
  1575. FUNC Window(x,y,width,height:Number; title:String; colour:Number):Number;
  1576. FUNC LoadKeyDef(kdf_name:String):Flag;
  1577. FUNC Menu(x,y,width:Number;
  1578.           Title:String;
  1579.           option1 {,optionN}:String;
  1580.           Menu_Flags:Number):Number;
  1581. PROC Read(VAR s:String [; NoEcho]);
  1582. PROC SetHelp(help_msg:String);
  1583. FUNC WhereX():Number;
  1584. FUNC WhereY():Number;
  1585. PROC Write(item {,item} : String_or_Number);
  1586.  
  1587.  
  1588.  
  1589. File and Directory Commands
  1590.  
  1591. PROC Chain(script_name:String);
  1592. FUNC ChDir(dir_name:String):Flag;
  1593. FUNC CopyFile(source_file,dest_file:String):Flag;
  1594. FUNC CurrentDir():String;
  1595. FUNC DiskSpace():Number;
  1596. FUNC DOS(s:String; WAIT or NOWAIT [+NOCLEAR] ):Number;
  1597. FUNC Download(protocol [; filename:String] [;default_action] ):Flag;
  1598. FUNC Upload(protocol; filespec:String):Flag;
  1599. PROC Edit(filename:String);
  1600. FUNC FAppend(VAR f:File; filename:String):Number;
  1601. FUNC FCreate(VAR f:File; filename:String):Number;
  1602. FUNC FOpen(VAR f:File; filename:String):Number;
  1603. FUNC FClose(VAR f:File):Number;
  1604. FUNC FDelete(filename:String):Number;
  1605. FUNC FEOF(f:File):Flag;
  1606. FUNC FetchStr(Key:String; VAR s1,s2:String; [ filename:String ] ):Flag;
  1607. FUNC FFirst(wildcard:String; s_attr:Number;
  1608.             VAR Filename:String; VAR f_attr:Number):Flag;
  1609. FUNC FNext(VAR Filename:String; VAR f_attr:Number):Flag;
  1610. FUNC FQualify(filename:String):String;
  1611. FUNC FRead(f:File; VAR s:String):Number;
  1612. FUNC FWrite(f:File; s1 {,sn} :String_or_Number):Number;
  1613. FUNC FRename(oldname,newname:String):Flag;
  1614. PROC GetFileSize(f:File; VAR Bytes,Xblocks:String);
  1615. FUNC IsFile(filespec:String):Flag;
  1616. FUNC LastTransferredFile():String;
  1617. FUNC LogFile(OPEN or SUSPEND or RESUME or CLOSE [;file_to_open:string]):Flag;
  1618. FUNC MkDir(dir_name:string):Flag;
  1619. FUNC PickFile(wildcard:string; VAR filename:String):Flag;
  1620. PROC PrinterOff();
  1621. PROC PrinterOn();
  1622. PROC SetDownloadDir(dirname:String);
  1623. PROC Shell();
  1624. PROC HostShell();
  1625.  
  1626.  
  1627. Watching and Waiting Commands
  1628.  
  1629. FUNC WaitFor(target:String [; timeout_secs:Number ] ):Flag;
  1630. FUNC WatchFor(target:String):Number;
  1631. FUNC Received(handle:Number):Flag;
  1632. PROC WatchAgain(handle:Number);
  1633. PROC ClrWatch(handle:Number);
  1634. PROC ClrAllWatches();
  1635. FUNC When(s1:String; s2:String):Number;
  1636. FUNC WatchEvent(handle1, {,handleN} : Number; [ timeout:Number ] ):Number;
  1637. FUNC GrabWhen(Target:String; VAR line:String):Number;
  1638.  
  1639.  
  1640.  
  1641. Miscellaneous Commands
  1642.  
  1643. FUNC ASC(s:String; i:Number):Number;
  1644. FUNC CHR(n:Number):String;
  1645. FUNC ToLower(s:String):String;
  1646. FUNC ToUpper(s:String):String;
  1647. FUNC Date():String;
  1648. FUNC Time():String;
  1649. PROC DEC(VAR n:Number [; amount:Number ] );
  1650. PROC INC(VAR n:Number [; amount:Number ] );
  1651. PROC Delay(secs:Number);
  1652. PROC Exit();
  1653. PROC GetEnv(varname:String; VAR value:String):Flag;
  1654. PROC GetHostInfo(VAR NormPass,PrivPass,Welcome,HostDir:String;
  1655.                  VAR MNPwanted:Flag);
  1656. PROC Halt();
  1657. PROC HaltE(return_code:Number);
  1658. PROC IntToStr(n:Number; VAR s:String);
  1659. PROC StrToInt(s:String; VAR n:Number);
  1660. FUNC IsDirKey(Key:String):Flag;
  1661. FUNC Length(s:String):Number;
  1662. FUNC OdyVersion():String;
  1663. FUNC Pos(substring,s:String):Number;
  1664. PROC Priority(enable:Flag);
  1665. FUNC StrEdit(VAR s:String [, NoEcho]):Flag;
  1666. PROC SetTimer(seconds:Number);
  1667. FUNC TimerExpired():Flag;
  1668. PROC SilentMode(enable:Flag);
  1669. FUNC SubStr(s:String; start,length:Number):String;
  1670.  
  1671.  
  1672.  
  1673. Registration Information
  1674.  
  1675.  
  1676. Author/Publisher Information:
  1677. -----------------------------
  1678.  
  1679. Odyssey is written and copyrighted (1991) by Don Milne, Micropack Ltd.
  1680.  
  1681.  
  1682. In the US and North America, it is exclusivelly distributed by:
  1683.  
  1684.                TRIUS, Inc.
  1685.                P.O. Box 249
  1686.                N. Andover, MA  01845-0249
  1687.  
  1688.                ORDERS ONLY:  1-800-GO-TRIUS
  1689.                Information:  508-794-9377  
  1690.                        FAX:  508-688-6312  
  1691.                        BBS:  508-794-0762  
  1692.                        CIS:  72727,616     
  1693.  
  1694.  
  1695. In the UK, it is Published and distributed by:
  1696.  
  1697.                Shareware Publishing
  1698.                3A Queen St,
  1699.                Seaton,
  1700.                Devon, EX12 2NY
  1701.  
  1702.                0297-24088 (voice)
  1703.  
  1704. Note that all Odyssey documentation uses British spelling throughout.
  1705.  
  1706.  
  1707. Usage Restrictions:
  1708. -------------------
  1709.  
  1710. This evaluation copy of Odyssey has not yet been paid for. Users are
  1711. granted a licence to use it for evaluation purposes for a period of 30
  1712. days. If the software continues to be used it must be paid for.
  1713.  
  1714. Please be aware that old copies of Odyssey may be kept on bulletin board
  1715. services and disk vendor libraries for years. If the date of last update
  1716. at the top of this file is more than 12 months old please contact one of
  1717. the publishers (above) to ensure that you have the most current version.
  1718.  
  1719. Licensee shall not use, copy, rent, lease, sell, modify, decompile,
  1720. disassemble, otherwise reverse engineer, or transfer the licensed
  1721. program except as provided in this agreement. Any such unauthorized use
  1722. shall result in immediate and automatic termination of this license.
  1723.  
  1724. U.S. Government Information: Use, duplication, or disclosure by the U.S.
  1725. Government of the computer software and documentation in this package
  1726. shall be subject to the restricted rights applicable to commercial
  1727. computer software as set forth in subdivision (b)(3)(ii) of the Rights
  1728. in Technical Data and Computer Software clause at 252.227-7013 (DFARS
  1729. 52.227-7013). The Contractor/manufacturer is TRIUS, Inc., P.O. Box 249, N. 
  1730. Andover, MA  01845-0249.
  1731.  
  1732. Registrants are granted a licence to use Odyssey on a single computer as
  1733. they would a book - that is to say that only one person may use the
  1734. software at a time - LAN and Site licenses are available if more
  1735. extensive use that this is required. The creation of backup copies is
  1736. expressly permitted (and even encouraged).
  1737.  
  1738.  
  1739.  
  1740. Disclaimer of Warranty:
  1741. -----------------------
  1742.  
  1743. The Shareware evaluation (trial use) version is provided AS IS. The
  1744. publishers MAKE NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING
  1745. WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR
  1746. A PARTICULAR PURPOSE.
  1747.  
  1748.  
  1749. The publishers warrant the physical diskette(s) and physical
  1750. documentation provided with registered versions (only) to be free of
  1751. defects in materials and workmanship for a period of sixty days from the
  1752. date of registration. If the publishers receive notification within the
  1753. warranty period of defects in materials or workmanship, and such
  1754. notification is determined by the publishers to be correct, the
  1755. defective diskette(s) or documentation will be replaced.
  1756.  
  1757. The entire and exclusive liability and remedy for breach of this Limited
  1758. Warranty shall be limited to replacement of defective diskette(s) or
  1759. documentation and shall not include or extend to any claim for or right
  1760. to recover any other damages, including but not limited to, loss of
  1761. profit, data, or use of the software, or special, incidental, or
  1762. consequential damages or other similar claims, even if the publishers
  1763. have been specifically advised of the possibility of such damages. In no
  1764. event will the publishers' liability for any damages to you or any other
  1765. person ever exceed the lower of suggested list price or actual price
  1766. paid for the license to use the software, regardless of any form of the
  1767. claim.
  1768.  
  1769. THE PUBLISHERS SPECIFICALLY DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR
  1770. IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTY OF
  1771. MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
  1772.  
  1773.  
  1774.  
  1775. Registration Information:
  1776. -------------------------
  1777.  
  1778. Registration of your Odyssey Package gets you (apart from salving your
  1779. guilty concience):
  1780.  
  1781. - The LATEST version of the software, plus notice of updates.
  1782.  
  1783. - A comprehensive, professionally bound and typeset 300+ page manual.
  1784.  
  1785. - Notices of updates and reduced-price upgrades.
  1786.  
  1787. - Free voice-line technical support for 90 days. (extendable)
  1788.  
  1789. - Online support via CIX (UK), Compuserve, and BBS (USA)
  1790.  
  1791. - The Odyssey Extension Package containing a script compiler, an editor
  1792.   configuration utility, and a dialing directory conversion program to
  1793.   make switching from Procomm, QModem, or Telix easier.
  1794.  
  1795.  
  1796.  
  1797. For a limited time ONLY, in North America you can register 
  1798. Odyssey by sending $89.00 + $6 postage to TRIUS, Inc. using the 
  1799. invoice below. TRIUS, Inc. also accepts credit card payments (1-
  1800. 800-GO-TRIUS). There is also a script (Alt-C Register) that will 
  1801. automate registration by BBS. 
  1802.  
  1803. In the UK, you can register Odyssey by sending £89.00 + £4 carriage + VAT 
  1804. (total £109.28) to Shareware Publishing. Shareware Publishing also accept 
  1805. credit card payments on (0297) 24088. 
  1806.  
  1807. You might also be able to find Odyssey at your local software dealer. If
  1808. they do not have it have them call either of the publishers for
  1809. information. Thank you.
  1810.  
  1811. Site licences are available for the Odyssey. A site licence entitles you
  1812. to use this software on all of the computers in a building, campus, or
  1813. plant.  Contact TRIUS, Inc. for details.
  1814.  
  1815. Additionally, VAR licences are available for computer retailers and
  1816. consultants. This entitles the seller to bundle Odyssey with computers,
  1817. modems, or other hardware or software sold at retail. The buyer of the
  1818. computers will become registered users of Odyssey at no additional fee
  1819. upon returning a postcard-style registration card.
  1820.  
  1821.  
  1822.  
  1823.                   Single User Invoice - North America
  1824.                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1825.                    Introductory Limiter Time Pricing
  1826.                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1827.  
  1828.  
  1829. Remit to:                        From:
  1830.  
  1831. TRIUS, Inc.                         ____________________________________
  1832. P.O. Box 249       
  1833. N. Andover, MA  01845-0249          ____________________________________
  1834.  
  1835. or VISA/MC call:                    ____________________________________
  1836.    1-800-GO-TRIUS
  1837.   * Orders  ONLY *                  ____________________________________
  1838.  
  1839.  
  1840. Send me ___  registered copies of Odyssey at $89 + $6 shipping each.
  1841.              (Includes diskette, manual, etc.)
  1842.  
  1843. Send me ___ copies of the current Odyssey shareware diskette at $5 each.
  1844.  
  1845.  
  1846.                                                        Total: __________
  1847.  
  1848. I require ____ 5 1/4"   ____ 3 /12" disks
  1849. -------------------------------------------------------------------------
  1850. Checks, Money Orders, VISA, MasterCard are accepted.  Written Purchase
  1851. Orders are accepted for quantity purchases and site licenses from most
  1852. companies, schools, and governmental units.  Terms NET 10.
  1853.  
  1854.  
  1855. VISA/MC #  _________  _________  _________  _________  Exp Date:___ /____
  1856.  
  1857.  
  1858. Signature ________________________________   Phone ______________________
  1859.  
  1860. To Purchasing, Accounts Payable:
  1861.  
  1862. Note that Odyssey has been delivered and accepted by the customer. Upon
  1863. receipt of this paid invoice, printed manual(s) and current disk(s) will
  1864. be sent.
  1865. -------------------------------------------------------------------------
  1866.    Contact TRIUS, Inc. at  508-794-9377  for site licensing prices!
  1867. -------------------------------------------------------------------------
  1868.  
  1869.  
  1870.  
  1871.  
  1872.