home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Animation & Sound / SOS-ANIM_SOUND.ISO / best_50 / ody200.zip / ODYDOC.LZH / ODY200SH.DOC < prev    next >
Text File  |  1993-11-29  |  87KB  |  1,843 lines

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