home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / cpmforth / f83-help.doc < prev    next >
Text File  |  1994-07-05  |  10KB  |  246 lines

  1.  
  2.                     Getting Started with F83
  3.  
  4.                          by Greg McCall
  5.  
  6.  
  7.   The  documentation  with  F83 is in F83.COM and in  the  shadow 
  8. screens that are part of the source files that come with F83.  At 
  9. a glance, the thought of sifting through hundreds of kilobytes of 
  10. shadow screens is bewildering to say the least.  Just to get  you 
  11. started,  I  have  put together a summary of how to use the  file 
  12. words  and how to edit these files.  This relates to the  CP/M-80 
  13. version  of  F83,  but as far as I know it should be  similar  to 
  14. other versions of Laxen and Perry's F83.
  15.  
  16.  This Forth can have two files open at once.  One file is  called 
  17. the  CURRENT file.  This is the file used by all normal reads and 
  18. writes.  You  would normally edit or load from the CURRENT  file. 
  19. The other file is called the FROM file. This is a second file you 
  20. may have open for reading only. For example, if you are currently 
  21. working on a file (i.e.,  loading and editing),  and you wish  to 
  22. load  some  screens from another file,  then you may open a  FROM 
  23. file and load screens from it without changing the CURRENT  file. 
  24. Following is a description of some useful file words:
  25.  
  26. CREATE-FILE    (S n -- )
  27.                Creates a new file containing n blocks. 10 CREATE-
  28.                FILE  TEST.BLK  opens a file called  test.blk  and 
  29.                writes ten blank screens to this file. The file is 
  30.                then closed.
  31.  
  32. FILE?          Prints the name of the CURRENT file.
  33.  
  34. DIR            Prints the directory of the current drive.
  35.  
  36. OPEN           Open  the  following  file name and  make  it  the  
  37.                current file, e.g., OPEN TEST.BLK
  38.  
  39. FROM           Make  the  next word in the input stream the  FROM 
  40.                file and OPEN it. It then sets the current vocabu-
  41.                lary to FILES.
  42.  
  43. LOAD           In  the FORTH vocabulary,  LOAD will load  screens 
  44.                from  the CURRENT file.  In the FILES  vocabulary, 
  45.                LOAD  will  load screens from the  FROM  file.  So 
  46.                while we have a file as the CURRENT file,  we  can 
  47.                still open another file by making this second file 
  48.                the  FROM  file and loading from  it,  e.g.,  FROM 
  49.                TEST.BLK 10 LOAD
  50.  
  51. CA             Copy a screen to its shadow.
  52.  
  53. COPY           (S from to -- )
  54.                In  the FORTH vocabulary,  copies a screen in  the 
  55.                CURRENT file.  In the FILES vocabulary,  copies  a 
  56.                screen from the FROM file to the CURRENT file.  In 
  57.                the  SHADOW  vocabulary,  copies a screen and  its 
  58.                shadow in the CURRENT file.
  59.  
  60. CONVEY         (S from to -- )
  61.                In the FORTH vocabulary,  copies a set of  screens 
  62.                in  the  CURRENT file.  In the  FILES  vocabulary, 
  63.                copies  a set of screens from the FROM file to the 
  64.                CURRENT file.  In the SHADOW vocabulary,  copies a 
  65.                set  of screens and their shadows in  the  CURRENT 
  66.                file.
  67.  
  68. HOPPED         A  variable  containing the number of  screens  to 
  69.                skip when copying with CONVEY.
  70.  
  71. U/D            A  variable containing the direction of the screen 
  72.                move using CONVEY. +1 is a forward screen move and 
  73.                -1 is a backward screen move.
  74.  
  75. TO             Sets  up  the variables HOPPED and  U/D.  Used  as 
  76.                first-source   last-source  TO   first-destination 
  77.                CONVEY
  78.  
  79.   The  F83  editor uses the same words as the editor in  Starting 
  80. Forth  by Leo Brodie,  with some additions such as the  word  NEW 
  81. which  allows  replacement of multiple lines.  To get the  editor 
  82. going  correctly,  you  should look at screens 28 - 30 and  88 of 
  83. ULITITY.BLK  which hold the terminal-dependent routines.  You can 
  84. select your terminal - or see if any of the routines are the same 
  85. as  those  of  your terminal - or write  your  own  routines. The 
  86. terminal words patch the words AT,  DARK,  BLOT and -LINE to suit 
  87. your terminal.  While we are looking at patching the editor,  you 
  88. could  remove  the  backslash in line 14 of  screen  24  so  that 
  89. (WHERE) is patched into WHERE and, if you have a real-time clock, 
  90. then  you  could change GET-ID in screen 23 so as to have  the ID 
  91. supplied  when the editor is first invoked.  These screen numbers 
  92. refer  to  the CP/M-80 version of F83.  To find where  the source 
  93. screens  are  for the editor in your Forth,  type VIEW  AT  which 
  94. should give you the second source screen of your editor. Now just 
  95. look through the editor's screens for the required words.
  96.  
  97.   A summary of the editor commands follows:
  98.  
  99. TOP            Go to the top of the screen.
  100.  
  101. C              (S n -- )
  102.                Move n characters, right or left.
  103.  
  104. T              (S n -- )
  105.                Go to beginning of line n.
  106.  
  107. .BUFS          Displays  the  contents  of the  insert  and  find 
  108.                buffers.
  109.  
  110. KEEP           Places the current line in the insert buffer.
  111.  
  112. K              Exchanges  the  contents of the  insert  and  find 
  113.                buffers.
  114.  
  115. W              Write all changes to disk.
  116.  
  117. N              Move to next screen.
  118.  
  119. B              Move back a screen.
  120.  
  121. A              Alternate between a screen and its shadow.
  122.  
  123. <text>         Represents  the  text following  the  command.  If 
  124.                <text> is just a carriage return,  the contents of 
  125.                the  insert buffer is used in place of the missing 
  126.                <text>.
  127.  
  128. I <text>       Inserts <text> on the current line at the cursor.
  129.  
  130. O <text>       Overwrites <text> onto the current line.
  131.  
  132. P <text>       Replaces the current line with <text> and blanks.
  133.  
  134. U <text>       Inserts a line under the current line.
  135.  
  136. F <text>       Finds  the <text> and leaves the cursor just  pass 
  137.                it.
  138.  
  139. S <text>       (S n -- )
  140.                Searches  for <text> through all screens from  the 
  141.                current one up to screen n.  Each time a match  is 
  142.                found,  n  remains on the stack until screen n  is 
  143.                reached. To continue the search, just type S until 
  144.                screen n is reached.
  145.  
  146. R <text>       Replaces the text just found with <text>.
  147.  
  148. D <text>       Finds and deletes the text.
  149.  
  150. TILL <text>    Deletes all text on the line from the cursor up to 
  151.                and including <text>.
  152.  
  153. JUST <text>    Deletes up to, but not including, <text>.
  154.  
  155. KT <text>      Puts all text between the cursor and <text> inclu-
  156.                sive into the insert buffer ("keep-till").
  157.  
  158. E              Erases the text just found with by F or S.
  159.  
  160. X              Deletes the current line.
  161.  
  162. SPLIT          Breaks the current line in two at the cursor.
  163.  
  164. JOIN           Puts a copy of the next line after the cursor.
  165.  
  166. WIPE           Clears the screen to blanks.
  167.  
  168. G              (S screen line -- )
  169.                Gets  a line from another screen and inserts it in 
  170.                front of the current line.  In the shadow  vocabu-
  171.                lary,  G gets a line and its shadow . In the FILES 
  172.                vocabulary, G gets the line from the FROM file.
  173.  
  174. BRING          (S screen first last -- )
  175.                Brings  several  lines  from  another  screen  and 
  176.                inserts them in front of the current line.  In the 
  177.                SHADOW vocabulary, BRING gets a range of lines and 
  178.                their shadows. In the FILES vocabulary, BRING gets 
  179.                the lines from the FROM file.
  180.  
  181. NEW            (S n -- )
  182.                Moves the terminal's cursor to the start of line n 
  183.                and  overwrites  until the line has a null  input, 
  184.                i.e., just a carriage return.
  185.  
  186. QUIT           Exits the editor without updating or flushing.
  187.  
  188. DONE           Exits the editor,  updates the ID stamp, tells you 
  189.                if the screen was modified, flushes it to disk and 
  190.                removes automatic redisplay.
  191.  
  192. ED             Re-enters the editor.  It clears and reinitialises 
  193.                the display, and begins automatic redisplay of the 
  194.                screen.
  195.  
  196. EDIT           (S n -- )
  197.                Sets SCR to n, then uses ED to start the editing.
  198.  
  199.  
  200.   This  should enable you to copy and edit screens with Laxen and 
  201. Perry's F83. The best way to get the entire documentation on this 
  202. Forth  is by printing out all the source files.  If your  printer 
  203. can  print at least 132 characters per line,  then look  in  your 
  204. printer's manual for the characters needed to put your printer in 
  205. this mode. My FAX-80 needs a control-O to set the condensed mode.
  206. I  define  a word FAX-80 to send this code and then patch it into 
  207. the DEFERed word INIT-PR, i.e.,:
  208.  
  209. : FAX-80  CONTROL O  EMIT  ;
  210. ' FAX-80 IS INIT-PR
  211.  
  212.   To  print  the  entire file,  you use  the  word  LISTING.  For 
  213. example, to list META80.BLK, I would type:
  214.  
  215. OPEN META80.BLK LISTING
  216.  
  217.  
  218.                            -----------
  219.  
  220. The  above text was taken from the article 'Getting Started  with 
  221. F83' by Greg McCall and published in volume 8, number 4 of 'Forth 
  222. Dimensions', the journal of the Forth Interest Group.
  223.  
  224. Unless noted otherwise,  material published by the Forth Interest 
  225. Group  is in the public domain.  Such material may be  reproduced 
  226. with credit given to the author and to the Forth Interest Group.
  227.  
  228.                       FORTH INTEREST GROUP
  229.                           P.O. Box 8231
  230.                        San Jose, CA  95155
  231.                               U.S.A
  232.  
  233.                            -----------
  234.  
  235. F83 is a public domain forth system by Henry Laxen and Mike Perry 
  236. and  conforms  to the FORTH 83 STANDARD.  The source  and  object 
  237. files for  F83 are available from the SIG/M and PC-BLUE  software 
  238. catalogs.
  239.  
  240.           CP/M 80 version     -     SIG/M   volume 204
  241.           MC68000 version     -     SIG/M   volume 205
  242.           IBM PC  version     -     PC-BLUE volume 082
  243.  
  244.                            -----------
  245. text was taken from the article 'Getting Started  with 
  246. F83' by Greg McC