#+Title: VolksForth Atari ST Notes
#+Date: <2020-07-22 Wed>
#+Author: Carsten Strotmann

* How to re-compile the Atari ST VolksForth kernel

Requirements:

 * Atari ST computer (or an emulator such as Hatari) running VolksForth
 * Floppy Disk (for a real computer) or a Disk-Image (for the Emulator)

Files:

 * FORTH83.FB- The VolksForth Kernel source
 * ASSEMBLE.FB- M68000 Forth Assembler
 * TARGET.FB- VolksForth Target Compiler
 * PATCH.FB- The Patch Tool to patch the kernel and load the Fileinterface
 * FILEINT.FB - The File-Interface
 * C.FB - Target Compile "script"

** Step 1: Compiling a new kernel

 * make your changes to the VolksForth kernel (=FORTH83.FB=)
 * start a fresh copy of VolksForth (File =4TH.PRG=)
 * enter: =include c.fb=. This will compile the kernel. It will load
   the files =ASSEMBLE.FB=, =TARGET.FB= and =FORTH83.FB= and will
   write the generated new kernel as =4THIMG.PRG=. This new Forth
   image is very very basic, it does not contain the file interface
   and can only load source for blocks (sector I/O) from the floppy
   disks A: or B:
 * exit the VolksForth (=BYE=)

** Step 2: adding the file interface to the new Kernel

 * format a new floppy (360 KB or 720 KB floppy, HD floppies will not
   work) in drive A:
 * copy the following files exactly in this order. The order is
   important, as the new VolksForth kernel need to find the source
   code at the correct block/sector locations!: =PATCH.FB=, =ASSEMBLE.FB=
   and =FILEINT.FB=. =PATCH.FB= must be in Block 1, =ASSEMBLE.FB= must start
   at Block 6 and =FILEINT.FB= must start at Block 24 ($18).
 * execute the new VolksForth kernel (=4THIMG.PRG=).
 * select drive A: =0 drive=
 * test that =PATCH.FB= is in Block 1: =1 list= should show the
   =PATCH.FB= load screen
 * test that =ASSEMBLE.FB= is in Block 6: =6 list= should show the
   =ASSEMBLE.FB= load screen
 * test that =FILEINT.FB= is in Block 24: =24 list= should show the
   =FILEINT.FB= load screen
 * load the patch tool: =1 load=
 * save the new VolksForth Image to disk: =save-system
   4THCORE.PRG=. =4THCORE.PRG= is now the kernel plus the file
   interface. This is a minimal but useable Forth system

** Step 3: build a full VolksForth system

 * edit the file =STARTUP.FB=, add or remove features you want to have
   in your VolksForth system
 * start =4THCORE.PRG= created in step 2
 * load =STARTUP.FB=: =include startup.fb=
 * save the new image under a new name (be careful not to overwrite
   your original =VOLKS4TH.PRG=, make a backup first!): =save-system  myforth.prg=
 * your new VolksForth system is now ready!

Have fun.
