Journal of Retro Native Forth
Volume II, Started April 20, 2003

April 20, 2003
--------------
Well, I'm working on the RETRO-NG codebase again; it's starting to improve (which is a good thing!)

Today I revamped the assembler, simplifying the code quite a bit. I also added an IF/THEN construct which works fairly well (logic support at last!) Later I'll bring over RETRO5's logic words and start more complete testing. I'll backport this into RETRO5 (that should please some people who need logic support)

I'm looking into another redesign of the web site, this will NOT come out until I actually release RETRO6 as a working solution (i.e. when it replaces RETRO5)

There is now a forum as well as the Wiki, other bits will come as well. (There will be a wiki, polls, etc; all in a consistant interface). The forum replaces the discussion board.

I'm considering adding a binary runtime option to RETRO6. It'll let you load a compiled application (e.g. from RETRO/C) and run it. Maybe. No promises though.

More later...
[9 hours later]
Still working on IF/THEN, there are a few bugs to be worked out yet...

[5 hours later]
Continuing to work on IF/THEN - these are annoying bits of code!
I'm also starting to move the math words into Forth instead of assembly.

[30 minutes later]
Completed move of all math words (except '+') into Forth

I'll clean up the words/ directory to remove all the old, unused ASM code now.


April 21, 2003
--------------
I finished cleaning up the forth/words/ directory, no unused code now :-)

Still trying to get IF/THEN working... This is a pain in the neck. Once it works it'll be pretty good, but until then it's just annoying.

Here's a basic idea of what needs to be implemented:
: if $72 1, here ;
: then here swap ! ;


April 22, 2003
--------------
Still havn't finished IF/THEN, but I'm starting several new things (including Common Driver Interface specifications and support, a BLOCK editor, and some tools to manage BLOCKS.) Most of this code will be written in Forth. I'll also start to enhance the interface...


April 23, 2003
--------------
Well, IF/THEN don't crash anymore, though they always return the same result...
Here's the current code:
: ?branch ? [ $72 1, ] ;
: >mark [ here 0 , ] ;
: >resolve [ here over - swap ! ] ;
: if [ ?branch >mark ] ;
: then >resolve ;
: a if drop emit then . ;

As you can see, I added support for [ ] as well. Kind of useful IMO.

I'm starting work on a small book (tutorials, developer's guide, articles) about Retro. I'll call it Retro Native Forth Handbook. It'll be a pretty big task, but that's ok with me.

Maybe I'll submit my code to the #forth people and see if they can help me get it working...


April 24, 2003
--------------
Well, I'm finally releasing a snapshot of the new RETRO. Be warned, it's no where near complete, but works fairly well for allowing development. I'll release 3.3.2 soon as well.

I am also posting a copy of the first draft proposal of the new site design today, I hope everyone will like it.

What's high on the priority chart?
1) IF/THEN
2) Return stack
   >R R> R@ R!
3) Common Driver Inititive compatible drivers
  a) Floppy
  b) ATA/IDE
  c) SCSI
  d) VGA/SVGA/VESA
  e) Keyboard
  f) Parallel Port
  g) Printers
  h) Serial Ports
  i) USB
5) Applications
  a) Improved BLOCK editor
  b) Basic drawing program
  c) Terminal

This will take a while, but should be doable given enough time...

I have an ugly, but workable block editor in place now (eventually it should be quite usable). You have to select a block, then you can edit, load, save, view, or delete it. 'Words' is also implemented again, though I should try to factor out some of the added code into Forth.
