home *** CD-ROM | disk | FTP | other *** search
/ PDA Software Library / pdasoftwarelib.iso / HP95_100 / UTILITY / VR100 / VR.DOC < prev    next >
Encoding:
Text File  |  1993-12-30  |  46.4 KB  |  1,274 lines

  1. What's new in version 1.1 ?
  2. -----------------------------------------------------------
  3.  
  4. If you are a former VR 1.0 or 1.05 user eager to know
  5. details on the new features that V1.1 offers, simply search
  6. for the string 'V1.1:' - all new features have been marked
  7. in this way.  For an overview, check the file WHATSNEW.DOC.
  8.  
  9.    
  10. Introduction and marketing hype
  11. -----------------------------------------------------------
  12.  
  13. VR stands for 'vertical reader' and will add another use to
  14. your palmtop: reading 'electronic texts'. (In short, etexts
  15. - these are simply ASCII files and can range from
  16. short-stories to entire books and novels.) Read a book or
  17. short-story wherever you have your palmtop with you: on the
  18. train, on the plane, in that boring conference - no need to
  19. carry piles of paper along.
  20.  
  21. VR allows you to hold your palmtop like you would hold a
  22. book: upright, in one hand. Text is much easier to read this
  23. way - the distances the eye has to travel are reduced.  VR
  24. further increases readability through the use of
  25. proportional fonts and on-the-fly word wrapping. It comes
  26. with its own little menu system and 'GUI' - all navigation
  27. and control keys are conveniently located near your thumb.
  28.  
  29.  
  30. Installation
  31. -----------------------------------------------------------
  32. Installation is described in VRINST95.DOC for the HP95
  33. version of VR, and VRINSTAL.DOC for the HP100 (and CGA
  34. compatibles) versions. You will have only one of these
  35. files, depending on which archive you got.
  36.  
  37.  
  38. A sample run
  39. -----------------------------------------------------------
  40.  
  41. Unless you already registered your copy of VR, it will
  42. first display a shareware reminder. You can get a brief
  43. overview of the registration alternatives (including
  44. author's address for sending a postcard, and the SWREG id)
  45. by hitting the [R] key at this moment. Otherwise, hit [F10]
  46. and the list of available texts will appear. Select one of
  47. the available texts with the cursor keys, and hit F10 to
  48. accept your choice.  (F9 in VR always means CANCEL or QUIT,
  49. while F10 is the 'OK' or SELECT key. It also doubles as a
  50. MENU key.)
  51.  
  52. (You can also change drive or directory by selecting the
  53. corresponding entries. The '<..>' entry brings you up one
  54. directory level. You can directly select the <..> entry by
  55. hitting the '.' key.  Additionally, hitting '*' will show
  56. all files regardless of the settings in your CFG file. A
  57. letter will select the corresponding drive.)
  58.  
  59. You should now see the first page of your selected text.
  60. (Unless you previously opened this text, in which case VR
  61. would put you at the page where you left off. Hit [-] in
  62. this case to get to page one).  Now, hit the [*] key a few
  63. times to select a font that you find pleasing to read. Use
  64. the cursor keys to page forward and backward.  You may quit
  65. VR by hitting [F9], then [F10] to confirm.  (VR also
  66. supports the more conventional quit sequence [MENU][Q], if
  67. your palmtop has a [MENU] key). To quit immediately with no
  68. questions asked, hit [Q].
  69.  
  70.  
  71. A word about word wrap, page positions and rescan
  72. -----------------------------------------------------------
  73.  
  74. Unlike other reader programs, VR doesn't have an 80 column
  75. screen at its disposal and can't output lines from the
  76. original text verbatim.  It must break them down into
  77. smaller units by using word wrap and proportional fonts. To
  78. save memory, VR doesn't read the whole text into memory, but
  79. works directly on the file level. VR also tries to gain more
  80. space on the screen by reducing horizontal and vertical
  81. whitespace (blanks and empty lines) a bit. While you are
  82. reading, VR remembers the file positions of the pages you
  83. have visited, so that you can get back to previous pages.
  84.  
  85. Because of this, VR can't directly jump to the end of your
  86. text, for example, if it has not seen the last page yet.
  87. This is also the reason why you can confuse VR by changing
  88. fonts while reading. When you change the text font, the
  89. amount of text that fits on a page is very likely to change.
  90. This in turn invalidates the page positions VR has
  91. remembered - they were valid for the font previously used.
  92. The effect is overlap or gaps (depending on the new font
  93. chosen) between pages. Don't worry, this will only happen
  94. when paging backwards, and is easy to fix.
  95.  
  96. The solution is called 're-scan'. VR can be instructed to
  97. re-read your text without actually displaying it, storing
  98. updated page positions as it scans along. This will result
  99. in consistent pages, and will allow you to jump to the last
  100. page of the text. Because scanning may take a long time for
  101. large texts (it can process about 3 pages per second on an
  102. HP100LX), this operation is not automatically done but is
  103. available from the menu.
  104.  
  105.  
  106. VR command overview
  107. -----------------------------------------------------------
  108.  
  109. All VR commands are directly accessibly via keystroke, but
  110. we'll access them through the menu first. Hit [F10] to pop
  111. up VR's main menu.
  112.  
  113. To select a command from the menu, move the selection bar
  114. using the cursor keys, and hit [F10] or [Enter] to accept.
  115. You may also select a command by its hotkey (displayed in
  116. angular brackets). The hotkey will work whether there's a
  117. menu displayed or not. Commands that have the ellipsis (the
  118. three dots) in the menu will pop up further choices (with
  119. another chance to cancel), while the others will execute
  120. immediately.
  121.  
  122. To cancel the main menu without a selection, hit [F9],
  123. [ESC] or the [MENU] key. (Note that you can also pop up the
  124. menu again using the [MENU] key - it acts as a toggle).
  125.  
  126. Let's look at the various commands in turn.  
  127.  
  128. (NOTE: the hotkeys in angular brackets will reflect the
  129. current keyboard layout. This file shows the default layout,
  130. and may not show the correct hotkeys if you used VR's
  131. keyboard redefinition feature to change them)
  132.  
  133.  
  134.  +  About VR ... [?]
  135.  
  136. This command will issue some information on your VR version
  137. and its author. Other stuff may be hidden here ... give it a
  138. try if you just registered.
  139.  
  140.  
  141.  +  New Text ... [/]
  142.  
  143. Will pop up a menu of texts in the VR text directory. (If
  144. your VR version is unregistered, the registration reminders
  145. will be displayed again at this moment)
  146.  
  147. Select a text from the list and hit [F10] to accept your
  148. selection, or cancel using [F9]. If you select a new text,
  149. the page positions, current page, text font and bookmarks
  150. (see below) of the current text are saved first, unless you
  151. disabled this feature in the configuration file. Then, VR
  152. tries to recover the above information for the newly opened
  153. text. (These are stored in *.VPG files that have the same
  154. name as the text file they refer to.)
  155.  
  156. Note: The [.] key will take you up one directory level -
  157. same as selecting the <..> entry. The [*] key will show all
  158. files, regardless of the filter settings in the config file.
  159. This corresponds to selecting the '*.*' entry. Hitting a
  160. letter will switch to the corresponding drive, if available.
  161. The 'Drives' option in the config file controls which drives
  162. are listed as available. (See 'Configuration' below).
  163.  
  164.  
  165.  +  Del Text ... [Del]
  166.  
  167. Be careful with this command, as it actually deletes text
  168. files. It will prompt for a text to be deleted, and ask for
  169. confirmation first before actually doing so. (In order to
  170. make you notice that you're doing something potentially
  171. dangerous, the main text window gets inverted before the
  172. confirmation dialog is displayed. If you confirm the
  173. deletion, VR deletes both the text file and the
  174. corresponding *.VPG file (if present). (The VPG file holds
  175. page start positions and other information for the next time
  176. you would open this text.)
  177.  
  178. [Text files - especially books - can use up quite a bit of
  179. disk storage.  I usually transfer texts from the desktop to
  180. the palmtop, and delete them there as soon as I've finished
  181. reading one. This is the reason why the delete command is
  182. there. Deleting a text file via VR is usually faster than
  183. doing so via the filer. VR will delete an existing VPG file,
  184. too. (VPG files are files that VR creates in order to
  185. remember page positions and bookmarks of texts you already
  186. opened). In addition, VR notices if you delete a file that's
  187. still being displayed, and closes this text first.  You will
  188. immediately get the text selection dialog in this case.]
  189.  
  190.  
  191.  +  Sel Font ... ["]
  192.  
  193. This command will pop up a menu of text fonts currently 
  194. present in your VR directory.
  195.  
  196. Select a font to be used, and accept it using [F10] or
  197. cancel the menu with [F9]. Be sure to read the section
  198. entitled 'A word about word wrap, page positions and
  199. rescan' above.  Also refer to the chapter on font
  200. nomenclature (naming of fonts) below. If you upgraded
  201. from VR 1.0 or 1.05, also see the chapter on 'new font
  202. management' below.
  203.  
  204.  
  205.  +  Nxt Font     [*]
  206.  
  207. This command simply cycles through your text fonts without
  208. any further interaction - it is probably most useful when
  209. directly accessed on the keyboard (by pressing [*]), but
  210. was included in the menu for completeness.  (In this way,
  211. the menu is also a handy quick-reference for the keyboard
  212. assignments. The menu always reflects the current keyboard
  213. layout, btw.). See the chapter on 'new font management' for
  214. a more detailed description of the 'Next Font' function.
  215.  
  216.  
  217.  +  First Page    [-]
  218.  
  219. Jumps to the very first page of the current text, as you
  220. would expect.
  221.  
  222.  
  223.  +  Last Page     [+]
  224.  
  225. This is less obvious, as this command does _not_ necessarily
  226. jump to the very last page of your text. Instead, it can
  227. only jump to the last page VR has ever seen of this text.
  228. For an explanation of this behaviour, refer to the section
  229. entitled 'A word about word wrap, page positions and
  230. rescan' above. The last page that VR currently knows is
  231. displayed in the status window, see below.
  232.  
  233.  
  234.  +  Drop Bmk ... [.] 
  235.  +  Goto Bmk ... [=]
  236.  
  237. These two commands are used to drop bookmarks and jump to
  238. them. A bookmark is simply a saved position in the text
  239. file that you can later return to. Ten bookmarks are
  240. available - they are all initialized to the start of the
  241. file. When you select 'Drop Bmk', the list of all existing
  242. bookmarks with their current page numbers is displayed.
  243. Select the bookmark you wish to use, and hit [F10] to
  244. deposit it on the current page. You can later go back to
  245. that spot using 'Goto Bmk'. Note that while the bookmark
  246. menu is displayed, you can hit the digits from 0 to 9 to
  247. quickly select from the list without having to move the
  248. cursor. This works with 'Goto Bmk' as well as with 'Drop
  249. Bmk'. When you press a digit with _no_ menu displayed, the
  250. corresponding bookmark is dropped on the current page.
  251.  
  252. Note also that bookmarks really remember file positions, not
  253. pages.  Suppose you're reading a text in a rather tiny font,
  254. drop bookmark 1 on page 7 and then later decide to switch to
  255. a larger font and do a rescan (see section entitled 'A word
  256. about word wrap, page positions and rescan' above). The page
  257. number of bookmark 1 will now be higher because pages
  258. contain less text. Also, bookmark 1 will probably not be on
  259. the top of a page any more. When you jump to bookmark 1, VR
  260. will try to find the correct location regardless of current
  261. page size.
  262.  
  263.  
  264.  +  Full rescan  [<]
  265.  +  Scan to end  [>]
  266.  
  267. These two commands scan your text as if you were reading it
  268. very fast - without displaying the pages (the status window
  269. is updated though, watch it to see the scan progress). A
  270. full rescan starts at page 1, while a rescan to end starts
  271. at your current page. You would do a full rescan to ensure
  272. correct page positions after a font change, for example. A
  273. reason for a 'scan to end' might be that you want to be
  274. able to go to the last page of the text.
  275.  
  276.  
  277.  +  V1.1: Search ...  [s]
  278.  +  V1.1: Search Next [n]
  279.  
  280. These functions permit searching for a pattern that you
  281. enter, or predefined patterns that have been previously set
  282. up in the configuration file. (See the description of the
  283. [Patterns] section for details)
  284.  
  285.  'Search' will pop up a selection dialog, while 'Next' will
  286. search again for the previous pattern. Both can optionally
  287. use 'regular expressions' ('regex', in short). If you are
  288. not familiar with these, refer to TREX.DOC - regular
  289. expressions are explained in detail there. TREX.EXE is a
  290. small program that you can use to experiment with regular
  291. expression searching.
  292.  
  293. NOTE: Regular expressions are off by default, until you
  294. activate them. Use the [R] command (described below) to
  295. switch regex usage on or off. Note also that searching
  296. is case insensitive when regular expressions are off.
  297.  
  298. To illustrate regex versatility, lets have some examples
  299. here, though.
  300.  
  301.   This regular expression:  Searches for:
  302.   [0-9]+                    any sequence of digits
  303.   95|100                    95 or 100
  304.   HP(95|100)LX              HP95LX or HP100LX
  305.   [pP]almtop                palmtop or Palmtop
  306.   [a-zA-Z]+                 lowercase or uppercase word
  307.  
  308. NOTE: the search function searches in the original file,
  309. using the line structure of that file. It _starts_
  310. searching at the current top of page, however (actually, it
  311. starts with the _second_ display line, to be precise). This
  312. may cause two effects that one has to be aware of to
  313. understand the behaviour:
  314.  
  315.  1.) If 'search' finds an occurence of a pattern in the
  316. file, it stops searching and displays that line on top of
  317. the page.  Due to wrapping, the actual pattern match may be
  318. displayed further down on the VR page, and not in display
  319. line one. VR will highlight the line containing your
  320. search pattern.
  321.   
  322.  2.) If you use 'Search Next' after such a case, VR will
  323. start searching with the second line of the VR display.
  324. Therefore, it can eventually find the same occurence again.
  325. The match will move up display line by display line. 
  326.  
  327. NOTE: A successful search will position the next page to
  328. the location in the file where the pattern was found. You
  329. can go back to your previous position with the 'Prev Page'
  330. command. 
  331.  
  332.  
  333.  +  V1.1: Extras ...   [x]
  334.  
  335. The 'Extra' menu contains a collection of options and
  336. commands that are more rarely used, and are mostly
  337. configuration options. You can go directly to the extra
  338. menu by hitting its 'hot key': [x].
  339.  
  340. The various extra menu items are listed below:
  341.  
  342.  
  343.  + V1.1: Set regex ... [r] (on extra menu)
  344.  
  345. This function enables or disables regular expressions in
  346. the search command. If you disable regular expressions,
  347. searching will be a bit faster, but all the regex special
  348. characters loose their meaning and will be used 'as is'.
  349. (This is also true for predefined patterns from the config
  350. file!)
  351.  
  352. With regular expressions disabled, the search command will
  353. behave like the traditional search function of text editors.
  354.  
  355. Note that the 'set regex' function will ask you whether to
  356. enable or disable regex. The default choice will always be
  357. the opposite of what is currently selected - making toggling
  358. this switch easy. Also note that this setting is saved in
  359. VR.SAV, thus survives from one VR session to the next.
  360.  
  361.  
  362.  + V1.1: Rotate 180    [c] (on extra menu)
  363.  
  364. This will rotate the VR display by 180 degrees - a very
  365. popular request from VR 1.0 and 1.05 users. Here it is -
  366. you can now hold your palmtop in the 'other' hand, or even
  367. switch orientation dynamically from time to time. VR has two
  368. separate keyboard tables for normal and rotated mode, so
  369. you can redefine the keyboard layout to your likings in
  370. both modes independently. VR will remember the orientation
  371. that you used the last time you ran it, and will come up in
  372. this mode the next time.
  373.  
  374. Btw, while the [c] hotkey might mean '[c]hange orientation'
  375. this key was really chosen for the nice mnemonic (CALC)
  376. legend that is has on the HP100LX.
  377.  
  378.  
  379.  + V1.1: Autoscroll [}] (on extra menu)
  380.  
  381. This will start autoscroll (acts as a toggle). While
  382. autoscroll is active, a 'single line scroll' command will
  383. be automatically generated every few seconds. (See 'Scroll
  384. Delay', below). You can stop auto-scroll by issuing this
  385. command a second time.
  386.  
  387.  
  388.  + V1.1: AutoJmp  ... []] (on extra menu)
  389.  
  390. This will set the 'jump' increments used in auto-scroll.
  391. Values available are 1, 2, 8 and 16 pixel lines at a
  392. time. 1 will yield a nice but slower soft scroll, 16
  393. will give a fast but 'jumpier' whole line scroll.
  394.  
  395.  
  396.  + V1.1: LineJmp  ... [{] (on extra menu)
  397.  
  398. Basically the same as 'AutoJmp', but sets the increment
  399. used in the manual 'Line +' command.  (described below)
  400.  
  401.  
  402.  + V1.1: Scrl Dly ... [;] (on extra menu)
  403.  
  404. This will influence auto-scrolling speed. The higher you
  405. set this delay parameter, the slower the scroll will be.
  406. The value controls the time that passes between two 'single
  407. line' commands automatically inserted by the scrolling
  408. logic. Note that you can still issue all VR commands, even
  409. when auto-scroll is on.
  410.  
  411. Note: To get the approximate delay in seconds, divide the
  412. value you selected by 18.
  413.  
  414.  
  415.  + V1.1: Def Key  ... [k] (on extra menu)
  416.  
  417. This functions allows customizing the VR keyboard layout to
  418. your gusto. You can also use it to create a situation where
  419. you'll be completely lost as to where what function is, so
  420. be careful - you have been warned.  (See the 'Hints' below
  421. if you came to this spot with that problem)
  422.  
  423. The redefinition command works in three stages. First, you
  424. will be asked to hit the 'current' key - the one that you
  425. want to 'move', i.e.  whose function you'd like to be
  426. elsewhere in the future. Of course you have to hit a key
  427. that _has_ a function assigned to it currently.
  428.  
  429. Then, you will have to hit the key you would like the
  430. function on. (The 'new' key). This key may _not_ have a
  431. function assigned to it already.
  432.  
  433. Finally, you'll have to provide a name for the new key.  If
  434. you hit a letter or digit key, just use that. If you
  435. selected a non-printing key, use a mnemonic abbreviation
  436. (four letters max) that you'll be able to associate with
  437. the key later. (Examples: PDN for Page Down, LF for Left,
  438. RT for Right, etc.). 
  439.  
  440. After you redefined a key, VR will ask if you want to save
  441. your definitions to the VRKEYS file. (Making them
  442. permanent) If you just wanted to try the redefinition
  443. feature, answer no, and the new definition will be active
  444. for the current session only.
  445.  
  446.  
  447. Some keyboard redefinition hints:
  448.  
  449. - choose meaningful names for your new keys. You can always
  450. find out where a certain function is by looking at the menu
  451. - provided that you can remember the names you gave to your
  452. keys, and what keys were meant.
  453.  
  454. - don't include the angular brackets ([]) in a key name - 
  455. VR will provide them in the menues itself.
  456.  
  457. - if you change the location of the 'Menu' key, be sure to
  458. remember where it is - this key is not listed in the menu,
  459. of course. 
  460.  
  461. - there is no direct way to swap two keys - you'll have to
  462. use an unassigned key as a temporary. (If you need to swap
  463. keys [A] and [B], which are both used, move key [A] to [X],
  464. move key [B] to [A], and finally [X] to [B]. [X] should be
  465. and unused key)
  466.  
  467. - You can change the name you gave a certain key by
  468. redefining this key to itself (select 'define key', then
  469. hit it twice), and then entering the new name for the key.
  470.  
  471. - if your keyboard assignments get completely messed up,
  472. delete the VRKEYS files. This will cause VR to revert to
  473. its built-in defaults the next time it is started. If you
  474. use rotated mode, you will need to swap the 'Page Up' and
  475. 'Page Down' keys after this. You can of course also use
  476. a backup of the VRKEYS files to recover the original 
  477. assignments.
  478.  
  479. - if you don't use VR in rotated mode, you can delete
  480. VRKEYS.ROT to save some space.
  481.  
  482. - if you hit ESC during key redefinition, VR asks if you
  483. mean the [ESC] key as such, or want to back out of the 
  484. redefinition. Redefining the [ESC] key is not recommended,
  485. though.
  486.  
  487.  
  488.  + V1.1: Del Font ... [BSP] (on extra menu)
  489.  
  490. This function permits to delete the currently selected text
  491. font. It is useful if you want to evaluate fonts:  copy
  492. them to your HP100LX, use the 'Select Font' (["]) function
  493. to position to the first font, and delete those that you
  494. don't want to keep. (You can switch from one font to the
  495. next one using the 'Nxt Font' ([*]) function)
  496.  
  497. Note: 'Delete font' is on the backspace key in the original
  498. keyboard layout. It will first ask if you actually want to
  499. delete the current font, inverting the text window in the
  500. same way as 'Delete Text' does, to get your attention. If
  501. you successfully delete a font, the first one of the VR
  502. directory will be used instead - unless you delete all fonts,
  503. in which case an internal 'emergency' font gets activated.
  504.  
  505.  
  506.  + V1.1: Next Page  [RT] (on extra menu)
  507.  
  508. Positions to the next page. This function is on the menu
  509. for completeness. Note that the 'Next Page' function is
  510. also available via the space bar. You can separately move
  511. these two keys elsewhere using keyboard redefinition if you
  512. want to - they will always do exactly the same, though.
  513.  
  514.  
  515.  + V1.1: Prev Page  [LF] (on extra menu)
  516.  
  517. Positions to the previous page. This function is on the
  518. menu for completeness.
  519.  
  520.  
  521.  + V1.1: Line +     [p]  (on extra menu)
  522.  
  523. Scrolls a single line. While you scroll 'into' a page, VR
  524. displays the number of lines that scrolled off the top of
  525. the page in the status window (separated by a dot from the
  526. page number.) It also remembers the corresponding file
  527. offset positions so that you can back up using the 'Line -'
  528. command. 
  529.  
  530.  
  531.  + V1.1: Line -     [l]  (on extra menu)
  532.  
  533. Backs up a single line - until at top of the current page.
  534. You can't back up beyond the page top.
  535.  
  536.  
  537.  +  Quit         [Q]
  538.  
  539. Well, the quit command leaves VR. There are actually two
  540. quit commands:  hitting the CANCEL key ([F9]) with no menu
  541. displayed will ask for confirmation before quitting.
  542. Hitting [F10][Q] or [MENU][Q] or just [Q] will leave VR no
  543. questions asked. 
  544.  
  545.  
  546. The status window
  547. -----------------------------------------------------------
  548.  
  549.  
  550. VR uses two lines on the bottom of the screen to display
  551. some status information. The first line looks like this:
  552.  
  553.    26/27 (50%) SPAB0015 B3
  554.  
  555. The first number pair gives the current page number, and
  556. the number of the highest page that VR can currently go to.
  557. (It will do so when you hit the [+] key or select the
  558. corresponding command from the menu).
  559.  
  560. V1.1: If you used the single-line scroll command, or if you have
  561. autoscroll active, the number of lines scrolled of the top
  562. of the current page will be displayed also, like this:
  563.  
  564.    26.4/27 (52%) SPAB0015 B3
  565.  
  566. Here, the single-line scroll command has been used four
  567. times.  Note that you can use the single-line backscroll
  568. command [L] only if there's a value displayed after the
  569. decimal point.  You cannot single-line scroll back beyond a
  570. page boundary.
  571.  
  572. The percent value displayed in parentheses is an indication
  573. of your position in the file. A low percentage means near
  574. the start of the text, a high percent value is near its
  575. end.  This value does not, unlike page numbers, depend on
  576. fonts.
  577.  
  578. V1.1: The field after the percent value shows the currently
  579. selected text font name (without path or extension). Refer
  580. to the chapter below for details on the new font management
  581. - if you are a V1.0 or V1.05 VR user.
  582.  
  583. B<#> only shows up if there's one or more bookmarks on the
  584. current page.  It will only show the first bookmark, though
  585. - the one with the lowest number. (All ten bookmarks
  586. (numbered 0 to 9) are initially on Page 1)
  587.  
  588. The second line in the status window gives information about
  589. VR version number and author.
  590.  
  591.  
  592. V1.1: Under new management: fonts and wrapping
  593. -----------------------------------------------------------
  594.  
  595. + Font management has been greatly simplified in VR 1.1.
  596. There is one disadvantage: you can no longer specify the
  597. fonts to be used for the status line or menues in the
  598. config file - default fonts will be used. The advantages
  599. outweigh, however:
  600.  
  601. - built-in fonts ensure that VR can use an emergency
  602. strategy and work even if only VR.EXE has been copied to the
  603. palmtop or all fonts have been deleted.
  604.  
  605. - VR versions before 1.1 loaded all text fonts at startup.
  606. This is no longer necessary - only one font is loaded and
  607. kept in memory.  This both frees up memory and accelerates
  608. startup.
  609.  
  610. - Fonts copied to the VR directory are immediately
  611. available for selection. Fonts deleted disappear from the
  612. selection menu, V1.1 in fact has a 'Delete Font' function
  613. (originally on the backspace key) to help you eliminate
  614. fonts that you don't want to keep on the palmtop.
  615.  
  616. - The whole concept of font number no longer exists, the
  617. entire [Fonts] section of VR 1.0 and 1.05, with its
  618. complicated and error-prone settings has been eliminated.
  619.  
  620. The [*] key (Next Font function) now tries to find the
  621. currently used font in the VR directory, and if found, uses
  622. the next one in the list (wrapping to the first one on the
  623. list if necessary). If the current font is not found, the
  624. first one in the list is used too, unless there are _no_
  625. fonts at all in which case the built-in emergency font
  626. (named INTERNAL) is used.
  627.  
  628. + Wrapping has been enhanced to detect paragraph breaks. A
  629. line starting with blanks will cause VR to start a new
  630. line. VR can now be used to read poetry, provided the poems
  631. are indented at least one space. In addition, you can
  632. define 'force wrap' strings that will simplify reading
  633. email, for example. See the paragraph on 'Wrap.<Ext>'
  634. entries in the chapter on configuration ([Texts] section)
  635. below for details and an example.
  636.  
  637.  
  638. Starting VR from MSDOS
  639. -----------------------------------------------------------
  640.  
  641. You can launch VR from the DOS commandline. It accepts an
  642. optional argument, the file to be displayed. You can either
  643. specify a file in the currenty directory, or use a complete
  644. path with an optional drive specifier. Don't use relative
  645. or incomplete paths, though. VR will show the directory
  646. contents in its file selection box, and will highlight the
  647. selected file, so that you can confirm it by simply
  648. pressing [F10] or [Enter]. Note: your file must match the
  649. TextExt patterns from the config file, or it won't get
  650. displayed.  (In this case, hitting [*] while in the file
  651. selection dialog may cause it to show up)
  652.  
  653.  
  654. Configuration
  655. -----------------------------------------------------------
  656.  
  657. Customization of VR is done in VR.CFG, an ASCII file that
  658. can be modified with any editor - MEMO for example (if you
  659. have an HP palmtop). Note that changes in VR.CFG will not
  660. take effect while VR is still running - you have to quit and
  661. restart it in this case.
  662.  
  663. HP95 users: the configuration file is named VR95.CFG in your
  664. case.
  665.  
  666. VR.CFG consists of sections, comments and assignments. If
  667. you ever saw a WIN.INI file, you will know this format.
  668.  
  669. A line starting with a semicolon (';') is a comment - these
  670. are simply ignored by VR.
  671.  
  672. A section is simply a name enclosed in angular brackets. It
  673. defines the 'topic' that the following assignments belong
  674. to. All assignment lines following a section belong to that
  675. section.
  676.  
  677. An assignment has the form 'Name = Value'.
  678.  
  679. Let's have a look at the most important sections and
  680. assignments:
  681.  
  682.  
  683.  The [User] section
  684.  
  685. This section will contain your registration information.
  686. Basically, the 'UserName' variable will get hold your name,
  687. and 'Serial' will be an activation code that I'll send to
  688. you as soon as I get your registration (either postcard,
  689. SWREG registration (Id 1719), or confirmation of P.G.
  690. donation) Please refer to the 'REGISTER.DOC' file for
  691. details on VR registration.
  692.  
  693.  
  694.    The [Options] section
  695.  
  696. As the name implies, some general options can be set here.
  697.  
  698.  + 'InvStat' determines whether the status window gets
  699. inverted.  Set InvStat to 1 if you want this, 0 otherwise.
  700.  
  701.  + 'TextFrame' controls wether a frame is drawn around the
  702. text window. This looks nices, but costs a few pixels
  703. horizontal display space. Setting both TextFrame and
  704. InvStat to 0 is not recommended. (Hard to read)
  705.  
  706.  + if 'SaveStatus' is set to 1 (recommended), VR will try
  707. to remember the current settings status next time you start
  708. it. It will record the page positions, current page number,
  709. bookmarks and current font of the texts visited, the
  710. directory and file name of the last loaded text and the
  711. scroll delay and jump settings as well as the last
  712. orientation (normal or rotated) used. Text-specific
  713. information (like page positions and bookmarks) is saved to
  714. a file with the same name as your text, but the extension
  715. 'VPG'.  This file will be created in the same directory as
  716. the text file.  If you want VR to create all the VPG files
  717. in the VR directory instead, set 'SaveStatus' to 2.
  718.  
  719.  + V1.1: the 'Drives' variable controls which drives will
  720. be selectable in the file selection dialogs in VR. It
  721. should be a semicolon-separated list, like this:
  722.  
  723.    Drives = 'A:;C:;D:'
  724.  
  725. This would make drives A, C, and D selectable. The default
  726. (if 'Drives' is not present) is 'A:;C:'.
  727.  
  728.  + V1.1: if you like, you can put all your font files in a 
  729. separate directory. Use the 'FontDir' variable to tell VR
  730. where to look for fonts. Example:
  731.  
  732.   FontDir = 'F:\VR\FONTS\'
  733.  
  734. VR will look in the directory where its executable resides
  735. by default.
  736.  
  737.  
  738.   The [Patterns] section
  739.  
  740. V1.1: This section holds the default patterns for regular
  741. expression searching. Each entry consists of the actual
  742. pattern (regular expression), and an optional name. The
  743. entries are of the form 
  744.  
  745.   P<number> = '<regex>'
  746.   N<number> = '<name>'
  747.  
  748. <number> starts at 1, must be consecutive, and 10 at most.
  749.  
  750. The 'P<Number>' is the actual regular expression that will
  751. be searched for, while the corresponding 'N<number>' string
  752. will be displayed in the search menu. This allows giving
  753. meaningful names to the somewhat cryptic-looking search
  754. patterns.
  755.  
  756. See the config file for some examples. Regular expressions are
  757. explained in TREX.DOC. 
  758.  
  759.  
  760.    The [Text] section
  761.  
  762.  + 'TextExt' will control which text files are displayed in
  763. the file selection dialog. It is a semicolon-separated list,
  764. like this:
  765.  
  766.    TextExt = *.txt;*.doc;*.mes;*.sav
  767.  
  768. This would instruct VR to only display files with the
  769. extension TXT, DOC, MES and SAV. (Note that you can always
  770. get all files by hitting [*] while in the file selection
  771. dialog)
  772.  
  773.   + 'DefFont'
  774.  
  775. Specifies the default font to be used when loading a new
  776. text. V1.1: Note that DefFont now refers to a font name,
  777. (without path or extension) no longer to a number as in V1.0
  778. or 1.1. 
  779.  
  780.   + 'Wrap.<Ext>' entries.
  781.  
  782. V1.1: These entries allow you to specify, per file
  783. extension, a number of strings that will, when encountered
  784. in column 1 of the original text, cause VR to 'wrap' too,
  785. i.e. start a new line. Sounds complicated ? It isn't,
  786. though. Imagine reading a CompuServe message file (or other
  787. news or email).  Each message starts with a header like
  788. this:
  789.  
  790.   #: 0 S11/Saved Msg <REP 73299>
  791.       27-Aug-93 08:46:14
  792.   Sb: VR - Vertical Reader
  793.   Fr: Gilles Kohl 100114,3146
  794.   To: fred kaufman 72560,36
  795.  
  796. It would normally be wrapped by VR, looking somewhat like
  797. this
  798.  
  799.   #: 0 S11/Saved Msg <REP
  800.   73299>
  801.   27-Aug-93 08:46:14 Sb: VR
  802.   - Vertical Reader Fr: Gilles
  803.   Kohl 100114,3146 To: fred
  804.   kaufman 72560,36
  805.  
  806. Using a 'Forced Wrapping' string, you can tell VR to start
  807. a new line when it encounters '#:', 'Sb:', 'Fr:' or 'To:'
  808. at the start of a line in the original file. If your message
  809. files have the MES extension, you would do this that like
  810. this:
  811.  
  812.    Wrap.MES = '#:|Sb:|Fm:|To:'
  813.    
  814. Use the vertical bar character to separate the various strings from
  815. each other.
  816.  
  817.  
  818. Font nomenclature
  819. -----------------------------------------------------------
  820.  
  821. VR fonts are named using the following system:
  822.  
  823.    letter 1: identifies the 'family'.
  824.                s: sans serif font  ('helvetica' style)
  825.                f: font with serifs ('times roman' style)
  826.    letter 2: monospaced or proportional
  827.                m: monospaced
  828.                p: proportional
  829.    letter 3: character set
  830.                a: ascii only (characters from 32 to 126 
  831.                   available)
  832.                x: extended set
  833.    letter 4: type
  834.                n: normal
  835.                b: bold
  836.    letters 5-6: width in pixel for a monospaced font,
  837.                 00 for a proportional font.
  838.    letters 7-8: depth in pixel for a monospaced font,
  839.                 approximate point size for a proportional
  840.                 font.
  841.  
  842.  
  843.  
  844.  
  845. Contacting the author
  846. -----------------------------------------------------------
  847.  
  848. You can contact me via e-mail under
  849.  
  850.    Compuserve: Gilles Kohl  100114,3146
  851.    Internet  : 100114.3146@compuserve.com
  852.    FidoNet   : 2:244/1106.3
  853.  
  854. CompuServe is the preferred way to reach me. Please don't
  855. send large email (i.e. more than 5K or so) from the
  856. Internet, as I have to pay for it.
  857.  
  858. If you need to use mail or want to send a postcard, the address is:
  859.  
  860.    Gilles Kohl,
  861.    Rudolfstrasse 12
  862.    D-76131 Karlsruhe
  863.    GERMANY
  864.  
  865.  
  866. Troubleshooting, Q & A
  867. -----------------------------------------------------------
  868.  
  869. Q: I can't launch VR from AppMgr using the hotkey (on
  870. HP100LX)
  871.  
  872. A: Check if there's another application using the same
  873. hotkey that comes first in the list of AppMgr icons. Also
  874. check if the 'Name' field in the VR entry has an '&'
  875. character preceeding the desired hotkey.  Suggested hotkey
  876. for VR is V.
  877.  
  878. If you get a message saying 'A DOS application is already
  879. open', press <Ctrl>-[123] to switch to this application
  880. (which might be VR in which case your problem is already
  881. resolved) and terminate it. Then try to start VR again.
  882.  
  883.  
  884. Q: I get the message: "Not enough memory to open
  885. application" (HP100LX)
  886.  
  887. A: This message comes from Application Manager. Close some
  888. open applications, and try again. You may also try to
  889. reduce the amount of memory allocated to VR - see 'to
  890. change the path field in the VR AppMgr entry' below.
  891.  
  892.  
  893. Q: I get the message: "Insufficient memory"
  894.  
  895. A: When started, VR checks if sufficient memory is
  896. available.  The message issued indicates that this was not
  897. the case. To make more memory available for VR, you can
  898. either change the amount of memory allocated to DOS
  899. applications in general, or specify the memory required in
  900. the path field in the VR AppMgr entry. (HP100LX)
  901.  
  902.  + To change the amount of memory allocated to DOS
  903. applications: (HP100LX) Start the Setup application (hit
  904. Ctrl-Filer), and enter [Menu]<Options> <System>. Then
  905. select <Advanced>. Enter at least 90 in the 'DOS' field. 
  906. This may affect other of your DOS application.
  907.  
  908.  + To change the path field in the VR AppMgr entry:
  909. (HP100LX) Start Application Manager (hit [&...]). Highlight
  910. the VR icon and press [F3] and TAB to the 'Path' field. Add
  911. a '|' vertical bar character (Shift '\', near the [ESC]
  912. key) and the number 90 to the contents of the 'Path'
  913. field.  If there already is a '|' and a figure, make sure
  914. it is at least 90.
  915.  
  916.  
  917. Q: I get a 'Quit VR ?' prompt when loading a text.
  918.  
  919. A: Something seems wrong with the text you're trying to
  920. load.  Switch to filer and check if there is a VPG file
  921. with the same root name as your text, and in the same
  922. directory.  Delete it, and try again.
  923.  
  924.  
  925. Q: The page up key doesn't seem to work right
  926.  
  927. (Note: the 'Page Up' key in VR is actually the 'Cursor
  928. Left' key of your palmtop - be sure you're using that key.)
  929.  
  930. A: VR may get confused if you change font size in the
  931. middle of a text. See the section entitled 'A word about
  932. word wrap, page positions and rescan' above for a
  933. description of the problem and its solution.
  934.  
  935.  
  936. Q: VR doesn't seem to remember the last text I opened
  937.  
  938. A: VR usually does this, and places the highlight bar in
  939. the text selection menu on this text. If the directory
  940. where VR is stored is write-protected, this will not work
  941. however. VR stores the last text in a file called VR.SAV in
  942. this directory. Also, if the directory where your texts are
  943. stored is write-protected, VR will not be able to remember
  944. the last page and bookmarks of your texts.
  945.  
  946.  
  947. Q: I need to save some disk space
  948.  
  949. A: Try to delete unneeded fonts. You can delete a font using
  950. the backspace ([<--]) key in VR. If you don't use rotation,
  951. you can delete VRKEYS.ROT. If you are happy with the
  952. standard key assignments, VRKEYS.NRM. As an absolute minimum,
  953. only VR.EXE (resp. VR95.EXE) is required to run VR.
  954.  
  955.  
  956. Q: Some texts look weird when viewed using VR
  957.  
  958. A: The wrapping routines in VR try to fit text into the
  959. space available as well as they can. They succeed pretty
  960. well at this with normal linear text, but will fail on
  961. tabular data where the original line breaks have to be
  962. preserved.
  963.  
  964.  
  965. Q: My old texts (opened with VR 1.0 or 1.05) don't come up
  966. in the font they used to.
  967.  
  968. A: Yes - this is due to the new font management. Your old
  969. VPG files contain the font _number_ to use, as older VR
  970. versions used a numbering scheme. The new version can
  971. directly use font names. There is an easy workaround for
  972. this problem. Edit the CFG file, and assign DefFont (in the
  973. [Texts] section) to the default font name you'd like to
  974. have. (Ex.: DefFont = FPAB0013). When detecting a numerical
  975. font reference in an old VPG file, VR will use your default
  976. font instead.
  977.  
  978.  
  979. Q: My problem is not listed above.
  980.  
  981. A: If you're on CompuServe, describe your problem in the
  982. HPHAND forum, section 'HP100LX General'. You can also send
  983. an email to one of the addresses listed above. (Using the
  984. forum might be slightly faster because one of the other VR
  985. users might have a solution for your problem before I even
  986. see it). I do not monitor HP95LX sections, or
  987. comp.sys.palmtops - if you post a question there, other VR
  988. users may be able to help you, but I won't see it.
  989.  
  990.  
  991.  Where to find more etexts
  992. -----------------------------------------------------------
  993.  
  994. There are several sources for etexts that can be read with
  995. VR:
  996.  
  997.  
  998.  + The Literary forum on CompuServe (GO LITFORUM)
  999.  
  1000. The libraries of this forum have a wealth of etexts
  1001. available for download. I'd suggest getting an overview by
  1002. downloading the summary files first. A good author to try
  1003. is George Alec Effinger, for example.
  1004.  
  1005.  
  1006.  + The Science Fiction and Fantasy Forum on CompuServe (GO
  1007. SCI-FI)
  1008.  
  1009. Lots of etexts here too. I read (and liked) SOUL.TXT by
  1010. Mike Resnick in Section 3, and BARB.TXT by John Thompson in
  1011. section 14.
  1012.  
  1013.  
  1014.  + The Travel Forum on CompuServe. (GO TRAVSIG)
  1015.  
  1016. More non-fiction here of course. You'll find travel
  1017. diaries, saved forum threads discussing issues important to
  1018. the frequent traveller, member-written reports and tips,
  1019. etc.
  1020.  
  1021. If you're in a hurry, download the files relevant to your
  1022. destination, and read while on the plane.
  1023.  
  1024.  
  1025.  + CDROMs.
  1026.  
  1027. If your PC or Mac is equipped with a CDROM drive, you can
  1028. get entire collections of etexts on CDROM.
  1029.  
  1030.  
  1031. Here's a short list - those that I have. 
  1032.  
  1033. * "World Library's 171 Stories of Murder, Mystery, Magic,
  1034. Terror &more..."
  1035.  
  1036. Definitely a must if you like Conan Doyle, Edgar Allen Poe,
  1037. H.P. Lovecraft ...  Has a complete collection of Sherlock
  1038. Holmes stories.
  1039.  
  1040. Contact (from the back of the CD):
  1041.  
  1042. WORLD LIBRARY INC., 12914 Haster Street, Garden Grove, CA
  1043. 92640. (714)748-7197 or (800)443-0238
  1044.  
  1045.  
  1046.  * Bureau Development's "Great Literature" CDROM.  (Runs on
  1047. both Mac and PC.)
  1048.  
  1049. Has the texts of 1896 literary classics. Impressive list of
  1050. authors and texts.
  1051.  
  1052. Contact (from the back of the CD):
  1053.  
  1054. Bureau Development, Inc., 141 New Road, Parsipany, NJ
  1055. 07054. (201)-808-2700
  1056.  
  1057.  
  1058. * Walnut Creek's "Project Gutenberg CDROM"
  1059.  
  1060. This CD has a wealth of etexts, both zipped and unzipped.
  1061. The texts are all from Project Gutenberg (read more about
  1062. P.G. below) and include classics like Dr. Jekyll and Mr.
  1063. Hide, Moby Dick, The Time Machine ...
  1064.  
  1065. Contact address: Walnut Creek CDROM
  1066.   1547 Palos Verdes Mall, #260
  1067.   Walnut Creek, CA 94596
  1068.   +1 510 674-0783
  1069.   email: info@cdrom.com
  1070.  
  1071.  
  1072.  + Project Gutenberg
  1073.  
  1074. Project Gutenberg was initiated by Prof. Michael S. Hart.
  1075. Their goal is to make a maximum of free electronic texts
  1076. available to everybody.
  1077.  
  1078. Send e-mail to dircompg@ux1.cso.uiuc.edu for details on the
  1079. project. (Also see the file 'register.doc' for more
  1080. addresses.)
  1081.  
  1082. To retrieve etexts via FTP: FTP mrcnext.cso.uiuc.edu
  1083. (128.174.201.12), (login 'anonymous', password
  1084. 'your@login') cd etext and snoop around.
  1085.  
  1086. To get etexts via e-mail, send the following line by itself
  1087. to almanac@oes.orst.edu
  1088.  
  1089.    send gutenberg catalog
  1090.  
  1091. then follow the instructions from the Almanac server in
  1092. Oregon.  (Attention CompuServers: receiving huge e-mail
  1093. from the Internet may be dangerous to your CIS bill)
  1094.  
  1095. Information on contacting P.G. via mail both for information
  1096. and donations is contained in the file REGISTER.DOC.
  1097.  
  1098.  
  1099. Appendix A: VFN Font file format
  1100. -----------------------------------------------------------
  1101.  
  1102. (This is probably dull stuff if you aren't into
  1103. programming)
  1104.  
  1105. VFN files have a simple structure: a header directly
  1106. followed by the bitmap defining the characters.
  1107.  
  1108.  
  1109. A.1: VFN file header
  1110. -----------------------------------------------------------
  1111.  
  1112. typedef struct {
  1113.    int maxwidth;
  1114.    int vbytes;
  1115.    int minchar;
  1116.    int maxchar;
  1117.    int isfixed;
  1118. } VFNHDR; /* Font header as read from file */
  1119.  
  1120. * maxwidth gives the number of bytes (or words) in each
  1121. character.  Each character starts with a byte (or word)
  1122. giving the actual width.  To speed up address calculations,
  1123. every character has 'maxwidth' bytes (or words), even in a
  1124. proportional font.
  1125.  
  1126. * vbytes is either one or two. It gives the height of the
  1127. font. VFN fonts come in two flavors: one byte (eight
  1128. pixels) or two bytes (a word, 16 pixels) high.
  1129.  
  1130. * minchar is the lowest character in the font. For fonts
  1131. covering the ASCII range, this is usually 32 (a space). To
  1132. find the definition of character C, subtract minchar from
  1133. it, then multiply with maxwidth and index (via a byte or
  1134. word pointer, depending on vbytes) into the bitmap.
  1135.  
  1136. * maxchar is the highest character in the font. For a font
  1137. covering the ASCII range, this is usually 126 (the tilde).
  1138.  
  1139. * isfixed is purely informative - it indicates if this is a
  1140. monospaced font or not. isfixed could also be computed by
  1141. looking at the width byte (word) for all characters - if
  1142. they are all the same, isfixed should be 1.
  1143.  
  1144.  
  1145. A.2: VFN character bitmap
  1146. -----------------------------------------------------------
  1147.  
  1148. The bitmap immediately follows the VFN header. If vbytes is
  1149. 1, it consists of bytes, if vbytes is 2, it consists of
  1150. words. For every character between minchar and maxchar, the
  1151. bitmap has vbytes * maxwidth bytes. The very first byte
  1152. (resp. word) of these tells how many of the following are
  1153. actually part of the character and should be output.
  1154.  
  1155.  
  1156. Appendix B: VRKEYS.* keyboard table file format
  1157. -----------------------------------------------------------
  1158.  
  1159. (This is probably dull stuff if you aren't into
  1160. programming)
  1161.  
  1162. There are two VRKEYS files: VRKEYS.NRM und VRKEYS.ROT. The
  1163. first one is used in normal, the second one in rotated
  1164. orientation. The keyboard table is loaded at startup and
  1165. each time the 'rotate' command is executed. It is written
  1166. when a keyboard redefinition command is executed. When
  1167. either file isn't present when it is accessed, the current
  1168. internal settings are used.
  1169.  
  1170. A VR keyboard table consists of single entries - each entry
  1171. represents one function, and looks like this:
  1172.  
  1173.   typedef struct {  
  1174.      WORD Key;
  1175.      char Desc[5];
  1176.   } KEYTABENTRY;
  1177.  
  1178. Key is the scancode, and Desc the description (legend) of
  1179. the key. It is user-supplied - prevents problems with
  1180. keyboards having a different layout or different key
  1181. naming.
  1182.  
  1183. Each keyboard table entry is seven bytes long. The position
  1184. of the entry in the file determines which function is bound
  1185. to the corresponding key. The VR functions are:
  1186.  
  1187.  typedef enum { 
  1188.                CMD_NONE = -1,
  1189.                CMD_UP     /* #0 KEY_UP  */,
  1190.                CMD_DN     /* #1 KEY_DN  */,
  1191.                CMD_LF     /* #2 KEY_LF  */,
  1192.                CMD_RT     /* #3 KEY_RT  */,
  1193.                CMD_ESC    /* #4 '\033'  */,
  1194.                CMD_RET    /* #5 '\r'    */,
  1195.                CMD_SPC    /* #6 ' '     */,
  1196.                CMD_MENU1  /* #7 KEY_MNU */,
  1197.                CMD_MENU2  /* #8 KEY_F10 */,
  1198.                CMD_NEWTXT /* #9 '/'     */, 
  1199.                CMD_DELETE /* #10 KEY_DEL */,
  1200.                CMD_SELFNT /* #11 '\"'    */, 
  1201.                CMD_CHGFNT /* #12 '*'     */, 
  1202.                CMD_GTOMRK /* #13 '='     */, 
  1203.                CMD_DRPMRK /* #14 '.'     */, 
  1204.                CMD_GTOTOP /* #15 '-'     */,
  1205.                CMD_GTOBTM /* #16 '+'     */,
  1206.                CMD_CANCEL /* #17 KEY_F9  */,
  1207.                CMD_ENDSCN /* #18 '>'     */,
  1208.                CMD_FULSCN /* #19 '<'     */,
  1209.                CMD_QUIT   /* #20 'q'     */,
  1210.                CMD_ABOUT  /* #21 '?'     */,
  1211.                CMD_DIGIT0 /* #22 '0'     */,
  1212.                CMD_DIGIT1 /* #23 '1'     */,
  1213.                CMD_DIGIT2 /* #24 '2'     */,
  1214.                CMD_DIGIT3 /* #25 '3'     */,
  1215.                CMD_DIGIT4 /* #26 '4'     */,
  1216.                CMD_DIGIT5 /* #27 '5'     */,
  1217.                CMD_DIGIT6 /* #28 '6'     */,
  1218.                CMD_DIGIT7 /* #29 '7'     */,
  1219.                CMD_DIGIT8 /* #30 '8'     */,
  1220.                CMD_DIGIT9 /* #31 '9'     */,
  1221.                CMD_INCLIN /* #32 'p'     */,
  1222.                CMD_DECLIN /* #33 'l'     */,
  1223.                CMD_SCROLL /* #34 '}'     */,
  1224.                CMD_EXTRAS /* #35 'x'     */,
  1225.                CMD_SCRJMP /* #36 ']'     */,
  1226.                CMD_LINJMP /* #37 '{'     */,
  1227.                CMD_SCRDLY /* #38 ';'     */,
  1228.                CMD_ROTATE /* #39 'c'     */,
  1229.                CMD_SEARCH /* #40 's'     */,
  1230.                CMD_SRCHNX /* #41 'n'     */,
  1231.                CMD_DEFKEY /* #42 'k'     */,
  1232.                CMD_DELFNT /* #43 '\b'    */
  1233.                CMD_DOREGX /* #44 'r'     */
  1234.  } CMDTYPE;
  1235.  
  1236. Note: -1 is not a function, the keyboard table starts with
  1237. function zero at byte zero.
  1238.  
  1239.  
  1240. Credits
  1241. -----------------------------------------------------------
  1242.  
  1243. Many thanks to Tom Rundel for valuable suggestions, ideas
  1244. and continued betatesting since the very first (baby) VR
  1245. versions.
  1246.  
  1247. Lots of thanks to Craig Payne for the fast assembly
  1248. language softscroll routines in VR 1.1, betatesting, and
  1249. lots of helpful hints, tips and suggestions.
  1250.  
  1251. Thanks to Everett Kaser and Fred Kaufmann for the hidden
  1252. limericks.
  1253.  
  1254. Thanks to Bob Graham for permission to include BEARS*.TXT
  1255. in the VR distribution archive. If you liked it, drop him a
  1256. note at >INTERNET: bgraham@uhunix.uhcc.Hawaii.edu
  1257.  
  1258. Thanks to Robert Williams for contributing VR loader
  1259. programs for the HP95. (Contained in the HP95 distribution
  1260. archive)
  1261.  
  1262. Thanks to the Executive Director of Project Gutenberg,
  1263. Prof.  Michael Hart, for making a wealth of etexts
  1264. available to the general public, and for providing
  1265. information on this organization.
  1266.  
  1267. Thanks to Dave Marsh and family for the 'impatient user'
  1268. beta test <g>.
  1269.  
  1270. Last but not least, thanks to those who registered version
  1271. 1.0 or 1.05 of VR, and to the HPHAND community on
  1272. CompuServe for their suggestions, help and support.
  1273.  
  1274.