config!H
------------------------------------------------------------------------------
..<normal-help:          Select stack
..<shftAltCtl-help:      Select stack
            case(normal-buttonDown)                          ..====choose stack
            case(ctl-buttonDown) {                           ..====choose stack
            case(normal-esc) {                      ..====abort stack selection
..<shftAltCtl-gadget3:   Open hyper text facility
..<shftAltCtl-gadget4:   Close hyper text facility
..<shftAltCtl-gadget1:   Get word input and lookup hyper word, going into hyper text mode
..<rAmiga-buttonDown:    Get Hyper name that was clicked, go into hyper text mode and find it
..<shftAltCtl-buttonDown: Get hyper name that was clicked, go into hyper text mode and find it
..<virtual-gadget1:      Capture hyper word or phrase
..<virtual-gadget2:      Hyper lookup loop                  ..<hyper word> is in buf54, index is in n60
   ..====FIND NEW CARD, or PREV CARD, OPEN PANE
   LABEL(1)                                            ..====RETURN TO LAST LOC
   ..====goto last atCursor, or top of card
   ..====bookmark goto's return here after setting n60, n70, finding n60
   LABEL(0)                                                       ..====GET KEY
   ..====hyper command loop, keys have hyper definition in this loop
   ..====most commands return here after execution
   if (eqNum(inputChar,10)) {                 ..====if RETURN get word at mouse
      case(normal-esc) {                                 ..====close hyper pane
         returnTrue }                                 ..====command loop EXIT 1
      case(shft-esc) {                              ..====leave pane, quit loop
         returnTrue }                                 ..====command loop EXIT 2
      case(normal-buttonDown) {                     ..====place cursor & scroll
      case(shftAltCtl-buttonDown)                             ..====lookup name
      case(rAmiga-buttonDown) {                               ..====lookup name
         LABEL(2)                                           ..====FIND NEW CARD
         ..====have new card name in buf54 to look up
                LABEL(3)                                                ..====
                ..====try from top of table
      case(normal-upArrow) {                                       ..====upLine
      case(normal-downArrow) {                                   ..====downLine
      case(shft-space)                        ..====flip up (backward) one page
      case(alt-upArrow) {                     ..====flip up (backward) one page
      case(normal-space)                     ..====flip down (forward) one page
      case(alt-downArrow) {                  ..====flip down (forward) one page
      case(ctl-upArrow) {                                     ..====top of card
      case(ctl-downArrow) {                                ..====bottom of card
      case(normal-leftArrow) {                                      ..====sWord
      case(normal-rightArrow) {                                     ..====eWord
      case(normal-f1) {                                  ..====goto top of tree
      case(alt-f1)                                                ..====shft-f1
      case(shft-f1) {                                    ..====goto last lookup
      case(normal-f2) {                                 ..====goto child of n60
      case(shft-f2) {                                  ..====goto parent of n60
      case(normal-f3) {                          ..====goto next sibling of n60
      case(shft-f3) {                            ..====goto prev sibling of n60
      case(shftAltCtl-gadget1)                               ..====input <name>
      case(normal-f6) {                              ..====input <name> goto 2
      case(shft-f6) {                               ..====change <name> goto 2
      case(alt-f6) {                               ..====pick up <name> goto 2
      case(normal-f7) {                                      ..====input search
      case(shft-f7) {                                       ..====change search
      case(alt-f7) {                         ..====pick up card name for search
      case(normal-gadget1) {                                ..====id search fwd
      case(shft-gadget1) {                                ..====id search bkwrd
      case(normal-f9) {                                    ..====search forward
      case(shft-f9) {                                     ..====search backward
      case(normal-f10) {               ..====get hyper word of next index value
      case(shft-f10) {                 ..====get hyper word of prev index value
      case(normal-help) {                                    ..====go to <HELP>
      case(normal-gadget3) {           ..====set bookmark or move to a bookmark
            case(1) {                                               ..====set a
            case(2) {                                               ..====set b
            case(3) {                                               ..====set c
            case(4) {                                               ..====set d
            case(5) {                                               ..====set e
            case(15) {                                            ..====go to a
            case(16) {                                                  ..====b
            case(17) {                                                  ..====c
            case(18) {                                                  ..====d
            case(19) {                                                  ..====e
      case(lAmiga-=) {                  ..====adjust hyper pane size with mouse


==== MENU HELP ====

..<virtual-7:            Make sure we have EasyWriter up
..<shftAltCtl-0:         Mouse Work help
..<shftAltCtl-8:         Gadgets help
..<shftAltCtl-1:         Files menu help
..<shftAltCtl-2:         Edit menu help
..<shftAltCtl-3:         Spell menu help
..<shftAltCtl-4:         Search menu help
..<shftAltCtl-5:         Print menu help
..<shftAltCtl-6:         AmigaDOS menu help
..<shftAltCtl-7:         Uedit menu help
------------------------------------------------------------------------------
LOCAL
n50,n51 = mouse XY
n92 = buffer # of curFile before opening hyper pane
buf64 = name of stack
buf65 = name of stack.tbl

GLOBAL
buf54 = name of card
n59   = last size of pane
n60   = index of last name (card)
n70   = index of last cursor position in card
n61,n62,n63,n64,n65 = indexes of card for bookmarks 1..5
n71,n72,n73,n74,n75 = indexes of cursor position for bookmark card 1..5

buf49
buf50
buf52
buf53
buf54
buf55
buf64
buf65
buf[n0]
buf[n54]
buf[n92]
n0
n1
n2
n3
n4
n5
n50
n51
n52
n53
n54
n59
n60
n61
n62
n63
n64
n65
n70
n71
n72
n73
n74
n75
n92
------------------------------------------------------------------------------

Select stack
<normal-help:
   runKey(shftAltCtl-help)
   >Sunday 21-Jul-91 12:19:47

Select stack
<shftAltCtl-help:
   equateNum(n0,curFile)
   ..set initial pane size
   equateNum(n59,12)
   ..reset the bookmarks
   equateNum(n60,0)
   equateNum(n61,0)
   equateNum(n62,0)
   equateNum(n63,0)
   equateNum(n64,0)
   equateNum(n65,0)
   equateNum(n70,0)
   equateNum(n71,0)
   equateNum(n72,0)
   equateNum(n73,0)
   equateNum(n74,0)
   equateNum(n75,0)
   loadFile("Stack_list")
   if(isEmpty(curFile)) {
         putMsg("Could not load Stack_list")
         freeBuf(curFile)
         editBuf(buf[n0]) }
      else {
         putMsg("ESC to abort.   Ctl-leftMouse on stack you want to use.")

         LABEL(0)
         getKey(macroNum)
         switch(macroNum) {
            case(normal-buttonDown)                          ..====choose stack
            case(ctl-buttonDown) {                           ..====choose stack
               LABEL(1)
               mouseXY(n3,n4)                                          ..pixels
               div(n4,n4,8)                                          ..raw rows
               getSplitLines(n5,n6)                                ..n5=[0..47]
               sub(n4,n4,n5)
               sub(n4,n4,1)                                         ..pane rows
               lineToLoc(curFile,atCursor,n4)                     ..to text row
               equateLoc(curFile,sHilite,atCursor)
               moveCursor(curFile,eLine)
               equateLoc(curFile,eHilite,atCursor)
               moveCursor(curFile,sLine)
               updateDisplay
               freeBuf(buf64)
               insertRgn(buf64,sFile,curFile,hilite)
               freeBuf(buf65)
               insertRgn(buf65,sFile,curFile,hilite)
               insertRgn(buf65,eFile,".tbl",all)
               freebuf(curFile)
               editBuf(buf[n0])
               putMsg(" ")
               if (runKey(shftAltCtl-gadget3)) {                   ..open hyper
                  ..putMsg(buf64) alertUser("opened hyper")..debug
                  ..go to <HELP HELP> if available
                  freeBuf(buf54)
                  insertRgn(buf54,sFile,"HELP HELP",all)
                  equateNum(n60,0)
                  runKey(virtual-gadget2) }                       ..lookup loop
               return }
            case(normal-esc) {                      ..====abort stack selection
               freebuf(curFile)
               editBuf(buf[n0])
               returnTrue }
            default {
               freebuf(curFile)
               editBuf(buf[n0])
               returnTrue } }
         goto label(0) }
   >Sunday 28-Jul-91 12:14:11

Open hyper text facility
<shftAltCtl-gadget3:
   if (isEmpty(buf64) | isEmpty(buf65)) {
      getKey(n0) ..swallow shftAltCtl-buttonUp so help will work
      runKey(shftAltCtl-help) 
      return }
   if (hyperUp) hyperClose
   if (HyperOpen(buf64,buf65,0)) {
         freeBuf(buf53)
         insertRgn(buf53,sFile,"Current stack is ",all)
         insertRgn(buf53,eFile,buf64,all)
         putMsg(buf53)
         equateNum(n60,0)                                     ..first index =0
         equateNum(n59,12) }                          ..first pane is 12 lines
      else {
         freeBuf(buf53)
         insertRgn(buf53,sFile,"shftAltCtl-gadget3: Could NOT load ",all)
         insertRgn(buf53,eFile,buf64,all)
         putMsg(buf53) }
   >Tuesday 23-Jul-91 14:21:34

Close hyper text facility
<shftAltCtl-gadget4:
   if (HyperClose)
         putMsg("Hyper now closed")
      else
         putMsg("Hyper was not open")
   >Sunday 30-Jun-91 10:19:22

Get word input and lookup hyper word, going into hyper text mode
<shftAltCtl-gadget1:
   if (!hyperUp) runKey(shftAltCtl-gadget3)
   putmsg("Input hyper word/phrase to look up:")
   freeBuf(buf54)
   inputString(buf54)
   updateDisplay
   runKey(virtual-gadget2)
   >Sunday 30-Jun-91 10:19:23

Get Hyper name that was clicked, go into hyper text mode and find it
<rAmiga-buttonDown:
   if (!hyperUp) runKey(shftAltCtl-gadget3)
   runKey(virtual-gadget1)
   runKey(virtual-gadget2)
   >Wednesday 10-Jul-91 15:07:11
   
Get hyper name that was clicked, go into hyper text mode and find it
<shftAltCtl-buttonDown:
   runKey(rAmiga-buttonDown)
   >Thursday 11-Jul-91 13:04:16

.. From cursor, searches left for <, if it finds a < on the line or the
.. preceding line is scans forward from there taking only first 17 chars or up
.. to >.  Thus a <hyper phrase> can break at the end of a line in text, it
.. need not all be on one line.  Assumes no space at end of first line, that
.. is, normal wordwrap.  Will scan left only 17 chars looking for <.  That
.. helps in not picking up a command definition when you are looking for a
.. function on the first line.
.. <test
.. phrase> 
.. <123456789 1234567> <123456789 123456789 12345678>
.. <abcdefghi jklmnop> <abcdefghi jklmnopqr stuvwxyz>

Capture hyper word or phrase
<virtual-gadget1:
   ..see if pointer is in original pane
   mouseXY(n0,n1)
   div(n1,n1,8)
   if (gtNum(n1,n11) & geNum(n12,n1)) 
         equateNum(n13,n10)
      else
         equateNum(n13,curFile)
   moveCursor(buf[n13],mouseLoc)
   ..if in blank at right of screen, go to previous place in stack
   if ((is(buf[n13],whiteSpace) & is(buf[n13],eLine)) | is(buf[n13],eFile)) {
      freeBuf(buf54)
      return }
   equateNum(n70,0)                                  ..cursor position in card
   ..if (!is(buf[n13],sWord)) moveCursor(buf[n13],sWord)
   ..find out if there is a < on the left on this line, take <=17 chars
   equateNum(n0,1)
   while (!is(buf[n13],"<") & !is(buf[n13],eLine) & !is(buf[n13],">")) {
       moveCursor(buf[n13],sChar)
       incNum(n0)
       ..putMsg(n0) alertUser("looking for < on line")..debug
       if (gtNum(n0,17)) goto label(5) }
   if (is(buf[n13],eLine)) {
      ..alertUser("must scan preceeding line")..debug
      if (!is(buf[n13],sLine)) moveCursor(buf[n13],sChar)
      while (!is(buf[n13],"<") & !is(buf[n13],eLine) & !is(buf[n13],">")) {
          moveCursor(buf[n13],sChar)
            incNum(n0)
            ..putMsg(n0) alertUser("looking for < on line above")..debug
            if (gtNum(n0,17)) goto label(5)  } 
          ..alertUser("found < on preceeding line")..debug
          }
   LABEL(5)
   freebuf(buf54)
   if (is(buf[n13],"<")) {                                  ..copy <the phrase>
         movecursor(buf[n13],eChar)
         equateNum(n52,0)
         while (nothing)                              {..take to > or 17 chars
             copyChar(buf[n13],n53)
             moveCursor(buf[n13],eChar)
             if (eqnum(n53,">")) goto label(0)
             insertChar(buf54,n53)
             incNum(n52)
             if (geNum(n52,17)) goto label(0) }
         label(0) }
      else {                     ..go back and copy just the word under cursor
         movecursor(buf[n13],mouseloc)
         if (!is(buf[n13],sWord)) movecursor(buf[n13],sWord)
         insertRgn(buf54,efile,buf[n13],word) }
   ..strip any eLine from phrase, insert space
   moveCursor(buf54,sFile)
   while (!is(buf54,eFile)) {
      if (is(buf54,eLine)) {
         clearChar(buf54) 
         insertChar(buf54," ") }
      moveCursor(buf54,eChar) }
   freeBuf(buf50)
   insertRgn(buf50,sFile,"Searched for: ",all)
   insertRgn(buf50,eFile,buf54,all)
   putMsg(buf50) 
   ..alertUser("taking this name")..debug
   >Monday 29-Jul-91 23:19:12


Hyper lookup loop                  ..<hyper word> is in buf54, index is in n60
<virtual-gadget2:                  
   ..====FIND NEW CARD, or PREV CARD, OPEN PANE
   putMsg(" ") ..clear msg to see gadgets
   equateNum(n10,curfile)                              ..record curFile for esc
   getSplitLines(n11,n12)                                          ..for v-gad1
   sub(n12,n12,n59)                                 ..n59 is size of hyper pane
   ..if no word in buf54 show card with i=n60
   ..if word in buf54 search from top of stack (i=0)
   if (!hyper(buf53,buf54,n60,0)) {
      ..can't find word, show first card
      insertRgn(buf50,eFile,"     <-- NAME NOT FOUND",all)
      freebuf(buf54)
      if (!hyper(buf53,buf54,0,0)) return }
   ..got it, index is now in n60
   ..if buf53 not active and not in a split, try to open split for it
   if (!eqNum(curFile,buf53) & !gotoSplit(buf53)) {
      if (!splitWindow(buf53,n59)) {
         putMsg
         ("Close a window pane, then try again.")
         return } }
   putMsg(buf50)                                  ..prepared in virtual-gadget1
   
   LABEL(1)                                            ..====RETURN TO LAST LOC
   ..====goto last atCursor, or top of card
   ..====bookmark goto's return here after setting n60, n70, finding n60
   indexToLoc(curFile,atCursor,n70)                ..go to last atCursor, or 0
   refreshdisplay

   
   LABEL(0)                                                       ..====GET KEY
   ..====hyper command loop, keys have hyper definition in this loop
   ..====most commands return here after execution
   locToIndex(curFile,n70,atCursor)                      ..record last atCursor

   while (mouseDown) inputKey(n54)
   ..wait for hyper key
   getKeyVal(macroNum,inputChar)
   if (eqNum(inputChar,10)) {                 ..====if RETURN get word at mouse
      equateLoc(curfile,mouseloc,atcursor)
      runkey(virtual-gadget1)
      goto label(2) }                                            ..go find name
   switch(macroNum) {
      case(normal-esc) {                                 ..====close hyper pane
         gotoSplit(buf[n10])            ..go back to file before entering hyper
         splitWindow(buf53,0)
         freeBuf(buf54)
         freeBuf(buf53)
         putmsg
         ("To return to last help card: leftAmiga-leftMouse in right margin")
         returnTrue }                                 ..====command loop EXIT 1
      case(shft-esc) {                              ..====leave pane, quit loop
         gotoSplit(buf[n10])           ..go back to file before entering hyper
         putmsg
         ("To return to last help card: leftAmiga-leftMouse in right margin")
         returnTrue }                                 ..====command loop EXIT 2
      case(normal-buttonDown) {                     ..====place cursor & scroll
         ..runKey(normal-buttonDown)                  ..dbl-click does not work
         equateLoc(curFile,atCursor,mouseLoc)
         if (eqLoc(curFile,atCursor,locA) &
               (!is(curFile,eLine) & !is(curFile,whiteSpace))) {
            ..double click, pick up word
            if (!is(curFile,sWord)) moveCursor(curFile,sWord)
            equateLoc(curFile,sHilite,atCursor)
            moveCursor(curFile,eWord)
            equateLoc(curFile,eHilite,atCursor)
            updateDisplay
            freeBuf(buf49)
            insertRgn(buf49,sFile,curFile,hilite)
            freeBuf(buf55)
            insertRgn(buf55,sFile,"Search string is: ",all)
            insertRgn(buf55,eFile,buf49,all)
            putMsg(buf55)
            goto label(0) }
         equateLoc(curFile,sHilite,eHilite)                        ..cancel old
         equateLoc(curFile,locA,mouseLoc) ..record last mouse and end of hilite
         updateDisplay
         if (!mouseDown) goto label(0)                              ..no sweep
         while (!inputWaiting) {            ..any input will terminate tracking
            trackMouse
            ..update Hilite definition
            if (gtLoc(curFile,locA,mouseLoc)) {                   ..moving left
                  equateLoc(curFile,sHilite,mouseLoc)
                  equateLoc(curFile,eHilite,locA) }
               else {                                            ..moving right
                  equateLoc(curFile,eHilite,mouseLoc)
                  equateLoc(curFile,sHilite,locA) }
             refreshDisplay }
         moveCursor(curFile,eHilite)                      ..leave cursor at end
         equateLoc(curFile,locA,atCursor)
         refreshDisplay
         goto label(0) }
      case(shftAltCtl-buttonDown)                             ..====lookup name
      case(rAmiga-buttonDown) {                               ..====lookup name
         runKey(virtual-gadget1)
         ..have name in buf54, find it

         LABEL(2)                                           ..====FIND NEW CARD
         ..====have new card name in buf54 to look up
         ..make sure index is positive
         if (gtNum(0,n60)) equateNum(n60,0)
         if (eqNum(0,n60)) {

                LABEL(3)                                                ..====
                ..====try from top of table
                if (!hyper(buf52,buf54,n60,0)) goto label(0) }
             else {           .. 2 = try algorithm (p142)
                if (..!hyper(buf52,buf54,n60,1)
                    ..&
                    !hyper(buf52,buf54,n60,2)) goto label(3)..try from top
          } }
      case(normal-upArrow) {                                       ..====upLine
         runKey(normal-upArrow)
         goto label(0) }
      case(normal-downArrow) {                                   ..====downLine
         runKey(normal-downArrow)
         goto label(0) }
      case(shft-space)                        ..====flip up (backward) one page
      case(alt-upArrow) {                     ..====flip up (backward) one page
         runKey(alt-upArrow)
         goto label(0) }
      case(normal-space)                     ..====flip down (forward) one page
      case(alt-downArrow) {                  ..====flip down (forward) one page
         runKey(alt-downArrow)
         goto label(0) }
      case(ctl-upArrow) {                                     ..====top of card
         runKey(ctl-upArrow)
         goto label(0) }
      case(ctl-downArrow) {                                ..====bottom of card
         runKey(ctl-downArrow)
         goto label(0) }
      case(normal-leftArrow) {                                      ..====sWord
         runKey(shft-leftArrow)
         goto label(0) }
      case(normal-rightArrow) {                                     ..====eWord
         runKey(shft-rightArrow)
         goto label(0) }
      case(normal-f1) {                                  ..====goto top of tree
         freeBuf(buf54)
         equateNum(n60,0)
         if (!hyper(buf52,buf54,n60,0)) goto label(0) }
      case(alt-f1)                                                ..====shft-f1
      case(shft-f1) {                                    ..====goto last lookup
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,5)) goto label(0) }
      case(normal-f2) {                                 ..====goto child of n60
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,2)) goto label(0) }
      case(shft-f2) {                                  ..====goto parent of n60
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,1)) goto label(0) }
      case(normal-f3) {                          ..====goto next sibling of n60
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,3)) goto label(0) }
      case(shft-f3) {                            ..====goto prev sibling of n60
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,4)) goto label(0) }
      case(shftAltCtl-gadget1)                               ..====input <name>
      case(normal-f6) {                              ..====input <name> goto 2
         putmsg("Type in card name without <>:")
         freeBuf(buf54)
         inputString(buf54)
         updateDisplay
         goto label(2) }
      case(shft-f6) {                               ..====change <name> goto 2
         putmsg("Revise card name:")
         moveCursor(buf54,eFile)
         inputString(buf54)
         updateDisplay
         goto label(2) }
      case(alt-f6) {                               ..====pick up <name> goto 2
         freeBuf(buf54)
         ..if atCursor != eHilite, user did not create hilite
         ..the hilite is on the card name
         if (!eqLoc(curFile,eHilite,atCursor))
            equateLoc(curFile,sHilite,eHilite)
         if (eqLoc(curFile,sHilite,eHilite)) {                      ..mark word
            moveCursor(curFile,eWord)
            equateLoc(curFile,eHilite,atCursor)
            moveCursor(curFile,sWord)
            equateLoc(curFile,sHilite,atCursor)
            moveCursor(curFile,eHilite)
            equateLoc(curFile,locA,atCursor)
            updateDisplay }
         insertRgn(buf54,sFile,curFile,hilite)
         freeBuf(buf55)
         insertRgn(buf55,sFile,"Search card name is: ",all)
         insertRgn(buf55,eFile,buf54,all)
         putMsg(buf55)
         refreshDisplay
         delay(2)                                                  ..show word
         equateLoc(curFile,sHilite,eHilite)              ..leave cursor at end
         equateLoc(curFile,locA,atCursor)
         refreshDisplay
         goto label(2) }
      case(normal-f7) {                                      ..====input search
         runKey(normal-f7)
         goto label(0) }                          ..wait for key, F9 searches
      case(shft-f7) {                                       ..====change search
         runKey(shft-f7)
         goto label(0) }                                       ..wait for key
      case(alt-f7) {                         ..====pick up card name for search
         runKey(alt-f7)
         goto label(0) }                                        ..wait for key
      case(normal-gadget1) {                                ..====id search fwd
         mouseXY(n0,n1)
         div(n0,n0,40)    ..1/2 character width x 10
         add(n0,n0,1)     ..map to region number [1..4]
         switch(n0) {
            case(1) 
            case(2) { equateNum(n0,1) runKey(virtual-s) } }
         goto label(0) }
      case(shft-gadget1) {                                ..====id search bkwrd
         mouseXY(n0,n1)
         div(n0,n0,40)    ..1/2 character width x 10
         add(n0,n0,1)     ..map to region number [1..4]
         switch(n0) {
            case(1) 
            case(2) { equateNum(n0,-1) runKey(virtual-s) } }
         goto label(0) }
      case(normal-f9) {                                    ..====search forward
         runKey(normal-f9)
         goto label(0) }
      case(shft-f9) {                                     ..====search backward
         runKey(shft-f9)
         goto label(0) }
      case(normal-f10) {               ..====get hyper word of next index value
         incNum(n60)
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,0)) {
            equateNum(n60,0)
            goto label(0) } }
      case(shft-f10) {                 ..====get hyper word of prev index value
         if (gtnum(n60,0)) decNum(n60)
         freebuf(buf54)
         if (!hyper(buf52,buf54,n60,0)) goto label(0) }
      case(normal-help) {                                    ..====go to <HELP>
         putMsg("Searched for: HELP HELP")
         freeBuf(buf54)
         insertRgn(buf54,sFile,"HELP HELP",all)
         goto label(2) }
      case(normal-gadget3) {           ..====set bookmark or move to a bookmark
         mouseXY(n0,n1)                 ..n0, n1 = mouse x,y = switch parameter
         sub(n0,n0,320)                               ..first pixel in gadget 3
         div(n0,n0,8)                                         ..character width
         add(n0,n0,1)                                           ..map to mark #
         switch(n0) {
            case(1) {                                               ..====set a
               equateNum(n61,n60)
               locToIndex(curFile,n71,atCursor)
               beepDisplay
               goto label(0) }
            case(2) {                                               ..====set b
               equateNum(n62,n60)
               locToIndex(curFile,n72,atCursor)
               beepDisplay
               goto label(0) }
            case(3) {                                               ..====set c
               equateNum(n63,n60)
               locToIndex(curFile,n73,atCursor)
               beepDisplay
               goto label(0) }
            case(4) {                                               ..====set d
               equateNum(n64,n60)
               locToIndex(curFile,n74,atCursor)
               beepDisplay
               goto label(0) }
            case(5) {                                               ..====set e
               equateNum(n65,n60)
               locToIndex(curFile,n75,atCursor)
               beepDisplay
               goto label(0) }
            case(15) {                                            ..====go to a
               equateNum(n60,n61)
               equateNum(n70,n71)
               freeBuf(buf54)
               if (hyper(buf52,buf54,n60,0)) {
                  swapBuf(buf53,buf52) }
               goto label(1) }
            case(16) {                                                  ..====b
               equateNum(n60,n62)
               equateNum(n70,n72)
               freeBuf(buf54)
               if (hyper(buf52,buf54,n60,0)) {
                  swapBuf(buf53,buf52) }
               goto label(1) }
            case(17) {                                                  ..====c
               equateNum(n60,n63)
               equateNum(n70,n73)
               freeBuf(buf54)
               if (hyper(buf52,buf54,n60,0)) {
                  swapBuf(buf53,buf52) }
               goto label(1) }
            case(18) {                                                  ..====d
               equateNum(n60,n64)
               equateNum(n70,n74)
               freeBuf(buf54)
               if (hyper(buf52,buf54,n60,0)) {
                  swapBuf(buf53,buf52) }
               goto label(1) }
            case(19) {                                                  ..====e
               equateNum(n60,n65)
               equateNum(n70,n75)
               freeBuf(buf54)
               if (hyper(buf52,buf54,n60,0)) {
                  swapBuf(buf53,buf52) }
               goto label(1) } }                      ..end bookmark switch(n0)
         goto label(0) }                 ..end of bookmark case(normal-gadget3)
      case(lAmiga-=) {                  ..====adjust hyper pane size with mouse
         runKey(lAmiga-=)
         goto label(0) }
      case(shftAltCtl-0) {                                    ..Mouse Work help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Mouse Work",all)
         goto label (2) }
      case(shftAltCtl-1) {                                       ..Gadgets help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Gadgets",all)
         goto label(2) }
      case(shftAltCtl-2) {                                    ..Files menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Files Menu",all)
         goto label(2) }
      case(shftAltCtl-3) {                                     ..Edit menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Edit Menu",all)
         goto label(2) }
      case(shftAltCtl-4) {                                    ..Spell menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Search Menu",all)
         goto label(2) }
      case(shftAltCtl-5) {                                   ..Search menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Spell Menu",all)
         goto label(2) }
      case(shftAltCtl-6) {                                    ..Print menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Print Menu",all)
         goto label(2) }
      case(shftAltCtl-7) {                                 ..AmigaDOS menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"AmigaDOS Menu",all)
         goto label(2) }
      case(shftAltCtl-8) {                                    ..Uedit menu help
         runKey(virtual-0)
         freeBuf(buf54)
         insertRgn(buf54,sFile,"Uedit Menu",all)
         goto label(2) }
      default {goto label(0) } ..swallows illegal keys
   }  ..end of hyper loop switch(macroNum)
   swapbuf(buf52,buf53) ..swap refreshes
   goto label(0) ..go wait for another hyper key
   >Thursday 01-Aug-91 10:46:34

==== MENU HELP ====

Make sure we have EasyWriter up
<virtual-0:
   if (!hyperUp) {
         hyperOpen("EasyWriter","EasyWriter.tbl",0) }
      else
         moveCursor(buf64,eFile)
         setSearch("EasyWriter")
         if (!search(buf64,sHilite,eHilite,-1)) {
            hyperClose
            hyperOpen("EasyWriter","EasyWriter.tbl",0) }
   >Thursday 01-Aug-91 10:45:37

Mouse Work help
<shftAltCtl-0:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Mouse Work",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:41

Gadgets help
<shftAltCtl-1:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Gadgets",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:41

Files menu help
<shftAltCtl-2:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Files menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:42

Edit menu help
<shftAltCtl-3:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Edit menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:43

Spell menu help
<shftAltCtl-4:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Spell menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:44

Search menu help
<shftAltCtl-5:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Search menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:44

Print menu help
<shftAltCtl-6:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Print menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:45

AmigaDOS menu help
<shftAltCtl-7:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"AmigaDOS menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:45

Uedit menu help
<shftAltCtl-8:
   runKey(virtual-0)
   freeBuf(buf54)
   insertRgn(buf54,sFile,"Uedit menu",all)
   equateNum(n59,15)
   runKey(virtual-gadget2)  ..lookup loop
   >Thursday 01-Aug-91 10:45:46

