home *** CD-ROM | disk | FTP | other *** search
- GREETINGS TO AUSTRALIAN FORTH SYMPOSIUM
-
-
- It was a suprise to us that this F-PC system will be first released
- in Australia. As Bob Reiling demanded that we give him a copy to
- take to the Symposium, we are just as happy to comply and present
- it as a gift helping celebrating your 200th Anniversary. As you
- read on, you will find that the F-PC Working Group here still has
- lots of work unfinished, especially on the Systems Manual. We
- hope that many of you will find this project worthy of your time
- and effort that you will also contribute to it. We will be very
- pleased if you will also try to organized a working group to
- exercise this system and generate some documentation to be
- collected and redistributed to help users.
-
-
- Representing the F-PC Working Group:
-
- Charles Curley
- Jerry Modrow
- Robert L. Smith
- C. H. Ting
- Tom Zimmer
-
- San Jose, California, May 10, 1988
-
-
- 1. HOW DID WE GET HERE?
-
-
-
- This F-PC system started out as an experiment to see if a
- development environment could be created that would be as
- interactive as a BLOCK Forth system, with as many of the same
- tools as possible.
-
- Over the past several years, the programming community for other
- languages have changed somewhat. Several years ago, Forth had
- enormous advantages over Fortran, Pascal, and C in terms of
- development interactivity. The Forth development cycle was very
- short, and new code modules could be put together for
- experimentation very quickly. As the years went by, the
- Programmers for these other languages began to realize there had
- to be something better than their traditional compile debug cycle,
- i.e.
-
- ----> Enter the editor from operating system.
- | | Make changes with LINE editor.
- | | Leave editor back to operating system.
- | | Start Compiler on source module.
- | | WAIT A LONG TIME FOR THE COMPILER.....
- | | Discover an error.
- | |
- | --< LOOP back up until all compile errors are found.
- |
- | Now start Linker on all modules.
- | WAIT A LONG TIME FOR THE LINKER.....
- | Discover Link error.
- ----< Go back to beginning and try again.
-
- The above loop could be measured in DAYS, and was normally at
- least 30 minutes long.
-
- Forth did away with much of the above. The editor was integrated
- into the Forth/Operating system environment, so the time to start
- up or leave the editor was zero. The compiler was incremental, so
- programs could be debugged a piece at a time, and there was no
- linker at all. This naturally resulted in a productivity
- improvement and a significant reduction in programmer frustration.
-
- As the years went by, other programmers noticed how much easier
- BASIC was to use than other compiled languages, since it had a
- built in editor, and didn't have to compile at all. Of course it
- was SO SLOW.., but then along came TURBO PASCAL. It created fast
- compiled code, had an integrated SCREEN editor, and compiled like
- BLAZES.
-
- We now start to see some similarities to Forth, a much superior
- development environment, where the development iteration cycle has
- been reduced to a very small number. But Turbo Pascal still
- lacked Forth interactivity, and ability to incrementally debug
- programs as they are developed.
-
- Finally along came the Macintosh and Light Speed Pascal. It had
- evolved from Mac Pascal, an interactive and pseudo interpreted
- Pascal for the Mac. LSP (Light Speed Pascal) had windows, a
- built-in screen editor, compiled modules, a very fast compiler and
- a light speed linker, with the ability to test small segments of
- code, and two built-in debuggers: one for Pascal, and one for
- Assembly. The only problem was that is was PASCAL not Forth.
- However, there are distinct advantages of sequential files. Here
- is a partial list:
-
- Source files are smaller, so backing or
- transporting file is easier.
-
- Sequential source files can be manipulated
- or viewed by programs that other people
- have, not just by the forth block editor.
-
- There is no artificial limitation placed on
- definition size. In the block based system
- We are always giving up line zero for a
- comment line, and line 15 for nudge space.
-
- There is no artificial limit placed on the
- amount of comments I can place with the
- source. Again, compared to blocks with
- shadows, 16 lines of shadows was either too
- much or too little.
-
- Sequential files provide a much more
- natural interface to the operating system.
-
- It allows plenty of room for inserting a new
- definition in the middle of a source file,
- without having to drop out of the editor,
- and use MORE and CONVEY to move things
- around, all we have to do is press <enter>.
-
- Hmm. Wonder what Forth would be like with Sequential files?
- Well, it has arrived.
-
- So here we are at the end (or beginning) of a long road, looking
- back at what we have done, and looking forward to the future.
- Blocks were certainly very useful for forcing us to modularize our
- code. That was a big advantage while we were learning Forth.
- Maybe newcomers to Forth should be required to learn the system on
- a BLOCK version, but now that we have come of age, we should know
- where to modularize our code better than the computer.
-
-
-
- 2. THE F-PC SYSTEM
-
-
-
- F-PC is a greatly enhanced version of Forth derived from the F83
- model for the IBM-PC, XT, or AT by Henry Laxen and Michael Perry.
- A major step forward was the F83Y system produced by Wil Baden,
- who introduced separated heads and many other features. Many
- people contributed to it, includine Robert L. Smith, Charles
- Curley, and Jerry Modrow, but the major work was done by Tom
- Zimmer. Tom was able to totally confuse the Forth community by
- releasing many versions of his Forth in the last year, progressing
- from DH, HF, PF, SF, FF, and XF, updating his latest version on a
- weekly basis. As his efforts to modify it have tapered off
- somewhat in recent months, it is reasonable to assume that the
- system have matured and stabilized to the point that it warrants a
- serious effort to release it for general usage in the Forth
- community.
-
- In order to release this system for public usage, it is necessary
- to take it out of Tom's hands so that no more new features are to
- be added to the system, except minor fixes of bugs as they are
- discovered. It is also necessary to provide better and more
- complete documentation on the system so that a Forth programmer
- can pick it up and use the system productively on his own, without
- having to have access to Tom for support and consultation. The
- Working Group is organized to serve two very specific purposes: to
- do beta testing on the system to flush out as many bugs as
- possible in a two to three months period before the formal
- releasing, and to provide user and system documentation so that
- both application and system Forth programmers can use the system
- in isolated (in the Forth sense) geographic locations.
-
- This system was tentatively named F-PC to emphasize the following
- attributes:
-
- 1. It will be released in 1988, encapsulating concepts and
- practices evolved to this point of time.
-
- 2. It is a derivative work of F83, both in spirit and
- substance, as a public domain Forth system to encourage
- experimentation and commercial product development using
- Forth.
-
- 3. It is specifically designed around the segmented
- architecture of Intel 8088 series of CPU's in the MS-DOS
- environment.
-
- F-PC is NOT meant to support any standard other than Forth 83-
- Standard. If the concepts and techniques used in F-PC had any
- influence on the standard currently being formulated by the ANSI
- Forth Standards Committee, it would be totally accidental.
-
-
-
- 3. F-PC WORKING GROUP
-
-
-
- The Working Group was very loosely organized in the Silicon Valley
- FIG Chapter, during the chapter meeting at April 23, 1988. All
- interested people are invited to join and contribute. People not
- living in the San Francisco Bay Area may use the GEnie system to
- participate. The goal is to release F-PC in July. The Silicon
- Valley FIG Chapter kindly permitted the Working Group to use the
- morning FORML sessions in May and June to discuss and work on F-PC.
- Dr. C. H. Ting will serve as the focus of this Group to coordinate
- the efforts in documentation. Bug reports, suggestions, and
- recommendation will be collected and forwarded to Tom Zimmer for
- consideration.
-
- In the May 28 FORML session, we will discuss the system aspects of
- F-PC, concentrating in the KERNEL files. In the June 25 FORML
- session, we will discuss utilities. If things worked out by
- themselves, we should have F-PC Version 1.0 to be distributed in
- the July 23 FIG meeting, hopefully with documentation.
-
- To participate in the Working Group, you should get a copy of
- Tom's system. XF is the closest to F-PC, but FF or HF are adequate
- for familiarization and testing. F-PC is available from the SVFIG
- Disk Librarian, Dave Jaccuzi, (408) , or on GEnie
- network. We need to produce two documents: a User's Manual and a
- Systems Manual. The User's Manual contains the installation and
- booting procedures, editing, loading, debugging and top level
- utility words for general programming practices. The Systems
- Manual will deal with the problems on memory segmentation, file
- access, DOS interface, floating point, and other advanced topics.
- There are already a great amount of documentation included in the
- F-PC system. What we have to do is to go through all the source
- and text files and consolidate the information into a form co-
- readable by the machine and the programmer.
-
-
-
- 4. DOCUMENTATION TASKS
-
-
-
- Dr. Ting will try to organize the existing tutorial materials to
- form the User's Manual. The preliminary version will be
- distributed in the May FORML meeting. Members of the Working
- Group should pick one or more source/help files of your own
- interests and try to build a section for either the User's Manual
- or the Systems Manual. Currently, the help files are mostly
- glossaries of words defined in the source file. They should be
- expanded to include the following information:
-
- 1. Description of top level utility words.
-
- 2. Examples of their usage or simple test code.
-
- 3. Implementation specifics, restrictions, and other
- information.
-
- 4. Glossary.
-
- F-PC was fairly well modularized into small files, which can be
- understood and documented easily. We hope that the expanded help
- files can be collected and organized into a systems manual with
- minimal editorial efforts. Nevertheless, documentation is still a
- very formidable task because there are currently about 1990 words
- defined in F-PC, making it one of the biggest Forth systems.
-
- Contributions in listings or on floppy disks for the F-PC
- documentation should be sent to Dr. Ting, 156 14th Ave., San
- Mateo, CA 94402, (415) 571-7639, for including in the manuals.
-
-
-
- CONTENTS
-
-
- I. Introduction INTROD.DOC
-
- 2. F83 Compatibility COMPATIB.DOC
-
- 3. Tools TOOLS.DOC
-
- 4. SED, the Editor EDITOR.DOC
-
- 5. Sequential Files SEQFILES.DOC
-
- 6. Extended Memory MEMORY.DOC
-
- 7. DOS Interface DOSINTFC.DOC
-
- 8. PASM, the F-PC Assembler ASSEMBLY.DOC
-
- 9. Miscellaneous Utilities MISCELL.DOC
-