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