home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR10 / OTTO15.ZIP / OTTO.DOC < prev    next >
Text File  |  1993-07-08  |  28KB  |  671 lines

  1.     
  2.                    ╔══════════════════════╗
  3.                    ║   Welcome to Otto!   ║
  4.                    ║   Ver 1.5   7/08/93  ║
  5.                    ║   (c) 1993 RSE Inc   ║
  6.                    ╚══════════════════════╝
  7.  
  8. Otto lets you automate a wide variety of tasks.  I created it to help me 
  9. take advantage of Compuserve's new basic features but it can be used for 
  10. virtually anything.  
  11.  
  12. If you use "Autosig" as your communications program you can see for 
  13. yourself what Otto can do.  Use any ASCII editor to edit the first few 
  14. lines of "DOALL" to reflect what subdirectory AUTOSIG.EXE resides in.  
  15. Then enter "otto doall" at the DOS prompt.  (If for any reason you want 
  16. to abort the process press both shift keys at the same time)  Otto will 
  17. send out your e-mail (if you have any), gather your e-mail, get some 
  18. stock quotes, get the latest news and sport scores, download some weather 
  19. maps, and get the latest weather forecast.  And Otto can do all this 
  20. unattended at 5 AM so its all waiting for you when you wake up! 
  21.  
  22. Although this "DOALL" script only works for users of "Autosig", later on 
  23. we will discuss how you can modify "DOALL" to work with your 
  24. communications program.  And of course we will discuss how you can create 
  25. your own scripts thereby automating virtually any task! 
  26.  
  27. The bad news is Otto uses scripts.  If you've tried writing scripts 
  28. before you know what a pain it can be.  The *good* news is that Otto has 
  29. just a few simple script commands making it very easy to learn and use.  
  30. The *GREAT* news is that Otto also has a script recorder that creates 
  31. scripts on the fly as you go about doing the task you want to automate!  
  32. It records what you're doing as you're doing it.  Once Otto creates the 
  33. script you can go back and edit it to make any desired changes.  Sure 
  34. beats trying to create scripts from scratch. 
  35.  
  36. Some of you may be familiar with our "Playback" program which is also a 
  37. task automator.  Playback records your keystrokes with the delays intact 
  38. and lets you turn these "keyfiles" into small .COM programs.  You can 
  39. playback they keyfiles via hot key, from the DOS prompt, from the MENU 
  40. program or at some specified times.  The MENU program also lets you add 
  41. notes to your keyfiles, adjust their playback, edit them and much more.  
  42. But the point is Playback makes it's decisions on when to stuff 
  43. keystrokes based on the delays between keystrokes. 
  44.  
  45. On the other hand, Otto bases its decisions primarily on what appears on 
  46. the screen.  This is good for situations where the delays between 
  47. keyboard inputs may vary from use to use (like using your modem).  On the 
  48. other hand, since you can only read text from a text screen, Otto works 
  49. best when the application you're using is text based and not graphics 
  50. based.  On the plus side, Otto can incorporate decision making whereas 
  51. Playback can't.  For example if you try to log-on but the line is busy, 
  52. Otto can have the program re-dial instead of pressing ahead as tho the 
  53. connection had been made.  If Otto doesn't fit your needs chances are 
  54. Playback will.  You can find Playback in Library 3 of Compuserve's IBMSYS 
  55. forum with the name PB??.EXE with ?? being the latest version number.
  56.  
  57. == How Much? ==
  58.  
  59. Otto is shareware.  As such you are given the program without obligation 
  60. in order to evaluate it.  If after a 3 week evaluation you decide to 
  61. continue using it then you are obligated to become a registered user.  
  62. You register by sending $30 + $1 shipping (add $1 for 3.5 disk, 
  63. $5 for overseas orders) to: 
  64.  
  65.  Otto                │  Visa or MC customers:       │  Modem-It! to:
  66.  1157 57th Drive SE  │  call or FAX (206) 939-4105  │  (206) 939-2312
  67.  Auburn, WA 98002    │  Compuserve: 72371,1557      │  Product ID: OT
  68.  
  69. (Modem-It! (tm) is a free program that lets you use your modem to easily 
  70. place orders 24 hours a day with any participating merchant.  Look for it 
  71. on any bulletin board.) 
  72.  
  73. As a registered user you'll get the following additional benefits: 
  74.  
  75.       1. Technical support and the latest version of Otto.
  76.  
  77.       2. The unregistered versions of some of our other shareware 
  78.          programs including Playback, Nabbit, FileNotes, Remind Me!, 
  79.          Trash-It, BriteLine, and others. 
  80.  
  81.       3. No more "please register" messages.
  82.  
  83. Because Otto is shareware you're encouraged to give copies of it to 
  84. others as long as you don't modify the program or these instructions and 
  85. you don't charge for the copies.  The only exception to the last rule is 
  86. for shareware vendors who may charge a reasonable distribution fee. 
  87.  
  88. Those using Playback in a commercial or educational environment must 
  89. register.  Site licenses are available, as well as quantity discounts.  
  90.  
  91. == Getting Started ==
  92.  
  93. * Put OTTO.COM in one of the subdirectories listed in the PATH statement in 
  94.   your AUTOEXEC.BAT file.
  95.  
  96. === Creating your own scripts ===
  97.  
  98. == Definitions: ===
  99.  
  100. The following symbols are used in the format description of the various 
  101. commands:
  102.  
  103. {alt-3}         This signifies the character that appears when you hold 
  104.                 down the Alt key and press three.  Don't put the brackets 
  105.                 or the description in your scripts, just the character 
  106.                 that appears when you press the keys within the { } at 
  107.                 the same time.
  108.  
  109. [message]       specifies data that appears on the screen.  Must be 
  110.                 enclosed quotes. 
  111.  
  112. [delay]         delay in seconds
  113.  
  114. [evaluator]     must be either "=" or "<>"
  115.  
  116. [label]         specifies a location in the script.  Must be less than 
  117.                 eight characters long and be enclosed within "*"s.  For 
  118.                 example: *GetMail* 
  119.                              
  120. [location]      You tell Otto where on the screen to look for a message 
  121.                 in a variety of ways.  If you specify "cursor" then Otto 
  122. looks for the message directly in front of the cursor.  For example if 
  123. your screen looks like this: 
  124.  
  125.   Enter Name: _
  126.  
  127. then the cursor message could be "Enter Name: ", "Name: ", ": ", or even 
  128. " ".  Notice I always included the space right in front of the cursor.  
  129. Therefore the command: 
  130.  
  131.   waitfor cursor "Name: " 
  132.  
  133. would wait until "name: "appears directly before the cursor.  The 
  134. uppercase/lowercase status of the message is irrelevant as the "message" 
  135. comparison is case insensitive. 
  136.  
  137. You can also specify the message location by screen location.  Enclose 
  138. the coordinates in ROW,COLUMN format within ().  For example: 
  139.  
  140.   waitfor (4,0) "City: "        
  141.  
  142. would wait until "City: " appears at row 4, column 0. 
  143.  
  144. Both rows and columns begin at 0, therefore the upper left corner of the 
  145. screen would be (0,0).  If you're more comfortable using COLUMN, ROW 
  146. than ROW, COLUMN then use DEBUG to change byte 0F hex of OTTO.COM to a 
  147. value of 1. 
  148.  
  149. You can also specify message location in offsets from the cursor 
  150. location.  You do this by specifying + or - for values that are to be 
  151. cursor offsets.  For example:
  152.  
  153.   waitfor (-1,+2) "message"
  154.  
  155. would wait until "message" appeared at cursor row -1 and cursor column 
  156. +2.  You MUST use a +  or - to signify an offset.  Let's say you want to 
  157. specify the message location as the same column as the cursor but two 
  158. rows up.  You would use (-2,+0).  If you used (-2,0) then Otto would look 
  159. two rows up but at column 0 since the lack of a + or - on the 0 
  160. signifies the 0 is an absolute location.  Make sure you understand the 
  161. following examples: 
  162.  
  163. (3,1)      Row 3, Column 1
  164. (0,-3)     Row 0, Cursor column-3
  165. (+0,-3)    Cursor row, Cursor column-3
  166. (-1,-2)    Cursor row-1, Cursor column-2
  167. (+2,3)     Cursor row+2, Column 3
  168.  
  169. == Some ground rules ==
  170.  
  171. * Otto only looks at the first letter of each command.  Therefore the 
  172.   command:  waitfor cursor "message"
  173.   could be abbreviated to:  w c "message"
  174.  
  175. * You must leave a space between each component of the message:
  176.  
  177.   w c "message"  ;would be correct
  178.   wc "message"   ;would generate an error. 
  179.  
  180. * Use only one command per line, except for " ; " which allows you to add 
  181.   comments to your scripts.
  182.  
  183. The following are the script commands.  Hopefully between the 
  184. explanations, examples, and sample scripts you can figure out what's 
  185. going on.
  186.  
  187. } WAITFOR    Format: waitfor [location] [message]
  188.              waitfor [delay]     
  189.  
  190. Waits for a condition to be met.  The condition can be either a delay 
  191. (specified in seconds) or a "message" match.
  192.  
  193. Examples:
  194.  
  195.   waitfor cursor "message"   ;wait until "message" appears directly 
  196.                              ;before cursor
  197.   waitfor (0,3) "message"    ;wait until "message" appears at Row 0, Col 3 
  198.   waitfor (-2,+0) "message"  ;wait until "message" appears at cursor row-2 
  199.                              ;and cursor column
  200.   waitfor 2.5                ;wait for 2.5 seconds
  201.  
  202.  
  203. } IF/THEN    Format: if [location] [evaluator] [message] then *label*
  204.  
  205. If the conditions are met Otto jumps to the line after *label*.  
  206. The "then" portion is optional.  "<>" means not equal.
  207.  
  208. Examples:
  209.  
  210.   if cursor = "message" then *GetMail*     
  211.   if (0,3) = "message" then *GetStock*      
  212.   if (-2,+0) <> "message" then *GetNews*
  213.  
  214.  
  215. } JUMP    Format:  jump *label*
  216.  
  217. Jumps to the line following *label*.
  218.  
  219. Example:  jump *GetMail*         ;jumps to line after *GetMail* line
  220.  
  221.  
  222. } GOSUB   Format:  gosub *label*
  223.  
  224. Goes to *label* but returns when "return" is encountered.
  225.  
  226. Example:  gosub *getmail*    
  227.  
  228.  
  229. } RETURN  Format:  return
  230.  
  231. Returns from a gosub routine.  In other words, returns to the line after 
  232. the line that "gosub"ed to this routine. 
  233.  
  234.  
  235. } CALL    Format:  call "script"
  236.  
  237. Runs the script file specified.  When that script ends then Otto returns 
  238. to the next line of this (the calling) script. 
  239.  
  240.  
  241. } END     Format:  End
  242.  
  243. MUST be used to signal the end of a script.
  244.  
  245.  
  246. } ;       Format:  ;
  247.  
  248. Used to add comments to your scripts.  Otto ignores everything after the 
  249. semicolon. 
  250.  
  251. } {alt-233} = [data filename]
  252.  
  253. You can have OTTO get inputs from an external data file.  This command 
  254. specifies which file LINEINPUT should get its data from.  You can 
  255. specify the entire pathname if you desire.  This command must be prior 
  256. to any LINEINPUT commands.  See LINEINPUT for details on the structure of 
  257. the data file.   
  258.  
  259. } LINEINPUT   Format: LINEINPUT
  260.  
  261. This inputs the next line of data from the data file and puts it into the 
  262. {alt-233} variable.  Data in the data file must be separated by carriage   
  263. returns.  In other words a data file might look like this:
  264.  
  265. Bill Bailey
  266. Carol Channing
  267. Mark Blaine
  268. Steve Crawford
  269. Karen Comet
  270.  
  271. The first time you used LINEINPUT it would input "Bill Bailey", the 
  272. second time would be "Carol Channing", and so on.  LINEINPUT just reads 
  273. in the data.  To stuff the data you must use the "{alt-233}" command
  274.  
  275. } "{alt-233}"
  276.  
  277. Stuffs the data read by the last LINEINPUT command.  The {alt-233} must 
  278. be by itself within the quotes.  That means that if you want a carriage 
  279. return you'll need to put it on a separate line like this:
  280.  
  281.     "{alt-233}"
  282.     "|"
  283.  
  284. } FOR    Format:   FOR [# of times to do for /next loop] or {alt-233}
  285.   NEXT   Format:   NEXT
  286.  
  287. FOR is used to signify the start of a loop.  NEXT defines the end of the 
  288. loop.  You enter the number of times you want the functions within the 
  289. loop to be executed in the FOR command.  Let's say you want to stuff 
  290. "Hello" five times with a 2 second pause after each time: 
  291.  
  292.     FOR 5          ;start of loop, loop 5 times
  293.     "Hello|"
  294.     wait 2
  295.     NEXT           ;end of loop
  296.  
  297. The functions that fall between the FOR and NEXT commands are performed 
  298. the number of times specified in the FOR command.
  299.  
  300. If you have specified a data file ( {alt-233} = [filename] ) then you can 
  301. use {alt-233} as the number of times to loop.  This causes the FOR / NEXT 
  302. loop to continue until the end of the data file is reached.
  303.  
  304. This example shows you how you can read and stuff all the data within a 
  305. data file: 
  306.  
  307.         {alt-233} = INPUT.DAT   ;specifies data file
  308.         FOR {alt-233}           ;loop until end of data file
  309.         LINEINPUT               ;read in next data
  310.         "{alt-233}"             ;stuff the data 
  311.         "|"                     ;carraige return
  312.         NEXT                    ;end of loop
  313.         END
  314.  
  315. You can nest loops within each other as long as you don't exceed 5 
  316. levels.
  317.  
  318. } Stuffing keystrokes     Format:  "keystrokes"
  319.  
  320. Takes the keystrokes enclosed within quotes and stuffs them into the 
  321. keyboard.  Use | to specify a carriage return.  Characters after the | 
  322. (carriage return) will be ignored so put them on a new line. 
  323.  
  324. Examples:
  325.  
  326.   "scott chaney"     stuffs "scott chaney" with no carriage return
  327.   "go mail|"         stuffs "go mail" and follows with carriage return
  328.   "{alt-232}14 hello{alt-232}15 {alt-232}15 world|"     PgDn "hello" 
  329.                      RtArw RtArw "world" carriage return. See below.
  330.  
  331. You can add special keys like Escape, the function keys, the cursor 
  332. keys, and others, into your scripts by using a special notation.  The 
  333. process for inserting a special key is: 
  334.  
  335. * Hold down the Alt Key
  336. * enter 232 on the numeric keypad
  337. * release the Alt key
  338. * enter the number of the special key as indicated in the following table
  339. * follow your input with a space
  340.  
  341. Alt-232 with be represented by {alt-232} in these instructions.
  342.  
  343. == Special Character Table ==
  344.  
  345. We have moved the special character table to the end of this file because 
  346. on some printers the last few characters in the table were being 
  347. interpeted as printer codes and were changing such things as spacing and 
  348. typestyle.   While this wasn't causing any harm it did confuse, annoy, 
  349. and alarm some people.
  350.  
  351. == Shift States ==
  352.  
  353. There may be times when special keys are not enough.  Some programs don't 
  354. look for the special keys when looking for Ctrl and/or Alt key 
  355. combinations.  Instead they examine a "shift status" byte in memory that 
  356. tells them if the Ctrl and/or Alt keys are being pressed.  Then they look 
  357. in the buffer to see which key has been pressed with it.  In these cases 
  358. they won't act on the special keys unless the "shift status" byte signals 
  359. that Ctrl and/or Alt have been pressed.  Therefore Otto lets you change 
  360. this "shift status" byte.  To change the shift status byte: 
  361.  
  362. 1.  Press Alt and while holding it down enter 212 on the numeric keypad.  
  363.     We will use {alt-212} to represent the value that results.
  364.  
  365. 2.  Then enter 1 for Alt, 2 for Ctrl, and 3 for Ctrl and Alt.  Use 0 to 
  366.     set things back to normal.
  367.  
  368. 3.  Follow your input with a space.
  369.  
  370. IMPORTANT:  Make sure you always reset the "shift status" byte back to 0 
  371. when you're done by using: {alt-212}0  
  372.  
  373. Example:  "{alt-212)3 D{alt-212}0 "  would simulate Ctrl-Alt-D being 
  374. pressed.  
  375.  
  376. In the above example "{alt-212}3 " signals Ctrl and Alt both being 
  377. pressed, then the D key is entered, then the shift state is reset using 
  378. "{alt-212}0 ". 
  379.  
  380. === Ctrl-A thru Ctrl-Z ===
  381.  
  382. The keys Ctrl-A thru Ctrl-Z have the ASCII equivalents of {alt-1} for 
  383. Ctrl-A up to {alt-26} for Ctrl-Z.  Some programs will react correctly just 
  384. to these characters, while others may examine the shift status byte too.  
  385. Let's say you want to put Ctrl-D in your script.  Here are the options 
  386. you could use: 
  387.  
  388. "{alt-4}"                              
  389. "{alt-212}1 {alt-4}{alt-212}0 "         ;has the best chance of working
  390. "{alt-212}1 D{alt-212}0 "    
  391.  
  392. === Recording a script ===
  393.  
  394. You could create your own scripts from scratch, but it's a lot easier to 
  395. have Otto record a script for you.  Then you need only go in and massage 
  396. a few items in order to get it to run correctly.
  397.  
  398. * To record a script run Otto using the "/r" command line switch.  
  399.  
  400.   Example: Otto new1 /r
  401.  
  402. * To start recording press Ctrl-LShft-RShft.  You'll hear an ascending 
  403.   series of tones which indicate the recording has begun.
  404.  
  405. * To stop recording press Ctrl-LShft-RShft again. You'll hear a 
  406.   descending series of tones indicating the recording has stopped.
  407.  
  408. You may stop a recording and then start it again.  If you do, the new 
  409. recording will be appended to the end of the previous recording.  
  410.  
  411. A new line is created in the script file every time the Enter key is 
  412. pressed -or- whenever a delay between keystrokes exceeds 3 seconds.  
  413. Therefore on single key inputs (like pressing Y or N for a Yes/No 
  414. response) it's best to wait three seconds before pressing the key. 
  415.  
  416. Chances are your recorded scripts won't run correctly until you "massage" 
  417. them a little.  The reason is that Otto doesn't know what's important and 
  418. what isn't.  He always assumes that the cursor message is the critical 
  419. item.  Often it's not.  In addition, at times there are critical delays 
  420. that are important.  Otto won't pick up on those either.  Here are some 
  421. hints for getting your scripts to run correctly: 
  422.  
  423. * Before you do anything print out your script so you can follow along as 
  424. it replays and you can see where it is hanging up. 
  425.  
  426. * Check the "waitfor cursor" messages to see if they are what Otto should 
  427. be waiting for.  It may well be that Otto should be waiting for a message 
  428. that appears elsewhere on the screen.   
  429.  
  430. * Otto doesn't record delays between inputs, so check the script to see 
  431. if there are any delays you need to insert between keystrokes or inputs.
  432.  
  433. * If your Escapes and/or Backspaces aren't working correctly then you may 
  434. want to subsitute "{alt-232}53 " for {alt-27} (Escape) or "{alt-232}52 " 
  435. for {alt-8} (backspace). 
  436.  
  437. * And lastly, make sure a new "waitfor" line is created whenever you need 
  438. one.  Remember, a new "waitfor" line is only created when you press the 
  439. Enter key or the delay between keystrokes exceeds 3 seconds.  That's why 
  440. for those single key inputs (function keys, cursor keys, Y/N responses, 
  441. etc..) where you want "waitfor" lines generated you need to wait three 
  442. seconds before pushing the key. 
  443.  
  444. === Running a script === 
  445.  
  446. To begin running a script:
  447.  
  448. * enter "OTTO filename" where "filename" is the name of the script file 
  449.   you want to run.
  450.  
  451. NOTE: All script files must be in the same subdirectory as OTTO.COM.
  452.  
  453. == Aborting the running of a script ==
  454.  
  455. You can abort the running of a script by pressing the Ctrl key, Left 
  456. Shift key and the Right Shift key at the same time. 
  457.  
  458. == Hot key activation ==
  459.  
  460. There may be times when you don't want the script to begin immediately 
  461. but would like it to start when you press a hot key.  You do this by 
  462. using the "/h" command line option when you start the program.  For 
  463. example, entering "otto store /h" tells Otto not to begin stuffing the 
  464. STORE file until you press the hot key.  The hot key is: Ctrl-LShift-
  465. RShift.  When you press Ctrl-RShf-LShf a menu will pop-up showing all 
  466. the scripts you've hot-keyed.  Select the script you want to run by 
  467. pressing the letter displayed to the left of the script's name.  Press 
  468. Escape to exit without selecting a script.  You can put up to 10 scripts 
  469. in the hot key buffer.  
  470.  
  471. Pressing Ctrl-LShf-RShf will cause any scripts in progress to end.
  472.  
  473. == Time activated scripts ==
  474.  
  475. If you'd like the running of your script to begin automatically at some 
  476. later time you use the command line option "/####" where #### is a four 
  477. digit number designating the time you want the stuffing to begin.  The 
  478. #### must be in 24 hour military time (3am = 0300, 11:30pm = 2330) and 
  479. MUST be 4 digits long.  For example, entering "otto doall /0200" would 
  480. cause the "DOALL" script to begin activating automatically at 2am. 
  481.  
  482. == Key stuffing speed ==
  483.  
  484. Normally Otto stuffs keys at the rather slow pace of 18 characters a 
  485. second.  The reason is that some programs take keystrokes out of the 
  486. buffer faster that they can use them (go figure?) and this "slow" speed 
  487. may give them time to catch up before the next keystroke comes.
  488.  
  489. However, if you live on the wild side you might want to stuff the 
  490. keystrokes in faster.  You do this by using the "/f" (f for fast) command 
  491. line option.  Otto will then stuff the keystokes in at about 145 
  492. characters a second. 
  493.  
  494. == Batch file operation ==
  495.  
  496. If you want to run an OTTO script from a batch file, and you want the 
  497. batch file to wait until the script is done before continuing, you MUST 
  498. use the "/b" command line option and your script MUST end at the DOS 
  499. prompt.
  500.  
  501. Format: OTTO filename /b Example:  otto doall /b 
  502.  
  503. == Uninstalling Otto ==
  504.  
  505. Otto is a small TSR that uses less than 9K of RAM.  Once you run it, 
  506. this 9K portion of the program remains in memory until you re-boot or 
  507. uninstall it using the "/u" command line option.  In other words, to 
  508. uninstall Otto enter "otto /u" at the DOS prompt.  You MUST remove TSR's 
  509. in the reverse order in which they were loaded or you may lock up your 
  510. computer, thus requiring a re-boot. 
  511.  
  512. == The script display line ==
  513.  
  514. You'll notice that when you run your scripts Otto often displays the 
  515. current script line in the upper right corner of the screen.  This can be 
  516. invaluable when it comes time for you to check out your scripts.  Only 
  517. "waitfor" commands are displayed.  Otto acts upon all the other commands 
  518. so fast that you wouldn't see them even if they were displayed.  Because 
  519. many programs use the top row of the display for menu selections we 
  520. elected to have Otto display the script lines on the second row.  
  521.  
  522. You can turn off the script display by using the "/w" command line 
  523. option.
  524.  
  525. == Sample Scripts ==
  526.  
  527. The following sample scripts have been supplied for your use: DOALL, 
  528. GETNEWS, GETSTOCK, GETMAP, and WEATHER.  Users of "Autosig" will only 
  529. have to make small changes to get them to work correctly.  If you use 
  530. another communications program then you'll need to make some more 
  531. changes, primarily concerning how downloads are initiated and concluded.  
  532. I've put notes in the script files indicating what sections are "Autosig" 
  533. unique and will need changing. 
  534.  
  535. By the way, "Autosig" is a great program that excels in handling e-mail 
  536. and forum message traffic.  If your communications program doesn't 
  537. automate e-mail operations then you'll definitely want to get your hands 
  538. on "Autosig".  You can find it in the "AUTOSIG" library of the IMBCOM 
  539. forum on Compuserve.  And the best part?  The program is free, therefore 
  540. your only cost will be the cost of downloading it. 
  541.  
  542. The script files can be a real aid in learning how to use the script 
  543. commands.  You might want to evaluate them until you can understand 
  544. exactly what is going on. 
  545.  
  546. == Help ==
  547.  
  548. If you forget any of Otto's command line options, just enter "otto /?" at 
  549. the DOS prompt and Otto will provide you with a summary. 
  550.  
  551. == POS ==
  552.  
  553. We've included a small TSR program to help you determine the location of 
  554. items on your screen.  Just enter POS at the DOS prompt.  When you press 
  555. Ctrl-F10 the cursor will move to the middle of the screen and the cusor 
  556. location will appear in the upper left corner.  You can move the cursor 
  557. using the cursor keys.  Exit by pressing Escape.
  558.  
  559. == Colors ==
  560.  
  561. The offset of the Error message color byte within OTTO.COM is 0Dh.  The 
  562. byte that controls the color of the script window and pop-up list is 0Eh. 
  563.  
  564. == Problems ==
  565.  
  566. "Your scripts don't run on my computer"  The scripts are designed for 
  567. users of "Autosig" and even then will need some minor modifications to 
  568. run correctly.  However, all these differences are specified within the 
  569. scripts themselves, making it easy for you to make the changes necessary 
  570. to have them run with your communications program.
  571.  
  572. "I just recorded a script and it doesn't run correctly."  Try replacing 
  573. the Escape and/or backspace characters with their special character 
  574. equivalents [Esc:change {alt-27} to {alt-232}53 ,BS:change {alt 8} to 
  575. {alt-232}52 ].  
  576.  
  577. "My scripts still don't work"  Check the ground rules mentioned at the 
  578. start of the script command descriptions.  In addition, triple check all 
  579. your syntax and make sure everything is in accordance with the rules 
  580. specified.  For programmers it is often habit to use commands or command 
  581. syntax that is not correct for Otto.  For example, there is a tendency to 
  582. end an IF/THEN command with another command instead of a label. 
  583.  
  584. == Technical Support ==
  585.  
  586. Registered users can call (206) 939-4105 for technical support or contact 
  587. us on CIS: 72371,1557
  588.  
  589. Software design is an evolutionary process.   A good program is always 
  590. being updated to correct bugs and add new features.  If you'd like to 
  591. tell us how we could make Otto better please send us a letter or e-mail.  
  592. Although we can't respond personally to your letters I do guarantee your 
  593. suggestions will be seriously considered. 
  594.  
  595. == Thanks ==
  596.  
  597. Thank you for your time.  I hope you find Otto helpful and worthy of your 
  598. support. 
  599.  
  600. == Legal ==
  601.  
  602. Otto is copyrighted 1992-93 by RSE Inc.  "Otto" is an unregistered 
  603. trademark of RSE Inc.
  604.  
  605. RSE Inc. specifically disclaims all warranties pertaining to this 
  606. software.  The software is released "as is". 
  607.  
  608.  
  609. == Distributing Otto Scripts ==
  610.  
  611. You can freely distribute your Otto scripts to others.  Of course they 
  612. won't run unless the end user also has Otto.  If you decide to distribute 
  613. Otto with your scripts then you must distribute the unregistered version 
  614. and make clear to the end user that they must register Otto if they 
  615. continue to use your scripts.  
  616.  
  617. Registering Otto DOES NOT give you permission to distribute the 
  618. registered version to others.  Registration covers a single user.  If you 
  619. have multiple users within a single site that will be using the scripts 
  620. then you'll need a site license.  Call Scott Chaney at (206) 939-4105 for 
  621. details. 
  622.  
  623. In addition, we have a program that converts your scripts to autonomous 
  624. .COM files that don't require Otto to execute.  For a $495 license fee we 
  625. will supply you with the conversion program, a registered copy of Otto, 
  626. and a license that grants you unlimited distribution rights for all of 
  627. your converted scripts.  Contact Scott Chaney at (206) 939-4105. 
  628.  
  629.  
  630. == Special Character Table ==
  631.  
  632. To enter a special character: Enter Alt-232, enter the character # (as 
  633. derived from this table) and follow the input with a space.  See 
  634. examples at the end of this table.
  635.  
  636.      Normal  Ctrl    Alt     Shift  │     Alt         Alt         Alt
  637. F1    1       21      41      61    │     1  71       A  83       N  96
  638. F2    2       22      42      62    │     2  72       B  84       O  97
  639. F3    3       23      43      63    │     3  73       C  85       P  98
  640. F4    4       24      44      64    │     4  74       D  86       Q  99
  641. F5    5       25      45      65    │     5  75       E  87       R 100
  642. F6    6       26      46      66    │     6  76       F  88       S 101
  643. F7    7       27      47      67    │     7  77       G  89       T 102
  644. F8    8       28      48      68    │     8  78       H  90       U 103
  645. F9    9       29      49      69    │     9  79       I  91       V 104
  646. F10   10      30      50      70    │     0  80       J  92       W 105
  647.                                     │     -  81       K  93       X 106
  648. Home  11      31                    │     =  82       L  94       Y 107
  649. End   12      32                    │                 M  95       Z 108
  650. PgUp  13      33
  651. PgDn  14      34
  652. RtArw 15      35
  653. LfArw 16      36
  654. UpArw 17      
  655. DnArw 18      
  656. Ins   19
  657. Del   20
  658. Tab   51                      60
  659. BS    52 ;also try non-special character (Alt 8) 
  660. Esc   53 ;also try non-special character (Alt 27)
  661.  
  662. Print Screen  37
  663.  
  664. Examples:  Alt-F3 = "{alt-232}43 "   Ctrl-PgDn = "{alt-232}34 "   
  665. Alt-J = "{alt-232}92 "   Print Screen = "{alt-232}37 "
  666.  
  667. Backspace: "{alt-232}52"  or  "{alt-8}" 
  668. Escape: "{alt-232}53"  or  "{alt-27}" 
  669. Ctrl-A: "{alt-212}1 A{alt-212}0 " or "{alt-1}" 
  670.  
  671.