home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / forth2 / notes.doc < prev    next >
Text File  |  1994-05-21  |  10KB  |  296 lines

  1.  
  2.   **************************** Authors Notes ******************************
  3.  
  4.  
  5.   This is my first attempt at doing OS/2 Full Screen, FLAT32 code.
  6.  
  7.   It was written using the editor from Borland's Turbo Pascal 6.0+7.0
  8.  
  9.   It is compiled using MicroSoft's MASM version 6.0
  10.  
  11.   It was linked using LINK386 supplied with IBM's OS/2 version 2.1
  12.  
  13.   This program requires OS/2 version 2.0 or later, and is designed
  14.   strictly for full screen text mode.
  15.  
  16.   The source for this fine program is included. I would like to offer
  17.   my thanks for those who helped contribute code.
  18.  
  19.   ************************* MODIFICATION HISTORY ***********************
  20.  
  21.   This document was last updated May 22,1994
  22.  
  23. Version 0.40ßeta
  24. 04/22/94 - MAW On vacation, spruce things up a bit.
  25.   Note: All of these changes are to documentation, and FORTH.INI, no real
  26.   changes to FORTH.EXE
  27.  
  28.   Changed OPEN to abort if a file is NOT present upon open
  29.   Added   OPENNEW to create a file, if needed.. (for output?), tested ok.
  30.  
  31.   Modified VIEW
  32.     1. Now looks at FORTH.DOC, not FORTH2.DOC
  33.     2. Now does not leave file open if word not found
  34.     3. Now stops looking at bottom of list, when --End-- is found. 8-)
  35.  
  36.   Confirmed INCLUDE" only loads first time, build workaround involving
  37.   the use of MAIN.4th
  38.  
  39.   Add HELP, and very beginnings for HELP system. (more later?)
  40.  
  41. Version 0.39ßeta
  42. 01/31/94 - MAW Not moving after all, put address back to Hammond
  43.  
  44. Version 0.38ßeta
  45.   Current Priorities: (01/20/94)
  46.     1. dpANS compliance, at least with CORE vocabulary
  47.     2. Floating Point
  48.     3. Manual & Documentation
  49.     4. More examples, especially with Multi-Threading
  50. 01/20/94 - MAW Fix Thread in compile mode, more extensive testing
  51.                Change addresses to new location
  52.                Update copyrights
  53.  
  54. 01/19/94 - MAW Fix Thread and ThreadProc
  55.                Add Version
  56.  
  57. Version 0.37ßeta
  58. 11/14/93 - MAW Add PAUSE, and ?CR-MORE, modify WORDS to PAUSE after a
  59.                screenfull. I couldn't see what was zipping by. ;-)
  60.                Had to modify Forth.Ini, and turn off some safeties to get
  61.                  test program to run. Not complete yet, but much better.
  62.  
  63.                Add FM/MOD and SM/REM, fixed UM/MOD, */ */MOD
  64.                Fix >BODY and DOES>
  65.  
  66. 10/23/93 - MAW Start dpANS 5 compliance checks,
  67.                Fix 2!, 2@ (wrong word order), see COMPLY.DOC
  68.  
  69. Version 0.36ßeta
  70. 10/14/93 - MAW Fix broken POSTPONE
  71.                Rename COMPILECALL to COMPILE, to match standard
  72.                Add :NONAME, and update FORTH.INI to match
  73.  
  74. Version 0.35ßeta
  75.  8/07/93 - MAW Decide to release SOURCE with shareware distribution to
  76.                encourage more OS/2 assembler programmers.
  77.                Create a BUILDIT.CMD file for OS/2 2.1 compilation
  78.                  (Link386 no longer works in a DOS box!)
  79.                Make all version number 0.35 instead of 0.035
  80.  
  81. Version 0.34ßeta
  82.   7/23/93 - Include missing PORTIO.DLL 
  83. Version 0.33ßeta
  84.  7/16/93 - MAW Finally get CIN and COUT working, thanks to sample code
  85.                from PORTIO by Michael Thompson - tommy@msc.cornell.edu
  86.  
  87.  7/08/93 - MAW Fix a bug in Include" in forth.ini, bump revision to 0.032
  88.                Because of debugging problems, add NOP
  89.                Add <EXECUTE>, 'EXECUTE to allow for revectoring
  90.                Need to re-establish USER variables, so that THREADS work
  91.  
  92.  7/07/93 - MAW Now have access to a debugger, fix FORTH.INI's "
  93.                Dir (which broke with 0.030) now works again.
  94.  
  95.  6/30/93 - MAW Got interpreter working again, needs a lot of work.
  96.                I NEED A DEBUGGER for OS/2
  97.                (Code works, somewhat acceptably- now using OS/2 v2.1)
  98.  
  99.  6/29/93 - MAW Big revision to help get to dp-ANS standards for the CORE
  100.            vocabulary.
  101.  
  102.  6/ 7/93 - MAW Added  SOURCE, S"
  103.  
  104.  Version 0.29ßeta
  105.  5/12/93 - BBM Added  ACCEPT  ALIGN  ALIGNED  CHAR  CHARS  CHAR+
  106.                       UNLOOP  [']  [CHAR]  2@  2!  2*  2/  2OVER  2SWAP
  107.                       S"  S>D  UM/MOD  UM*  M*  INVERT  POSTPONE
  108.  
  109.            Renamed or redefined (to conform to ANS Standard):
  110.                       CELL+  CELLS  CELL  LSHIFT  RSHIFT  MOVE  '
  111.                       CASE..OF..ENDOF..ENDCASE
  112.            Fixed other various problems.
  113.  
  114.  Version 0.28ßeta
  115.  5/12/93 - MAW Add more floating point words, update documentation
  116.  
  117.  Version 0.27ßeta
  118.  5/11/93 - MAW First version of F. working, needs polish.
  119.  
  120.  Version 0.26ßeta
  121.  4/28/93 - MAW Rename Delay to MS, there are going to be a lot of
  122.                changes to make this ANS compliant
  123.                START adding floating point core words
  124.  
  125.  4/27/93 - MAW Recieved dpANS draft from Brian Mathewson
  126.  
  127.  4/21/93 - MAW Modify valuetable to work up to base 36, test mods
  128.                Modify AutoLoad to scan environment for directory to
  129.                  load forth.ini from.
  130.                Add Environment and Commandline functions
  131.  
  132.  3/23/93 - MAW Incorporate changes from Brian, bump to version 0.25ßeta
  133.    Nearing version 1.0 (5/12/93 - HA!)
  134.  
  135.  3/15/93 - MAW
  136.    Find Ordinal value for DOS32KillThread
  137.    Add word DELAY, similar to TP7 definition.
  138.    Modify threads.4th definition of KillThread so that it works.
  139.    Tested against bunny, looks good.
  140.  
  141.  3/12/93 - MAW
  142.    Fix hard to find bug: had CODEDEF in instruction stream!
  143.    Fix EqualStr ="
  144.    Modify LookFor to use EqualStr. (Works well)
  145.    Make DumpRegisters a FORTH word, with a nice little header to show
  146.      which register is which, and do it all in HEX!
  147.  
  148.  3/11/93 - Version 0.022 - Mike's revisions
  149.    Rearrange source, eliminate DoHeader macro, start recoding routines
  150.    to be re-entrant, and use ESI (or EBP) as a local storage pointer.
  151.  
  152.  2/ 7/93 - Version 0.021 - Brians revisions...
  153.  
  154.  1/15/93 -
  155.    Add \ for whole line comments ( zero's ecx! )
  156.  
  157.  1/15/93 - Version 0.019
  158.    Add pointers to LoadModule, FreeModule, QueryModule, QueryProcAddr,
  159.      QueryProcType, ExecPgm, StartSession
  160.    (Need to start building vocabularies!)
  161.  
  162.    Add Shell and CommandShell to Forth.ini
  163.  
  164.  1/15/93 - Version 0.018
  165.    Correct problems with GETKEY. Forth/2 now works properly in a window.
  166.  
  167.    New routine (KEY), needs a parameter (0 = wait, 1 = NO wait)
  168.    Now have (KEY), KEY, KEYnoWAIT
  169.    Add RECURSE
  170.    Add FENCE to FORGET in Forth.ini
  171.  
  172.  1/14/93 - Version 0.017
  173.    Modify code in DP! to work better. Improve behavior of ' when word is
  174.    NOT found. Add FORGET to Forth.Ini
  175.    Rename to FORTH/2
  176.  
  177.  1/14/93 - More 0.016
  178.    Add sample code to FORTH.INI that uses SYSCALL and the constants provided
  179.    to OPEN, CLOSE, read and write files.
  180.  
  181.  1/13/93 - More 0.016
  182.    Add U*/MOD, revise */MOD to do an IDIV instead of DIV....
  183.    Add ?COMPILE, [COMPILE], ', and DOES>
  184.      Tested, appear to work.
  185.  
  186.  1/12/93 - Version 0.016
  187.    Modify meaning of SP! to comply with standards, rename S0 to SP0
  188.    Add RP0, RP@, RP!, R@
  189.  
  190.  1/11/93 - Version 0.015
  191.    Fix /MOD and */MOD, left results in wrong order
  192.    Fix >,>=,<,<= they all used UNSIGNED math, which is INCORRECT
  193.    Add HERE,DP! for dictionary access
  194.    Add " for strings
  195.    Add Test routines SYS$BEEP (returns address of DOS32BEEP)
  196.      and SYSCALL (Call an OS/2 routine)
  197.  
  198.  1/ 7/93 - Version 0.014
  199.    Remove duplicate AND,OR,XOR
  200.    Add Brians */ (Works well!)
  201.    Add /MOD, */MOD, ABS, NEGATE, MIN, MAX, TYPE, FOPEN, FCLOSE, FREAD,
  202.        TIB, #TIB, SPAN, EXPECT, QUERY, INTERPRET, PROMPT, AUTOLOAD
  203.    Add TESTMAIN - A test version of the main loop
  204.    (Wow - 7 Hours Straight!)
  205.    AutoLoad feature works. - Loads definitions (up to 16k) from FORTH.INI
  206.  
  207.  1/ 5/93 - Version 0.013
  208.    Fix / MOD and U/, add StackCheck before prompt.
  209.  
  210.  1/ 4/93 - Version 0.012
  211.    Add <,>,<=,>=,=,<>
  212.  
  213.  1/ 4/93 - Version 0.011
  214.    Fix bug in LOOP which dropped 1 too many stack values
  215.  
  216.  1/ 1/93 - Version 0.010
  217.    Add MASM macros PushForth, PullForth, and Compiles
  218.    Add FOR/NEXT, which is a much better DO ... LOOP
  219.    Add DO ... LOOP and IF ... ELSE ... THEN
  220.  
  221. 12/31/92 - Version 0.009
  222.    Add CONSTANT, CREATE, VARIABLE, ALLOT, "," and "C," and the supporting
  223.    routines DoesConstant and DoesVariable
  224.    (Need to have places to put file handles, etc)
  225.    ** Look for version 0.010 to have conditional branching...
  226.  
  227. 11/13/92 - Version 0.008
  228.    Make literal, Compile Only, and Immediate
  229.    Add COMPILE, the ultimate in sneaky forth words
  230.    Fix CR
  231.  
  232. 11/10/92 - Version 0.007
  233.    Add Brian Mathewson's code for SP!, [, and ]
  234.    Add header for ?STACK
  235.    Make LITERAL an Immediate word
  236.    Add RESET, improve logic
  237.  
  238. 11/08/92 - Version 0.006
  239.    Add new words:
  240.      ROT, .S, MOD, ( comments ), IMMEDIATE, ." show string",
  241.      CRLF, DEBUG ( a debugging variable )
  242.  
  243.  
  244. 11/08/92 - Version 0.005
  245.    Add new macro CodeDef, to make maintenance easier
  246.  
  247.    Add new words:
  248.      OVER, DROP, W, S0, SP@, DEPTH, C@, C!, W@, W!, STATE
  249.  
  250.    Current Vocabulary:
  251.      OVER DROP W S0 SP@ DEPTH SWAP DUP .
  252.      HEX DECIMAL BASE W! W@ C! C@ ! @
  253.      XOR OR AND U/ U* / * - + STATE
  254.      : ; COMPILECALL LITERAL
  255.      EMIT KEY BYE VLIST
  256.  
  257.    Note: KEY returns the ascii code in the low byte, and the scan code
  258.    in the upper byte. This is not standard, but it does allow the use
  259.    of F1-F10, etc.
  260.  
  261.  
  262. 10/12/92 - Version 0.004
  263.    Fix bugs:
  264.       Error handling routine got contents of stack, instead of address
  265.       Correct handling of IMMEDIATE definitions
  266.  
  267.    Add EMIT - Uses VioWrtTTY, and not STDOUT
  268.      * Thanks to Larry Bank for his VIO32.ASM sample program.
  269.        I only wish I had that sooner.
  270.      * Emit makes it possible to use ANSI strings to set colors for output
  271.  
  272.    I will soon add GotoXY, GetXY and ClrScr....!
  273.   Current Vocabulary:
  274.     : ; COMPILECALL LITERAL KEY HEX DECIMAL BASE ! @ BYE VLIST
  275.     SWAP DUP XOR OR AND U/ U* / * - + .
  276.  
  277.  
  278. 10/08/92 - Version 0.003
  279.    Add code to do handle compiling constants, etc.
  280.    Add : ; LITERAL and COMPILECALL to vocabulary
  281.  
  282.    Add internal routine to dump registers, when needed for debugging.
  283.  
  284.    Add a real set of legal disclaimers to documentation.
  285.  
  286.  
  287.  
  288. 10/07/92 - Version 0.002
  289.  
  290.    Finally figure out how to get a keystroke from OS/2
  291.    (No help from IBM what so ever!)
  292.  
  293.    Add KEY to vocabulary list (Whew)
  294.  
  295.  
  296.