home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 104.lha / Help!.doc < prev    next >
Text File  |  1980-07-10  |  14KB  |  242 lines

  1. *****************************************************************************
  2. *
  3. *  Program:  Help! V1.0 (C) 1988 The Puzzle Factory       Author: Jeff Lavin
  4. *            Open a help window on the                   Created: 01/15/88
  5. *            WorkBench screen.                       Last UpDate: 01/15/88
  6. *
  7. *      Use:  1> run Help!
  8. *
  9. *        Written entirely in assembly language to be small and fast.
  10. *        Works with expanded memory, including 'sync-ram' at $C00000.
  11. *        Also works with the C-Ltd TimeSaver(c).
  12. *
  13. *     Instructions
  14. *     ------------
  15. *     1. First of all, this version of Help! may be run from the WorkBench
  16. *        or the CLI.  An Icon is provided for the WorkBench, but feel free
  17. *        to change your copy.  All messages are recycled and memory
  18. *        returned when the program closes.
  19. *
  20. *     2. In order to function properly, you MUST be in 640 x 200 display
  21. *        mode, and you MUST use Topaz 8 font.  If you don't do this, don't
  22. *        blame me if it doesn't work properly.  The purpose of this
  23. *        restriction is so that the program doesn't have to do any size
  24. *        checking to allow the maximum possible scrolling speed.
  25. *
  26. *        Also, please note that any kind of reasonable scrolling speed
  27. *        needs to have Hayes Haugen's BlitzFonts(C) installed.  The normal
  28. *        Amiga Text() routine is disappointingly slow.  Since Hayes has
  29. *        already fixed the problem in a straight forward way, I decided
  30. *        not to re-invent the wheel.  Please remember to send Hayes a
  31. *        shareware contribution.
  32. *
  33. *        On the subject of scrolling speed, if it seems rather slow, check
  34. *        your repeat speed in Preferences.  This program will scroll almost
  35. *        as fast as the maximum setting.  If you use the maximum setting,
  36. *        you will see the scrolling get slightly behind on files of the
  37. *        length built into the program.  The scrolling will catch up on
  38. *        files of this size, but what's happening is that keypress messages
  39. *        are getting stacked up.  As the Amiga does not do memory bounds
  40. *        error checking, it is conceivable that on a really long file, if
  41. *        you just sat on the arrow key, you could crash the system.  So it
  42. *        is a good idea to release the key occasionally and let the program
  43. *        catch up.
  44. *
  45. *     3. When you first run Help!, you will see a window open on the right
  46. *        side of the screen.  This is the Help! Window.  After you have read
  47. *        the opening notice, click on the small "T" gadget in the lower
  48. *        right corner.  The "T" stands for TINY, and it makes the window
  49. *        small, in order to get it out of your way!  The same gadget also
  50. *        makes the window normal size.  Anytime you want the normal size
  51. *        window back, click on the "T" gadget again - it'll come right
  52. *        back to normal size.  You don't have to worry about where you put
  53. *        the tiny window meanwhile, because it checks it's location before
  54. *        growing and moves to avoid the screen edges if necessary!
  55. *
  56. *     4. After the window is big again, you will find a list of all the
  57. *        special keys the program recognizes (HotKeys).  Pressing any of
  58. *        these keys, anytime the window is big AND active will cause the
  59. *        action indicated.  Most of these are pretty obvious.  The case of
  60. *        any of the alpha (letter) HotKeys is ignored.  The HotKeys aren't
  61. *        recognized when the Help! Window is inactive, so they won't
  62. *        interfere with your other programs.
  63. *
  64. *     5. Two HotKeys that may need explanation are the "C" and HELP keys.
  65. *        When you press the "C" HotKey at any time, the previous HelpFile
  66. *        will be cleared and the Calculator will be displayed (See below
  67. *        for more info on the Calculator).  Anytime the HELP key is pressed
  68. *        the previous display will be replaced with the list of HotKeys.
  69. *        This is also true when the Calculator is displayed.
  70. *
  71. *     6. When you make the Help! Window tiny, and then make it big again,
  72. *        it will display the list of HotKeys when you first see it.
  73. *        However, you don't have to start over at the beginning of a
  74. *        HelpFile you have been browsing, whether it's built-in or a user
  75. *        file.  Just press the UpArrow key, and the HelpFile will be
  76. *        redisplayed in the Help! Window one line down from where it was
  77. *        before you made the window tiny.  This feature works the same when
  78. *        you have been looking at a HelpFile and need to use the Calculator.
  79. *        Just press HELP, to get back to the HotKey list, and then press
  80. *        UpArrow to get the HelpFile back where you left it.
  81. *
  82. *     User Files
  83. *     ----------
  84. *     1. There is a separate file named "Example.txt" that will explain
  85. *        how to write your own HelpFile.  All HelpFiles MUST be in
  86. *        either the current directory or SYS:S or Help! won't be able to
  87. *        find them.  Your HelpFile may be any length you like, limited only
  88. *        by available memory.  Please follow directions in "Example.txt".
  89. *
  90. *        Suggestion:  If you put Help! in your 'C' directory, then you can
  91. *        put general HelpFiles in SYS:S that you always want to access, and
  92. *        specific HelpFiles about a program, for example, in a directory
  93. *        with that program.  This will keep your system disk from getting
  94. *        full too fast, and still keep all your HelpFiles handy!
  95. *
  96. *     2. After you have created a HelpFile ("Example.txt" may be used if
  97. *        you want to see how it works), pressing "G" (<G>et User File) will
  98. *        cause a string requester to appear.  Type in the name of the
  99. *        HelpFile you want to display, and press Return.  If Help! found
  100. *        your file, it will be displayed.  If Help! couldn't find your
  101. *        file, it will say so.  Help! looks for your file first in the
  102. *        current directory, and then in SYS:S.  To scroll back and forth
  103. *        through the file, use the UpArrow and DownArrow keys.
  104. *
  105. *        Note:  Help! looks in the current directory using the exact
  106. *        filename you type in to the requestor.  If the file is not found,
  107. *        it the appends "SYS:S/" to the front of the filename and looks
  108. *        again.  If you like you may type an entire pathname into the
  109. *        requestor, but no other directories will be searched if the file
  110. *        is not found.  Help! loads the entire User File into memory in
  111. *        order to speed up scrolling; NO disk buffering is done.  This
  112. *        means that if you have limited ram, don't write 100K HelpFiles!
  113. *
  114. *     3. Now that your file is loaded into memory, you may view any of the
  115. *        built-in help files at any time by using the proper key, and
  116. *        redisplay your file by pressing "F" (Display User <F>ile).
  117. *        The "F" key will continue to display your file until you load
  118. *        another file using "G".  The "F" key will be ignored if there is
  119. *        not a valid User File in memory.
  120. *
  121. *     Calculator
  122. *     ----------
  123. *     1. This is an 8 function, 2 base, 31 bit signed integer Calculator.
  124. *        It uses standard algebraic number and function entry format.
  125. *        Please read this again if it isn't clear.
  126. *
  127. *     2. For any of the functions, you may enter any 31 bit signed numbers
  128. *        ($7FFFFFFF to $800000001 Hex or 2147483647 to -2147483647).
  129. *        The answer MUST also be within this range.  This does not present
  130. *        a problem for subtraction or division, but when doing addition or
  131. *        multiplication, if the sum or result is greater than 31 bits
  132. *        signed, you will get an overflow error.  You may not, of course,
  133. *        add two positive numbers and create a sum larger than $7FFFFFFF,
  134. *        or two negative numbers for a sum smaller than $80000001.  In the
  135. *        same vein, you may not multiply positive or negative numbers with
  136. *        corresponding results ouside this range.
  137. *
  138. *     3. When using division, all the same rules apply.  It should also be
  139. *        noted that because this is an INTEGER calculator, any remainder
  140. *        is simply discarded, so 8 / 3 = 2 (not 2 and change).  For the
  141. *        same reason, any division that results in a quotient of less
  142. *        than 1, will display 0; thus 2 / 4 = 0 (not .5).  Also note that
  143. *        divide by zero errors are trapped by the program, not the CPU, so
  144. *        you should never meet the Guru that particular way.
  145. *
  146. *     4. The normal way to represent negative numbers in a computer is by
  147. *        using their 2's complement.  This is the way numbers are
  148. *        represented in this program.  We know a number is negative if the
  149. *        most significan bit for that data size is set (1).  All numbers
  150. *        in this program are represented as 31 bit signed integers.  Sorry,
  151. *        but there are no selectable data sizes in this version.  This
  152. *        explains the limits on value, but one more point needs to be made.
  153. *        Consider the number $80000000.  Because there are no 1s in 31 bits,
  154. *        we know the number is zero.  And because the sign bit is set (1),
  155. *        we know that this number is negative.  Negative zero is obviously
  156. *        a nonsensical quantity.  Motorola, and others have treated this
  157. *        particular value as a special case.  In this program, so do I.
  158. *        If you attempt to enter this value, you will get an overflow error.
  159. *        You cannot create this value as a result, and the program will
  160. *        ignore you if you try to negate zero.
  161. *
  162. *     5. The HEX and DEC keys should be reasonably obvious.  The calculator
  163. *        comes up in hex.  All numbers entered are interpreted as
  164. *        hexadecimal while in this mode.  If you click on the DEC gadget,
  165. *        the boolean gadgets, as well as the numbers A-F will be ghosted,
  166. *        and all input will be interpreted as decimal numbers.  If you need
  167. *        a negative number in decimal calculations, you will have to subtract
  168. *        from zero, as you cannot use NEG in the decimal mode.
  169. *
  170. *     6. The NEG gadget will negate either the number you have just input,
  171. *        or the result after you have clicked on <=> or a function.  Note
  172. *        that NEG means 0 - <num> (2's complement.  This isn't the same as
  173. *        NOT (1's complement).
  174. *
  175. *        All the other boolean gadgets work on the principle
  176. *        <num1> <gad> <num2> = <result>, just like <+> <-> <*> </>.
  177. *
  178. *     7. The CLR gadget works in the following way:
  179. *        If used while entering a number, that number will be cleared.
  180. *        If clicked again, the stored result will also be cleared.
  181. *        If clicked as the first key after <=>, the result will be cleared.
  182. *
  183. *     8. All functions may be chained.  That is:
  184. *          (n + m = * o = / p =), is equivalent to (n + m * o / p =).
  185. *
  186. *     9. This is my first effort at a SIGNED algebraic calculator.  At
  187. *        the time it seemed like adding a calculator to the Help! program
  188. *        would simply be increasing the value for the user.  It turned out
  189. *        to be anything but simple.  Just look at the number of unsigned
  190. *        calculators running around.  Compared to this, writing Help! was a
  191. *        piece of cake.  The point of this is, that I've tried very hard to
  192. *        make this calculator conform to accepted conventions.  If it turns
  193. *        out that there is an esoteric bug lurking somewhere, please contact
  194. *        me so that I can improve the program.
  195. *
  196. *        * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  197. *
  198. *     I hope you enjoy using Help!  If you like it, please send me $10.
  199. *     If you don't like it enough not to send the $10, don't use it.  It's
  200. *     all between you and your concience.  If shareware ceases to be viable,
  201. *     there won't be any more shareware.  'Nuff said.
  202. *
  203. *     If you have any comments or suggestions, I would like to hear them.
  204. *     Leave a message on the board listed below, or write me a letter via
  205. *     US Snail.  If you have problems with Help!, please try to document
  206. *     them as thoroughly as possible, so as to facilitate bug hunting.
  207. *
  208. *                                                              The Author
  209. *
  210. *     >> No warrantee of any kind whatsoever expressed or implied! <<
  211. *
  212. *     This program is shareware, NOT public domain, and is copyrighted
  213. *     by the author.  All rights are reserved.  This program may be freely
  214. *     distributed if the following conditions are observed:
  215. *
  216. *       1. This notice must be distributed intact with the program.
  217. *       2. The following files must be distributed intact with the program.
  218. *
  219. *                   Help!        -    Executable
  220. *                   Help!.info   -    Icon (for you WorkBench folks)
  221. *                   Help!.doc    -    Documentation
  222. *                   Example.txt  -    Example user HelpFile
  223. *
  224. *       3. Only a reasonable distribution fee may be charged, such
  225. *          as by User Group PD Libraries.
  226. *       4. Commercial use is prohibited without the author's written
  227. *          consent.
  228. *
  229. *     The assembly source for this program, Help.asm, may be obtained
  230. *     by sending either a 3 1/2" disk and $15.00, or $20.00 to the address
  231. *     listed in the opening notice of the program.
  232. *
  233. *       I can be reached at:     The Symposium
  234. *                             Amiga Development BBS
  235. *                        1 Meg Memory - 33 Meg Hard Drive
  236. *                     300/1200, 8-N-1, 24 hr, (503) 935-7883
  237. *                           Another Citadel-68K BBS
  238. *
  239. *     (This BBS is devoted to Amiga software and hardware development, and
  240. *      all users are required to register.  Just follow the instructions.)
  241. *****************************************************************************
  242.