                          ABSTRACT.154

This disk contains source and COM files for a public domain
implementation of FORTH compatible with the FORTH 83 standard.

This version is for an 8080 CP/M system.

Here is what is on this disk:

ABSTRACT.154    This is the file that you are reading.

F83.COM         A compiled and ready to use FORTH system including an
                editor, assembler, and many FORTH utilities.

F83.DOC         A message from the primary implementors including instructions
                on how to use F83 to compile itself.

META80.BQK      The meta source and F83 screens in squeezed format.

EXTEND.BQK      The extension screens in squeezed format.

CPU8080.BQK     Assembler, debugging and multitasking source in squeezed format.

UTILITY.BQK     The CP/M interface, editor, and high level multitasking
                support in squeezed format.

DIRECT.BQK      Support screens for direct BIOS I/O in squeezed format.

KERNEL.HEX      A file that can be loaded to form a COM file of the F83
                kernel.

USQ.COM         The unsqueeze program that can be used to unsqueeze all of
                the files of type BQK.


                          Unsqueezing the Sources

These instructions apply to people who have disk drives that only hold
240K bytes, such as single-density, 8-inch drives.

Format a blank disk and use SYSGEN to copy your system tracks to it.
Put the new disk in drive A and this disk in drive B. After the "A>" type:

                A>b:usq b:meta80.bqk

This will produce an unsqueezed META80.BLK on disk A that takes the
whole 240K disk space.

Format a second blank disk and unsqueeze the other BQK files.  They will
all fit on it.  Copy F83.COM to it also.

You can now use F83 to look at the source or print listings of the source
if you have a printer.

Start FORTH by typing:

                 A>F83

You can type WORDS to see the words in the primary vocabulary. You can
type SEE ORDER to use the SEE decompiler to decompile the word ORDER.
You can type VIEW ORDER and F93 will open EXTEND.BLK and list the
screen that contains the source code for the word ORDER.
Now that this block is opened, you can print a listing of it, including
shadow screens by typing the word LISTING.

 [The following is a fine point and can be ignored by first time users.
 I have modified (PRINT) in screen 67 of META80.BLK to work with
 all CP/M systems.  All CP/M systems have an entry LISTST in their BIOS.
 Its purpose is to test the printer status and return 0 if it is busy and
 0FFH if it is not. Digital Research's documentation says that if this test
 is not implemented, it shoudld return 0.  This is probably wrong, because
 a program that is using this entry will always loop waiting for the 0FFH
 which never occurs.  If your BIOS implements the test, and you want to use
 a multitasking background spooler, you should change the definition back to

 : (PRINT) BEGIN PAUSE 0 15 BIOS UNTIL 5 BIOS DROP 1 #OUT +! ;

 and recompile your system. Or you could just patch the address of BIOS
 in place of the address of NIP.]

                        Metacompiling a New System

If you have a system that will hold 500KB on one disk you will have no problem
recompiling the F83 system by following the directions in F83.DOC. If you
have two single-density disks of 240K, you can follow this procedure.

Put F83.COM on a disk by itself and put it in drive A. Put the disk with
META80.BLK in drive B. Start FORTH after the prompt by typing:

                        A>F83 b:meta80.blk

After FORTH starts, type "OK".  This is defined as a word to load the meta-
compiler and start it generating a new kernel.  The kernel will automatically
be saved on drive A as KERNEL.COM.  Type BYE to return to CP/M, then log
in B as the default drive by typing "B:". Put the disk with the other *.BLK
files on it in drive B.  Start the kernel by typing:

                        B>a:kernel extend80.blk

After the kernel is loaded, type the FORTH word "START".  The word is
defined to load the first screen in extend80.blk which will in turn load
all of the other extensions.

After this process is almost finished, you will see an error message
"unable to open file".  This is because the META80.BLK file is not available.
You can type the rest of the few lines by hand.  They are:

  1 ' META80.BLK   >BODY 40 + !
  DEFINE EXTEND80.BLK
  2 ' EXTEND80.BLK >BODY 40 + !
  ' META80.BLK     VIEW-FILES 0 + !
  ' EXTEND80.BLK   VIEW-FILES 2 + !
  ' CPU8080.BLK    VIEW-FILES 4 + !
  ' UTILTITY.BLK   VIEW-FILES 6 + !
  2 LOAD

After this, you should receive a message telling you that the new system
has been loaded, and what its size is. Type the word "BYE" and you will
return to CP/M with a message of how many pages to save. Type

                        B>save 95 a:f83.com

for example, to save your new system on disk A.


Ted Shapin, 10/28/83. 

