home *** CD-ROM | disk | FTP | other *** search
-
- **************************** Authors Notes ******************************
-
-
- This is my first attempt at doing OS/2 Full Screen, FLAT32 code.
-
- It was written using the editor from Borland's Turbo Pascal 6.0+7.0
-
- It is compiled using MicroSoft's MASM version 6.0
-
- It was linked using LINK386 supplied with IBM's OS/2 version 2.1
-
- This program requires OS/2 version 2.0 or later, and is designed
- strictly for full screen text mode.
-
- The source for this fine program is included. I would like to offer
- my thanks for those who helped contribute code.
-
- ************************* MODIFICATION HISTORY ***********************
-
- This document was last updated May 22,1994
-
- Version 0.40ßeta
- 04/22/94 - MAW On vacation, spruce things up a bit.
- Note: All of these changes are to documentation, and FORTH.INI, no real
- changes to FORTH.EXE
-
- Changed OPEN to abort if a file is NOT present upon open
- Added OPENNEW to create a file, if needed.. (for output?), tested ok.
-
- Modified VIEW
- 1. Now looks at FORTH.DOC, not FORTH2.DOC
- 2. Now does not leave file open if word not found
- 3. Now stops looking at bottom of list, when --End-- is found. 8-)
-
- Confirmed INCLUDE" only loads first time, build workaround involving
- the use of MAIN.4th
-
- Add HELP, and very beginnings for HELP system. (more later?)
-
- Version 0.39ßeta
- 01/31/94 - MAW Not moving after all, put address back to Hammond
-
- Version 0.38ßeta
- Current Priorities: (01/20/94)
- 1. dpANS compliance, at least with CORE vocabulary
- 2. Floating Point
- 3. Manual & Documentation
- 4. More examples, especially with Multi-Threading
- 01/20/94 - MAW Fix Thread in compile mode, more extensive testing
- Change addresses to new location
- Update copyrights
-
- 01/19/94 - MAW Fix Thread and ThreadProc
- Add Version
-
- Version 0.37ßeta
- 11/14/93 - MAW Add PAUSE, and ?CR-MORE, modify WORDS to PAUSE after a
- screenfull. I couldn't see what was zipping by. ;-)
- Had to modify Forth.Ini, and turn off some safeties to get
- test program to run. Not complete yet, but much better.
-
- Add FM/MOD and SM/REM, fixed UM/MOD, */ */MOD
- Fix >BODY and DOES>
-
- 10/23/93 - MAW Start dpANS 5 compliance checks,
- Fix 2!, 2@ (wrong word order), see COMPLY.DOC
-
- Version 0.36ßeta
- 10/14/93 - MAW Fix broken POSTPONE
- Rename COMPILECALL to COMPILE, to match standard
- Add :NONAME, and update FORTH.INI to match
-
- Version 0.35ßeta
- 8/07/93 - MAW Decide to release SOURCE with shareware distribution to
- encourage more OS/2 assembler programmers.
- Create a BUILDIT.CMD file for OS/2 2.1 compilation
- (Link386 no longer works in a DOS box!)
- Make all version number 0.35 instead of 0.035
-
- Version 0.34ßeta
- 7/23/93 - Include missing PORTIO.DLL
- Version 0.33ßeta
- 7/16/93 - MAW Finally get CIN and COUT working, thanks to sample code
- from PORTIO by Michael Thompson - tommy@msc.cornell.edu
-
- 7/08/93 - MAW Fix a bug in Include" in forth.ini, bump revision to 0.032
- Because of debugging problems, add NOP
- Add <EXECUTE>, 'EXECUTE to allow for revectoring
- Need to re-establish USER variables, so that THREADS work
-
- 7/07/93 - MAW Now have access to a debugger, fix FORTH.INI's "
- Dir (which broke with 0.030) now works again.
-
- 6/30/93 - MAW Got interpreter working again, needs a lot of work.
- I NEED A DEBUGGER for OS/2
- (Code works, somewhat acceptably- now using OS/2 v2.1)
-
- 6/29/93 - MAW Big revision to help get to dp-ANS standards for the CORE
- vocabulary.
-
- 6/ 7/93 - MAW Added SOURCE, S"
-
- Version 0.29ßeta
- 5/12/93 - BBM Added ACCEPT ALIGN ALIGNED CHAR CHARS CHAR+
- UNLOOP ['] [CHAR] 2@ 2! 2* 2/ 2OVER 2SWAP
- S" S>D UM/MOD UM* M* INVERT POSTPONE
-
- Renamed or redefined (to conform to ANS Standard):
- CELL+ CELLS CELL LSHIFT RSHIFT MOVE '
- CASE..OF..ENDOF..ENDCASE
- Fixed other various problems.
-
- Version 0.28ßeta
- 5/12/93 - MAW Add more floating point words, update documentation
-
- Version 0.27ßeta
- 5/11/93 - MAW First version of F. working, needs polish.
-
- Version 0.26ßeta
- 4/28/93 - MAW Rename Delay to MS, there are going to be a lot of
- changes to make this ANS compliant
- START adding floating point core words
-
- 4/27/93 - MAW Recieved dpANS draft from Brian Mathewson
-
- 4/21/93 - MAW Modify valuetable to work up to base 36, test mods
- Modify AutoLoad to scan environment for directory to
- load forth.ini from.
- Add Environment and Commandline functions
-
- 3/23/93 - MAW Incorporate changes from Brian, bump to version 0.25ßeta
- Nearing version 1.0 (5/12/93 - HA!)
-
- 3/15/93 - MAW
- Find Ordinal value for DOS32KillThread
- Add word DELAY, similar to TP7 definition.
- Modify threads.4th definition of KillThread so that it works.
- Tested against bunny, looks good.
-
- 3/12/93 - MAW
- Fix hard to find bug: had CODEDEF in instruction stream!
- Fix EqualStr ="
- Modify LookFor to use EqualStr. (Works well)
- Make DumpRegisters a FORTH word, with a nice little header to show
- which register is which, and do it all in HEX!
-
- 3/11/93 - Version 0.022 - Mike's revisions
- Rearrange source, eliminate DoHeader macro, start recoding routines
- to be re-entrant, and use ESI (or EBP) as a local storage pointer.
-
- 2/ 7/93 - Version 0.021 - Brians revisions...
-
- 1/15/93 -
- Add \ for whole line comments ( zero's ecx! )
-
- 1/15/93 - Version 0.019
- Add pointers to LoadModule, FreeModule, QueryModule, QueryProcAddr,
- QueryProcType, ExecPgm, StartSession
- (Need to start building vocabularies!)
-
- Add Shell and CommandShell to Forth.ini
-
- 1/15/93 - Version 0.018
- Correct problems with GETKEY. Forth/2 now works properly in a window.
-
- New routine (KEY), needs a parameter (0 = wait, 1 = NO wait)
- Now have (KEY), KEY, KEYnoWAIT
- Add RECURSE
- Add FENCE to FORGET in Forth.ini
-
- 1/14/93 - Version 0.017
- Modify code in DP! to work better. Improve behavior of ' when word is
- NOT found. Add FORGET to Forth.Ini
- Rename to FORTH/2
-
- 1/14/93 - More 0.016
- Add sample code to FORTH.INI that uses SYSCALL and the constants provided
- to OPEN, CLOSE, read and write files.
-
- 1/13/93 - More 0.016
- Add U*/MOD, revise */MOD to do an IDIV instead of DIV....
- Add ?COMPILE, [COMPILE], ', and DOES>
- Tested, appear to work.
-
- 1/12/93 - Version 0.016
- Modify meaning of SP! to comply with standards, rename S0 to SP0
- Add RP0, RP@, RP!, R@
-
- 1/11/93 - Version 0.015
- Fix /MOD and */MOD, left results in wrong order
- Fix >,>=,<,<= they all used UNSIGNED math, which is INCORRECT
- Add HERE,DP! for dictionary access
- Add " for strings
- Add Test routines SYS$BEEP (returns address of DOS32BEEP)
- and SYSCALL (Call an OS/2 routine)
-
- 1/ 7/93 - Version 0.014
- Remove duplicate AND,OR,XOR
- Add Brians */ (Works well!)
- Add /MOD, */MOD, ABS, NEGATE, MIN, MAX, TYPE, FOPEN, FCLOSE, FREAD,
- TIB, #TIB, SPAN, EXPECT, QUERY, INTERPRET, PROMPT, AUTOLOAD
- Add TESTMAIN - A test version of the main loop
- (Wow - 7 Hours Straight!)
- AutoLoad feature works. - Loads definitions (up to 16k) from FORTH.INI
-
- 1/ 5/93 - Version 0.013
- Fix / MOD and U/, add StackCheck before prompt.
-
- 1/ 4/93 - Version 0.012
- Add <,>,<=,>=,=,<>
-
- 1/ 4/93 - Version 0.011
- Fix bug in LOOP which dropped 1 too many stack values
-
- 1/ 1/93 - Version 0.010
- Add MASM macros PushForth, PullForth, and Compiles
- Add FOR/NEXT, which is a much better DO ... LOOP
- Add DO ... LOOP and IF ... ELSE ... THEN
-
- 12/31/92 - Version 0.009
- Add CONSTANT, CREATE, VARIABLE, ALLOT, "," and "C," and the supporting
- routines DoesConstant and DoesVariable
- (Need to have places to put file handles, etc)
- ** Look for version 0.010 to have conditional branching...
-
- 11/13/92 - Version 0.008
- Make literal, Compile Only, and Immediate
- Add COMPILE, the ultimate in sneaky forth words
- Fix CR
-
- 11/10/92 - Version 0.007
- Add Brian Mathewson's code for SP!, [, and ]
- Add header for ?STACK
- Make LITERAL an Immediate word
- Add RESET, improve logic
-
- 11/08/92 - Version 0.006
- Add new words:
- ROT, .S, MOD, ( comments ), IMMEDIATE, ." show string",
- CRLF, DEBUG ( a debugging variable )
-
-
- 11/08/92 - Version 0.005
- Add new macro CodeDef, to make maintenance easier
-
- Add new words:
- OVER, DROP, W, S0, SP@, DEPTH, C@, C!, W@, W!, STATE
-
- Current Vocabulary:
- OVER DROP W S0 SP@ DEPTH SWAP DUP .
- HEX DECIMAL BASE W! W@ C! C@ ! @
- XOR OR AND U/ U* / * - + STATE
- : ; COMPILECALL LITERAL
- EMIT KEY BYE VLIST
-
- Note: KEY returns the ascii code in the low byte, and the scan code
- in the upper byte. This is not standard, but it does allow the use
- of F1-F10, etc.
-
-
- 10/12/92 - Version 0.004
- Fix bugs:
- Error handling routine got contents of stack, instead of address
- Correct handling of IMMEDIATE definitions
-
- Add EMIT - Uses VioWrtTTY, and not STDOUT
- * Thanks to Larry Bank for his VIO32.ASM sample program.
- I only wish I had that sooner.
- * Emit makes it possible to use ANSI strings to set colors for output
-
- I will soon add GotoXY, GetXY and ClrScr....!
- Current Vocabulary:
- : ; COMPILECALL LITERAL KEY HEX DECIMAL BASE ! @ BYE VLIST
- SWAP DUP XOR OR AND U/ U* / * - + .
-
-
- 10/08/92 - Version 0.003
- Add code to do handle compiling constants, etc.
- Add : ; LITERAL and COMPILECALL to vocabulary
-
- Add internal routine to dump registers, when needed for debugging.
-
- Add a real set of legal disclaimers to documentation.
-
-
-
- 10/07/92 - Version 0.002
-
- Finally figure out how to get a keystroke from OS/2
- (No help from IBM what so ever!)
-
- Add KEY to vocabulary list (Whew)
-
-
-