home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / FPC225_1.ZIP / NOTES < prev    next >
Encoding:
Text File  |  1988-11-10  |  58.7 KB  |  1,321 lines

  1. Notes on F-PC Part #1
  2.  
  3. 1.      Modified ?DEF.EXT to only append an extension from the word DEFEXT
  4.         if there is a string in DEFEXT, else doesn't append an extension.
  5.         4/6/88 10:47 AM
  6.  
  7. 2.      Noticed a bug in SED, prints DONE when finished with a PASTE, on
  8.         the second line, shouldn't do that. 4/6/88 10:47 Fixxed in
  9.         PRINTING.SEQ 4/6/88 11:19 AM
  10.  
  11. 3.      Removed the public domain notice from the SED exit message.  This
  12.         is not to imply that SED is not public domain, it was simply a
  13.         distraction, and was not needed. 4/6/88 11:41
  14.  
  15. 4.      Added paste date and time with "Alt-O P". The paste is always done
  16.         in insert mode, to avoid accidental overwrite of existing text.
  17.         04/06/88 13:27
  18.  
  19. 5.      Re-arranged the SED prompt a bit, to make it clearer. also noted a
  20.         bug in the WFL window pop up, it was leaving an extra item on the
  21.         stack when you enter it.  Found an old leftover from some earlier
  22.         code still around, got rid of the culprit.  04/06/88 17:23 tjz
  23.  
  24. 6.      Modified FSAVE, and added TURNKEY to F-PC. TURNKEY will now
  25.         automatically save a system without heads, and with a minimized
  26.         LIST space. Use TURNKEY as you would FSAVE, followed by a name,
  27.         but first setup BOOT or DEFAULT to perform your application, and
  28.         then leave back to DOS.
  29.  
  30. 7.      F-PC is now setup to allow you to reduce the #CODESEGS to less
  31.         than 4096 (=64k), and save some of the code space that is not
  32.         needed.  The editor "Z" for example created from XF only requires
  33.         about 220k to run, down from 400k for XF the development system.
  34.         Yes I know its still large, but that is without removing any of
  35.         the utilities in the system, much more could be saved by stripping
  36.         down the system
  37.  
  38. 8.      Moved inline " (quoted) strings back into the CODE space, for
  39.         program compatibility. Have added "" (double quote) which will put
  40.         an inline string into COLON space. Don't worry, the string is
  41.         moved to CODE space before its address is returned to you.
  42.  
  43. ------------------------- Version 1.01b -----------------------------------
  44.  
  45.  06/01/88 13:26
  46.  
  47. 9.      Changed the name from F88 to F-PC in all files.
  48.  
  49. 10.     Eliminated XTYPE from the editor, since it was a hold over from
  50.         the time when (EMIT) did not use handle write. Since it was
  51.         redundant with (TYPE), it is no longer needed. Also removed
  52.         associated word NORMTYPE, with is also not needed.
  53.  
  54.  
  55.  
  56. 11.     Fixed the bug in the editor cursor positioning, which would place
  57.         the cursor in the wrong place if the text extended beyond 114
  58.         characters.
  59.  
  60. 12.     Fixed bug in MACROS, I was allocating 16 times too much memory for
  61.         the macro buffer. I forgot to put in a U16/ before the ALLOC
  62.         command.
  63.  
  64. 13.     Fixed bug in ;USES, which was preventing it from working except in
  65.         the meta compiler.  06/01/88 15:42
  66.  
  67. 06/02/88 17:57
  68.  
  69. 14.     Working on VTYPE, have changed the name to VIDEO-TYPE. It now
  70.         needs only ADDR and CNT, X and Y are no longer needed.
  71.  
  72. 15.     The editor now displays 80 columns across, rather than 78. I have
  73.         removed the border characters on the left and right sides. This
  74.         was done primarily for performance reasons, to make F-PC FAST on a
  75.         PC speed (4.7mhz) computer.
  76.  
  77. 16.     Added ON> and OFF> to the EQUCOLON file, for turning on and off
  78.         any variable or constant. They save one pass through NEXT, and so
  79.         are faster than VARNAME OFF or VARNAME ON. I know it seems silly
  80.         to save such a small amount of time, but I am finding it useful.
  81.         06/02/88 18:24
  82.  
  83.  06/03/88 12:46
  84.  
  85. 17.     VIDEO-TYPE is finally fast enough to redisplay at 10 screens per
  86.         second on an XT speed (4.7mhz) machine. I'm going to stop working
  87.         on it now. I have blown out the look in VIDEO-TYPE for that last
  88.         ounce of speed.
  89.  
  90. 18.     Restructured PASTE (Alt-V) in the editor, so it is much faster, I
  91.         got some complaints about it's original speed, it now pastes lines
  92.         from the paste file at 500 bytes/sec on an XT, and 3000 bytes/sec
  93.         on an AT.
  94.  
  95. 19.     Fixed minor bug in NEWFILE that was leaving 2 items on the stack
  96.         when the file was actually created.
  97.  
  98.  06/03/88 16:57         Assembler bug fixxes
  99.  
  100. 20.     Fixed bug in TEST instruction, for immediate mode, changed
  101.         instruction from A4 to A8.
  102.  
  103. 21.     Fixed bug, conditionals were not forcing a compile of the previous
  104.         instruction. They do now, and you can put conditionals on the same
  105.         line as normal assembler instructions without any problem.
  106.  
  107. 22.     Corrected a bug in the initialization of the APRIOR array, CODE
  108.         was not clearing out APRIOR properly. This was preventing the
  109.         retrying of assembly code after an error was encountered. Once an
  110.         error was detected, then the bug would cause an error EVERY TIME.
  111.  
  112.  06/03/88 17:01         Editor mod.
  113.  
  114. 23.     Adjusted the fill line character for lines displayed after the
  115.         last lines of a file from a blank to a B1 fill character, which is
  116.         a 50% gray. It is now easy to see which is the last line of the
  117.         file.
  118.  
  119.  06/03/88 17:13         DUMP mods
  120.  
  121. 24.     Added the absolute segment to the beginning of each dump line.
  122.  
  123. 25.     Modified XDUMP, so that is takes a SEG value which is added to the
  124.         XSEG, and dumps OFFSET relative 0 from that point. This makes it
  125.         actually useful for looking at the body of a definition as
  126.         follows: ' HEX >BODY @ 10 XDUMP <enter> This will dump the first
  127.         10 butes of the BODY of the definition HEX. LDUMP can then be used
  128.         to dump at other relative offsets from there.
  129.  
  130.  06/06/88 09:40
  131.  
  132. 26.     Added out of branch range error checking to assembler in the label
  133.         mechanism.
  134.  
  135. 27.     YDP and XDP have been moved out of the USER VARIABLE list. This
  136.         system does not support multiple users anyway, and placing these
  137.         in the user variable list causes problems in other areas.
  138.  
  139. 28.     Add L$ and L$: to PASM.SEQ, to allow forward branch resolution of
  140.         JMP and CALL instructions with distances greater than 127 bytes.
  141.         See PASM for more information.
  142.  
  143. 29.     Finally found and corrected the BUG in EXEC.SEQ, that was
  144.         preventing SYS from working on a DOS 2.x machine. That is fixed
  145.         and DOS 2.x can now spawn a shell properly.  06/06/88 18:05
  146.  
  147.  06/09/88 10:57
  148.  
  149. 30.     Added checking on COPY (Alt-C), CUT (Alt-X) and WRITE (Alt-W) to
  150.         see if the file to be written already exists. If the file to be
  151.         written does exist, then the user is prompted for whether to
  152.         overwrite the file or abort the write.
  153.  
  154. 31.     Corrected a small bug that would cause an edit of a new file to
  155.         start on line two rather than on line one. This was minor, but
  156.         still irritating.
  157.  
  158. 32.     Added RECOVERSCR which is like RESTSCR but only gets a copy of the
  159.         most recently saved screen, and can be called over and over again
  160.         to restore the same screen.  06/10/88 16:23
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  06/13/88 10:15
  167.  
  168. 33.     Commented out FIX, as it has a name conflict with FIX in the
  169.         floating point package. You may un-comment it out if you wish, it
  170.         is located in the file TOPEDIT.SEQ.
  171.  
  172. 34.     Fixed a bug in the assembler in the instruction JC. Changed its
  173.         constant from 76 to 72.
  174.  
  175.  06/14/88 12:21
  176.  
  177. 35.     Fixed >NAME. It is supposed to return the name field of NO-NAME
  178.         when it fails to find the name field of the address specified. It
  179.         was returning a garbage address. This has been corrected.
  180.  
  181. 36.     Added INLINE and END-INLINE to the assembler. These give you the
  182.         ability to add in-line assembly code to a : (colon) definition.
  183.         See the ASSEM.TXT file or PASM.SEQ for an example of usage.
  184.  
  185. 37.     Corrected a feature of FPRINT, FLOOK and EDITALL which prevented
  186.         them from working on any drive or directory specified. They will
  187.         now print, look or edit any matching files in any specified drive
  188.         and directory.  06/14/88 15:54
  189.  
  190.  06/15/88 10:41
  191.  
  192. 38.     Fixed the definition of CREATE in the USER vocabulary, it is
  193.         supposed to create a header, like the normal CREATE, but was
  194.         defined improperly.
  195.  
  196. 39.     Extended the user variable area by 20 bytes, which is room for 10
  197.         new 16bit user variables. Previously there was NO ROOM for ANY
  198.         additional user variables, which seems somewhat limiting.
  199.  
  200.  06/16/88 09:29
  201.  
  202. 40.     Fixed a bug in the editor that was allowing you to try and edit a
  203.         .BAK file.  This needs to be prevented, since the editor uses .BAK
  204.         as the extension it uses for backup files.
  205.  
  206. ------------------------- Version 1.02b --------------------------------
  207.  
  208.  06/16/88 10:03
  209.  
  210. 41.     Changed F-PC to version 1.02b (Beta).
  211.  
  212.  06/17/88 18:58
  213.  
  214. 42.     Re-coded GET_ALINE in assembly, as a step to make the compiler
  215.         faster. I know its silly, but I just can't give up.
  216.  
  217.  06/20/88 16:19
  218.  
  219. 43.     Fixed a bug in ACTIVATE. It was missing a DUP. Thank you Dr. Ting.
  220.  
  221. 44.     Fixed a bug in UNDEFER. It simply didn't work. Thank You R. Smith.
  222.         Removed UDEFERS, and consolidated its function into DEFERS.
  223.         Expanded UDEFER to deal with USER DEFERed words. Moved DEFERS and
  224.         UDEFER out of KERNEL3.SEQ to DEFERS.SEQ.
  225.  
  226.  06/21/88 18:03
  227.  
  228. 45.     Thanks to Roger Bird for an improved SEARCH routine, it is 20%
  229.         faster, in the normal case, and 10 times faster in the worst case
  230.         (leading space in search string).
  231.  
  232.  06/23/88 10:35
  233.  
  234. 46.     Found and fixed another bug. If SETVIEW is set to view the source
  235.         from another directory, and you have loaded (FLOAD or OK) another
  236.         file, you will not be able to VIEW the new files words, because
  237.         SETVIEW is set to another directory not hte current directory. The
  238.         solution was to add s constant called WITHPATH, that determines
  239.         whether the files PATH will be included int the file VARIABLE that
  240.         gets created for each file loaded. I set WITHPATH to false while
  241.         loading the Forth system, then set it to TRUE just before saving
  242.         the system, so all user files will include their PATH for viewing.
  243.         WITHPATH controls whether "LOADED," includes of skips the files
  244.         path. The user need not worry about any of this.
  245.  
  246.  06/24/88 11:22
  247.  
  248. 47.     NOTE ******** Removed Graphics.SEQ from SMITH.ARC. Also updated
  249.         SMITH.ARC with Robert's latest version of software floating point.
  250.         Added Smiley's archive to my high density archive disk. This will
  251.         be given to the FIG librarian, but is too large to be included
  252.         with the F-PC system unless an additional disk is added.
  253.  
  254. 48.     NOTE ******** A preliminary version of the F-PC Users Manual
  255.         published bye Ting is available. Contact Dr. Ting for information
  256.         on availability and cost. Offete Enterprises, Inc 1306 South B
  257.         Street San Mateo, Ca. 94402 Ph# (415) 574-8250
  258.  
  259. 49.     Fixed a bug in the decompiler, that did not clear the lower lines
  260.         of the screen between the decompile, and the scroll section.  The
  261.         bug associated with decompiling definitions that are too many
  262.         lines long when in the debugger, is still there, I have not found
  263.         a good solution for this as yet. Also the X command in the
  264.         debugger is not yet a toggle, but may be one of these days if I
  265.         can get around to making it so.
  266.  
  267. 50.     Modified the DIR command, to allow multiple arguments on the line
  268.         after DIR, like "DIR /w *.txt <enter>" will now work properly.
  269.  
  270. ------------------------- Version 1.03b ------------------------------
  271.  
  272.  06/27/88 17:12
  273.  
  274. 51.     Re-coded ABS, DABS, & DNEGATE to improve their performance.  This
  275.         was done on the recommendation of Robert Smith.
  276.  
  277. 52.     Added the definition K which is the third outer loop index.
  278.  
  279. 53.     Removed the constants 0, 1, 2, & 3 from the dictionary since
  280.         constants are slower (29 cycles for constants vs. 25 cycles for
  281.         literals).  This also solves some problems with some programs that
  282.         accept input from the operator, and need to differentiate numbers
  283.         from dictionary entries.
  284.  
  285. 54.     Re-coded <> in assembly for performance.
  286.  
  287.  06/28/88 13:32
  288.  
  289. 55.     Bob found a bug in SEARCH that caused it to be eratic on an XT
  290.         type machine. Fixed by removing the instruction sequence "POP BX
  291.         SUB SP, # 2" from the code, and replacing it with another
  292.         technique. Also modified the SEARCH setup to remove a sensitivity
  293.         to whether CAPS contained something besides -1.
  294.  
  295.  06/29/88 15:55
  296.  
  297. 56.     Found a bug in Paste Text, that caused the pasted text to
  298.         overwrite the line into which the text was pasted, which resulted
  299.         in ONE lost line. Made a siple fix to PRINTING.SEQ in the word
  300.         IMPORT.
  301.  
  302. 57.     Added a symbol back into the editor to tell you where a page
  303.         break will occur.  The symbol is the same down pointing triangle,
  304.         but is located on the right margin in reverse video.
  305.  
  306.  06/30/88 11:06
  307.  
  308. 58.     Finally found the real cause of the bug that was causing files to
  309.         be deleted when thay wern't changed when using EDITALL. It seems
  310.         the length of the file handle was not getting setproperly, and
  311.         when I changed the file extension to .BAK, it was putting the
  312.         .BAK extension way out past the real filename. IT IT REALLY
  313.         FIXXED NOW!.
  314.  
  315. 59.     Did some minor optimization, changing double INC's and double
  316.         DEC's to ADD or SUB instructions to save a few cycles.
  317.  
  318.  07/02/88 00:12
  319.  
  320. 60.     I did some benchmarks recently, and found that F-PC is 2 1/2
  321.         times as fast as my previous Forth named PF, and over twice as
  322.         fast as the original F83 system in compiling.
  323.  
  324.  07/05/88 15:42
  325.  
  326. 61.     Saved 17 cycles in the combination of NEST and UNNEST. Also saved
  327.         a some cycles in other words, like OVER, 2OVER, R>, 2R> ect.
  328.  
  329.  
  330.  
  331.  07/07/88 09:54
  332.  
  333. 62.     ******* Exciting News ******* I have found a way to build the
  334.         system with INLINE NEXT, and still have the debugger work. This
  335.         results in almost a 20% improvement in overall performance. I
  336.         have seen compile speeds over 25000 line per minute on my 16mhz
  337.         80386, and over 12000 lpm on a 6mhz AT. See the file DBGFIX.SEQ
  338.         for information on how this is accomplished.
  339.  
  340. 63.     At Ting's request I have added the word INCLUDE as an alias to
  341.         FLOAD.  I have also dd the comment pair /* and */ which can
  342.         enclose comments.  Some people think they are better.
  343.  
  344.  07/07/88 17:37:04.05
  345.  
  346. 64.     At the request of Jay McKnight I have generalized the date and
  347.         time formatting. The word FORM-DATE takes a double IBM format
  348.         date, and formats it into ascii in the buffer DTBUF, according to
  349.         the defered function in BUILD-DATE.  FORM-DATE returns a counted
  350.         address which can be typed or printed.  There are now three date
  351.         formats supported, M/D/Y Y-M-D and D.M.Y. Entering any of these
  352.         makes BUILD-DATE construct that date format.  FORM-DATE, and
  353.         FORM-TIME both build their date or time in the DTBUF array which
  354.         is 16 characters long, so they must be used then typed or printed
  355.         sequentially, or they will overwrite each other.
  356.  
  357. ------------------------- Version 1.04b ------------------------------
  358.  
  359.  07/08/88 14:13:35.77
  360.  
  361. 65.   Changed version to 1.04b.
  362.  
  363.  07/08/88 17:12:15.74
  364.  
  365. 66.     Per a suggestion from Jay McKnight, I have modified the file
  366.         printing, such that the actual file date is printed at the bottom
  367.         of each page along with the current print date.
  368.  
  369. 67.     Coded CNSRCH in assembly to make the decompiler go a bit faster.
  370.  
  371.  07/09/88 18:49:17.18
  372.  
  373. 68.     Added word wrap, and paragraph justify back into SED.  All I had
  374.         to do was extract the code from ZED, and paste it back into SED.
  375.         Unfortunately there is still some work to be done before they
  376.         will be useful, there is currently no way to set the right
  377.         margin.  It just defaults to 132 columns.  Justify currently
  378.         tests for a right margin greater than 130 characters, and refuses
  379.         to do anything until you have set the right margin.  I will try
  380.         to get to this shortly.
  381.  
  382. 69.     Split SEDITOR.SEQ into two files, the end portion being named
  383.         SEDIT2.SEQ, and containing the upper portion starting at the
  384.         function table and continueing to the end.
  385.  
  386. 70.     The upper limit of file size has been adjusted slightly to 64500
  387.         characters.
  388.  
  389.  07/10/88 21:42:07.28
  390.  
  391. 71.     Added a method to set the right margin, use Alt-S then R. The
  392.         Alt-S is for SETUP, and R is for right margin.  "R" is the only
  393.         thing in setup for now, but more may follow later. Control-B
  394.         paragraph reformat is back in from ZED. Word wrap and Paragraph
  395.         reformat have both been placed in a file called SEDITWP.SEQ for
  396.         word processing extensions to SED. If this file is not loaded,
  397.         then the commands for word wrap, paragraph reformat, and right
  398.         margin wont work, but won't crash either.
  399.  
  400. 72.     This is probably a good place to mention that the editor is split
  401.         into multiple files of which some do not need to be loaded.  For
  402.         example, the file PRINTING.SEQ contains the print routines, as
  403.         well as the cut and paste functions, which don't have to be
  404.         loaded if you are short on space. The EDITHELP file can also be
  405.         omitted as can SEDITWP if you are short on space.  These won't
  406.         save you a lot of room, but at times every bit can help.
  407.  
  408. 73.     As you use the editor you will probably notice that there are
  409.         several different user interface techniques used to get
  410.         information from YOU the user. This has happened primarily
  411.         because I am using SED as a vehicle to test ideas. Some examples
  412.         of this phenomenon are the print parameter screen, the popup file
  413.         selection window, and the top line prompting for things like
  414.         Alt-O, and Alt-S.  I realize these are significant
  415.         inconsistancies, but I haven't had time to clean things up.
  416.         Perhaps one day I will, lets hope!
  417.  
  418.  07/11/88 11:02:51.38
  419.  
  420. 74.     Added UNDO per Robert Smith and Mark Smiley. UNDO was approved by
  421.         the ANSI Standards commitee at their May 1988 meeting.
  422.  
  423.  07/11/88 19:20:20.14
  424.  
  425. 75.     Installed a new help facility in the editor, you can now choose
  426.         to either have the editor help compiled into the dictionary, at a
  427.         cost of about 5k of list space. Or you can have the help text
  428.         brought in from disk on request, if it is available on disk in
  429.         the VIEWPATH at the time it is needed. Or you can choose not to
  430.         load the help file at all.  There is a boolean flag near the
  431.         beginning of the SEDHELP.SEQ file that can be set to FALSE if you
  432.         want help to be in a disk file that will get read in as needed.
  433.  
  434.  07/12/88 15:57:12.62
  435.  
  436. 76.     I have added some new files to the F-PC archive, these files
  437.         contain some functions from the old ZED editor.  The first file
  438.         is SEDSORT.SEQ which adds paragraph sort to the SED editor. It is
  439.         assigned function key F7, and is mentioned in SED help screen 9.
  440.         The other file is SEDDRAW.SEQ which add ZED's character line
  441.         drawing ability to SED.  It is assigned function key F9, and is
  442.         also mentioned in help screen 9. Also added SEDAPND.SEQ which
  443.         allows marked text to be APPENDed to TEMP.SEQ or the file you
  444.         specify.
  445.  
  446. 77.     Added a disk read buffer size adjuster to the install list.  This
  447.         allows you to customize the disk read buffer for your speed of
  448.         computer.
  449.  
  450. ------------------------- Version 1.05b -------------------------------
  451.  
  452.  07/19/88 10:29:32.04
  453.  
  454. 78.     Removed SHNDL which was a variable, and added SEQHANDLE which is
  455.         a constant. They perform the same function, but since their
  456.         interface changed, I changed the name to protect the innocent.
  457.         Instead of storing into SEQHANDLE with "SHNDL !", use "=:
  458.         SEQHANDLE" and of course SEQHANDLE simply returns the value of
  459.         the current stack file handle.  I have also renamed .SHNDL to
  460.         .SEQHANDLE, and SHNDL+ to SEQHANDLE+. I am sorry for the
  461.         inconvenience, but the program usage reads much better.
  462.  
  463. 79.     I have made several small changes internal to the editor, in
  464.         preperation for modifications to allow larger files to be edited.
  465.  
  466. 80.     DESIGN NOTE:  I am finding it easier to read programs that don't
  467.         contain @'s and !'s. Much of my inclination in F-PC is to use
  468.         CONSTANTs rather than VARIABLEs for readability. I then use "=:"
  469.         to assign into the constants. In fact performance is improved
  470.         slightly.
  471.  
  472.  07/19/88 12:40:14.02
  473.  
  474. 81.     Minor enhancement --- Added NEEDS back into F-PC, I removed it
  475.         some time ago, and I don't know why.
  476.  
  477.  07/20/88 17:27:50.74
  478.  
  479. 82.     MAJOR NOTICE  ********* NOTE ********** I have modified 2>R and
  480.         2R> to be compatible with the way Forth Inc. does them, that is
  481.         the order of the values on the parameter stack is maintained when
  482.         they are moved to the return stack. So 2>R is NOT the same as ">R
  483.         >R", it is the same as "SWAP >R >R". This may make problems for
  484.         some people, but it is in some sense more compatible with
  485.         existing (existing?) standards.
  486.  
  487.  07/22/88 10:08:17.33
  488.  
  489. 82.     Minot bug fix --- Fixed bug in assembler generated full word
  490.         immediate data when it should have generated a byte of data in
  491.         arithmetic instructions in the 7MI instruction class. Example ADD
  492.         AH, # $80 would generate the proper instruction, but the data
  493.         assembled was 16 bits instead of 8 bits as required.  This caused
  494.         the following instructions to be very messed up.
  495.  
  496. 83.     NOTICE THESE NOTES --- Robert Smith and myself have just received
  497.         a disk from Mark Smiley that contains a text file of some
  498.         comments from the east coast Forth board from people using F-PC,
  499.         or its cousins. I would like to address some of the things
  500.         mentioned there, but first here is a note about the suggestions I
  501.         am including.
  502.  
  503.         As suggested I have added the attribute words >ATTRIB5 - >ATTRIB8
  504.         to allow a greater number of attributes to be available on
  505.         machines that support them. >ATTRIB5 thru >ATTRIB8 are the same
  506.         as >ATTRIB1 to >ATTRIB4 for color. For monochrome, >ATTRIB5 is
  507.         set to >BOLDBLNK, >ATTRIB6 to >ATTRIB8 are set to be the same as
  508.         >ATTRIB2 to >ATTRIB4.
  509.  
  510.         Several people objected to my use of CONSTANTs as NOT constants,
  511.         that is I like to change them after creating them. I under stand
  512.         the objections, and I have accepted the suggestion from Steve
  513.         Palincsar of the East Coast Forth Board (ECFB) to use the word
  514.         VALUE for any constant that is likely to be changed later. The
  515.         system has been updated to use this concept, and the decompiler
  516.         has been updated to show VALUE for values.
  517.  
  518.         Another major objection several people seem to have to F-PC is
  519.         there is no BE-HEAD mechanism, and I seem to throw all of my junk
  520.         words into the HIDDEN vocabulary. I plead guilty as charged,
  521.         although I have no simple solution. The reasons there is no
  522.         BE-HEAD mechanism in F-PC are as follows:
  523.  
  524.         1.    I wanted anyone learning F-PC to have FULL access to all of
  525.               the words in the system, and BE-HEADING some of the words
  526.               makes it more difficult to learn how the system works. That
  527.               is NOT my goal.
  528.  
  529.         2.    The mechanism used in F-PC/F83Y to get back to the head of
  530.               a definition from the Code Field is to hash the CFA into
  531.               one of 64 threads, and search a limited area of head space
  532.               for the desired CFA Pointer. If you remove headers from the
  533.               system these threads become messed up and you cant get back
  534.               to the head from the CFA any more. Consequently the the
  535.               decompiler doesn't work if you do this.  I have not had a
  536.               chance to look at the BE-HEAD file I received, but if it
  537.               solves this problem, then I will consider including it with
  538.               the system.
  539.  
  540.         Finally MANY people object to the fact the system changes so
  541.         much. To these people I can only say that until recently I had no
  542.         desire to make the system stable, I was evolving it toward what I
  543.         saw as my Ideal Forth System.  As I make major changes to the
  544.         architecture I changed the name. Now that F-PC has stablized in
  545.         the sense its major internal structure is not changing,
  546.         portability will be enhanced, and you won't have to deal with
  547.         with such a bowl of jello. However F-PC is still in BETA test,
  548.         that is is is still chaning. Within a couple of months it will be
  549.         out of BETA, into a full release, then you can complain about
  550.         stability, until then, YOU GOT JUST WHAT YOU PAID FOR. This may
  551.         seem a cynical point of view but of course you are more than
  552.         welcome to make a system you like and release it.
  553.  
  554.         So as not to end on a soure note, I do appreciate all the work
  555.         people are doing with OUR system, and I think this file proves
  556.         F-PC is (at least a bit) more stable. Send letters or comments
  557.         to:
  558.  
  559.                         Tom Zimmer
  560.                         292 Falcato Drive
  561.                         Milpitas Ca. 95035
  562.                               Home 408/263-8859
  563.                               Work 408/432-4643
  564.  
  565.         Updates to F-PC are available at the above address, include a
  566.         mailer, a high density disk, $25.00 and THREE STAMPS (first
  567.         class).
  568.  
  569.  07/22/88 17:49:28.73
  570.  
  571. 84.     Minor bug fix --- The words which enter the editor all now force
  572.         DECIMAL as the current BASE.
  573.  
  574. 85.     Minor change --- FIX which was removed a while back is back in as
  575.         REPAIR.
  576.  
  577.                  --- FIG July Version ended HERE ---
  578.  
  579.  07/25/88 17:10:14.02
  580.  
  581. 86.     Significant enhancement --- Added Printer control with the
  582.         PRTCTRL.SEQ file. If you look at the file PROPRINT.SEQ, you will
  583.         see the definition of a printer, that is the default for F-PC.
  584.         duplicate this file, and change the string value and names to
  585.         conform to your printer.  Having done this, load your new file,
  586.         to make it take effect, and save F-PC back to disk with the
  587.         printer installed.
  588.  
  589.         The changes allow %B to turn ON and OFF BOLD, so:
  590.  
  591.                         %B This will be BOLD %B
  592.  
  593.         The same can be done with %U UNDERLINE, and %1, %2, and %3 the
  594.         user definable functions.   Function %1 defaults to DOUBLE WIDE
  595.         printing on the provided PROPRINT.SEQ.
  596.  
  597.         The file PRINTING.SEQ is setup to look for an existing definition
  598.         for the word PTYPE. If it does not find one (as in the case where
  599.         PRTCTRL.SEQ was not loaded) then it will define PTYPE with a
  600.         generic (just print the string) routine. This means you don't
  601.         have to load the file PRTCTRL.SEQ if you want to save some space.
  602.         PROPRINT.SEQ will also automatically NOT load if PRTCTRL.SEQ is
  603.         not loaded.
  604.  
  605.  
  606.  
  607.  07/26/88 14:47:26.31
  608.  
  609. 87.     Information --- Received the information from Mark Smiley a few
  610.         days ago, There were several complaints on the East Coast Forth
  611.         Board about F-PC not having a BE-HEAD mechanism. Well NO MORE.
  612.         There was one included in the files Mark sent me, I think it was
  613.         written by George Hawkins, although there is no indication in the
  614.         file.
  615.  
  616.         I have not included it directly in the system, you will have to
  617.         load it if you want it.  there is an editorial in the BEHEAD.SEQ
  618.         file that I added, explaining why. Briefly I want YOU the USER to
  619.         have access to all of F-PC, and BEHEAD interferes with SEE and
  620.         VIEW.  This is a great utility for a professional programmer who
  621.         needs to save some space to make room for even more definitions.
  622.         Since F-PC is limited to 5000 or so definitions in HEAD space,
  623.         BEHEAD could be used to substantially increase that limit to be
  624.         effectively unlimited.
  625.  
  626. 88.     Minor bug fix --- Made a minor modification to -TRAILING to test
  627.         for the length=0 case. This was correctly pointed out by Mike
  628.         Sperl on the East Coast Forth Board.
  629.  
  630. 89.     NOTICE THIS --- Additional comments from the East Coast Forth
  631.         Board (ECFB) imply I may be CHANGING THINGS TOO FAST.  Sorry
  632.         about that guys (and gals) Things really are stabilizing hard as
  633.         it is to believe.  I really do appreciate the comments, and as
  634.         you can see from the above notes, I have implemented some of your
  635.         suggestions.
  636.  
  637.         Of course I have been thinking of COMPLETELY REDESIGNING F-PC
  638.         (only Kidding). I am very interested in any and all example or
  639.         utility code you have written,
  640.  
  641.            ╔═══════════════════════════════════════════════════════╗
  642.            ║ I would like to caution you in one area though,       ║
  643.            ║              which is as follows:                     ║
  644.            ║ ───────────────────────────────────────────────────── ║
  645.            ║ Please don't make any changes to an internal file     ║
  646.            ║ unless you have to, here is why.                      ║
  647.            ║                                                       ║
  648.            ║ F-PC continues to get bug fixes, and if you modify a  ║
  649.            ║ file and distibute it to people, and that file gets a ║
  650.            ║ bug fix (like the assembler has had several times.)   ║
  651.            ║ then people won't get the bug fix. A perfect example  ║
  652.            ║ of this is the version of PASM that was distributed   ║
  653.            ║ with GOTOs in it, it was a neat idea, but now anyone  ║
  654.            ║ who uses that assembler won't get any bug fixes in    ║
  655.            ║ later versions of the assembler. If you can make your ║
  656.            ║ utilities as add-ons, doit that way. if I need to     ║
  657.            ║ make something else a DEFERED word, let me know, I'm  ║
  658.            ║ not completely heartless. I have and am trying to     ║
  659.            ║ make the system as flexible as possible.              ║
  660.            ╚═══════════════════════════════════════════════════════╝
  661.  
  662.  
  663.  07/26/88 16:35:28.61
  664.  
  665. 90.     Significant enhancement --- Thanks to who ever wrote the wait for
  666.         retrace code for direct video output, I have included a sightly
  667.         modified version, and it makes a big difference, on a COLOR CGA
  668.         display. I didn't fix this before, because I did not have a CGA
  669.         display. I still don't, but the notes on the ECFB brought the
  670.         problem and solution to my attention. I am writting this note
  671.         using a CGA display, and I am glad I don't have one myself, even
  672.         with blanking the screen is still TOO JUMPY for me.
  673.  
  674.         The screen save and restore routines have also been modified to
  675.         perform their operation during retrace.
  676.  
  677.         I also made a small change to "L", it used to do a DARK before
  678.         listing, which causes a terrible JUMP on a CGA display, so now it
  679.         just homes the cursor, and displays the screen, with erase to end
  680.         of line. Much les flashing.
  681.  
  682.  
  683. ------------------------- Version 1.06b -------------------------------
  684.  
  685.  07/26/88 16:50:41.75
  686.  
  687. 91.     I figured it was time for a new version number.
  688.  
  689.  07/26/88 17:56:06.34
  690.  
  691. 92.     Minor enhancement --- Added Goto Page per the suggestion from
  692.         Mike Sperl of ECFB. It is implemented as Alt-G for GOTO, and
  693.         leaves you on the first screen line on the first line of the
  694.         specified page.
  695.  
  696.  07/27/88 21:59:16.97
  697.  
  698. 93.     WONDERFUL new feature --- I have modified VIEW, so it displays
  699.         the HELP for a word that is being viewed on the top 7 lines of
  700.         the display, and displays the source on the next 12 lines. You
  701.         get to see how to use a word at the same time as you see its
  702.         source file.
  703.  
  704.         HELPON and HELPOFF toggle this feature. HELPON is the default,
  705.         and if you type HELPOFF, then VIEW lorks like it did before, that
  706.         is it displays 17 lines of source starting at the top of the
  707.         screen.
  708.  
  709.         I have also removed the DARK from VIEW and HELP, as they caused a
  710.         jumpy display on a CGA. The new method is much smoother.
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  07/27/88 22:58:06.15
  717.  
  718. 94.     Minor bug fix --- Found and fixed a bug today in the assembler,
  719.         in the definition of 12MIF. In POSTFIX mode it was assembling the
  720.         following instruction:
  721.  
  722.             23 # MYVAR #) MOV
  723.  
  724.             as if you had entered
  725.  
  726.             MYVAR # 23 #) MOV
  727.  
  728.         It did work right in PREFIX mode though.
  729.  
  730.         By the way this is an ideal time to point out again that you will
  731.         notice there is nothing in the above instruction to indicate a
  732.         BYTE or WORD size operation.  In POSTFIX mode, these type of
  733.         instructions default to WORD size moves, BUT in PREFIX mode they
  734.         default to BYTE size moves.  This may seem strange at first, but
  735.         for compatibility I had to leave the POSTFIX mode defaulted to
  736.         WORD, and for closer compatibility with MASM, PREFIX mode MUST
  737.         default to BYTE. Sorry about the confusion, but life is full of
  738.         this kind of stuff.
  739.  
  740. 95.     Minor bug fix --- I also fixed a bug in CURLEY's disassembler, it
  741.         did not know the difference between a byte move, and a word move,
  742.         so I modified it to print MOV, for WORD moves, and MOVB, for BYTE
  743.         moves.
  744.  
  745.  07/28/88 17:46:30.34
  746.  
  747. 96.     Minor bug fix --- The META Compiler was causing undefined words
  748.         to be printed incorrectly at times.  Also added some checking to
  749.         META86 to warn you audibly if there are any undefined references.
  750.  
  751.  07/29/88 16:35:17.90
  752.  
  753. 97.     Minor bug fix --- Fixed bug in disassembler that used a literal
  754.         value to decide when a word was a code word.  Modified the
  755.         decompiler to use a constant MAX-CLASSES that the disassembler
  756.         can use to test for this case.
  757.  
  758.  08/01/88 15:48:29.62
  759.  
  760. 98.     Minor enhancement --- Adjusted SED so it can work within a
  761.         window. The function Alt-S-W allows you to Setup the Window
  762.         height of SED for your preference. Using less lines allows you
  763.         more lines of Forth commands after leaving SED.  I know it is
  764.         hard to understand what I'm talking about, just start SED to see
  765.         how its user interface has changed. When you leave SED, the last
  766.         area of the file you were editing stays on the screen.
  767.  
  768.  
  769.  
  770.  
  771.  08/01/88 21:53:54.28
  772.  
  773. 99.     Minor enhancement --- I have setup SED so the last edit screen
  774.         says on the screen after you leave SED until you type DONE, to
  775.         tell it to start scrolling the screen again. The area that
  776.         scrolls can be controlled as described above with Alt-S-W (Setup
  777.         Window).
  778.  
  779. 100.    Minor enhancement --- Alt-S-W (Setup Window) now allows you to
  780.         expand the edit window up to the point where you are using the
  781.         full screen except for the last and first lines for you edit. The
  782.         algorithm is difficult to explain, but works well, try it.
  783.  
  784.  08/05/88 15:20:30.87
  785.  
  786. 101.    Minor change --- Removed BEHEAD.SEQ from the F-PC archive.  I
  787.         have placed it in the file MISC.ARC  It was taking up too much
  788.         room to allow me to hold all of the source for F-PC and the
  789.         F-PC.EXE file on one 730k, 3 1/5 inch floppy.
  790.  
  791. 102.    Significant enhancement --- Added a variable called BLANKING,
  792.         which is set during installation to control the blanking of the
  793.         screen when a CGA or color monitor is used.  Some color monitors
  794.         don't need screen blanking to avoid the snow or sparkle of a
  795.         normal CGA, so you can specify what you want now in the
  796.         installation process.
  797.  
  798.  08/06/88 18:35:45.93
  799.  
  800. 103.    Minor cleanup --- Fixed bug in Print Window, It was not restoring
  801.         the screen to the same state it found it, so thing were not as
  802.         pretty as they should have been.  Also made Print window smaller,
  803.         there was no need to cover the entire screen with it.
  804.  
  805. ------------------------- Version 1.07b -------------------------------
  806.  
  807.  08/08/88 15:02:29.83
  808.  
  809. 104.    Significant enhancement --- Added a menu driver to SED, in the
  810.         file SEDMENU.SEQ. This initial version has only a few items, but
  811.         I will shortly be expanding it to include a number of the
  812.         existing commands.
  813.  
  814.  08/12/88 17:35:35.24
  815.  
  816. 105.    Significant enhancement --- Generalized the menu driver, so it
  817.         can be used at the Forth level. To see an example of yow to
  818.         create a set of menus, look at the file SEDMENU.SEQ. This file
  819.         contains the menus for the editor. You can create your own menus,
  820.         or expand the default menubar by changing MENUS.SEQ.  the current
  821.         default menubar is available in Forth, by pressing ESC, after
  822.         which you can walk around on the menu bar, and execute a function
  823.         by pressing <enter>. Pressing ESC again clears the menubar from
  824.         the screen and restores your cursor.
  825.  
  826.  08/15/88 10:59:24.59
  827.  
  828. 106.    Minor cleanup --- Mod the the debugger, allows debugging to
  829.         continue on with the definition above one you have nested into
  830.         when you leave the lower definition with an EXIT. Previously the
  831.         system just continued execution, and did not allow debugging
  832.         further. This was fixed by Robert L. Smith.
  833.  
  834.  08/15/88 14:21:29.17
  835.  
  836. 107.    Minor cleanup --- Fixed X in the debugger to be a toggle as
  837.         suggested by several people. Pressing it once turns OFF the
  838.         source display, pressing it again turns the source display back
  839.         on.
  840.  
  841.  08/15/88 16:31:54.46
  842.  
  843. 108.    Significant BUG --- Fixed bug in 2+!, I was adding in the double
  844.         stack value to memory in the wrong order. Thanks Roger.
  845.  
  846. ------------------------- Version 2.01 -------------------------------
  847.  
  848.  08/16/88 15:14:01.84
  849.  
  850. 109.    Version 2.01
  851.  
  852.  08/17/88 15:46:09.94
  853.  
  854. 110.    Nice enhancement --- Add a selection tool to SED for graphic and
  855.         special characters. Note that only the special characters above
  856.         127 can be printed on an IBM compatible printer. Those characters
  857.         below 32 are useful only for screen display purposes.
  858.  
  859. 111.    Prepared the screen dumps for version 2 of the users manual for
  860.         Dr. Ting. This users manual is being done on a Macintosh and will
  861.         be laser printed, as such the production quality will be MUCH
  862.         higher than the earlier manual. It looks like we will have some
  863.         good documentation for F-PC. I highly recommend buying the users
  864.         manual, I think you will find it very useful.
  865.  
  866.  08/18/88 16:08:37.92
  867.  
  868. 112.    Minor cleanup --- I have made a minor change through out the
  869.         fabric of the menu system that allows editor functions other than
  870.         menu names to be performed while the menu is on the screen.  This
  871.         was done to correct a problem that two people ran into, which was
  872.         you could not do any thing except perform a menu operation when
  873.         the menu was on the screen. They found this very confusing, and I
  874.         have thus corrected it.
  875.  
  876. 113.    NOTICE THIS --- I have run into an interesting problem, is seems
  877.         Dr. Ting was working on a program that needed some text to
  878.         process while verifying a program section.  He decided to use the
  879.         editor text buffer as a convenient place to keep this temp text.
  880.         To make a long story short, I made a change to the editor which
  881.         made his test program non-functional.  I want everyone to know
  882.         that the editor is my toy, and it is fair game for changes at any
  883.         time, and so you should be VERY CAREFUL if you decide to use
  884.         pieces of it, as even its internal architecture may change
  885.         without even a moments notice. This file if for documenting
  886.         changes primarily to the Forth system, NOT the EDITOR except from
  887.         a user interface standpoint.
  888.  
  889.  08/19/88 00:06:08.27
  890.  
  891. 114.    Minor cleanup --- I have added a window entry mechanism to the
  892.         following routines: SAVEAS, SEARCH, REPLACE, SHIFT-CUT,
  893.         SHIFT-COPY, SHIFT-APPEND. They now use LINEEDIT, to get their
  894.         parameters, which allow you to use the keypad to edit/modify your
  895.         selection. The previously entered value in SEARCH and REPLACE
  896.         will be displayed on entry.
  897.  
  898.  08/19/88 17:05:17.70
  899.  
  900. 115.    Significant enhancement --- Line edit now has available through
  901.         the use of Alt-A, access to the special character entry box used
  902.         by the editor. When you are entering a search or replace string,
  903.         you can press Alt-A, and you will be given the opportunity to
  904.         enter a graphics or control character.  If you use this feature
  905.         in an application, you will need to add information to your on
  906.         screen help to let the user know about Alt-A. See the editor
  907.         search (F6 and F8) for awwn example of how to let the user know
  908.         about this.
  909.  
  910. ------------------------- Version 2.02 -------------------------------
  911.  
  912.  08/20/88 15:21:09.32
  913.  
  914. 116.    Version 2.02
  915.  
  916. 117.    Minor cleanup --- Changed default file specification for the
  917.         popup file selection tool to "*.*" from "*.seq".  This makes it
  918.         easier to see that you can walk around through the directory tree
  919.         of a disk. You can of course use "\" while in the tool to change
  920.         the file spec.
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936. 118.    Significant Milestone --- I proofed the final master (LASERWRITER
  937.         printed) copy of Dr. Tings users manual for F-PC yesterday.  It
  938.         is a HUGE improvement over earlier manuals, and should do much to
  939.         help make F-PC acceptable to a larger audience (I hope).  Also
  940.         much work has been done on the technical reference manual, and I
  941.         hope Dr. Ting wil be able to complete it soon. It is going to be
  942.         at least on par with the INSIDE F83 manual he produced several
  943.         years ago.
  944.  
  945.         I am also pleased to report "Ting's English" as it has come to be
  946.         known, has moved MUCH closer to American English in the last
  947.         couple of years.  The manuals readability is very good.
  948.  
  949.         Jay McKnight will is also helping proof read the F-PC Technical
  950.         Reference Manual.
  951.  
  952.  08/22/88 14:37:58.76
  953.  
  954. 119.    I have added a utility to ZIMMER.ARC that allows editing Forth
  955.         command lines like DOSEDIT, but under control of Forth.  It is
  956.         called XEXPECT.SEQ. All you have to do is load it, and you can
  957.         use UP and DOWN arrows to recall the most recent four typed in
  958.         lines.
  959.  
  960. -------------------- Version 2.02  08/24/88 09:20:05.33 -----------------
  961.  
  962.                     --- FIG August Version ended HERE ---
  963.  
  964.  08/24/88 10:34:59.12
  965.  
  966. 120.    Minor enhancement --- Added a flag to Line edit to determine if
  967.         trailing blanks are to be stripped from the edit string. The word
  968.         "STRIPPING_BL'S" gets automatically set to TRUE after being set
  969.         to FALSE, so you must set it to FALSE every time you call
  970.         LINEEDIT  ns you want trailing blanks "LEFT ALONE".
  971.  
  972.  08/29/88 09:44:25.14
  973.  
  974. 121.    Minor cleanup --- Added CLS as an alias to DARK.
  975.  
  976.  08/29/88 15:53:40.88
  977.  
  978. 122.    Minor cleanup --- Made a minute change to "ME@", it used to be
  979.         able to call abort if it could not find the end of the
  980.         environment, and would on a DOS 2.x system print garbage.  It has
  981.         been changed so it will not abort if it cannot find the end of
  982.         the environment, it will instead return a null filled ME$. It
  983.         will also return a null filled ME$ if it is performed on a DOS
  984.         2.x system, so it won't print garbage anymore.
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  08/29/88 22:20:03.45
  992.  
  993. 123.    Minor bug fix --- Corrected a small bug in the decompiler that
  994.         was causing SEE to show the wrong function when SEEing DARK or
  995.         AT. These are self defining words that it did not handle
  996.         properly. This has been corrected.
  997.  
  998.  08/30/88 21:57:03.55
  999.  
  1000. 124.    Bug fix --- The definition of IBM-DARK was always trying to set
  1001.         the video mode to 2, which is of course wrong for monocrome, and
  1002.         was messing up some systems with two monitors. It now reads the
  1003.         video mode and restores the same mode.
  1004.  
  1005.  09/01/88 10:35:57.67
  1006.  
  1007. 125.    Cleanup --- Changed the error message in ?MISSING from "Huh, I'm
  1008.         confused?" to "What?". I received some complaints that the Huh
  1009.         message was irritating to some people. Also modified ?MISSING to
  1010.         print a space before printing the confusing word to better
  1011.         delimit it from anything already printed on the line.
  1012.  
  1013. ----------------- Version 2.021  09/01/88 14:06:22.84 -----------------
  1014.  
  1015.  09/02/88 21:28:49.05
  1016.  
  1017. 126.    Bug Fix --- Added SWAP to PRINTING line 251, in the definition of
  1018.         GETINPFILE. It seems you could not hold down shift and get the
  1019.         specified file to be inserted, two values were in the wrong
  1020.         order.
  1021.  
  1022. ------------------- Version 2.10  09/02/88 23:29:31.74 -----------------
  1023.  
  1024.  09/02/88 23:29:05.71
  1025.  
  1026. 127.    Major Enhancement --- SED has just been modified to allow editing
  1027.         files as large as memory.  Now F-PC is a BIG program, and takes a
  1028.         lot of room, but you can still edit about 160k file on a 640k
  1029.         machine, and a 64k file on a 512k machine.
  1030.  
  1031.         This change took me about two days to complete.  It was
  1032.         relatively minor, in that the line pointer table went from
  1033.         pointing at lines with an offset, to pointing at lines with a
  1034.         segment. The text line structure then changed to counted strings.
  1035.         Files are now read and written a-line-at-a-time through the
  1036.         normal lineread mechanism and a new linewrite mechanism that is
  1037.         currently part of the editor. I may move the line write out of
  1038.         the editor later, and into the system.
  1039.  
  1040.         It seems to work fairly well: there is no noticable speed
  1041.         difference. I can make no guarantees as yet about the
  1042.         reliability.  I simply haven't had time to wring it out yet.
  1043.  
  1044. 128.    Minor enhancement --- I have added a word UNEDIT to the system.
  1045.         It DEALLOCATES the editors memory after an edit session, so you
  1046.         can use that memory for your program if you need it.  The editor
  1047.         automatically grabs all of the available memory except for the
  1048.         amount you tell it not to during installation (32k-256k), so it
  1049.         is useful to be able to recover that memory if you are using an
  1050.         application that uses memory outside of F-PC's CODE space.
  1051.  
  1052.  09/04/88 17:59:25.56
  1053.  
  1054. 129.    Significant Improvment --- Recoded the way a goto line is
  1055.         performed.  I used to goto a line by a line at a time, now I
  1056.         block move the lines in big chuncks, and correct the line pointer
  1057.         table. This is MANY times faster, and now you can move from
  1058.         the beginning of even a VERY LARGE file to the end or visa versa
  1059.         in WELL UNDER A SECOND.  This speeds up both starting and
  1060.         finishing an edit of a file significantly.
  1061.  
  1062.  09/05/88 00:37:28.75
  1063.  
  1064. 130.    Space savings --- All of the installation messages, SED help
  1065.         messages, and the INFO message have been moved into a file called
  1066.         F-PC.MSG These messages are retrieved from the INFO file as
  1067.         needed when the specified operation is performed. This resulted
  1068.         in a savings of over 11k in the .EXE file. If you don't need help
  1069.         in the editor, or can live with short messages during
  1070.         installation then you can delete the F-PC.MSG file altogether.
  1071.  
  1072.         As this was mostly wasted space for normal operation, this seemed
  1073.         like a good feature.
  1074.  
  1075. 131.    New installation setting --- LIST segment allocation has now been
  1076.         added to installation. This makes it easy to readjust your memory
  1077.         usage.  Just re-install the program.
  1078.  
  1079. 132.    Editor adjustment --- The editor has been modified to allow an
  1080.         edit to take place even if there is only room to edit a 16k file.
  1081.         This allows the editor to be used in very memory limited systems
  1082.         like 384k (maybe?). If you try to edit a file that is too big for
  1083.         memory, SED will perform a partial read, and inform you it has
  1084.         done so.  You should of course NOT CHANGE the file and DON'T SAVE
  1085.         CHANGES if you do.
  1086.  
  1087.  09/05/88 13:02:20.20
  1088.  
  1089. 133.    Bug Fix --- There has been a bug in F-PC that prevented the
  1090.         compiler from compiling the last line of any file it was loading.
  1091.         This was caused by the way I was testing for the end of file
  1092.         condition, and it has now been corrected.
  1093.  
  1094. ------------------ Version 2.11  09/05/88 13:02:27.23 -----------------
  1095.  
  1096.  09/05/88 20:09:39.37
  1097.  
  1098. 134.    SED feature --- Add a menu item to the FILE menu to allow
  1099.         spawning a DOS shell from within the editor. This can be useful
  1100.         if you need to format a disk, copy or delete some files ect.
  1101.  
  1102.  09/06/88 15:16:25.63
  1103.  
  1104. 135.    Minor enhancement --- Another menu item to the ADVANCED menu, to
  1105.         allow setting the editor Window size. With windows of less than
  1106.         23 lines, the editor will stay on the screen and only the lower
  1107.         lines will scroll until you type DONE to cause full screen
  1108.         scrolling to be re-started.
  1109.  
  1110.  09/06/88 17:54:30.17
  1111.  
  1112. 136.    Memory usage optimization --- Adjusted SED such that when you
  1113.         SHELL out to dos, it deallocates all of the memory it does not
  1114.         need for the current file. This makes the memory available for
  1115.         DOS to use. The memory is reallocated on re-entry to SED.
  1116.         Appropriate error messages are issued if there is not enough room
  1117.         for DOS and the file you are editing. I am even handling the case
  1118.         where you loaded a terminate and stay resident program from the
  1119.         shell. I warn you that is a bad thing to do, and tell you to
  1120.         save your changes and reboot your computer because you have
  1121.         fragmented your memory.
  1122.  
  1123.  09/07/88 14:55:33.93
  1124.  
  1125. 137.    Cleanup of debugger --- Fixed some minor bugs in the debugger,
  1126.         that would cause dirty displays if you were working on a
  1127.         procedure that was too long to decompile on the screen (more that
  1128.         18 lines). Fixed another bug that would cause the decompiler to
  1129.         pop up a level in the debugger one word before it should.
  1130.  
  1131.  09/08/88 11:33:22.32
  1132.  
  1133. 138.    Minor enhancement --- Added a flag to LEDIT.SEQ the line editor to
  1134.         allow the programmer to specify whether the first text character
  1135.         typed will automatically clear the edit line. See LEDIT.SEQ for
  1136.         more information on this.
  1137.  
  1138.  09/09/88 08:42:11.91
  1139.  
  1140. 139.    Minor enhancement --- Added White to black and Black to white
  1141.         inversion to the SETUP menu at the Forth command level.
  1142.  
  1143. 140.    Another enhancement --- Both the compiler and SED have been
  1144.         modified so the editor preserves the cursor position when you leave
  1145.         and re-enter and edit, including the cursor position on the line.
  1146.         The compiler has been adjusted to make the cursor show up exacly
  1147.         at the point in the file where the compile error occured when you
  1148.         enter the editor.
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156. ------------------ Version 2.12  09/09/88 15:19:28.70 -----------------
  1157.  
  1158.  09/13/88 10:38:12.29
  1159.  
  1160. 141.    Generalized BOX --- BOX and BOX&FILL have been made more
  1161.         generally useful.  They now position the cursor on the first blank
  1162.         line of the box just drawn, ready for you to use TYPE or ." to
  1163.         display text in them.  You can then use BCR for BOX CR to move the
  1164.         cursor down to the next blank line of a box.  See an example in
  1165.         the file BOXTEXT.SEQ.
  1166.  
  1167. 142.    Message cleanup --- Moved most if not all of the SED messages from
  1168.         the status line into boxes.
  1169.  
  1170.  09/14/88 13:10:55.51
  1171.  
  1172. 143.    Bug fix in Word Wrap --- Stomped out a bug in the word wrap code
  1173.         that was causing extra blank line to be inserted under special
  1174.         conditions.  It wan't serious but it was irritating.
  1175.  
  1176. 144.    Menu enhancement --- Well I have made a very nice improvement to
  1177.         the menu structure.  Each menu line you create is followed on the
  1178.         same line by the name of the function to be performed. This is much
  1179.         more readable and less error prone than having a seperate array for
  1180.         the functions.  Here is an example menu definition:
  1181.  
  1182.                 5 newmenu dfile$
  1183.                         menuline"  New  file          " makefile
  1184.                         menuline"  Open file          " openfile
  1185.                         menuline"  Edit  current file " editafile
  1186.                         menuline" ────────────────────" noop
  1187.                         menuline"  Print Current file " dolisting
  1188.                 endmenu
  1189.  
  1190.         Notice how readable it is, and it's very easy to see what functions
  1191.         go with which items.
  1192.  
  1193.  09/15/88 00:14:03.76
  1194.  
  1195. 145.    Install enhancement --- I have removed the question from the
  1196.         install program that asks you what read buffer size you want to
  1197.         use. The read buffer size is now determined automatically at F-PC
  1198.         boot time by measuring the speed of your computer. It will use a
  1199.         16k buffer for a 386 class machine, and about a 4k buffer for an XT
  1200.         class machine. It actually saved some space by making it automatic.
  1201.  
  1202. 146.    Minor bug fix --- LOAD did not preserve the edit cursor line.  After
  1203.         a LOAD you would be left on the last line of the file if you were
  1204.         to re-edit. This has been corrected.
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  09/15/88 11:23:33.96
  1212.  
  1213. 147.    Rearrangement --- Moved XEXPECT.SEQ from the optional area of
  1214.         ZIMMER.ARC into the F-PC system. It is now automatically loaded
  1215.         when the system is extended. It is too useful to leave as an
  1216.         optional feature. Use up and down arrow to recover previously
  1217.         entered lines.
  1218.  
  1219. ------------------ Version 2.13  09/15/88 11:25:18.21 -----------------
  1220.  
  1221.  09/16/88 15:01:28.86
  1222.  
  1223. 148.    Auto edit on load error --- There is an optional file now being
  1224.         loaded called EDITERR.SEQ which sets F-PC to automatically call the
  1225.         editor when a compile error occurs while loading. The error message
  1226.         is shown on the lower few lines of the screen and the editor is
  1227.         entered with the cursor placed where the error occured. The editor's
  1228.         display window is automatically adjusted smaller in size to allow
  1229.         the viewing of the error message.
  1230.  
  1231.  09/19/88 17:02:34.24
  1232.  
  1233. 149.    Enhancement --- I have added a new file and set of functions to the
  1234.         kernel. The file is SAVEREST.SEQ, and the functions are as follows:
  1235.  
  1236.                 SAVE>
  1237.  
  1238.                 Saves the contents of following work to the return
  1239.                 stack. Equivalent to "VARIABLE-NAME @ >R".
  1240.  
  1241.                 SAVE!>
  1242.  
  1243.                 Save the contents of the following word to the return
  1244.                 stack, and set the contents of the following word to
  1245.                 the value on the stack.
  1246.                 Equivalent to "value VARIABLE-NAME DUP @ >R !".
  1247.  
  1248.                 RESTORE>
  1249.  
  1250.                 Restore the contents of the following word from the
  1251.                 return stack.
  1252.                 Equivalent to "R> VARIABLE-NAME !"
  1253.  
  1254.         These words have been inserted wherever they were appropriate in
  1255.         all F-PC files. The .EXE file size actually dropped by a couple
  1256.         hundred bytes, and is I believe more readable.
  1257.  
  1258. 150.    REMOVED SHNDL ---  I have removed the error aborting messages for
  1259.         the words SHNDL, .SHNDL and SHNDL+. I switched to SEQHANDLE so long
  1260.         ago that if you haven't updated by now you will have other things
  1261.         to worry about anyway.
  1262.  
  1263.  
  1264.  
  1265.  
  1266. 151.    FUDGE set mod --- Integrated SETFUDGE into BUFSIZE-INIT. The later
  1267.         sets the buffer size according to the system clock speed. FUDGE is
  1268.         now set according to the system clock also, rather than looking at
  1269.         the ROM to try to figure out what computer we are running. Looking
  1270.         at the ROM didn't work most of the time.
  1271.  
  1272. ------------------ Version 2.14  09/19/88 18:09:59.89 -----------------
  1273.  
  1274.  09/20/88 08:37:50.63
  1275.  
  1276. 152.   AUTOEDIT enhancement --- Modified EDITERR.SEQ to add the words
  1277.        AUTOEDITON and AUTOEDITOFF to select whether F-PC will automatically
  1278.        enter the editor when a compile error is encountered while loading.
  1279.  
  1280.  09/20/88 13:55:20.99
  1281.  
  1282. 153.    Bug fix --- Fixed two bugs.  First was in the way the offset into a
  1283.         file was accumulated while compiling.  It seems under some
  1284.         conditions the cursor would end up on the wrong line after a
  1285.         compile error.  This has been stomped out.  The second bug was in
  1286.         NEEDS.  It seems it would reload the needed file all the time even
  1287.         after it was loaded.  I needed to insert the current drive path into
  1288.         the name being looked for in one of my two tests for having a file
  1289.         already loaded.
  1290.  
  1291.  09/22/88 08:27:23.88
  1292.  
  1293. 154.    Macros enhancement --- The user interface to Macros has been
  1294.         cleaned up, and the ability to LOAD, SAVE, and VIEW macros has been
  1295.         added.  The macros are saved in the file F-PC.MAC.  The macro file
  1296.         is not automatically loaded.  It must be loaded manually (with
  1297.         Alt-M-L), so you can create temporary macros that won't overwrite
  1298.         your master set.  These new functions are all performed from the
  1299.         Alt-M command dialog box so no additional documentation is needed.
  1300.  
  1301.  09/22/88 13:30:16.69
  1302.  
  1303. 155.    WORDS enhancement --- Added the word THESE, which can prefix WORDS
  1304.         to tell WORDS you want it to only look for matches to the following
  1305.         string in the CONTEXT vocabulary.  Here is an example:
  1306.  
  1307.                 WORDS X <enter>         Looks for words containing X in
  1308.                                         all vocabularies.
  1309.  
  1310.                 EDITOR THESE WORDS X    Looks for words containing X but
  1311.                                         only in EDITOR.
  1312.  
  1313. 156.    Display enhancement --- Added an install section to test the video
  1314.         mode and prompt for whether you are using a real COLOR display of
  1315.         an LCD display.  Allows you to setup F-PC for an LCD display that
  1316.         will be usable where the normal COLOR attributes might not be
  1317.         usable.
  1318.  
  1319. ------------------ Version 2.15  09/22/88 13:33:19.98 -----------------
  1320.       ******** Further notes may be found in the file NOTES2 *********
  1321.