home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / q / qhlpq.zip / QHLPQ.EXE / QHELPQ.DAT < prev    next >
Text File  |  1993-03-01  |  21KB  |  649 lines

  1. *───────────────────────────────────────────────────────────────────────┐
  2. *  QHelpQ.Dat ... Config File for QEdit (R) Ver 2.15     01 Mar 93 Rhg  │
  3. *───────────────────────────────────────────────────────────────────────┘
  4.  
  5. *                          QEdit's CONFIGURABLE KEYS
  6.  
  7. *         This file is a listing of the QEdit's configurable keys
  8. *         and QEdit's DEFAULT assignments.  It is an modified extract
  9. *         from the QCONFIG.DAT file supplied with the current version
  10. *         of QEdit (R) Advanced.
  11.  
  12. *                             OTHER CONFIGURATIONS
  13. *                 Other Configurations of QHelp are available.
  14. *                 See the README.BAT on the distribution disk.
  15.  
  16. *             NOTE:
  17. *                   This version of QHelpQ tracks these key
  18. *                   assignments.  In addition to these key
  19. *                   assignments, additional keys have been
  20. *                   assigned for use by the QHelpQ utility.
  21.  
  22. *                         see  QuickHelp ( in QHelpQ )
  23.  
  24. *                  To install the QHelpQ Key assignments you
  25. *                  must run QEdit's Qconfig utility. Use this
  26. *                  QHelpQ.DAT file and the QHelpQ.TXT file.
  27. *                  Both of these files are provided with this
  28. *                  QHelpQ utility.
  29.  
  30. *                  The below key assignments are the original
  31. *                  QEdit (R) default key  assignments.
  32.  
  33. *                  As indicated above, Some of the previously
  34. *                  unused keys have been assigned for use by
  35. *                  the QHelpQ Utility.  Additionally some of
  36. *                  the unused keys have been declared as
  37. *                  reserved for use by QEdit's TSR editor.
  38.  
  39. *                       see  RESERVED KEYS ( in QHelpQ )
  40.  
  41. *                                   ┌──────┐
  42. *                                   │ HELP │
  43. *                                   └──────┘
  44. * F1 or    Invokes the Quick Help Menu of HOT KEY assignments
  45. * ALT H
  46. *          There are two HOT KEYS used to access the QHelpQ hypertext
  47. *          help utility in the TSR mode. One is to access QHelpQ at the
  48. *          MAIN MENU, and the other is used for context sensitive help.
  49. * ALT F7   QHelpQ TSR to MAIN MENU ( or last help topic )
  50. * ALT F8   QHelpQ TSR           ( contex sensitive help )
  51.  
  52. * CTRL F2  Is used to Invoke QHelpQ as a shell ( non TSR mode )
  53.  
  54. *          Other HOT KEYS are also assigned for the non TSR mode.
  55. *          See HELP KEYS or the macro assigments, later in this file.
  56.  
  57. *                     see also Help on QHelpQ ( in QHelpQ )
  58. *                     see also QuickHelp      ( in QHelpQ )
  59. *                     see also RESERVED KEYS  ( in QHelpQ )
  60.  
  61.  
  62. *                             GENERAL INSTRUCTIONS
  63. *
  64. *  Specify control-key commands via: ^f1 - This means Control-F1
  65. *  Specify alt-key commands via: @f1     - This means Alt-F1
  66. *  Specify shift-key commands via: #f1   - This means Shift-F1
  67.  
  68. *  There is also a provision for "two key commands".
  69. *  For example, to make the Control-F1, Control-F2 sequence issue the
  70. *  exit command, try the following:
  71.  
  72. *  ^f1_^f2     Exit
  73.  
  74. *  The key here is that the commands must be separated by a '_'.
  75.  
  76. *  Multiple commands and/or text may be entered for a single key.  To do so,
  77. *  specify "MACROBegin" as the first command.  To enter text, enclose the
  78. *  text in single or double quote marks.  For example:
  79.  
  80. *  f1  MACROBegin EditFile 'help.dat' Return
  81.  
  82. *  This command would load the file 'help.dat'.  Note the return command is
  83. *  issued after the text.  This is required to terminate the QEdit prompt.
  84.  
  85. *  Following is a macro that will run make and load the results into a window:
  86.  
  87. *  MACROBegin EditFile 'errors.lst' Return Quit Dos 'make >errors.lst' Return Return HorizontalWindow EditFile 'errors.lst' Return
  88.  
  89. *  Following macro will run Turbo C on the current file:
  90.  
  91. *  MACROBegin GSave Dos 'tcc -y -M ' CurrentFilename Return
  92.  
  93. *  Finally, you can also use the scancode to represent "special keys", as
  94. *  long as this key returns a ascii character code of 0.
  95. *  For example Alt-F9 returns an ascii character of 0 and a scan code of
  96. *  112 decimal.  To make Alt-F9 issue the EditFile command, you could:
  97.  
  98. *  112  EditFile
  99. *      or
  100. *  @f9  EditFile
  101.  
  102. *  Either will work.  This becomes especially useful if you have a macro
  103. *  processor and/or special keyboard that has extended keys that QEdit
  104. *  doesn't have names for.  This gives you a method to use them.
  105.  
  106. *  Note that the order of this file is NOT important.  Arrange it however
  107. *  makes sense to you.
  108.  
  109. *  Note that the following does NOT constitute a complete listing of all
  110. *  available QEdit commands.  For a complete and updated listing of all
  111. *  of the available commands, refer to your copy of the QEdit (R) Advanced
  112. *  Reference Guide ( Version 2.07, March 1989 ), AND the QEdit (R) Advanced
  113. *  Addendum ( Version 2.1, February 1990 ).  For the QEdit (R) TSR commands,
  114. *  refer to the QEdit (R) TSR Reference Guide ( Version 1.1, February 1990 )
  115.  
  116. *  The QHelpQ utility can also be used as a source listing of ALL QEdit
  117. *  commands, both the Advanced version and the TSR version.  Use the INDEX
  118. *  and browse.
  119.  
  120. *  NOTE:
  121. *       The remainder of this file, complete with HYPER LINKS, is repeated
  122. *       in the QHelpQ utility.  Type ... ' qhelpq configurable '
  123.  
  124. *                               FUNCTION KEY SET
  125.  
  126. f1               QuickHelp
  127.  
  128. f2               AddLine
  129. f3               GPQuit
  130. f4               DupLine
  131. f5               MakeTopOfScreen
  132. f6               DelToEol
  133. f7               MarkBlockBegin
  134. f8               MarkBlockEnd
  135. f9               Shell
  136. f10
  137.  
  138. *                           ENHANCED KEYBOARD, ONLY
  139. f11
  140. f12
  141.  
  142. #f1              ToggleBoxDraw
  143. #f2
  144. #f3              Sort
  145. #f4
  146. #f5              MakeCtrOfScreen
  147. #f6
  148. #f7              ShiftLeft
  149. #f8              ShiftRight
  150. #f9
  151. #F10
  152.  
  153. *                Assigned for QHelpQ use.
  154. * #f10           see macro defination at end of file
  155.  
  156. *                           ENHANCED KEYBOARD, ONLY
  157. #f11
  158. #f12
  159.  
  160. ^f1              ToggleEGA43
  161.  
  162. *                Assigned for QHelpQ use.
  163. * ^f2            see macro defination at end of file
  164. * ^f3            see macro defination at end of file
  165. * ^f4            see macro defination at end of file
  166. * ^f5            see macro defination at end of file
  167. * ^f6            see macro defination at end of file
  168. * ^f7            see macro defination at end of file
  169. * ^f8            see macro defination at end of file
  170. * ^f9            see macro defination at end of file
  171. * ^f10           see macro defination at end of file
  172.  
  173. *                           ENHANCED KEYBOARD, ONLY
  174. ^f11
  175. ^f12
  176.  
  177. @f1              ToggleBoxType
  178. @f2              InsertLine
  179. @f3              Match
  180. @f4
  181. @f5              ScreenLeft
  182. @f6              ScreenRight
  183. * @f7            was unused ... Reserved for QHelpQ TSR Help ( MainMenu)
  184. * @f8            was unused ... Reserved for QHelpQ TSR Context Help
  185. @f9              Dos
  186. @f10             ShowEntryScreen
  187.  
  188. *                           ENHANCED KEYBOARD, ONLY
  189. @f11
  190. @f12
  191.  
  192. *                                 SPECIAL KEYS
  193. cursorup         CursorUp
  194. cursordown       CursorDown
  195. cursorleft       CursorLeft
  196. cursorright      CursorRight
  197. ^cursorleft      WordLeft
  198. ^cursorright     WordRight
  199. home             BegLine
  200. end              EndLine
  201. ^home            BegScreen
  202. ^end             EndScreen
  203. pgup             PageUp
  204. pgdn             PageDown
  205. ^pgdn            EndFile
  206. ^pgup            BegFile
  207.  
  208. #tab             TabLt
  209. tab              TabRt
  210.  
  211. ins              ToggleInsert
  212. del              DelCh
  213.  
  214. backspace        Backspace
  215. ^backspace       DelLtWord
  216.  
  217. enter            Return
  218. ^enter           ExecuteScrap
  219.  
  220. escape           Escape
  221.  
  222. grey*            Paste
  223. grey+            Copy
  224. grey-            Cut
  225. #del
  226. #ins
  227. `
  228. ~
  229. /
  230.  
  231. ^prtsc           PasteOver
  232. ^2
  233. ^6
  234. ^[
  235. ^\
  236.  
  237. * Macro to edit the file whose name is sitting at the cursor in the editor.
  238. ^] MacroBegin AltWordSet MarkWord Copy DefaultWordSet EditFile Paste Return
  239. ^-                 GetPrev
  240.  
  241. *                                ALTERNATE KEYS
  242. @a               DropAnchor
  243. @b               WrapPara
  244. @c               CopyBlock
  245. @d               DelLine
  246. @e               EditFile
  247. @f               MacroBegin MainMenu 'f'
  248. @g               DeleteBlock
  249. @h               QuickHelp
  250. @i               ToggleTabsOut
  251. @j               JoinLine
  252. @k               MarkColumn
  253. @l               MarkLine
  254. @m               MoveBlock
  255. @n               NextFile
  256. @o               ChangeFilename
  257. @p               MacroBegin MainMenu 'p'
  258. @q               MacroBegin MainMenu 'q'
  259. @r               ReadBlock
  260. @s               SplitLine
  261. @t
  262. @u               UnmarkBlock
  263. @v               ToggleTabsExpand
  264. @w               WriteBlock
  265. @x               GExit
  266. @y               GSave
  267. @z               CopyOverBlock
  268. @1               Upper
  269. @2               Lower
  270. @3               Flip
  271. *                Assigned for QHelpQ use.
  272. * @4             see macro defination at end of file.
  273. * @5             see macro defination at end of file.
  274. * @6             see macro defination at end of file.
  275. * @7             see macro defination at end of file.
  276. * @8             see macro defination at end of file.
  277. * @9             see macro defination at end of file.
  278. @0
  279. @-
  280. @=               MacroBegin MarkWord Copy Find Paste Return Return
  281.  
  282. *                                 CONTROL KEYS
  283. ^a               WordLeft
  284. ^b_a             AppendScrBuff
  285. ^b_l             GetScrBuff
  286. ^b_s             StoreScrBuff
  287. ^c               PageDown
  288. ^d               CursorRight
  289. ^e               CursorUp
  290. ^f               WordRight
  291. ^g               DelCh
  292. ^h               Backspace
  293. ^i               TabRt
  294. ^j               GotoLine
  295. ^k_b             MarkBlockBegin
  296. ^k_c             CopyBlock
  297. ^k_d             Exit
  298. ^k_e             EditFile
  299. ^k_f             ChangeFilename
  300. ^k_h             UnmarkBlock
  301. ^k_k             MarkBlockEnd
  302. ^k_l             FillBlock
  303. ^k_n             NextFile
  304. ^k_p             PrevFile
  305. ^k_q             PQuit
  306. ^k_r             ReadBlock
  307. ^k_s             SaveFile
  308. ^k_t             MarkWord
  309. ^k_v             MoveBlock
  310. ^k_w             WriteBlock
  311. ^k_x             File
  312. ^k_y             DeleteBlock
  313. ^k_z             KillFile
  314. ^l               RepeatFind
  315. ^m               MacroRecord
  316. ^n               SplitLine
  317. ^o_c             CloseWindow
  318. ^o_g             GrowWindow
  319. ^o_h             HorizontalWindow
  320. ^o_l             SetPrintLeftMargin
  321. ^o_n             NextWindow
  322. ^o_o             OneWindow
  323. ^o_p             PrevWindow
  324. ^o_r             SetRMargin
  325. ^o_s             ShrinkWindow
  326. ^o_t             CenterLine
  327. ^o_w             ToggleWordWrap
  328. ^o_z             ZoomWindow
  329. ^p               Literal
  330. ^q_a             FindReplace
  331. ^q_b             GotoBlockBeg
  332. ^q_c             EndFile
  333. ^q_d             EndLine
  334. ^q_e             BegScreen
  335. ^q_f             Find
  336. ^q_i             ToggleIndent
  337. ^q_k             GotoBlockEnd
  338. ^q_l             UndoCursorline
  339. ^q_p             PrevPosition
  340. ^q_q             RepeatCmd
  341. ^q_r             BegFile
  342. ^q_s             BegLine
  343. ^q_t             ToggleSmartTabs
  344. ^q_x             EndScreen
  345. ^q_y             DelToEol
  346. ^r               PageUp
  347. ^s               CursorLeft
  348. ^t               DelRtWord
  349. ^u               UnKill
  350. ^v               ToggleInsert
  351. ^w               ScrollUp
  352. ^x               CursorDown
  353. ^y               DelLine
  354. ^z               ScrollDown
  355.  
  356. *                                   ┌──────┐
  357. *                                   │ HELP │
  358. *                                   └──────┘
  359. *                       QEdit .. Internal
  360. *   Reference, Only ... assigned above
  361. *   @h  Quick_Help
  362. *   F1  Quick_Help
  363. *   @ F7    QHelpQ TSR        HELP ( Main Menu, or last help topic )
  364. *   @ F8    QHelpQ TSR Contex HELP
  365.  
  366. *   HERE, down for QHelpQ ... non resident mode
  367. *                        Main Menu
  368. ^F2 MACRO_BEGIN dos 'QhS MM' return return
  369.  
  370. *                        Function Keys
  371. ^F3 MACRO_begin dos 'QhS K0' return return
  372.  
  373. *                        File Pop Down Menu
  374. ^F4 MACRO_begin dos 'QhS K1' return return
  375.  
  376. *                        Window Pop Down Menu
  377. ^F5 MACRO_begin dos 'QhS K2' return return
  378.  
  379. *                        Block Pop Down Menu
  380. ^F6 MACRO_begin dos 'QhS K3' return return
  381.  
  382. *                        Search Pop Down Menu
  383. ^F7 MACRO_begin dos 'QhS K4' return return
  384.  
  385. *                        Print Pop Down Menu
  386. ^F8 MACRO_begin dos 'QhS K5' return return
  387.  
  388. *                        MACRO Pop Down Menu
  389. ^F9 MACRO_begin dos 'QhS K6' return return
  390.  
  391. *                         Edit Pop Down Menu
  392. ^F10 MACRO_begin dos 'QhS K7' return return
  393.  
  394. *                       Other Pop Down Menu
  395. @4 MACRO_begin dos 'QhS K8' return return
  396.  
  397. *                       Quit Pop Down Menu
  398. @5 MACRO_begin dos 'QhS K9' return return
  399.  
  400. *                       Cursor
  401. @6 MACRO_begin dos 'QhS KC' return return
  402.  
  403. *                       Misc
  404. @7 MACRO_begin dos 'QhS KM' return return
  405.  
  406. *                       Tabs
  407. @8 MACRO_begin dos 'QhS KT' return return
  408.  
  409. *                       toGgles
  410. @9 MACRO_begin dos 'QhS KG' return return
  411. *
  412. *  HERE, up for QHelpQ ... non resident mode
  413.  
  414. *                      OTHER ENHANCED KEYBOARD, ONLY KEYS
  415. @'
  416. @,
  417. @.
  418.  
  419. @/
  420. @;
  421. @[
  422. @\
  423. @]
  424. @`
  425. @backspace
  426. @enter
  427. @escape
  428. @grey*
  429. @grey+
  430. @grey-
  431. @grey/
  432. @greycursordown
  433. @greycursorleft
  434. @greycursorright
  435. @greycursorup
  436. @greydel
  437. @greyend
  438. @greyhome
  439. @greyins
  440. @greypgdn
  441. @greypgup
  442. @greyenter
  443. @tab
  444.  
  445. greyenter        Return
  446. ^greyenter       ExecuteScrap
  447. ^centercursor
  448. ^cursordown      LineDown
  449. ^cursorup        LineUp
  450. ^del
  451.  
  452. ^grey*
  453. ^grey+
  454. ^grey-
  455. ^grey/
  456. ^ins
  457. ^tab
  458.  
  459. centercursor
  460.  
  461. * III  VERSION 2.15 - RELEASE NOTES - AUGUST, 1991
  462. * ================================================
  463.  
  464. * New Commands in QEdit Advanced 2.15 (See explanations later in this file)
  465. * -------------------------------------------------------------------------
  466.  
  467. * AsciiChart           also OTHER menu command ( @OT )
  468. * FirstNonWhite
  469. * ListFiles            also FILE menu command  ( @FT )
  470.  
  471. * isBegLine            for macro use
  472. * isCursorInBlock      for macro use
  473. * isEmptyLine          for macro use
  474. * isEndLine            for macro use
  475. * isFirstLine          for macro use
  476. * isLastLine           for macro use
  477. * RestoreSettings      for macro use
  478. * SaveSettings         for macro use
  479. * SetAutoIndentMode    for macro use
  480. * SetInsMode           for macro use
  481. * SetScreenOff         for macro use
  482. * SetScreenOn          for macro use
  483. * SetSoundOff          for macro use
  484. * SetSoundOn           for macro use
  485. * SetWordWrapMode      for macro use
  486.  
  487.  
  488. * Additions to the Menus (command names are in []):
  489. * -------------------------------------------------
  490.  
  491. *   File menu:
  492. *     "lisT"          - invokes the new [ListFiles] command
  493.  
  494. *   Block menu:
  495. *     "copyOver"      - invokes the [CopyOverBlock] command
  496. *     "Fill"          - invokes [FillBlock] command
  497. *     "Sort"          - invokes the [Sort] (block) command (a column
  498. *                       block must be marked)
  499. *   Macro menu:
  500. *     "Execute scrap" - invokes the [ExecuteScrap] (macro) command
  501.  
  502. *   Other menu:
  503. *     "ascii charT"   - invokes the new [AsciiChart] command
  504.  
  505.  
  506. * General Commands:
  507. * -----------------
  508.  
  509. * [AsciiChart]
  510. *  Displays a scrollable ASCII chart on the screen.
  511.  
  512. * [ListFiles]
  513. *  Displays a list of the currently loaded files. To switch to another
  514. *  file, move the cursor to the appropriate file and press <Enter>. To
  515. *  keep editing the current file, press <Escape>.
  516.  
  517. * [FirstNonWhite]
  518. *  Intended as a replacement and/or supplement to the [BegLine] command.
  519. *  Places the cursor at the first non-white character on the line, or
  520. *  column 1 if the line doesn't have any non-white characters. "White"
  521. *  characters are tabs or spaces. A useful macro would be:
  522.  
  523. *       Home MacroBegin BegLine JTrue done: FirstNonWhite done:
  524.  
  525. *  (Explanation: If already at the start of a line, go to the first
  526. *  non-white character on the line; otherwise, if not already at the start
  527. *  of a line, go to the start of the line.
  528.  
  529.  
  530. * Advanced Macro Commands:
  531. * ------------------------
  532. * The following new commands are intended for QEdit macro writers, to make
  533. * certain kinds of macros easier to write.
  534.  
  535. * - This group of macro commands force the indicated mode or setting. If
  536. *   the setting was already in that condition, they set QEdit's result
  537. *   code to TRUE; otherwise, they set it to FALSE.
  538.  
  539. *   In many cases, macros can behave differently based on the currently
  540. *   set QEdit modes.  The following 3 new commands give you some control
  541. *   in establishing the proper environment so that your macro will always
  542. *   work as intended.
  543.  
  544. *   [SetInsMode]
  545. *    Sets Insert mode on. To set Insert mode off (that is, set overwrite
  546. *    mode on), do the following:
  547. *         SetInsMode ToggleInsert
  548.  
  549. *   [SetAutoIndentMode]
  550. *    Sets AutoIndent mode on. To set AutoIndent mode off, do the
  551. *    following:
  552. *         SetAutoIndentMode ToggleIndent
  553.  
  554. *   [SetWordWrapMode]
  555. *    Sets WordWrap mode on. To set WordWrap mode off, do the following:
  556. *         SetWordWrapMode ToggleWordWrap
  557.  
  558.  
  559. * - The [Find] command sounds a tone when the search string cannot be
  560. *   found. This can be irritating in a long-running macro, that may
  561. *   possibly execute hundreds of finds that fail. The following commands
  562. *   allow you to selectively turn the sound on and off.
  563.  
  564. *     [SetSoundOn]
  565. *      Sets sound on.
  566.  
  567. *     [SetSoundOff]
  568. *      Sets sound off.
  569.  
  570.  
  571. * - Most macros execute dozens of QEdit commands, possibly hundreds of
  572. *   times. This can cause the screen to flash rapidly as the macro runs.
  573. *   Not only is this somewhat disconcerting to watch, it actully slows
  574. *   down the speed of some macros. The following commands allow you to
  575. *   temporarily suspend or resume screen updating, while a macro is
  576. *   running.
  577.  
  578. *   [SetScreenOn]
  579. *    Turns screen updating on.
  580.  
  581. *   [SetScreenOff]
  582. *    Turns screen updating off. You must turn screen updating back on
  583. *    before your macro prompts for input, or if there is some output from
  584. *    the macro that you want displayed on the screen.
  585.  
  586. *    NOTE: QEdit will AUTOMATICALLY turn screen updating back on when the
  587. *    macro is finished executing. Thus, it is not necessary to issue the
  588. *    SetScreenOn  command at the end of the macro.
  589.  
  590.  
  591. * - Many times, it would be nice for a macro to force a few settings, do
  592. *   its assigned task, and then restore the original settings. The
  593. *   following commands allow you to do just that. Note that each time
  594. *   [SaveSettings] is executed, the previous settings saved with
  595. *   [SaveSettings] are overwritten.
  596.  
  597. *   [SaveSettings]
  598. *    Saves the current settings of: Insert, AutoIndent, WordWrap, Sound,
  599. *    and Screen Updating.
  600.  
  601. *   [RestoreSettings]
  602. *    Restores the saved settings, listed above.
  603.  
  604.  
  605. * - The following commands set QEdit's result code to TRUE or FALSE based
  606. *   on the condition being tested. These commands make certain types of
  607. *   macro tests easier and reliable.
  608.  
  609. *   [isBegLine]
  610. *    Returns TRUE if the cursor is at column 1; otherwise, FALSE is
  611. *    returned.
  612.  
  613. *   [isEndLine]
  614. *    Returns TRUE if the cursor is past the last non-white character on
  615. *    the current line; otherwise, FALSE is returned, including the case
  616. *    when the cursor is on an empty line.
  617.  
  618. *   [isEmptyLine]
  619. *    Returns TRUE if the current line is empty or contains only white
  620. *    space; otherwise, FALSE is returned.
  621.  
  622. *   [isLastLine]
  623. *    Returns TRUE if the cursor is on the last line of the currently
  624. *    edited file; otherwise, FALSE is returned.
  625.  
  626. *   [isFirstLine]
  627. *    Returns TRUE if the cursor is on the first line of the currently
  628. *    edited file; otherwise, FALSE is returned.
  629.  
  630. *   [isCursorInBlock]
  631. *    Returns TRUE if the cursor is inside a marked block; otherwise, FALSE
  632. *    is returned.
  633.  
  634.  
  635. * - In order to tie a few of these concepts together, we present a simple
  636. *   macro to delete all the blank lines in a marked block. The cursor
  637. *   should be at the beginning of the block when the macro is invoked.
  638.  
  639. *    shift f9 MacroBegin
  640. *              SetScreenOff                  * turn off screen for speed
  641. *      begin:  isCursorInBlock jFalse done:  * exit if not in block
  642. *              isEmptyLine     jFalse next:  * skip if not empty line
  643. *              isLastLine      jTrue  last:  * special handling for last line
  644. *              DelLine         jump  begin:  * delete empty lines
  645. *      next:   CursorDown      jTrue begin:  * try next line
  646. *              jump done:                    *
  647. *      last:   DelLine                       * delete the last line
  648. *      done:                                 * that's all, folks!
  649.