16 Mar 2000  --MILESTONE--
  Fixed JMP, and AGAIN, in the assembler

  TCODE: doesn't do { anymore; do it yourself to search the TARGET
  vocab.  (This fixed the bugs caused by the metacompiler changes)

  Keyboard driver is fully functional - "KEY EMIT" works fine.

  Fixed TAB handling in the display driver.

  Now we have a terminal driver sufficient for programming.

27 Mar 2000
  Reorganized - Split kernel.f into retro.f, meta.f, and tests.f.
  (To see the big picture, in retro.f)

28 Mar 2000
  Assembler: defined EBP@ and ESP@ workarounds, so these act normal now.

  Finalized dictionary header - see (tHEAD) in meta.f.
	cell	LINK
	cell	CFA  (address of Code Field)
	cstr	NAME            (+ alignment padding)
	...	Parameter Field (+ alignment padding)
	...	Code Field

  Wrote working tCREATE, tDOES>, tLIT, tVAL, tVAR (or so I think!)
  Added t! and used it to set DICT.

29 Mar 2000
  Split off final.f from the end of retro.f (I'm done splitting now)

  Updated build-blocks.sh

16 May 2000  -- Back in business!
  Renamed T: to ; and ;T to ;
  Changed : to :' and tested. OK. (; can stay)
  Started changing T: to :

  Updated the TBD file to clarify immediate goals and add some
  long-range goals.

  Updated ABOUT -- mainly to say it's Public Domain.

17 May 2000

  Added (:) and (;) for running the target compiler without creating a
  dictionary header.  Useful in CODE definitions, final.f, and tests.

  Debugged a bunch of stuff, mostly in prim.f.
  Added some useful words like FOR/NEXT, BEGIN/UNTIL, IF/ELSE/THEN

  Got . working! (the most important debugging tool)

18 May 2000
  Optimized most of the comparison operators, 0= 0<> etc... to avoid
  using conditional branches.

20 May 2000
  In metacompiler (:), used Gforth's SNUMBER? instead of ANS's
  >NUMBER, to parse the prefixes - $ '

21 May 2000  -- Interaction achieved (an interpreter of sorts)
  Added BASE. (print current BASE, in decimal)
  Fixed ! and +!
  Added WORDS
  Fixed keyboard driver: A_ASCII had EDI INC, after STOS, - removed.
  Rewrote KEY? and KEY in Forth (previously written in assembler)
  Wrote FIND routine in asm (case-sensitive because I'm lazy)
  Wrote an interpreter routine, CForth (works like Color Forth)
  Fixed tLIT by adding tCFA! to the end of (tHEAD)

  Next up: parse numbers, case-insensitive FIND, compilation

27 May 2000  -- Fully functional interpreter (but no compiler yet)
  Renamed boot-raw.f to loader.f
  Removed tests.f
  Cleaned up retro.f and documented the boot sequence

  Wrote a number parser, S>NUM

29 May 2000
  Added metacompiler string-literal words: SLITERAL " ."
  Added AT-XY
  Fixed 2* and 2/ (problem caused by my misuse of the assembler :)
  Added provisions for a separate COMPILER vocabulary, as in cmForth

5 Jun 2000
  Renamed some ANS FORTH words I don't like:
    CELL -> W	tCELL -> tW
    CELLS -> W*	CELL+ -> W+	(W = machine Word)
    CHARS -> C*	CHAR+ -> C+	(C = Char)
    2@ -> D@   2! -> D!   2, -> D,	(D = Double)
  Other words affected:
    W@ -> 2@   W! -> 2!   W, -> 2,	(16-bit)

  Reasoning: I considered changing CHAR to BYTE, using a B prefix, but then
  I'd have to change C@ to B@ for consistency, and C! C, and so on.  So I
  retained the label CHAR, abbreviating it to C.  Then I had to change CELL
  so I could abbreviate it to another letter.  That only affected the words
  CELL CELLS CELL+ since words like @ ! , don't have a prefix.

  I won't use C* or C+ unless I actually need to port Retro to one of the
  few processors where it matters.  They're mostly DSPs where you would only
  want a minimal FORTH, not Retro.

2 Jul 2000
  Fixed (SCROLL) so it sets attr for all columns, not every other one
  Added PAGE
  Added BOOT (reboot)

  Debugged ' prefix (as in 'A EMIT) -- fixed S>NUM and -DIGIT
  Added a proper U<

  Changed the comparison operators (< > = etc) from "metacompiler macros"
  to regular CODE words (available in Retro, not just the metacompiler)

  Changed dictionary header format
    From: LINK, CFA, LENGTH, NAME, PARAMETER, CODE
    To:   NAME, LENGTH, LINK, CODE, PARAMETER
  Notes
    1. Having LENGTH after NAME facilitates decompilation
    2. LINK points to next header's LINK field, not to NAME
    3. CFA was redundant
    4. Needed CODE before PARAMETER to do CREATE/DOES> right

  Started debugging after all this last big change.  It sorta works...

11 Aug 2000  -- the interpreter is back in working order
  Boot loader:
    Changed DH DH XOR to DX DX XOR (force loading from first drive)

  Factored out GET-WORD from (:) and fixed it so it doesn't treat blank
  lines as '0'

  DOLIT and tLIT tested out ok.
  DODOES was ok, tCREATE was ok, fixed tDOES>
  DOCON was ok, fixed tCON (was using DOLIT instead of DOCON)
  DOVAR was ok, tVAR was ok
  Added "5 +" to statements that set DICT and H, at end of final.f
  Updated WORDS and FIND to use the new dictionary format.

  It works!

