home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / doc / fpcnotes.txt < prev    next >
Text File  |  1991-04-23  |  67KB  |  1,338 lines

  1. FPCNOTES.TXT  This file documents changes in F-PC, Version 2.25 => 3.55
  2. °Whats-New
  3.  
  4.              SUMMARY of some new things  (item number):
  5.  
  6. DELETED WORDS:  XFDOS (26), TYPESEG (83) <EXEC> (122)
  7.  
  8. NEW WORDS:      FPATH  FPATH+  .FPATH (4), DELIMITER (5), MCROWS (9),
  9.                 CLOSEALL (11), { } (19) (20), VIEWFROM (34), TONE (54),
  10.                 +PLACE (107), 14 more words (83), FPCVER# (109),
  11.                 LEAVEPROMPTON LEAVEPROMPTOFF (111),
  12.                 OTHER.CHECK MLOAD (115), <EMMEXEC> FPC>EMM (122),
  13.                 UBETWEEN -SKIP (127),
  14.                 BLINKON, BLINKOFF, BLINK!, PAL!, BORDER@ and BORDER! (131),
  15.                 LISTSET (135)
  16.  
  17. NEW FEATURES:   Hypertext (24) (31) (36) (42) (43)
  18.                 Mouse     (25) (40) (41) (129)
  19.                 Pull-down stack (15)
  20.                 Rotate thru files (44) (45) (46) (47)
  21.                 Scroll PgUp, PgDn (51)
  22.                 Escape sequences in ."  (57)
  23.                 Help in editor (16) (23) (33)
  24.                 Visual vocabulary stack (86)
  25.                 Load marked lines from editor (115)
  26.                 New memory management (116)
  27.                 Bug fixes in multi-tasking (119)
  28.                 Expanded memory support (122)
  29.                 Swap to EMM, DISK support for Shell (124)
  30.                 Watch point support in debugger (132)
  31.  
  32. 1.      Fixed bug in SEQDOWN.
  33.  
  34. 2. ***  Increased maximum nest of file loads from 4 to 7.
  35.  
  36. 3.      Discarded this change.
  37.  
  38. 4. ***  Added multi directory search to OPEN. F-PC now has a path list
  39.         like DOS. The pathlist is set by a configuration file that is
  40.         loaded automatically at F-PC execution time. The words to do
  41.         this wonderful stuff are as follows:
  42.  
  43.         FPATH <path-string> <enter>     \ sets the Forth PATH
  44.         FPATH+ <path-string> <enter>    \ adds more to the Forth PATH
  45.         .FPATH <enter>                  \ displays the Forth PATH
  46.  
  47.         The words $FILE, $FLOAD, FILE and FLOAD now search the Forth
  48.         PATH while trying to open and or load the file specified.
  49.         The search order is controled by the order path specs are placed
  50.         in the path string. In the following example:
  51.  
  52.                 FPATH E:\FPC\SRC;E:\FPC\HLP;E:\FPC\TOOLS <enter>
  53.  
  54.         Here the E:\FPC\SRC directory is searched before the E:\FPC\HLP
  55.         directory which in turn is searched before the E:\FPC\TOOLS
  56.         directory.  The Forth PATH may be up to 132 characters long.
  57.  
  58. 5.      Added a word DELIMITER, which is a VALUE that holds the
  59.         delimiter character used by LINEREAD as the end of a line to be
  60.         read. DELIMITER defaults to $0A, a linefeed. It is useful at
  61.         times to be able to read lines from a file that does not
  62.         contain linefeeds, but only carriage returns. Changing
  63.         DELIMITER to $0D will allow this. Also useful for "ASCIIZ" files
  64.         delimited by a zero -- change DELIMITER to $0.
  65.  
  66. 6.      The print menu bug has been fixed; it caused the cursor to
  67.         disappear after re-directing printing to a file.
  68.  
  69. 7.      Fixed an undocumented bug in SEDSHELL.SEQ. For some reason
  70.         unknown to me I had changed version 2.25 so it could not
  71.         recover ram while editing, when it wanted to spawn a DOS shell.
  72.         Thus it was not possible to perform any but the most trivial
  73.         DOS operations when spawning a shell from the editor. This has
  74.         been fixed. The editor recovers all of the ram it can while
  75.         leaving enough room in memory for the file currently being
  76.         edited, then spawns the DOS shell.  The space is recovered when
  77.         the shell terminates.
  78.  
  79. 8.      Fixed a bug in the assembler that was found by Bill Muench.  It
  80.         seems there was code in the assembler to allow a register
  81.         indirect operation without having to specify the index value if
  82.         the offset was 0. Unfortunately the way the assembler was
  83.         checking for the stack depth change, didn't work, and you
  84.         always had to specify the index for the assembler to work.  The
  85.         usless code to test the stack depth has been removed.  The
  86.         local label array which defaults to a size of 32 labels, has
  87.         been modified to allow adjusting the number of local labels at
  88.         runtime. Normally you would not need to do this, but it seems
  89.         Robert Smith needed HUNDREDS OF LABELS for some reason.  If you
  90.         create a new array of B/LLAB times the number of labels you
  91.         need bytes, and plug the address of the array into the VALUE
  92.         LLAB[], then change the VALUE MAX-LLABS to the new maximum, you
  93.         can use however many local labels you might need.
  94.  
  95. 9.      Added a VALUE to VIDEO.SEQ called MCROWS. If you have problems
  96.         with your cursor disappearing on an EGA or other video card,
  97.         you can change the value of MCROWS in the F-PC.CFG file to a
  98.         smaller number, and thus get your cursor to re-appear. MCROWS
  99.         stands for "Maximum Cursor ROWS", and is used at boot time to
  100.         limit the number of cursor rows used when changing the cursor
  101.         size in the word BIG-CURSOR.
  102.  
  103. 10.     Changed the default for headerless words to FALSE. F-PC will
  104.         normally be shipped with all headers present; the EXTEND.BAT
  105.         word will extend the system will all headers present.  The
  106.         EXTENDA.BAT file has been deleted, and has been replaced with
  107.         EXTENDH.BAT for headerless extension.  I and several people I
  108.         have talked to have run into problems because many words in
  109.         F-PC 2.25 were headerless, so the default now is to have the
  110.         headerless mechanism present, but turned off.
  111.  
  112. 11.     Added CLOSEALL, to make it easy to close all open files. Also
  113.         modified the too many files open message to suggest using
  114.         CLOSEALL to remedy the problem. Also modified SEQDOWN to clip
  115.         the VALUE SEQHANDLE to be within the valid range of the handle
  116.         stack.  Some programs may change SEQHANDLE to point to some
  117.         other handle; this protects us from crashing if this has been
  118.         done and not restored.
  119.  
  120. 12.     Fixed minor bug in >VIEWFILE, that was preventing view from
  121.         working on the names of files in the FILES directory. Also
  122.         adjusted 1FILE and FILES_SET so they use HERE+1000 rather than
  123.         HERE+500, so they would not conflict spacewise with WORDS.
  124.         Added a new utility called ID, that works like WORDS, but
  125.         displays the first line of the source file for each matching
  126.         word.  The line is preceeded by the word name so you can easily
  127.         sort the file in the editor.
  128.  
  129. 13. *** ****** BUG FIX, for possible SERIOUS error condition!! ******
  130.         In the routine that writes edited text to disk, there is a
  131.         routine called FLUSHWRITE.  This word is supposed to return a
  132.         boolean flag FALSE if the write was successful, but in the
  133.         release version of F-PC, it would only return a flag if there
  134.         was text that needed to be written. If the amount of text to be
  135.         written happened to have been divisible by the write buffer
  136.         size, then FLUSHWRITE would not have had any text to write, and
  137.         would not have returned a flag, causing unpredictable results.
  138.         Usually a crash back to DOS, but sometimes a system HANG.
  139.         FORTUNATELY the data being edited was secure, having already
  140.         been written to disk and the file closed, and the bug would
  141.         ONLY show it self in one (1) out of a thousand edits, since the
  142.         write buffer size was 1k. FIXED  This bug was also affecting
  143.         the Z editor.
  144.  
  145. 14.     Fixed bug in LINEEDITOR: it was pulling in text from the right
  146.         when you press backspace even when in OVERTYPE mode mode.  It
  147.         should have simply been erasing the character to the left of
  148.         the cursor and left the line length alone.
  149.  
  150. 15.     Added Window type Pulldown stack: try pressing BOTH SHIFT KEYS
  151.         together when there is something on the stack. See the source
  152.         in the file WINSTACK.SEQ.
  153.  
  154. 16.     Added Word HELP within the editor: position the cursor on a
  155.         word while editing a file, and press Alt-H. A HELP and VIEW
  156.         window will pop up, giving you information about the word the
  157.         cursor is positoned on. You can use the arrow keys and PgUp,
  158.         PgDn to move through the source file. Pressing Enter copies the
  159.         top visible source file line to the Cut/Copy/Paste file and
  160.         moves down to the next source line.  Alt-V can then be used to
  161.         insert the lines that were copied back into the file you are
  162.         editing. ESC returns to the edit. VERY HANDY at those times
  163.         when you know what word to use, but can't remember how it is
  164.         used exactly.
  165. 17. *** Corrected the sensitivity of F-PC to think a file terminated
  166.         with a ^Z was an error. It now scans the file end on loading
  167.         for ^Z's, and changes them to blanks. Also if any line of a
  168.         file is not terminated with a CRLF, F-PC won't just stuff two
  169.         blanks at the line end anyway.
  170.  
  171. 18.     Screen wouldn't clear in SLOW mode. Fixed by adding a BIOS call
  172.         to clear the screen when DARK was used in SLOW mode rather than
  173.         using the fill memory routine in both SLOW and FAST.
  174.  
  175. 19.     Added Glen Haydon's { } tool to F-PC, allowing a file to
  176.         contain comments with imbeded source rather than the other way
  177.         around. See the file BRACES.SEQ for more information.
  178.  
  179. 20.     Adjusted the file load mechanism so the contents of the deferred
  180.         word RUN is saved before and restored after the load of a file.
  181.         This allows Glen's { } tool to not terminate a file with { and
  182.         still function properly.
  183.  
  184. 21. *** 03/27/89       ** THIS CHANGE REVERSED IN 102 **
  185.         Changed the name of F-PC to F-TZ to make Dr. Ting happy. He
  186.         thinks there will be confusion if I send out any versions of
  187.         F-PC that are not exactly version 2.25.
  188.  
  189. 22.     Removed the user tools from the system disk. From now on these
  190.         will be an extra item available on a seperate disk.
  191.  
  192. 23.     Modified word help in the editor. It now consists of three
  193.         commands, Alt-E, Alt-B, and Alt-H, used as follows:
  194.  
  195.                 Alt-E   Nest and EDIT the file containing the word
  196.                         under the cursor.
  197.  
  198.                 Alt-B   Nest and BROWSE the file containing the word
  199.                         under the cursor. No changes can be made.
  200.  
  201.                 Alt-H   Nest and BROWSE the file containing the HELP
  202.                         for the word under the cursor. No changes can
  203.                         be made.
  204.  
  205.         These EDITOR commands are complemented with new commands at the
  206.         FORTH command level:
  207.  
  208.                 REPAIR <name>   Starts Editing the file containing
  209.                 E <name>         <name>.
  210.  
  211.                 BROWSE <name>   Starts browsing/viewing a file
  212.                 VIEW <name>      containing <name>.
  213.                 B <name>
  214.                 V <name>
  215.  
  216.                 HELP <name>     Starts browsing the help file for
  217.                 H <name>         <name>.
  218.  
  219.         When in BROWSE mode, no changes can be made to the file, but
  220.         you can still copy sections out to the TEMP.SEQ file for
  221.         insertion into the file you were editing.
  222.  
  223.         The above commands used in the editor actually save the
  224.         current edit context, and nest into a new edit. A "+1" to "+5"
  225.         will appear in the upper right hand corner of the screen to
  226.         help you remember how deeply you are nested. When you quit an
  227.         edit, you will pop back one level to the previous file you were
  228.         editing, with the cursor in the same place where you left off.
  229.         Changes to a file are automatically saved when you nest edits.
  230.  
  231. 24. *** In line with the previous changes, I have added a sort of Hyper
  232.         text mechanism. Thanks to George Hawkins for the inspiration for
  233.         this feature. A word \HYPER has been added that is used to start a
  234.         hyper text file. Within the file is ordinary text, as well as a
  235.         marker to signify a destination for a hyper text link. The marker
  236.         is then placed at the source where you want a branch to occur.
  237.         While this may not be a clear explanation, you can look at the
  238.         editor help file for a good example of how these linkages work.
  239.         Just press F1 whenever you are using the SED editor.
  240.  
  241.         These linkages can be setup in any file, and are made available
  242.         when the hyper text file is compiled on F-PC. Now you don't have
  243.         to be concerned about space, as only the markers take up room in
  244.         the dictionary, and then only for the header and NOOP CFA. All
  245.         hyper words are placed in the HYPER| vocabulary which is always
  246.         searched first when a browse (Alt-B) command is performed.
  247.  
  248. 25. *** 04/10/89
  249.         Completed first pass a mouse support for F-PC. The mouse can now be
  250.         used for many things. At the Forth command level, you can use the
  251.         mouse and left button to position the cursor on the current command
  252.         line being edited. The right button is the same as ESC, and
  253.         enables and disables the menubar. When the menu is enabled, you
  254.         can use the left button to pull down menus like any other program
  255.         with pull down menus and mouse support (press and drag).
  256.  
  257.         The mouse is also available while in the editor for cursor
  258.         position adjustments, etc.
  259.  
  260.         Mouse support costs about 3k of memory, and is optional. If you
  261.         don't want mouse support, just don't load the files MOUSE.SEQ, and
  262.         MOUSEY.SEQ.
  263.  
  264.         You can add mouse support to your programs by writing a button
  265.         driver. Look at the file MOUSEY.SEQ for some examples of button
  266.         drivers.  A button driver is required for each "MODE" in your
  267.         program, typically involving a test for where the mouse is on the
  268.         screen, and then the performance of a function.  The mouse button
  269.         can also return keystrokes as if they were typed on the keyboard.
  270.  
  271. 26.     04/11/89
  272.         Deleted the word XFDOS from KERNEL2.SEQ. It was only used by
  273.         MEMSET, which has been replaced with the code word SETBLOCK which
  274.         was being loaded at extend time, but has been moved into
  275.         KERNEL2.SEQ. For those of you using XFDOS, you will have to copy
  276.         the XFDOS definition out of your existing systems kernel file and
  277.         load the code definition on top of F-PC.
  278.  
  279. 27.     Un-wound several CODE words that were calling sections of other
  280.         CODE words. This costs a few more bytes, but facilitates testing I
  281.         am doing.
  282.  
  283. 28.     Modified Meta Compiler to allow local labels to work. It seems the
  284.         new local label mechanism was not compatible with the meta
  285.         compiler, and has thus been modified to make it compatible. This
  286.         also resulted in some small changes to PASM.SEQ.
  287.  
  288. 29.     04/12/89
  289.         Found and stomped on an insidious bug in %FIND. The instruction
  290.         sequence:
  291.  
  292.                 MOV PRIOR # 0
  293.  
  294.                 should read
  295.  
  296.                 MOV PRIOR # 0 WORD
  297.  
  298.         Under VERY RARE conditions (i.e. a vocabulary on a 256 byte
  299.         boundry), %FIND would not be able to find words in a particular
  300.         vocabulary. This cost me a WHOLE DAY to find.  This bug is also in
  301.         all earlier versions of F-PC.
  302.  
  303. 30. *** 04/13/89
  304.         Corrected another condition that has been present since the
  305.         beginning of my sequential file editor design. Horizontal
  306.         scrolling is now being done a single character at a time rather
  307.         than the half screen scroll I used to use. The half screen scroll
  308.         was intended to minimize whole screen re-displays, but since I can
  309.         re-display the entire screen 10 times a second on an XT class
  310.         machine, there is no real reason for the half screen scroll. This
  311.         new way of scrolling is much better.  Mouse support has also been
  312.         added for horizontal scrolling.  Keyboard support for horizontal
  313.         scrolling is done with SHIFT SPACE to scroll RIGHT, and ALT SPACE
  314.         to scroll LEFT.  This is as yet not documented any other place.
  315.  
  316. 31.     04/18/89
  317.         I have reworked the hypertext mechanism to remove the link
  318.         destinations from the dictionary. I got up to about 80 links, and
  319.         they were consuming about 2k of dictionary space. Since I want to
  320.         be able to handle many more (hundreds of) links, the dictionary
  321.         overhead seemed excessive.  I moved the links into a file called
  322.         HYPER.NDX, which is compiled by the batch file MAKINDEX.BAT. The
  323.         index file consists of link names followed by line number offset
  324.         into the target file.  The filenames are included in the same
  325.         file, as the first line of a group of links for that file.  The
  326.         filename is flagged by a graphic character 249 as the first
  327.         character in the line.  As you would expect there is an increase
  328.         in the time required to find a link when the word being found is
  329.         in the index file.  The tests I have done indicate I can find a
  330.         single link in a 1000 link file in less than 1/2 second on an 8
  331.         MHz AT. On an XT class machine or from floppy, it will take
  332.         longer.
  333.  
  334. 32.     I have finally standardized on one way of using the variable
  335.         LOADLINE. It used to be used to hold either a line number, or the
  336.         offset into a file, depending on where it was being used. This
  337.         caused some problems, and has been changed. LOADLINE always
  338.         contains the line number of the most recent line read from
  339.         LINEREAD, or the line number of the most recent edit line when you
  340.         leave the editor.
  341.  
  342. 33. *** The meanings of some of the F83 words have been modified. The
  343.         Editor/Browser provides two basic modes, Edit-Change, and
  344.         View-N0-Change. A number of the familear F83 words can be used to
  345.         invoke either the editor or the browser depending on the word used.
  346.         Here is a list of words and their function:
  347.  
  348.                 VIEW <name>     Enter browser on definition <name>.
  349.  
  350.                                 Aliases for VIEW are: BROWSE V B L
  351.  
  352.                 ED <name>       Enter the editor on definition <name>.
  353.  
  354.                                 Alias for ED is: E
  355.  
  356.                 HELP <name>     Enter browser on help for <name>.
  357.  
  358.                                 Alias for HELP is: H
  359.  
  360.                 n1 EDIT         Enter editor on current file at line n1.
  361.  
  362.                 n1 LIST         Enter browser on current file at line n1.
  363.  
  364.         The F10 key can be used to leave any of the above browse or edit
  365.         modes.
  366.  
  367. 34.     04/18/89 Evening
  368.         Added VIEWFROM and an alias VF to allow viewing very large files
  369.         from a specified starting line number. It is used in the form:
  370.  
  371.                 OPEN FPCGLOS.TXT                A very large file
  372.                 300 VIEWFROM <enter>
  373.  
  374.         Skips the first 300 lines of the file and starts reading at line
  375.         300. This is useful for examining very large files.
  376.  
  377.         You should of course be carful not to switch to edit mode and
  378.         change such a file lest it get written back to the original file
  379.         on disk. You can use Alt-W to write the read portion of the file
  380.         out to a new filename.
  381.  
  382. 35.     04/22/89
  383.         Adjusted KERNEL4.SEQ to save and restore the status of the CONTROL
  384.         BREAK flag on entry and exit.  F-PC was setting the flag, and
  385.         leaving it set when you leave Forth, which of course could confuse
  386.         some other programs.
  387.  
  388. 36. *** Adjusted COLD so it won't crash if you execute it again from the
  389.         keyboard. Its initialization is only done once, after which it
  390.         performs BOOT then QUIT.
  391.  
  392. 37. *** 04/24/89
  393.         Much thanks to Robert Berkey, who has lately been working with
  394.         F-PC.  He gave me a multi-page list of small bug fixes, cleanups
  395.         and optimizations, most of which I have installed.  Here is a list
  396.         of the effected areas:
  397.  
  398.                 Adjusted decompiler SEE to handle the following words
  399.                 properly:
  400.  
  401.                         [']  IS  CASE OF ENDOF ENDCASE
  402.  
  403.                 Changed name of 2+! to D+!.
  404.  
  405.                 Added save and restore of BP and SI to BIOS level INT's.
  406.  
  407.                 Added CODE optimizations to the following words:
  408.  
  409.                         0<  0=  0<>  0>  =  <>  U<  U>  ?DUP  *D
  410.                         WITHIN  BETWEEN  DUP>R  ?BRANCH  -TRAILING
  411.                         OVER  2DUP  3DUP  2OVER  PICK
  412.  
  413.                 Added the following new CODE words:
  414.  
  415.                         PLUCK  RPICK  DOENDOF  DOENDCASE
  416.  
  417.                 VFIND was added to make it easy to search a particular
  418.                 vocabulary for a word.
  419.  
  420.                 Adjusted (KEY) so it can return a null ^@ character.
  421.  
  422.                 Fixed bug in FLOOK and all words that use FALLOF.
  423.  
  424.                 Fixed bug in printer typing. If you simply typed
  425.                 "1 PRINTING !" F-PC would seem to go crazy and print
  426.                 a lot of junk to the printer. This was caused by the
  427.                 command line editor. It now switches to the old
  428.                 version of expect if it detects the printer being
  429.                 turned on.
  430.  
  431.         Again thanks to Bob for the above modifications.  They have been
  432.         individually installed and tested.
  433.  
  434. 38.     04/26/89
  435.         I discovered that KEY? is somewhat slower now that mouse support
  436.         has been added. This resulted in a slower search in the editor
  437.         because I was checking the keyboard on every line searched. I have
  438.         changed it to only check the keyboard once every 128 lines are
  439.         searched. This seems to speed the search up to normal again.
  440.  
  441. 39.     I discovered that when you were entering a string to do a search
  442.         while in the editor, you could press Alt-O and the file selection
  443.         box would popup just as if you were at the Forth command level.
  444.         This is clearly a bug, and in fact caused the editor to crash back
  445.         to Forth when I canceled the selection.  The problem stems from
  446.         the table of functions assigned to function keys when you are
  447.         using the line editor.  I resolved the problem by duplicating the
  448.         line editor's function key table, and installing the menu alternate
  449.         keys only in the table being used by XEXPECT.
  450.  
  451. 40.     04/27/89
  452.         Added mouse MARK to the editor. If you position the mouse at an
  453.         upper line, press the left button and drag the mouse down, lines
  454.         will be shown in reverse video indicating they are marked for a
  455.         subsequent cut or copy operation with Alt-X or Alt-C.
  456.  
  457. 41.     04/29/89
  458.         Added page up and down to the screen mouse support.
  459.  
  460.         Minor cleanup in the file PRINTING.SEQ adjusted the CUT command to
  461.         properly cut all of the lines specified even if it's the last line
  462.         in the file. Several other minor fixes associated with this in the
  463.         file SEDITOR.SEQ. It is now not possible to write a zero length
  464.         file, you will always get at least two characters even if you
  465.         delete all of the lines in the file.  It seems you used to be able
  466.         to delete all lines in a file, causing WRITE.FILE to try to write a
  467.         negative size file which translated to an infinitely large file.
  468.         FIXED
  469.  
  470.         Added mouse support to the browse prompt box that is shown when you
  471.         try to switch to browse mode from edit mode and changes have been
  472.         made. (ESC-A-B)
  473.  
  474. 42.     05/01/89        version 3.x12
  475.         Added a new menu to the SED editor, called HYPER. It contains all
  476.         of the hypertext link and unlink words. It also contains the two
  477.         new commands to create source and destination hyper links Alt-F3
  478.         for a source link, and Alt-F5 for a destination link. Press ESC-Y
  479.         to see the hYper menu.
  480.  
  481. 43.     If you print a file while in browse mode, hypertext destination
  482.         links will not be printed. They will be blanked as they are shown
  483.         on the screen.
  484.  
  485. 44. *** Evening
  486.         Added the ability in SED to toggle between the top two files on the
  487.         file stack. This is done with Alt-F1. Not as fast as editing two
  488.         files in memory since you have to reload a file when you switch,
  489.         but it is very convenient and reasonably fast.
  490.  
  491. 45.     05/02/89  morning before work
  492.         Enhanced the above mechanism, to rotate through whatever files
  493.         have been opened. Again you use Alt-F1, which works very well.  I
  494.         now also want to add a file pick mechanism to allow selection of
  495.         one of the files already opened from a list in a window.
  496.  
  497. 46.     Add the file pick mechanism mentioned above, called Flip as
  498.         Shift-F1. It pops up a window and allows you to select any one of
  499.         the files in the file stack, which is then brought to the top. The
  500.         FILE menu has been adjusted to take into account the flip
  501.         mechanism: you now can leave all edits with a single command
  502.         rather than unlinking to level one first.
  503.  
  504. 47. *** 05/04/89
  505.         Robert Smith has completed going through the source and help files
  506.         for KERNEL1.SEQ and KERNEL2.SEQ.  He has added to and corrected the
  507.         comments. Thank you BOB!
  508.  
  509.         Adjusted the decompiler so it will scroll the upper portion of the
  510.         screen when it is used by the debugger to keep the area of the
  511.         definition visible on the screen.  This was VERY difficult to do
  512.         and in fact is not yet perfected.  It is however functional, and
  513.         useful.
  514.  
  515.         The rotate through open files command Alt-F1 now has an oposite
  516.         function to rotate backwards through the list. The key combination
  517.         is Shift-Alt-F1.
  518.  
  519. 48. *** 05/10/89
  520.         Generalized the following list of VALUE operators:
  521.  
  522.                 !>      =:      @>      SAVE>   SAVE!>  RESTORE>
  523.  
  524.         These operators now are smart about their use on USER variables
  525.         and deferred words.  They will work properly when used on either
  526.         normal variables values and deferred words, or their USER
  527.         equivalents.
  528.  
  529. 49. *** Went through and documented SAVEREST.SEQ, SAVEREST.HLP,
  530.         EQUCOLON.SEQ, EQUCOLON.HLP, KERNEL4.SEQ and KERNEL4.HLP.
  531.  
  532. 50.     LARGE SCREEN INFORMATION
  533.         I have experimented with the CornerStone full-page display, and it
  534.         has some interesting peculiarities.  To get it to work with F-PC
  535.         in FAST mode, you will have to include the following commands in
  536.         your F-PC.CFG file:
  537.  
  538.                 $B001 =: VIDEO-SEG
  539.                 7     =: VMODE-VAR
  540.                 >MONO
  541.                 FAST
  542.  
  543.         The video bios for the CornerStone monitor is not well behaved. As
  544.         you can see it does not use a standard start of screen address.
  545.  
  546. 51.     05/14/89
  547.         Made a very small but useful change to the editor user interface:
  548.         the Control PgUp and Control PgDn keys now scroll the screen up
  549.         and down respectively like Control W and Control Z.  They were
  550.         the same as Control Home and Control End which was a useless
  551.         duplication.
  552.  
  553. 52. *** 05/17/89        **  THIS CHANGE REVERSED IN Nr. 103 **
  554.         Modified DOENDCASE this date to perform a DROP so it does not have
  555.         to be done manually.  This requires you change ALL of your uses of
  556.         this CASE statment to delete the DROPs you now have before ENDCASE,
  557.         or YOUR CODE WON'T WORK.
  558.  
  559.         Also installed a warning into ENDCASE for the next few releases to
  560.         help make this obvious to the user.
  561.  
  562.         This change to ENDCASE resulted in changes to several files
  563.         including the PASM.SEQ file.
  564.  
  565. 53.     05/19/89
  566.         Fixed a bug in $>EXT : it was always assuming a three (3) character
  567.         extension string was being passed, and if a shorter string was
  568.         passed, a garbage character would be appended to the handle.
  569.                               3
  570. 54. *** 05/23/89
  571.         Added TONE for sound generation. Made BEEP a deferred word, and
  572.         defined NEWBEEP to use TONE to do BEEP. The value BEEPFREQ
  573.         controls the frequency of BEEP, and value BEEPDURATION sets the
  574.         duration of BEEP in tenths of a second.
  575.  
  576.         TONE takes frequency and duration and can be used to generate all
  577.         of the various beeps a PC is expected to generate.
  578.  
  579. 55.     Minor cleanup in XEXPECT: it now reacts more as expected when you
  580.         use up and down arrow to step through the line list.  Also
  581.         increased the line stac047epth to twelve (12) lines from six (6).
  582.  
  583. 56.     05/24/89
  584.         Fixed bug in PREPEND.PATH. It was removing the specified drive
  585.         designator, and was not restoring it under all conditions.
  586.  
  587.         Fixed bug in LINEEDITOR.  Some variables were being used on each
  588.         invocation, and were preventing LINEDITOR from being re-enterant.
  589.         LINEEDITOR is still not re-entrant, but it can be nested if you
  590.         clear out its buffer on exit from the nested edit.  For my
  591.         purposes this is adequate.
  592.  
  593. 57. *** Added another feature!  ."   now recognizes imbeded escape
  594.         sequences.  The leadin is "\" as in "C". The functions available
  595.         are:
  596.  
  597.                 0       Normal display attributes
  598.                 1 to 8  Attributes 1 through 8
  599.                 :xx     Delay xx tenths of a second
  600.                 <       Save the current cursor position     (nonest)
  601.                 >       Restore the previous cursor position (nonest)
  602.                 @xxyy   Move cursor to xx,yy
  603.                 B       Beep the speaker
  604.                 D       Dark (clear screen)
  605.                 N       Newline (CRLF)
  606.                 R       Select Reverse video
  607.                 Sxx     Display xx spaces
  608.                 T       Perform a Tab
  609.                 \       Display a \ character
  610.                 `       Display a " character
  611.                 |       Display a linefeed character
  612.  
  613.         See the file PERTYPE.SEQ for additional information.
  614.  
  615. 58. *** 05/26/89
  616.         modified the way MARK works in the editor. Selecting F3-MARK now
  617.         enters a mode where you may move the cursor up and down to select
  618.         lines and those lines selected will be shown in reverse video.
  619.         Pressing F3 again ends the mark operation, leaving the selected
  620.         lines in reverse video until a CUT or COPY operation is done, or F3
  621.         is pressed again to clear the mark.  This seems much more intuitive
  622.         than the way it worked before.  Top status line changes to tell you
  623.         you are in MARK mode after the first F3 press.
  624.  
  625. 59.     05/27/89
  626.         Corrected OK bug per George Hawkins, It should be doing a test for
  627.         ?FILEOPEN before actually trying to load. It does now. Thank you
  628.         George!
  629.  
  630. 60.     Implemented MANY of Mike Sperl's kernel enhancements. Many clock
  631.         cycles were saved in several places. Thank you!
  632.  
  633. 61.     Thank you! Tim Smith for the bug fix in TURNKEY. It may not be the
  634.         only bug, but you have to fix them as you find them.
  635.  
  636. 62. *** Fixed limitation in SPACES. It was limited to outputing 132 spaces
  637.         before quiting; that limitation has been increased to 32767
  638.         spaces. Thank you Zafar Essak!
  639.  
  640. 63.     05/30/89
  641.         Re-organized things a bit: moved EDITSET.SEQ to the end of the
  642.         editor load, so it can be used to set all of the editor keys.
  643.         Removed the FNSET and CTLSET operations from SEDWHELP, HELPLINK,
  644.         and HTYPE and moved them into EDITSET where they belong.
  645.  
  646.         EDITSET is now up to date and can be examined to see ALL of the
  647.         editor commands.
  648.  
  649. 64.     05/31/89
  650.         Added listing capability to the assembler.  The HEX addresses and
  651.         generated code are displayed at the left of the listed output. The
  652.         words to control generation of the listing file are:
  653.  
  654.                 /LISTING        Enable  listing output
  655.                 /NOLISTING      Disable listing output
  656.  
  657.         The listing normally goes to the display, but can be redirected to
  658.         the printer with "PRINT", or to the browser with ">B".
  659.  
  660. 65.     Adjusted copyline (F5) in the editor to bump the end marked line if
  661.         the start markline is equal to the end line.  This keeps at least
  662.         one marked line visible as long as a mark is set.
  663.  
  664. 66. *** Robert Smith updated the KERNEL3.HLP documentation file. Thank you
  665.         Bob.
  666.  
  667. 67.     Adjusted all places that were changing the deferred word RUN. They
  668.         now save and restore its function rather than just setting it back
  669.         to <RUN>.
  670.  
  671. 68.     Version 3.X18    06/01/89
  672.                                            0u
  673. 69.     06/01/89
  674.         Fixed a bug in the LINEDELETE function in the editor. It was
  675.         setting the current displayed file length to "2" when you deleted
  676.         the last line. This was not correct, but was cosmetic, not
  677.         affecting the actual file length.
  678.  
  679. 70.     Adjusted >BROWSE to preserve the current BASE and use DECIMAL when
  680.         displaying the status box number.
  681.  
  682. 71.     Minor optimization in %FIND.
  683.  
  684. 72.     Adjusted editor so the values LAST.TEXTLINE and LAST.TEXTCOL are
  685.         set only at program startup, and not at editor space allocation
  686.         time. This will allow any manual window size adjustments to remain
  687.         as they are set, and not switch to full screen after a DOS
  688.         command.
  689.  
  690. 73.     06/02/89
  691.         Added \TYPE to PERTYPE to allow typing interpreted strings from
  692.         CODE space.
  693.  
  694. 74.     06/05/89
  695.         Added two new functions to the editor. The normal Control-O open
  696.         file function has been extended to allow Shift-Control-O, which
  697.         will copy the word under the cursor into the open file buffer
  698.         allowing you to easily open the filename under the cursor.  The
  699.         search function has been enhanced with the addition of Control-F6,
  700.         which copies the word under the cursor to the search buffer before
  701.         prompting for a string to search for, allowing you to easily search
  702.         for another occurance of the word under the cursor.
  703.  
  704. 75.     06/06/89
  705.         For those of you that NEED LOTS OF MEMORY, I have added a new file
  706.         to ZIMMER.ZIP. It's called EMMHEADS.SEQ, and it will setup F-PC
  707.         to use expanded memory for its HEADS.  This frees up about 64k of
  708.         NORMAL RAM for other things.  It is even smart enough to only use
  709.         expanded memory for heads if there is expanded memory available.
  710.         So far I have not put this in the KERNEL, aren't you glad? It does
  711.         cost about 2k in .EXE file size.
  712.  
  713. 76.     06/09/89
  714.         Corrected a small bug in TAB expand: it now saves the contents of
  715.         the search buffer before setting the search string to a TAB
  716.         character. The search buffer is later restored after tab expansion
  717.         is complete.
  718.  
  719. 77.     06/16/89
  720.         Corrected a bug in %USAVE>. It was not saving the USER variable
  721.         properly.
  722.  
  723. 78.     06/19/89
  724.         Corrected a bug in COMP. It was restoring ES on the wrong side of
  725.         a conditional, such that if you ever passed null length compare
  726.         string to COMP, it would set ES to JUNK from the stack, most
  727.         likely resulting in a CRASH!! It is amazing I never ran into a
  728.         problem with this, but at least it is now fixed.
  729.  
  730. 79.     06/26/89
  731.         Corrected a bug in the assembler, The long forward branch L$ and
  732.         L$: were being resolved with a "!", rather than a store to the
  733.         target code space. This was preventing my new target compiler
  734.         from resolving the initialization branch properly. Added T! to the
  735.         list of assembler deferred target words, and modified the L$: to
  736.         resolve with T!. Modified the target compiler to set "T!" to
  737.         "!-T".
  738.  
  739. 80.     06/28/89
  740.         Kept running into the problem where information going to the
  741.         printer also shows up on the screen. The reason this happens is
  742.         that (TYPE) was coded that way. I say was, because it is no longer
  743.         coded that way. Cleaned up (TYPE), so it tests PRINTING, and
  744.         either calls PRNTYPE, or CONTYPE for printer, and console.  This
  745.         change will no doubt bother some people, but it is much cleaner to
  746.         have print control output to one or the other, and not both. This
  747.         is especially true when you start trying to use printing with an
  748.         application which has a screen oriented user interface, and still
  749.         needs to do printing.
  750.  
  751. 82.     06/29/89
  752.         Added ARRAY and AT? to F-PC. While building my new target compiler
  753.         I needed a defining word to make arrays, so the target compiler
  754.         could be setup to only include an array if it was used. So I added
  755.         ARRAY to the target compiler. Then I realized I would need ARRAY
  756.         in Forth so I could debug the programs written for the target
  757.         compiler; thus the addition. Ditto for AT?.
  758.  
  759. 83.     07/05/89
  760.         Added MANY changes from Robert Berkey, including but not limited to
  761.         the following words:
  762.  
  763.                 &>  GOTO  JOIN  ?DROP  COUNTL  +XSEG  MORE?
  764.  
  765.                 VIDEO-TYPEL  QTYPEL  $.L  $.R  DU<  SAVECURSOR
  766.  
  767.                 RESTCURSOR
  768.  
  769.         Restructured the type words somewhat. The low level type word used
  770.         to use a variable called TYPESEG to control where typing occured
  771.         from. This caused TYPESEG to be saved and restored in several places
  772.         to prevent it being set wrong in one place versus another. Overall
  773.         this was a crude way to control typing. Bob adjusted things
  774.         somewhat so the low level word was a long type "TYPEL". The TYPE
  775.         word ALWAYS types from the CODE SEGMENT, and if you need to type
  776.         from some other segment, you use TYPEL or QTYPEL. Overall this is
  777.         much better than what I had before, and the code is cleaner to
  778.         boot.
  779.  
  780.         Bob has also made a number of changes to the debugger, many of
  781.         which I liked very much. But when I tried to integrate his debugger
  782.         with my system, I ran into many problems due to other changes he
  783.         had made that I did not want to include. SOOO.. after looking at
  784.         the debugger code, I decided to update it with Bob's features and a
  785.         few more along with a much needed cleanup.  The debugger now deals
  786.         well with deferred words, does words etc. and you can even unnest
  787.         above where you entered the debugger. Added is the ability to
  788.         debug through EXECUTE, PERFORM, and the EXEC: structure. Overall
  789.         after the cleanup, I think the debugger actually got smaller.
  790.  
  791. 84.     07/06/89
  792.         Modified F-PC so all file opens are done READ-ONLY. This allows
  793.         examination of read only files in the editor. Since writes are
  794.         always done with HCREATE which makes the file ready for writing,
  795.         there is no problem with this unless you plan to append to a file in
  796.         which case you need to use READ-WRITE before the open to allow
  797.         writing to an existing file. The words added are READ-ONLY,
  798.         WRITE-ONLY, and READ-WRITE.
  799.  
  800. 85.     07/06/89
  801.         Modified the software floating point to be compatible with the
  802.         3.X22 version of F-PC. Since %NUMBER has been moved into assembly,
  803.         I needed to make the lower level number handlers for HEX, '(tick),
  804.         and ^(control) deferred so they could be changed by floating point
  805.         in a way that was compatible. Relatively minor mods to SFLOAT3.SEQ
  806.         to make it work.
  807.  
  808. 86.     07/08/89
  809.         Added Robert Berkey's visual vocabulary stack order to the status
  810.         bar. The vocabulary order is now displayed at the top right of the
  811.         screen, just below the normal status line in a vertical column.
  812.         CURRENT is shown on line one with attribute three, and the CONTEXT
  813.         list is shown below it in attribute one, down to ROOT. Very
  814.         useful! thank you Robert.
  815.  
  816. 87.     07/12/89
  817.         Modified the line editor to use a trailing attribute called
  818.         ">EDATTRIB" when displaying the portion of the edit line after the
  819.         text currently being edited. The purpose of this is to allow you
  820.         to see how much text is really in the buffer, and where it ends.
  821.         The >EDATTRIB is currently set to >ATTRIB3 while in the editor,
  822.         and >NORM while at the command line.
  823.  
  824. 88.     07/12/89
  825.         Added a control to the change 84. The word DEF-RWMODE now allows
  826.         you to specify what the default read/write mode will be for file
  827.         open operations. It is used as follows:
  828.  
  829.               READ-WRITE DEF-RWMODE   or   READ-ONLY DEF-RWMODE
  830.  
  831.         F-PC still defaults to using READ-ONLY. If you need READ-WRITE,
  832.         you will need to use the above command.
  833.  
  834. 89.     07/12/89        Version change to 3.X23
  835.  
  836. 90.     07/17/89
  837.         Modified the editor so that it opens READ ONLY files in BROWSE
  838.         mode.
  839.  
  840. 91.     07/17/89
  841.         Modified editor so F10 doesn't simply drop you out of the editor
  842.         when you are only nested one level. It pops up the OPEN box, to
  843.         give you the opportunity to open another file. If you then press
  844.         ESC, you will leave the editor.  This is a significant change in
  845.         that many people will HATE it because it is a change, but when you
  846.         get used to it, it will help prevent accidental exits. The change
  847.         was also carried over to the Z editor.
  848.  
  849. 92.     08/11/89
  850.         I'm back from vacation, had a wonderful time. We went to Magic
  851.         Mountain, and several other colorful places. Didn't make a single
  852.         change while I was away. Amazing!
  853.  
  854. 93.     08/11/89
  855.         Fixed left margin printing default so it is not reset each time
  856.         you open and edit a file.
  857.  
  858. 94.     08/15/89
  859.         Adjusted CTLSET and FNSET so that they don't abort if the word
  860.         they are trying to install in a function table is not defined.
  861.         They simply display a warning message stating the problem and
  862.         continue. This allows some functions to be removed from the
  863.         compile list (saving space) without having to change EDITSET.SEQ.
  864.  
  865. 95.     08/15/89 **** Major version change 3.30 ****
  866.         Removed the experimental warning message from the system: am
  867.         preparing for the next major release of F-PC!!
  868.  
  869. 96.     08/19/89
  870.         Fixed a bug reported by Mike Mayo. I had the value WITHPATH set
  871.         to TRUE, which caused filenames to be saved in the FILES
  872.         vocabulary with their full paths included. He was working in a
  873.         three level nested directory that caused the filename with path
  874.         to extend to 35 characters. This caused F-PC to truncate his
  875.         filename to 3 characters (sort of a MOD function). No warning was
  876.         given, and VIEW would not work. It is also likely head space was
  877.         damaged by the long name, since >NAME after that would not work
  878.         reliabily. This bug was fixed by doing two things:
  879.  
  880.                 1. Setting WITHPATH to OFF. Don't need path anyway since
  881.                    we have FPATH to help us find files.
  882.                 2. Adding a warning to "HEADER to prevent creation of names
  883.                    longer than 31 characters.
  884.  
  885. 97.     08/25/89
  886.         Fixed a bug reported by Mike Mayo. The word (FNUMBER?) in the
  887.         software floating point package was not returning a double number
  888.         zero when a number conversion failed. This caused problems in the
  889.         editor when trying to browse words that had been indexed with the
  890.         NEWZ editor's index compiler. Fixed (FNUMBER?) so it returns a
  891.         FALSE flag, and a double number zero on number conversion failure,
  892.         and modified the editor to use NUMBER? rather than %NUMBER for its
  893.         browse line number conversion.
  894.  
  895. 98.     09/01/89
  896.         Added a new feature to the debugger at the request of Mike Mayo.
  897.         "Skip To" Allows you to visually select a place further forward in
  898.         a definition while in the debugger, and have the word you are
  899.         debugging continue at high speed until the place you selected is
  900.         reached. Debugging then continues with the single stepper. Skip To
  901.         is enabled with "S" in the debugger, then you use "+" and "-" to
  902.         step forward or backward through the definition. Press ESC to
  903.         cancel skip, or Enter to accept the skip.
  904.  
  905. 99.     09/05/89
  906.         Finally fixed the bug in the file selection box that was
  907.         preventing the selection of a file with no extension. It used to
  908.         try to create a new file: now it will let you pick such a file.
  909.  
  910. 100.    09/07/89
  911.         Generalized the color control a bit, and added a new word
  912.         COLORSET. It causes the current screen colors to become the
  913.         default screen colors as "NORMVAL". In other words it allow you to
  914.         set your screen color preferences so they will be maintained if
  915.         you do an FSAVE. Try the following:
  916.  
  917.                 LTGRAY >BG BLUE >FG COLORSET <Enter>
  918.  
  919.           If you now save the system, you will have blue letters on a
  920.         light gray background until you change it again.
  921.  
  922. 101.    09/13/89        **** Version 3.33 ****
  923.         Added -SCAN to the file SCAN.SEQ. I needed this word in the target
  924.         compiler, and so I thought I would add it to the F-PC ystem as
  925.         well.
  926.  
  927. 102.    09/21/89        **** FPC Version 3.34 ****
  928.         Renamed all occurances of F-TZ and FTZ to F-PC and FPC.
  929.  
  930. 102.1   09/22/89
  931.         Bug fix in FPATH+.  Mike Mayo found you could not put FPATH+ on a
  932.         line with other commands: it would gobble up the entire line
  933.         following FPATH+. FIXED
  934.  
  935. 103.    09/26/89        **** FPC Version 3.35 ****
  936.         Modified ENDCASE back to be the same as FPC 2.25. This per the
  937.         request of the FPC working group. ENDCASE no longer does the
  938.         DROP automatically.
  939.  
  940.         Adjusted the LIST size up about 8k, so about 34k of COLON
  941.         definition space is available in the un-installed F-PC.EXE file.
  942.  
  943. 104.    10/16/89        **** FPC Version 3.36 ****
  944.         Have been working on the glossary. It is not completely up to
  945.         date, but it is getting there.
  946.  
  947. 105.    10/22/89        **** FPC Version 3.50 ****
  948.         Official release version.
  949.  
  950. 106.    05/25/90        **** FPC Version 3.51 ****
  951.         Started a minor update, to incorporate most if not all of the
  952.         known bug fixes to FPC 3.50.
  953.  
  954.         Added HCRITICA.SEQ from Mike Christopher, to make DOS return a
  955.         FAIL condition if a critical error occurs. This prevents the
  956.         user from issuing an Abort, when we have not unhooked the
  957.         interrupt vectors we hooked in during startup.
  958.  
  959.         The bug fixes repaired include the VIEW fix by Robert Patten,
  960.         all of the bugs listed with repairs in FPC350.BUG, and all of
  961.         the locations in FPC that were using the LOOPNZ assembly word.
  962.         These include UPPER, ?UPPERCASE, SEXE and LARGEST.
  963.  
  964. 107.    07/02/90
  965.         Adjusted the max line number allowed while editing a file to be
  966.         increased by 50 percent, to allow files with very short lines
  967.         to be edited.
  968.  
  969.         Modified PRINTING.SEQ to update the status line while printing,
  970.         every 8 lines, so the user will be able to tell how much of the
  971.         print process has been done so far.
  972.  
  973.         Added +PLACE a nice compliment to PLACE, it appends a string to
  974.         an exsiting counted string in memory.
  975.  
  976.         Made some adjustments to the file load mechanism. I have seen
  977.         some re-occuring problems with the file load words, that would
  978.         cause them to return from a nested load to the wrong place in a
  979.         file. I hope I have solved these problems.
  980.  
  981.         Fixed a bug in the editor in <RED>. It was supposed to save and
  982.         restore TYPEL, but it was restoring TYPE instead. FIXED
  983.  
  984. 108.    07/03/90        **** FPC Version 3.52 ****
  985.         Fixed the Alt-W bug. The SED or Z editors could trash your
  986.         files if you did an Alt-W when nested down two or more levels.
  987.         This has been fixed. All I had to do was turn off the NEWFL
  988.         flag when backing out a level.
  989.  
  990. 109.    07/05/90        **** FPC Version 3.53 ****
  991.         Added FPCVER#, a constant that return the current version
  992.         scaled by 100 of F-PC, it currently returns 353. Can be used to
  993.         adjust programs for version compatibility. Also added a file
  994.         350COMPAT.SEQ to make F-PC 3.50 compatible with the current
  995.         release. This file contains the additional words added to F-PC,
  996.         not any of the bug fixes.
  997.  
  998. 110.    07/06/90
  999.         After reading Peter Midnights FORML paper again, I have added a
  1000.         key to the editor "Alt-8" that toggles on and off a display of
  1001.         the name of the function to be executed for each editor key
  1002.         pressed while editing. The function name is shown in the upper
  1003.         left corner for 4 tenths of a second. This doesn't add all the
  1004.         functionality Peter implimented, but it does make it possible
  1005.         to explore how the editor works if you are so inclined.
  1006.  
  1007. 111.    07/13/90
  1008.         Added an option, LEAVEPROMPTON and LEAVEPROMPTOFF allow you to
  1009.         specify if you want to be asked for a file to edit on leaving
  1010.         the editor. The default is NO. This is a change from all
  1011.         previous versions where the default was YES.
  1012.  
  1013.         Also added Robert Berkey's favorite function to the menus. When
  1014.         Bob fixed the view bug, he also add a special editor command to
  1015.         show where a word you have the cursor on was loaded from. That
  1016.         is show the place where the FLOAD occured that caused this word
  1017.         to be loaded. the command isn Ctrl-F9. It has been added to the
  1018.         "hYper" menu.
  1019.  
  1020. 112.    07/25/90        **** FPC Version 3.54 ****
  1021.         Added the top F2 and bottom F4 of screen functions to the EDIT
  1022.         menu. Also added top middle Alt-F2 and bottom middle Alt-F4
  1023.         screen functions to SED as well as to the EDIT menu. Changed
  1024.         Page up and down so they no longer automatically move the
  1025.         cursor to line 6 when they are performed. After having it like
  1026.         that for a year, I can't take it any more. SED now leaves the
  1027.         cursor on whatever line it was on before doing a page up or
  1028.         down (unless you hit the beginning or end of the file).
  1029.  
  1030. 113.    07/30/90
  1031.         Fixed some spelling bugs in WORDS. USER-DEFERED, DEFERED and
  1032.         USER-VARIABLE were spelled wrong. Also added COLON.* to work
  1033.         along with :.* in listing colon definitions.
  1034.  
  1035.         Also fixed the longtime bug that converted 'a' as 'A' when
  1036.         entered in interpret state. I added the suggested SKIP'C' that
  1037.         was shown in the FPC350.BUG file, but I coded it in assembly so
  1038.         performance wouldn't be effected.
  1039.  
  1040. 114.    11/05/90        **** FPC Version 3.5401 ****
  1041.         Fixed a bug in WFL.SEQ, seems it would return the <a1> anyway
  1042.         under the conditions where the user pressed Enter on a list of no
  1043.         files. FIXED
  1044.  
  1045.         Modified FPCVER# to be a DOUBLE NUMBER of five digits. .FPCVER#
  1046.         then discards the lowest two digits and displays the highest
  1047.         three digits as X.XX. You can get the read version number by
  1048.         typing "FPCVER# D."
  1049.  
  1050. 115.    11/10/90        **** FPC Version 3.5402 *****
  1051.         Someone submitted a file called MLOAD.SEQ. It was such a neat
  1052.         idea that I had to include it in the system. MLOAD allows you
  1053.         to edit a file, mark some lines you want to load (using F3),
  1054.         leave the editor, and then press F9 to load the marked lines.
  1055.         This is VERY convenient for debugging. Space cost, is about
  1056.         150 bytes.
  1057.  
  1058. 116.    02/06/91        **** FPC Version 3.5500 *****
  1059.         Reworked FPC to use a new memory management mechanism. This version
  1060.         introduces the POINTER concept. A pointer is a word that returns a
  1061.         physical memory paragraph number (16bits) to the user when
  1062.         executed, after allocating the needed memory if it hasn't already
  1063.         been allocated. If a pointer fails to allocate the desired memory,
  1064.         then a zero (0) is returned indicating an out of memory condition.
  1065.         Pointers are defined as follows:
  1066.  
  1067.                 <double_number_size_in_bytes> POINTER <pointer_name>
  1068.  
  1069.                 1024. (a double number, note the ".") POINTER XYZ
  1070.  
  1071.         A small data structure is created to hold the pointer information.
  1072.         No space is actually allocated for the pointer until it is first
  1073.         used.
  1074.  
  1075.         memory allocated with pointers is appended to the memory FPC
  1076.         already uses in a "heap". Another word "UNPOINTER>" can be used to
  1077.         release the memory allocated to a pointer. It is sued as follows:
  1078.  
  1079.                 : release_XYZ   ( -- )
  1080.                                 UNPOINTER> XYZ ;
  1081.  
  1082.         UNPOINTER> can only be used in a definition. If you need to release
  1083.         a pointer interactively, use the sequence:
  1084.  
  1085.                 ' XYZ %UNPOINTER <enter>
  1086.  
  1087.         Not pretty I admit, but normally this operation is done only while
  1088.         in a program.
  1089.  
  1090.         Several words have been added to FPC, to support the new memory
  1091.         management system, here is a list:
  1092.  
  1093.         #PARS           holds the number of paragraphs currently allocated.
  1094.         PHEAD           Variable that points to the head of the pointer
  1095.                         list.
  1096.         UD16/           Unsigned double number divide by 16.
  1097.         DPARAGRAPH      Convert the double number to a number of
  1098.                         paragraphs.
  1099.         SIZEOF!>        Set the size in double bytes of the POINTER
  1100.                         following.  Exmpl: <double_num> SIZEOF!> XYZ
  1101.         0POINTERS       System word that clears out all pointers. Don't
  1102.                         ever use this word in any of your programs.
  1103.         CMOVE-PARS
  1104.         CMOVE-PARS>     Move paragraphs of memory. See their source for
  1105.                         the syntax of how they are used.
  1106.         MAXBLOCK        Returns the maximum number of paragrahs that can be
  1107.                         allocated without getting an allocation error.
  1108.  
  1109.         All of FPC and TCOM have been modified to work with this new memory
  1110.         management system. I recommend you use it as well, rather than the
  1111.         old ALLOC and DEALLOC.
  1112.  
  1113.         Also added .VERSION to display the whole version number including
  1114.         the least digits.
  1115.  
  1116. 117.    02/12/91        ***** Version 3.5501 *****
  1117.         Installed the code from POSTHEX.SEQ into KERNEL2.SEQ. This effects
  1118.         "%NUMBER". Now you can use sufixes of H to specify, Hex or B to
  1119.         specify Binary. This is in addition to  a $ prefix meaning HEX, and
  1120.         'letter' meaning ascii, and ^letter meaning CONTROL. Has no effect
  1121.         on your ability to define word names, but if you define a word that
  1122.         fits into any of the above catagories, then it will be a function
  1123.         rather than a number!
  1124.  
  1125.         Also added expanded memory support into the kernel. This is in
  1126.         preparation for later enhancements that I hope will move most of
  1127.         F-PC out of memory into expanded memory when performing a shell to
  1128.         DOS.
  1129.  
  1130.         Also added ".MEM" which tells you how your F-PC memory is being
  1131.         used along with the names of the pointers using the memory. The
  1132.         last line of .MEM tells how much DOS memory is still available.
  1133.  
  1134. 118.    02/13/91
  1135.         Installed a new editor status line from John Peters. Editor status
  1136.         line now shows current and max values for line, column, page and
  1137.         lines. Very nice, thank you John.
  1138.  
  1139.         Added SELECT to the ZIMMER.ZIP file. SELECT.SEQ is an onscreen
  1140.         menu system. Provides automatic handling of many menu functions,
  1141.         and gives the user a good interface at the same time. TRY IT!
  1142.  
  1143.         Added LASERJET.SEQ as a loaded part of F-PC. So F-PC now supports
  1144.         either the IBM ProPrinter, or the HP LaserJet/DeskJet family of
  1145.         printers.
  1146.  
  1147. 119.    02/20/91
  1148.         Enhanced .MEM to display the status of expanded memory as well as
  1149.         normal DOS type REAL memory.
  1150.  
  1151.         Fixed some bugs in MULTASK.SEQ, that was preventing the
  1152.         multi-tasking data structure from being relocatable. This was
  1153.         preventing any application that used multi-tasking from running
  1154.         properly unless it was reloaded into exactly the same memory space
  1155.         as it was first created. This was NOT GOOD. It is now fixed,
  1156.         although there was a small performance penalty due to a runtime
  1157.         conversion from absolute to relative and back again on each task
  1158.         switch.
  1159.  
  1160. 120.    02/25/91               ***** Version 3.5502 *****
  1161.  
  1162. 121.    02/27/91
  1163.         A new command 'S' under the Alt-O menu in the editor, allows
  1164.         editing of files containing TABs.  SED will expand the tabs on the
  1165.         display, and only expand the tabs in the file of those lines you
  1166.         change.
  1167.  
  1168.         Fixed SED so you can now edit .BAK file. When you select such a
  1169.         file, SED switches into NOBACKUP mode, and allows the file to be
  1170.         edited. If you make changes and save the file, then the changes are
  1171.         saved into the .BAK file.   The NOBACKUP mode has also been
  1172.         adjusted to not bother .BAK and .$$$ files when you are editing the
  1173.         primary source file. This is incase you are editing a primary file,
  1174.         and a >BAK file together, and making changes to one, then other or
  1175.         both.
  1176.  
  1177. 122.    02/28/91
  1178.         Added a command to the editor, "Ctrl-\" that displays the current
  1179.         memory usage in the computer.
  1180.  
  1181.         F-PC now moves itself into EXPANDED memory when you shell out to
  1182.         DOS if there is enough expanded memory available. If there isn't,
  1183.         then is just shells out, and leaves itself in memory. The Expanded
  1184.         memory allocated is only allocated while you are shelling out, and
  1185.         is then deallocated upon return to F-PC.  The file EMMEXEC.SEQ and
  1186.         a modified version of EXEC.SEQ make this all possible.
  1187.  
  1188. 123.    03/04/91
  1189.         Fixed a minor bug in ".FILES". It had an escape sequence in it to
  1190.         print 8 spaces followed by a dash ( \s8- ), unfortunately the \s
  1191.         escape sequence needs two digits following it, not one so 80 spaces
  1192.         were being displayed not 8. Corrected as ( \s08- ) to display 8
  1193.         spaces followed by a "-".
  1194.  
  1195.         While I'm at it, I might as well document the list of escape
  1196.         sequences available in "dot quotes":
  1197.  
  1198.         This utility allows the creation of special ." strings that contain
  1199.         imbedded escape sequences to select various display operations.
  1200.  
  1201.         The leading character is "\", followed by:
  1202.  
  1203.         0               Normal display attributes
  1204.         1 to 8          Attributes 1 through 8
  1205.         :xx             Delay xx tenths of a second
  1206.         <               Save the current cursor position     (not nestable)
  1207.         >               Restore the previous cursor position (not nestable)
  1208.         @xxyy           Move cursor to xx,yy
  1209.         B               Beep the speaker
  1210.         D               Dark (clear screen)
  1211.         N               Newline (CRLF)
  1212.         R               Select Reverse video
  1213.         Sxx             Display xx spaces
  1214.         T               Perform a Tab
  1215.         \               Display a \ character
  1216.         `               Display a " character
  1217.         |               Display a linefeed character
  1218.  
  1219.         The performance of this version of ." will be somewhat slower than
  1220.         a normal TYPE, as the string must be scanned for the "\" escape
  1221.         character.
  1222.  
  1223. 124.    03/05/91
  1224.         Fixed the bug? in /STRING that was preventing it from extending the
  1225.         length of a string when fed a negative number.
  1226.  
  1227.         Added a variable USE-EMM, and words EMMON and EMMOFF to set it.
  1228.         The state of USE-EMM set to FALSE, will cause the word EMM-PRESENT?
  1229.         to return a false even if Expanded Memory is present.  EMMON is the
  1230.         default state of USE-EMM (TRUE).
  1231.  
  1232.         Added variable USE-DISK, and words DISKON and DISKOFF to set it.
  1233.         The state of USE-DISK set to FALSE, will cause F-PC NOT to flush
  1234.         itself to DISK when no Expanded memory is available. Setting it to
  1235.         DISKON will make F-PC flush itself to disk whenever a SYS command
  1236.         is performed.  Currently a file "FPCIMAGE.$$$" in the handle
  1237.         EXTHNDL is being created to hold the F-PC image during the shell.
  1238.         DISKOFF is the default state of USE-DISK (FALSE).  EXTHNDL can be
  1239.         filled with any "DRIVE:\PATH\FILENAME.EXT", to cause the FPC image
  1240.         to be written to any ramdisk or drive desired.  the default name
  1241.         will be used if no other file is specified.  Expanded memory is
  1242.         given preference over disk even if DISKON is used, so type EMMOFF
  1243.         and DISKON to force F-PC to save its image to disk.  On a real disk
  1244.         drive, this can take several seconds both for the save, and later
  1245.         for the recover.  This facility is primarily useful for those
  1246.         people that don't have expanded memory, but do have EXTENDED Memory
  1247.         that can be changed into a ramdisk.  For maximum performance, don't
  1248.         let F-PC save its image anywhere, use EMMOFF and DISKOFF (default).
  1249.         Note, a disk full error on image save will still cause F-PC to
  1250.         perform the shell to DOS, but F-PC will not save itself to disk.
  1251.         Also note that F-PC deletes the FPCIMAGE.$$$ file after the shell
  1252.         is performed and lastly, FPCIMAGE.$$$ can be almost as large as
  1253.         your computers memory (greater than 500k), so be sure you have a
  1254.         lot of memory on you EXTHNDL file drive before using DISKON, or
  1255.         you will use time and gain no benefit.
  1256.  
  1257. 125.    03/06/91
  1258.         Added "SWAPFILE" which is followed by a name, and sets the disk
  1259.         swapfile drive and name. DISKON is also performed, to cause F-PC to
  1260.         swap to disk when a shell is performed.
  1261.  
  1262.         Added ">HANDLE to take an a1,n1 string rather than a counted string
  1263.         and move it into the specified handle.
  1264.  
  1265. 126.    03/07/91
  1266.         Added words to ZIMMER.ZIP to control blinking background colors,
  1267.         and to read and set the border colors. *** MOVED INTO F-PC ***
  1268.  
  1269. 127.    03/13/91          ***** Version 3.5503 *****
  1270.         Added UBETWEEN and -SKIP to F-PC.
  1271.  
  1272. 128.    03/15/91
  1273.         Added DOBORDER to <REEDIT> in SEDIT2.SEQ, to assure that a border
  1274.         would be shown even if the user types commands while the editor is
  1275.         loading the current file.
  1276.  
  1277. 129.    03/30/91
  1278.         Integrated the new mouse driver from Mike Christopher.  there is
  1279.         now a cursor for the mouse, and another one for F-PC.
  1280.  
  1281. 130.    04/05/91
  1282.         Located and removed all references to things like "1 -1 d+" which
  1283.         were used to shorted an address and length on the stack. Changed
  1284.         all of these occurances to the equivelant "1 /string" which doesn't
  1285.         have the carry problem from the count to the address if an
  1286.         underflow occurs.
  1287.  
  1288. 131.    04/08/91
  1289.         Moved the file BLINKER.SEQ from the TOOLS directory, into the SRC
  1290.         directory, and now load it as a normal part of F-PC.  This adds the
  1291.         words BLINKON, BLINKOFF, BLINK!, PAL!, BORDER@ and BORDER!.
  1292.  
  1293. 132.    04/10/91          ***** Version 3.5504 *****
  1294.         Fixed a bug in DOBORDER, that was keeping it from displaying the
  1295.         corner symbol at the upper right of the screen.
  1296.  
  1297.         At the recomendation of Jerry Boutelle, I have added watch point
  1298.         support to the debugger. This allows a 16 byte area ofCODE memory
  1299.         to be monitored between each step of the debugger. It can be very
  1300.         handy for watching HERE. The "W" command in the debugger, brings up
  1301.         a watch set command line, so you can type in an address that will
  1302.         be watched. If you type a word that returns an address, then that
  1303.         address will be watched. If you want to watch a word that doesn't
  1304.         return an address, enter it as " 'WORD " (without the "s ), and the
  1305.         CFA will be the watch address.
  1306.  
  1307. 133.    04/12/91
  1308.         Added for Mike Mayo, a new variable, and three instructions to
  1309.         WORD. The variable is called ">IN_WORD", and it is set by WORD to
  1310.         be the line offset in TIB of the most recent word parsed out with
  1311.         WORD.  For example is you did a WORD on the first word in this
  1312.         line, then >IN_WORD would contain an 8.  This is useful for
  1313.         building index files, that want to know exactly where in the source
  1314.         file a particular word came from.  The performance penalty is
  1315.         insignificant.
  1316.  
  1317. 134.    04/23/91        ***** Version 3.5505 *****
  1318.         Added LISTSET to the F-PC dictionary, it allows the user to adjust
  1319.         the amount of dictionary space desired, as the number of paragraphs
  1320.         of free space F-PC should retain on the next startup. The value
  1321.         #LISTSEGS is adjusted, and the memory image is resaved to the same
  1322.         name as the currently executing file.
  1323.  
  1324.         Correction to the mouse driver, it seems Mike Christopher modified
  1325.         the OLD MOUSE.SEQ file, not the current one, so when I included his
  1326.         new file, it had the OLD mouse bug in it. Fixed so the mouse
  1327.         doesn't show up unless you move the mouse the first time.
  1328.  
  1329.         Changed the file COLOR.SEQ, to allow the user to more easily modify
  1330.         the colros F-PC uses.  F-PC now uses an array called COLORS, which
  1331.         contains eight sets of background and forground colors for
  1332.         ">ATTRIB1" through ">ATTRIB8". The new words BG@, BG!, FG@ and FG!
  1333.         allow setting the colors in the array to control the colors F-PC
  1334.         will use.  See the file COLOR.SEQ for more details.
  1335.  
  1336.  
  1337.  
  1338.