home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / FPC225_1.ZIP / NOTES2 < prev   
Encoding:
Text File  |  1988-11-29  |  30.7 KB  |  676 lines

  1. Notes on F-PC Part #2
  2.  
  3.         ******** Earlier notes may be found in the file NOTES ********
  4.  
  5. ------------------ Version 2.15  09/22/88 13:33:19.98 -----------------
  6.  
  7.  09/26/88 11:00:58.45
  8.  
  9. 157.    Save screen enhancement --- I have generalized SAVESCR to use a
  10.         value SVMAX in allocating the space for the save screen stack.  You
  11.         can now change this value from the default 3 to any value between 1
  12.         and 8 to control the number of saved screen you can nestably save
  13.         and restore.  The utilities in F-PC need a value of at least 3 to
  14.         function properly.  You must also of course save and restart F-PC
  15.         after changing SVMAX to cause it to take effect.
  16.  
  17.         WARNING of side effect --- Change number 160 below allows the use
  18.         of larger screens up to 132 columns by 43 lines with F-PC. When
  19.         lerger screens are used, then the amount of memory saved for each
  20.         SAVESCR is correspondingly larger. The memory needed bye SAVESCR is
  21.         allocated all at one time at system startup The total amount of
  22.         space needed is "(COLS * 2) * ROWS * SVMAX" this total must be less
  23.         than 65000 bytes of save and restore screen will not function
  24.         properly. With a screen of 132x44 you may not have more than 5
  25.         nested levels of screen save.
  26.  
  27.  10/01/88 16:41:04.21
  28.  
  29. 158.    Added system utility REF --- Received some stuff from Jerry Shifrin
  30.         of the Easc Coast Forth Board.  One of the thing I received was a
  31.         file called REF.SEQ by Leon Dent which was supposed to show you
  32.         where a word is used.  It was written to run on one of my earlier
  33.         Forth's.  I have modified it to run on F-PC and added a couple of
  34.         ALIAS words XREF and USEDIN for convenience.
  35.  
  36.  10/03/88 16:51:32.67
  37.  
  38. 159.    NUMBER enhancement --- Smartend NUMBER to recognize ^G as a
  39.         Control-G.  Number now can recognize 'f' as ASCII-F, ^M as
  40.         Control-M, and $10 as a HEX number equivelant to 16 decimal.
  41.  
  42.  10/04/88 14:05:56.97
  43.  
  44. 160.    Screen handling enhancement --- I have added VALUE's for ROWS and
  45.         COLS to use when manipulating the screen.  These values are
  46.         initialized from DOS's low memory variables as initialized by an
  47.         EGA or VGA board.  The result is F-PC will use as many lines as
  48.         your display has when using an EGA or VGA board. This has been
  49.         tested on a VGA display with up to 43 line by 132 columns. A MONO
  50.         or CGA board does not initialize the low memory variables, so the
  51.         display will default to 25 lines for those boards.  The primary
  52.         result of this is that you should use ROWS-1 as the last line of
  53.         the display use "0 ROWS 1- AT" rather than a literal value, as in
  54.         "0 24 AT".
  55.  
  56.  
  57.  
  58.  
  59.  
  60.         It turns out to be VERY IMPORTANT that a program NOT SET the video
  61.         mode when starting up. If you do, then EGA and VGA displays
  62.         automatically switch out of their high resolution display modes
  63.         back to 80x25.  So DARK, for example, must not be defined to set the
  64.         video mode.  Instead it simply clears the display memory directly.
  65.  
  66.         Another challenge was getting direct display memory writes to work
  67.         in 132 column mode.
  68.  
  69. ------------------ Version 2.20  10/04/88 17:05:45.82 -----------------
  70.  
  71.  10/06/88 15:42:18.70
  72.  
  73. 161.    Menu enhancement --- I have expanded the HELP menu to include entry
  74.         items for each help screen. This makes help much more usable since
  75.         you can look up the subject on the menu bar without having to
  76.         actually go into HELP and look through the entry screen.
  77.  
  78. 162.    Menu enhancement --- Added MACRO items the the ADVANCED menu. These
  79.         menu items are only there to jog your memory, if you try to execute
  80.         one of them by walking down the menu, you will get told to use the
  81.         ALT key sequence.
  82.  
  83. 163.    SED/Z enhancement --- The Z editor which is included with this
  84.         system is in fact the same identical editor built into SED. The SED
  85.         editor has an entry point called (as you would expect) "SED".  If
  86.         you type SED <filename> <linenumber> <column> <enter> as the Forth
  87.         command level, you will start editing <filename> at line
  88.         <linenumber> and column <column>.  The Z editor can also accept
  89.         these parameters at the DOS command line. This means you can now
  90.         extract SED and use the spawn shell command to start up Z with the
  91.         appropriate command line parameters to edit a file if needed
  92.         without having Z or SED in F-PC all the time.
  93.  
  94.  10/07/88 15:01:51.05
  95.  
  96. 164.    Esoteric BUG fix --- Under the following circumstances the debugger
  97.         gets disabled automatically:
  98.  
  99.                 debugging a word which calls $SYS or any word that
  100.                 ultimately called SET_VECTORS. SET_VECTORS restores
  101.                 the interup vectors for Control_Break, and also
  102.                 restored the contents of NEXT.
  103.  
  104.         This last part causes the debugger to be disabled and you will
  105.         never return to the debugger from an above described word. Words
  106.         which fall into this catagory include:
  107.  
  108.                 DIR  DEL  SYS  or any word that uses <EXEC>
  109.  
  110.         SET_VECTORS has been adjusted so it can be told not to restore NEXT
  111.         by setting the VALUE RESTNEXT to FALSE.  You need not do this
  112.         manually as RESTNEXT is automatically set FALSE by any word that
  113.         calls the debugger.  It is also set TRUE by the assemby COLD code
  114.         at startup.
  115.  
  116.  10/07/88 17:50:34.81
  117.  
  118. 165.    Optimization --- Recoded LARGEST and @REL>ABS in assembly.  LARGEST
  119.         is used in WORDS, and the new REF word. Re-coding it in assembly
  120.         improved the performance of REF about 3 to 1 in looking for
  121.         occurances of words.  @REL>ABS is used in the decompiler, and
  122.         effects the speed of decompiling which effects debugger screen
  123.         update and so was deemed worthy of optimization.
  124.  
  125.  10/09/88 17:17:05.09
  126.  
  127. 166.    Bug fix --- repaired a bug in INVERT-SCREEN, it had not gotten
  128.         updated to properly invert the entire screen if the screen was
  129.         larger than 80x25.
  130.  
  131. 167.    Macros enhancement --- A variable has been changed to a VALUE,
  132.         called ?DOINGMAC and placed in UTILS.SEQ.  This word can be used to
  133.         determine if we are currently in the middle of doing a macro.  This
  134.         is useful in reducing unneeded screen display operations thus
  135.         improving performance while doing a macro.  The only operations
  136.         that are currently taking advantage of this information is Alt-O-A
  137.         the enter any character operation in the editor, which will not
  138.         display its character box when a macro is executed that was written
  139.         to select a graphics character from the graphics box.  This is I
  140.         agree minimal usage, but I think in concept this functionality is
  141.         useful.  The ?DOINGMAC word is a VALUE that returns TRUE if we are
  142.         in the middle of doing a macro, or FALSE otherwise.
  143.  
  144.  10/14/88 13:40:49.76
  145.  
  146. 168.    Editor enhancement --- Add a Zoom window command to SED, Alt-S_Z
  147.         switches between the current window and a full screen window.
  148.  
  149. 169.    Spawn DOS shell bug --- Repaired a bug in the spawn DOS shell
  150.         command in the editor.  SED was placing you back on the LAST line
  151.         of your edit file when it returned from DOS, rather than restoring
  152.         the current edit line.  This was not obvious since I was saving and
  153.         restoring the screen, and everything LOOKED OK. FIXXED.
  154.  
  155.  10/15/88 19:04:09.28
  156.  
  157. 170.    Cursor shape cleanup --- I have found out how to control the cursor
  158.         size on EGA & VGA boards, and have modified F-PC to consistantly
  159.         set the cursor size properly for all of the display boards I have
  160.         access to (CGA, MDA, EGA, & VGA).  A new VALUE CROWS has been added
  161.         to VIDEO.SEQ which holds the number of DOT ROWS to be used on the
  162.         current display, 8 for CGA, 14 for MDA, and EGA/VGA depend on the
  163.         video mode and the contents of location $40:$85. NO MORE CURSOR
  164.         DISAPPEARING !!.
  165.  
  166.  
  167.  
  168.  
  169.  
  170.         F-PC now is able to deal with large displays in a reasonable way.
  171.         The system has VALUE's which hold the number of screen character
  172.         rows "ROWS", the number of screen columns "COLS", and the number of
  173.         cursor dot rows "CROWS". These values allow you to create
  174.         applications that will work on computers with varying screen sizes.
  175.  
  176. 171.    BUG fix in SORT --- Found that SORT lines in SED was not allocating
  177.         enough space for one of it's buffers, and would consequently cause
  178.         a crash if you try to sort.  The buffer was only one (1) byte TOO
  179.         SHORT.
  180.  
  181.  10/17/88 21:07:34.83
  182.  
  183. 172.    BUG fix --- When using FPRINT, F-PC would seemingly at random
  184.         times decide not to print files if it found the printer off line at
  185.         the moment it wanted to start printing a new file. This has been
  186.         fixed.  FPRINT now only checks for the printer being off line at
  187.         the very beginning of an FPRINT, and disregards it later on.
  188.  
  189. ------------------ Version 2.21  10/17/88 21:10:45.26 -----------------
  190.  
  191.  10/23/88 16:23:59.96
  192.  
  193. 173.    Editor enhancement --- Added word and character case conversion
  194.         toggles to the Option and Advanced menus. Alt-O_W toggles a word
  195.         between lowercase and UPPERCASE. Alt-O_C toggles a character
  196.         between lowercase and UPPERCASE.
  197.  
  198. 174.    Small change --- Moved PRINT.SEQ into the F-PC system.  Also
  199.         enhanced PRINT.SEQ somewhat so it can be used in a program, to
  200.         redirect printing easily to a printer.
  201.  
  202. 175.    Bug fix --- Corrected a bug in PRINTING.SEQ, it was always sending
  203.         the printer attribute reset codes for BOLD OFF, UNDERLINE OFF, etc.
  204.         at the start of each line printed.  This probably didn't hurt
  205.         anything, but became obvious when I tried to edit a file I had
  206.         created with PFILE, and it contained all of those ESC commands at
  207.         the start of every line.
  208.  
  209.  10/23/88 18:17:39.67
  210.  
  211. 176.    SED printing enhancement --- Added print to a file to the printing
  212.         menu of SED. Just press S while in the print menu, and you will be
  213.         allowed to SET the print device of file.
  214.  
  215.  10/24/88 10:48:31.25
  216.  
  217. 177.    Nice addition --- Received a nice utility today from Bill Muench. A
  218.         modified version of the disassembler that prints in PREFIX mode
  219.         rather than POSTFIX. It has been placed in the CURLEY.ARC file.  It
  220.         is now easy to disassemble to a file with PFILE, and then modify
  221.         and reload the assembly code for a slightly different purpose.
  222.  
  223.  
  224.  
  225.  10/26/88 15:18:24.05
  226.  
  227. 178.    BUG fix --- I modified MENUS.SEQ, and didn't recompile the system
  228.         to find I needed to change F-PC.SEQ also, consequently the system
  229.         would not EXTEND. FIXXED.
  230.  
  231. 179.    Minor enhancement --- Adjusted SMARK in the editor so an F3-mark
  232.         will not display the mark set message if it is executed in a macro.
  233.  
  234. 180     BUG fix --- Corrected PASTE in the editor, it was inserting an
  235.         extra blank line at the end of each paste.
  236.  
  237.  10/26/88 22:43:51.24
  238.  
  239. 181.    MENU enhancement --- I have done some more cleanup in menus, they
  240.         now no longer require the number of lines to be entered in the line
  241.         where the menu is defined. The function list has been moved to LIST
  242.         space out of code space, and the number of lines is determined
  243.         automatically.
  244.  
  245.              This 7 is no longer needed, the number of lines is calculated
  246.              |   automatically.
  247.              |
  248.              |         Menu title
  249.              |         |
  250.              |         |          Menu text             Menu line functions
  251.              v         v          |                     |
  252.              7 newmenu dfile$     v                     v
  253.                        menuline"  New  file          " makefile
  254.                        menuline"  Open file          " openfile
  255.                        menuline"  Edit  current file " editafile
  256.                        menuline" ────────────────────" noop
  257.                        menuline"  Dos Shell          " do-dos
  258.                        menuline" ────────────────────" noop
  259.                        menuline"  Print Current file " dolisting
  260.                endmenu
  261.  
  262.         This makes menus even easier for an application to define, you
  263.         don't have to worry about getting the count wrong.
  264.  
  265.  10/27/88 14:22:50.40
  266.  
  267. 182.    WORDS BUGFIX & enhancement ---  Decided to fix the bug in WORDS
  268.         that was causing words not containing the specified character to be
  269.         displayed. I fixxed this bug, and added the enhancement to WORDS to
  270.         allow TWO STRINGS to follow WORDS, which will cause only those
  271.         words containing both strings to be displayed. Example:
  272.  
  273.                 WORDS > @ <enter>       will display only words containing
  274.                                         both the @ and the >.
  275.  
  276.  
  277.  
  278.  
  279.  
  280.         You need not give both strings, but you can.  You CANNOT of course
  281.         include only one parameter, and then follow on the same command
  282.         line with more forth commands.
  283.  
  284.         SEE also note 187 on the BUG FIX for SEARCH.
  285.  
  286.  10/28/88 08:48:08.71
  287.  
  288. 183.    I have received some complaints that the F-PC kernel is TOO TIGHT.
  289.         Meaning there is no room for further additions.  I have moved the
  290.         CODE section of the meta compiler out of the dictionary, and into
  291.         its own segment. This new segment is just under 64k.  It needs to
  292.         be this large because the X and Y segments are moved into the CODE
  293.         segment before the save is done.  This does not NEED to be done,
  294.         but would have taken me longer to fix, so I didn't.
  295.  
  296.         Sooo, There is now about 37k bytes available for further kernel
  297.         expansion, and 46k bytes available for the symbol table used by
  298.         the meta compiler.  This should be enough for a while.
  299.  
  300.         By the way the system will run in under 300k, but to meta compile
  301.         you need about 425k.
  302.  
  303. 184.    OFF>, ON> +!> INCR> DECR> enhancement --- I received some
  304.         complaints about these words not being available from the keyboard
  305.         at command level.  I have corrected this, and they can now be used
  306.         at the keyboard.
  307.  
  308. 185.    Added USED, and .USED enhancement --- These words can easily be
  309.         used to measure the space used to compile a program or segment.
  310.         They are used as follows:
  311.  
  312.                 USED FLOAD filename <enter>
  313.                         or
  314.                 !USED FLOAD filename .USED <enter>
  315.  
  316. ------------------ Version 2.22  10/29/88 14:08:24.17 -----------------
  317.  
  318.  10/31/88 12:11:12.01
  319.  
  320. 186.    BUG fix in WORDS --- Thanks to Leon Dent for pointing it out, and
  321.         Gene Czarcinski for fixing the bug in WORDS that made it display
  322.         VALUEs when requesting CONSTANTs.
  323.  
  324.  10/31/88 14:34:40.92
  325.  
  326. 187.    BUG fix in SEARCH --- Thanks to Bill McCarthy for pointing out the
  327.         bug in SEARCH, his fix almost does the trick, but one other
  328.         attribute of SEARCH is that it should return a TRUE for found if
  329.         the string being searched for is of length zero (0). A simple
  330.         addition to the beginning of SEARCH allows for this condition.
  331.  
  332.  
  333.  
  334.  
  335. 188.    COLORIZER enhancement --- Modified and add Leon Dent's COLORIZE
  336.         utility. I generalized the implimentation a bit to allow it to be
  337.         loaded as one file.  Now you will get various colors when you use
  338.         SEE, WEORDS or DEBUG.  Use COLORIZEOFF to disable it.  It is
  339.         automatically disabled on a monocrome display.
  340.  
  341.  10/31/88 17:35:27.33
  342.  
  343. 189.    BUG fix in MARK EMPTY --- Someone pointed out to me that MARK words
  344.         like EMPTY did not always move the LIST space back to their mark
  345.         point.  This was caused by the dumbness of MARK, and has been
  346.         corrected.
  347.  
  348.  11/01/88 22:19:07.04
  349.  
  350. 190.    MAKE GEORGE HAWKINS HAPPIER --- Not happy, just happiER.  I have
  351.         added BEHEAD.SEQ into the system, and it is even ACTIVE.  This
  352.         saves about 700 heads, and about 9000 bytes of head space.  The
  353.         system has about 1750 words now, down from almost 2500. I obtained
  354.         a fixed version of BEHEAD from George's LOWBROW which I still can't
  355.         make work, (BUT IT SOUNDS VERY INTERESTING), and installed it into
  356.         F-PC.  See George's BEHEAD.SEQ file for notes on how to use it in
  357.         your own files.  I have added an EXTENDA.BAT and an F-PCALL.SEQ to
  358.         make it easy for novices to re-extend the system to get all of the
  359.         heads back.  This will no doubt seem silly to you senior folk, but
  360.         there will probably be at least one novice that will appreceiate
  361.         it.
  362.  
  363. 191.    MAKE GEORGE HAWKINS EVEN HAPIER --- I have added George's
  364.         ASSEMBLER jump labels, and local label mechanism to PASM.SEQ. This
  365.         may cause problems for me later, since I am still waiting on the
  366.         80286 extensions to come in, but I believe the integration of those
  367.         changes will be fairly simple.
  368.  
  369.         George's Local labels are it turns out different in a major way
  370.         from the local labels I was using before.  Here is the difference:
  371.  
  372.                 George's local labels can only be used WITHIN ONE
  373.                 CODE word.  That is lables are cleared at the start
  374.                 of a CODE word, and verified at the end of a CODE
  375.                 word.  The previous implimentation of local labels,
  376.                 allowed labels to cross the bounds of code words as
  377.                 long as they were within the 128 byte range of the
  378.                 branch.  And as such REQUIRED that the user manually
  379.                 reset the labels with CLEAR_LABLES.  George's new
  380.                 mechanism is fine for most peoples needs, but NOT for
  381.                 all.  Specifically Robert Smith's Floating point
  382.                 package uses this "ACROSS CODE LABELS", and as such
  383.                 would not work under George's original
  384.                 implimentation.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.         The solution turns out to be fairly simple,  I have added two
  391.         words to F-PC, which switch between local only references, and
  392.         global references, with the default to be LOCAL ONLY.  The words
  393.         are LOCAL_REF, and GLOBAL_REF.  You will probably never need to
  394.         worry about these, local labels are normally used only within a
  395.         single CODE word.
  396.  
  397.  11/02/88 15:41:44.38
  398.  
  399. 192.    Made FIND a defered word --- George Hawkins needed FIND to be a
  400.         defered word, and now it is.
  401.  
  402.  11/02/88 23:50:50.79
  403.  
  404. 193.    BUG fix in "HEADER --- George Hawkins found a bug in "HEADER, that
  405.         was preventing it from working properly in the upper 32k of HEAD
  406.         space.  It was using a MIN which is signed, in a place where an
  407.         un-signed MIN was needed.  I have added UMIN to the kernel to deal
  408.         with this problem, and I have added UMAX to be consistancy.
  409.  
  410. 194.    BUG fix in KERNEL2.SEQ --- I found a bug introduced by the move of
  411.         CODE out of CODE space in the meta compiler, into a seperate
  412.         segment. There was an ERASE in KERNEL2.SEQ that was subsequently
  413.         erasing the real CODE space rather than the target CODE space.
  414.         FIXXED.
  415.  
  416. ------------------ Version 2.23  11/02/88 23:55:21.30 -----------------
  417.  
  418.  11/03/88 18:27:16.33
  419.  
  420. 195.    I have added a LOADABLE utility to the system for sorting
  421.         paragraphs. The file is called PARSORT.SEQ, and when it is loaded
  422.         it REPLACES the "Sort Paragraph Lines function" which is invoked
  423.         with F7 or ESC-A-S.  This new function sorts the paragraphs by
  424.         looking at the first 8 characters of the first line of each
  425.         paragraph, and sorting them until the file end is reached, or a key
  426.         is pressed on the keyboard.  This was written to assist me in
  427.         creating the new GLOSSARY of F-PC.
  428.  
  429.  11/04/88 16:11:42.31
  430.  
  431. 196.    BUG fix --- Discovered a bug in KERNEL1.SEQ, The definition of
  432.         PAUSE was supposed to be:
  433.  
  434.                 CODE PAUSE      NOP
  435.                                 NOP
  436.                                 NOP
  437.                                 NEXT    END-CODE
  438.  
  439.         Unfortunately the NOP instructions were exchanged with the Forth
  440.         NOOP word, which of course compiles nothing.  So PAUSE was actually
  441.         only a NEXT.  Fortunately this was not a SERIOUS problem, as NEXT
  442.         is INLINE in the kernel. so there was infact space for MULTASK to
  443.         patch into PAUSE. FIXXED.
  444.  
  445. 197.    AUTOSAVE added to editor --- The editor will now automatically save
  446.         your changes after 10 minutes of keyboard in-activity.  Some
  447.         people tend to leave the keybaord and do other things while in an
  448.         edit, this improves your data security in the case where someone
  449.         walks up and turns off your computer, or a power failure occurs.
  450.  
  451.         For those of you who want to control this automatic saving, I have
  452.         added the words AUTOSAVEOFF and AUTOSAVEON in the FORTH vocabulary.
  453.         If you want to set the automatic save to a different time, use
  454.         the VALUE AUTOSAVE-MINUTES in the EDITOR vocabulary. As I mentioned
  455.         before it is set to 10 for 10 minutes. The following sequence will
  456.         set AUTOSAVE-MINUTES to 20 minutes:   20 =: AUTOSAVE-MINUTES
  457.  
  458.  11/05/88 17:02:30.23
  459.  
  460. 198.    Line join cleanup --- Minor cleanup in the join line commands of
  461.         the editor.  When pressing backspace at the beginning of a line and
  462.         thus joining a line to a blank line, SED no longer inserts a blank
  463.         at the beginning of the line.  And when using forward delete to
  464.         force a following line to join with the current line, SED will only
  465.         insert a space (to maintains seperate words) if the character just
  466.         before the current column is NOT blank.
  467.  
  468. 199.    SED Goto enhancement --- Added Goto NEXT and PREVIOUS paragraph to
  469.         a generalized GOTO menu Alt-G which now contains goto PAGE, LINE,
  470.         NEXT paragraph, and paragraph BEFORE.  There have been several
  471.         times I wanted to make a macro where I needed a next paragraph
  472.         command and didn't have one.
  473.  
  474.  11/06/88 23:57:39.16
  475.  
  476. 200.    ADD the GLOSSARY --- Finished the first pass on an alphabetized
  477.         GLOSSARY for F-PC's FORTH vocabulary. It contains arount 1000
  478.         entries and consists of about 170k of text. Only a few inner words
  479.         have been excluded.
  480.  
  481.  11/07/88 10:09:47.40
  482.  
  483. 201.    Enhance REF --- REF now looks at both normal and USER DEFERed words
  484.         for references to the requested word.
  485.  
  486.  11/07/88 14:33:07.71
  487.  
  488. 202.    BUG FIX in FLOAD --- I was modifying FLOAD to allow loading a file
  489.         from within a COLON definition, and found a bug in the way FLOAD
  490.         was preserving the previous compile state.  FLOAD has always only
  491.         worked if one fload was placed on a line, if two were placed on one
  492.         line, the second one would be ignored.  This problem was caused by
  493.         my not understanding the nested load process fully, suffice to say
  494.         the correct solution is to preserve the file pointer to the
  495.         beginning of the line, and on coming back from an fload, reread the
  496.         entire line from the previous file, resetting >IN to its original
  497.         offset into the line when the fload occured.
  498.  
  499.         You can now put more than one FLOAD on a line, and the second one
  500.         will even be done!
  501.  
  502.         With this bug fix also comes a factoring of FLOAD, adding the new
  503.         word $FLOAD which takes a counted string, and loads the specified
  504.         filename.
  505.  
  506. 203.    BUG FIX printing --- Fixed a bug in the PRINTING.SEQ that was
  507.         causing the footer to wrap around to the next line if the left
  508.         margin was increased above two on an 80 column printer.
  509.  
  510.  11/09/88 15:17:41.87
  511.  
  512. 204.    Cleanup --- Deleted +S, from the assembler, it was not used
  513.         anywhere, and has no use.
  514.  
  515.  11/09/88 17:06:36.13
  516.  
  517. 205.    Control Structure enhancement --- I received a modified set of
  518.         control structures from Bill Muench, the changes are VERY VERY
  519.         minor, but result in a SIGNIFICANT INCREASE in versatility.  The
  520.         change is effectively to move a 2SWAP from the beginning of REPEAT
  521.         and put it at the end of UNTIL.  Some additional words have also
  522.         been added to take advantage of the increased versatility.  The
  523.         changes have been added to the SYSTEM, the META COMPILER, and the
  524.         ASSEMBLER.  Here are some comments sent to me by Bill.
  525.  
  526.         Some possible combinations:
  527.  
  528.         DO ...
  529.             WHILE ...
  530.                WHILE ...
  531.         LOOP ...
  532.                ELSE UNDO ...    \ drop or use index and limit
  533.                THEN ...
  534.             ELSE UNDO ...       \ drop or use index and limit
  535.             THEN
  536.  
  537.         BEGIN ...
  538.         WHILE ...               \ normal structure
  539.         REPEAT
  540.  
  541.         BEGIN ...
  542.           IF ...                \ now branch back to begin
  543.           CONTINUE ...          \ otherwise, conditionally branch
  544.         UNTIL
  545.  
  546.         BEGIN ...
  547.           WHILE ...             \ multiple exit tests
  548.         UNTIL ...
  549.           ELSE ...              \ and possibly different action
  550.           THEN
  551.  
  552.  
  553.         BEGIN ...
  554.             WHILE ...           \ multiple exit tests
  555.                WHILE ...        \ multiple exit tests
  556.         UNTIL ...
  557.                ELSE ...         \ and possibly different action
  558.                THEN ...
  559.             ELSE ...            \ and possibly different action
  560.             THEN
  561.  
  562.         BEGIN ...
  563.           AFT ...
  564.           THEN ...              \ ? test first
  565.         WHILE ...
  566.         REPEAT
  567.  
  568.         FOR ...
  569.           WHILE ...            \ in effect an immediate ?leave
  570.         NEXT ...
  571.           ELSE ... R> ( DROP ) \ drop or use the loop index
  572.           THEN
  573.  
  574.         FOR ...
  575.           AFT ...  \ this is not executed the first time thru the loop
  576.           THEN ... \ this is executed every time
  577.         NEXT
  578.  
  579.         Another way to exclude the n=0 case and also have the loop
  580.         execute n times, but is longer and slower specifically on a FORTH
  581.         machine like the NC4000 or Harris RTX.
  582.          ( n ) ?DUP IF 1- FOR ... NEXT ... THEN
  583.  
  584.         ... IF ... BREAK     \ case like structure
  585.         ... IF ... BREAK     \ break compiles an exit
  586.         ... IF ... EXIT THEN \ same as break
  587.  
  588. 206.    The GLOSSARY file F-PCGLOS.TXT includes a section at the beginning
  589.         containing a word list by category, to make it easier to locate a
  590.         word for a particular operation.
  591.  
  592.  11/10/88 14:52:53.77
  593.  
  594. 207.    Bug fix --- The Join Line command in SED would sometimes crash if
  595.         you tried to join lines to build 130+ character lines.  This has
  596.         been fixed.  Join line and Split line also added to the menu bar.
  597.  
  598. 208.    SED enhancement --- Added automatic right margin set available with
  599.         a flag. This was done primarily for the Z editor, so it could set
  600.         the right margin to the proper value for a document when loading
  601.         it.  The VALUE's name is RMSET? in the EDITOR. It defaults to FALSE
  602.         (don't set right margin) in F-PC and TRUE (auto set right margin)
  603.         in the Z editor.
  604.  
  605. ------------------ Version 2.24  11/11/88 10:31:46.44 -----------------
  606.  
  607.  11/12/88 10:43:46.46
  608.  
  609. 209.    Information message cleanup --- Ajusted the INFO.SEQ file such that
  610.         it will cause the F-PC.MSG file to be re-created during an
  611.         EXTEND.BAT if the file does not exist.  This eliminates the need
  612.         for a switching mechanism to force rebuilding the message file when
  613.         a message changes. All you have to do is delete the existing
  614.         message file and a new one will automatically be built.
  615.  
  616.  11/12/88 17:45:24.59
  617.  
  618. 210.    Added "CREATE --- Per George's Hawkins request in the latest
  619.         BROWSER he sent, I have added the "CREATE word back into the
  620.         kernel.
  621.  
  622.  11/15/88 15:18:12.02
  623.  
  624. 211.    Did some clean-up on the system, it is now possible to load F-PC
  625.         without the editor and still have FLOOK available.  Some people
  626.         complained that FLOOK was too closely tied to the editor.  It has
  627.         been decoupled, there is in fact a flag in F-PC.SEQ you can change
  628.         the state of that will cause a system to be built without the
  629.         editor.  It will save you 35k or so, but I chalenge you to find an
  630.         editor that will provide the same functionality as SED in so little
  631.         space.  You can aslo of course reduce the size of SED by not
  632.         loading some of the editor extension files.
  633.  
  634.  11/21/88 12:53:22.97
  635.  
  636. 212.    Enhanced the Spawn DOS Shell command from SED --- You can now pass
  637.         a command line to DOS with the ESC-F-D command in the editor, you
  638.         will be asked for a command to perform, and the command line will
  639.         be sent to DOS. A short cut for this function is Ctrl-<enter>. An
  640.         additional short cut is available with Shift-Ctrl-<enter> which
  641.         will issue the same command to DOS as was last entered into the
  642.         command line.  This is especially useful if you are using SED as a
  643.         shell for a compiler, where you want to issue the same command over
  644.         and over as edit changes are made.  You will need to save your
  645.         changes to disk with Ctrl-U before re-compiling, of the compiler
  646.         won't be able to find your changed files since SED is a memory
  647.         based editor.
  648.  
  649. ---------------------- Released to FORML 11/21/88 --------------------
  650.  
  651.  11/23/88 12:43:45.43
  652.  
  653. 213.    Added HEADERSOFF and HEADERSON to meta compiler --- A few words
  654.         have been made headerless with the above words, there were some
  655.         words in the kernel that I did not want accessable in the system,
  656.         and they have been removed. Small space savings.
  657.  
  658. 214.    Enchanced TOLINE- & TOLINE+ in SED --- These words allow moving to
  659.         a particular line very quickly, and a portion has been coded in
  660.         assembly in the word ADJ-PTR-LINES, which adjusts a line pointer
  661.         table line range by a value.  This improved the performance of
  662.         moving from the beginning of a large file to the end, by about 40
  663.         percent. No space cost.
  664.  
  665. 215.    Corrected confusing error messages --- I have corrected the
  666.         confusing error messages associated with #IF, COMMENT:, and
  667.         .COMMENT:.  These words were generating a "Use ONLY while
  668.         compiling" error message that made it hard to determine what the
  669.         real error was. Each word now has an error message signifying that
  670.         the appropriate closing word was not used.  Here is an example:
  671.         "COMMENT: missing a COMMENT;".
  672.  
  673. ------------------ Version 2.25  11/29/88 13:41:12.12 -----------------
  674.  
  675.  
  676.