home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / forth_32 / notes.doc < prev    next >
Text File  |  1993-03-23  |  6KB  |  186 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.0
  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 code for this fine program is available for $50.00 (US)
  17.  
  18.   ************************* MODIFICATION HISTORY ***********************
  19.  
  20.   This document was last updated March 23, 1993
  21.  
  22.  3/23/93 - MAW Incorporate changes from Brian, bump to version 0.25ßeta
  23.    Nearing version 1.0
  24.  
  25.  3/15/93 - MAW
  26.    Find Ordinal value for DOS32KillThread
  27.    Add word DELAY, similar to TP7 definition.
  28.    Modify threads.4th definition of KillThread so that it works.
  29.    Tested against bunny, looks good.
  30.  
  31.  3/12/93 - MAW
  32.    Fix hard to find bug: had CODEDEF in instruction stream!
  33.    Fix EqualStr ="
  34.    Modify LookFor to use EqualStr. (Works well)
  35.    Make DumpRegisters a FORTH word, with a nice little header to show
  36.      which register is which, and do it all in HEX!
  37.  
  38.  3/11/93 - Version 0.022 - Mike's revisions
  39.    Rearrange source, eliminate DoHeader macro, start recoding routines
  40.    to be re-entrant, and use ESI (or EBP) as a local storage pointer.
  41.  
  42.  2/ 7/93 - Version 0.021 - Brians revisions...
  43.  
  44.  1/15/93 -
  45.    Add \ for whole line comments ( zero's ecx! )
  46.  
  47.  1/15/93 - Version 0.019
  48.    Add pointers to LoadModule, FreeModule, QueryModule, QueryProcAddr,
  49.      QueryProcType, ExecPgm, StartSession
  50.    (Need to start building vocabularies!)
  51.  
  52.    Add Shell and CommandShell to Forth.ini
  53.  
  54.  1/15/93 - Version 0.018
  55.    Correct problems with GETKEY. Forth/2 now works properly in a window.
  56.  
  57.    New routine (KEY), needs a parameter (0 = wait, 1 = NO wait)
  58.    Now have (KEY), KEY, KEYnoWAIT
  59.    Add RECURSE
  60.    Add FENCE to FORGET in Forth.ini
  61.  
  62.  1/14/93 - Version 0.017
  63.    Modify code in DP! to work better. Improve behavior of ' when word is
  64.    NOT found. Add FORGET to Forth.Ini
  65.    Rename to FORTH/2
  66.  
  67.  1/14/93 - More 0.016
  68.    Add sample code to FORTH.INI that uses SYSCALL and the constants provided
  69.    to OPEN, CLOSE, read and write files.
  70.  
  71.  1/13/93 - More 0.016
  72.    Add U*/MOD, revise */MOD to do an IDIV instead of DIV....
  73.    Add ?COMPILE, [COMPILE], ', and DOES>
  74.      Tested, appear to work.
  75.  
  76.  1/12/93 - Version 0.016
  77.    Modify meaning of SP! to comply with standards, rename S0 to SP0
  78.    Add RP0, RP@, RP!, R@
  79.  
  80.  1/11/93 - Version 0.015
  81.    Fix /MOD and */MOD, left results in wrong order
  82.    Fix >,>=,<,<= they all used UNSIGNED math, which is INCORRECT
  83.    Add HERE,DP! for dictionary access
  84.    Add " for strings
  85.    Add Test routines SYS$BEEP (returns address of DOS32BEEP)
  86.      and SYSCALL (Call an OS/2 routine)
  87.  
  88.  1/ 7/93 - Version 0.014
  89.    Remove duplicate AND,OR,XOR
  90.    Add Brians */ (Works well!)
  91.    Add /MOD, */MOD, ABS, NEGATE, MIN, MAX, TYPE, FOPEN, FCLOSE, FREAD,
  92.        TIB, #TIB, SPAN, EXPECT, QUERY, INTERPRET, PROMPT, AUTOLOAD
  93.    Add TESTMAIN - A test version of the main loop
  94.    (Wow - 7 Hours Straight!)
  95.    AutoLoad feature works. - Loads definitions (up to 16k) from FORTH.INI
  96.  
  97.  1/ 5/93 - Version 0.013
  98.    Fix / MOD and U/, add StackCheck before prompt.
  99.  
  100.  1/ 4/93 - Version 0.012
  101.    Add <,>,<=,>=,=,<>
  102.  
  103.  1/ 4/93 - Version 0.011
  104.    Fix bug in LOOP which dropped 1 too many stack values
  105.  
  106.  1/ 1/93 - Version 0.010
  107.    Add MASM macros PushForth, PullForth, and Compiles
  108.    Add FOR/NEXT, which is a much better DO ... LOOP
  109.    Add DO ... LOOP and IF ... ELSE ... THEN
  110.  
  111. 12/31/92 - Version 0.009
  112.    Add CONSTANT, CREATE, VARIABLE, ALLOT, "," and "C," and the supporting
  113.    routines DoesConstant and DoesVariable
  114.    (Need to have places to put file handles, etc)
  115.    ** Look for version 0.010 to have conditional branching...
  116.  
  117. 11/13/92 - Version 0.008
  118.    Make literal, Compile Only, and Immediate
  119.    Add COMPILE, the ultimate in sneaky forth words
  120.    Fix CR
  121.  
  122. 11/10/92 - Version 0.007
  123.    Add Brian Mathewson's code for SP!, [, and ]
  124.    Add header for ?STACK
  125.    Make LITERAL an Immediate word
  126.    Add RESET, improve logic
  127.  
  128. 11/08/92 - Version 0.006
  129.    Add new words:
  130.      ROT, .S, MOD, ( comments ), IMMEDIATE, ." show string",
  131.      CRLF, DEBUG ( a debugging variable )
  132.  
  133.  
  134. 11/08/92 - Version 0.005
  135.    Add new macro CodeDef, to make maintenance easier
  136.  
  137.    Add new words:
  138.      OVER, DROP, W, S0, SP@, DEPTH, C@, C!, W@, W!, STATE
  139.  
  140.    Current Vocabulary:
  141.      OVER DROP W S0 SP@ DEPTH SWAP DUP .
  142.      HEX DECIMAL BASE W! W@ C! C@ ! @
  143.      XOR OR AND U/ U* / * - + STATE
  144.      : ; COMPILECALL LITERAL
  145.      EMIT KEY BYE VLIST
  146.  
  147.    Note: KEY returns the ascii code in the low byte, and the scan code
  148.    in the upper byte. This is not standard, but it does allow the use
  149.    of F1-F10, etc.
  150.  
  151.  
  152. 10/12/92 - Version 0.004
  153.    Fix bugs:
  154.       Error handling routine got contents of stack, instead of address
  155.       Correct handling of IMMEDIATE definitions
  156.  
  157.    Add EMIT - Uses VioWrtTTY, and not STDOUT
  158.      * Thanks to Larry Bank for his VIO32.ASM sample program.
  159.        I only wish I had that sooner.
  160.      * Emit makes it possible to use ANSI strings to set colors for output
  161.  
  162.    I will soon add GotoXY, GetXY and ClrScr....!
  163.   Current Vocabulary:
  164.     : ; COMPILECALL LITERAL KEY HEX DECIMAL BASE ! @ BYE VLIST
  165.     SWAP DUP XOR OR AND U/ U* / * - + .
  166.  
  167.  
  168. 10/08/92 - Version 0.003
  169.    Add code to do handle compiling constants, etc.
  170.    Add : ; LITERAL and COMPILECALL to vocabulary
  171.  
  172.    Add internal routine to dump registers, when needed for debugging.
  173.  
  174.    Add a real set of legal disclaimers to documentation.
  175.  
  176.  
  177.  
  178. 10/07/92 - Version 0.002
  179.  
  180.    Finally figure out how to get a keystroke from OS/2
  181.    (No help from IBM what so ever!)
  182.  
  183.    Add KEY to vocabulary list (Whew)
  184.  
  185.  
  186.