home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / source / smacro.seq < prev    next >
Text File  |  1988-12-01  |  6KB  |  136 lines

  1. \ SMACRO.SEQ            An example of MACRO usage       by Tom Zimmer
  2.  
  3. comment:
  4.  
  5.   This file contains an example of how to use macros in the F-PC editor
  6. to reduce the keystrokes required to perform a given task.
  7.  
  8.   The first example is a real one.  I decided to shorten the glossary
  9. entries.  A typical entry is shown below for +! :
  10.  
  11.  
  12. +!              ( n1 a1 --- )
  13.                 FORTH           KERNEL1
  14.         Increment the value at a1 by n1.  This is equivalent to the
  15.         following:   DUP @ ROT + SWAP ! but much faster.
  16.  
  17.  
  18. Since all of the words in the glossary are in the  FORTH  vocabulary, I
  19. decided to delete the word  FORTH .  Furthermore, I could then join the
  20. second line containing the source file name with the first line, and do
  21. a little more editing at the same time.  The desired new entry would be:
  22.  
  23.  
  24. +!      ( n1 a1 --- )           KERNEL1
  25.         Increment the value at a1 by n1.  This is equivalent to the
  26.         following:   DUP @ ROT + SWAP ! but much faster.
  27.  
  28.  
  29. The glossary is a very large file, and the manual editing required to
  30. correct this would have been prohibitive, so I created a macro to join
  31. the second line with the first line and remove the Vocabulary from each
  32. entry when I press a single MACRO key.
  33.  
  34.   Here then is the key sequence that will make a macro to join the first
  35. and second lines of the second type glossary entry and remove the Vocabulary
  36. from the entry.  The macro will then go to the next paragraph which starts
  37. the next entry.
  38.  
  39.   This macro is always executed when the cursor in on the first line of a
  40. glossary entry at the left column, and we are in INSERT mode.
  41.  
  42.         Alt-M           Start a MACRO
  43.         Alt-1           We are starting the macro for Alt-1
  44.         INS             Select OVERWRITE mode
  45.         TAB             Move to first TAB position
  46.         Ctrl-T          Remove spaces before stack picture
  47.         TAB             Move to 2nd TAB
  48.         TAB             Move to 3rd TAB
  49.         TAB             Move to 4th TAB
  50.         INS             Go back into INSERT mode
  51.         DEL             Delete the last char in the line forcing a join line
  52.                         Cursor is now on the word FORTH
  53.         Ctrl-T          Delete the Vocabulary
  54.         HOME            Move back to beginning of line
  55.         Alt-G_N         Goto Next paragraph
  56.         Alt-M           Complete macro
  57.  
  58.   Macros are performed as they are created, so you must be on a glossary
  59. entry that needs to be modified while you are in the process of making
  60. the macro.
  61.  
  62.   In the following section I have included several copies of the +!
  63. glossary entry.  Try making the macro described above while you are on the
  64. first entry, then press Alt-1 to try the macro on each successive entry.
  65.  
  66.   Macros can be saved with Alt-M_S, and loaded again with Alt-M_L.  You can
  67. view the currently defined macros with Alt-M_V, but they will look very
  68. funny since they are mostly graphics characters.
  69.  
  70.  
  71. ----------------------  Try some macros here --------------------
  72.  
  73.  
  74. +!              ( n1 a1 --- )
  75.                 FORTH           KERNEL1
  76.         Increment the value at a1 by n1.  This is equivalent to the
  77.         following:   DUP @ ROT + SWAP ! but much faster.
  78.  
  79. +!              ( n1 a1 --- )
  80.                 FORTH           KERNEL1
  81.         Increment the value at a1 by n1.  This is equivalent to the
  82.         following:   DUP @ ROT + SWAP ! but much faster.
  83.  
  84. +!              ( n1 a1 --- )
  85.                 FORTH           KERNEL1
  86.         Increment the value at a1 by n1.  This is equivalent to the
  87.         following:   DUP @ ROT + SWAP ! but much faster.
  88.  
  89. +!              ( n1 a1 --- )
  90.                 FORTH           KERNEL1
  91.         Increment the value at a1 by n1.  This is equivalent to the
  92.         following:   DUP @ ROT + SWAP ! but much faster.
  93.  
  94. +!              ( n1 a1 --- )
  95.                 FORTH           KERNEL1
  96.         Increment the value at a1 by n1.  This is equivalent to the
  97.         following:   DUP @ ROT + SWAP ! but much faster.
  98.  
  99. +!              ( n1 a1 --- )
  100.                 FORTH           KERNEL1
  101.         Increment the value at a1 by n1.  This is equivalent to the
  102.         following:   DUP @ ROT + SWAP ! but much faster.
  103.  
  104. HRENAME         ( handle1 handle2 --- return-code )
  105.                 FORTH           HANDLES
  106.         Change the name of the file specified in handle1 to the name
  107.         specified in handle2. Can be used to move a file from one
  108.         directory to another on the same drive. Returns 18 if the
  109.         rename was good, not zero.
  110.  
  111. HRENAME         ( handle1 handle2 --- return-code )
  112.                 FORTH           HANDLES
  113.         Change the name of the file specified in handle1 to the name
  114.         specified in handle2. Can be used to move a file from one
  115.         directory to another on the same drive. Returns 18 if the
  116.         rename was good, not zero.
  117.  
  118.  
  119.   As you can see, having performed the macro on one of the last two
  120. glossary entries for HRENAME, a macro will not always work as you expect.
  121. If the information being manipulated does not follow the rules, you can get
  122. quite unexpected results.  Use caution with macro, they can be wonderful
  123. time savers, but it is difficult to make a macro that will always work.
  124.  
  125.   This is only the start for macros.  Experiment with some junk text to see
  126. what other neat things they can do.
  127.  
  128.   When you leave this file you probably DO NOT want to save your changes.
  129.  
  130.   Press  Alt-F10  to leave SED without saving any changes.
  131.  
  132. comment;
  133.  
  134. cr .( Use LISTING to print this file then try editing it. )
  135.  
  136.