UMFORTH@WEIZMANN.BITNET (... the FIGIL Digest) (01/17/86)
Date: Wed, 8 Jan 86 23:52 EST From: SECRIST%OAK.SAINET.MFENET@LLL-MFE.ARPA Subject: ET-FIG News Posting #5 Organization: Science Applications Int'l. Corp., Oak Ridge, Tenn. Geographic-Location: 36 01' 42" N, 84 14' 14" W CompuServe-ID: [71636,52] Excerpts from the ET-FIG News Posting #5 in a series ------------------------------------------------------------------------------ Volume 1, Number 5 ** East Tennessee FORTH Interest Group ** 06-DEC-1984 ------------------------------------------------------------------------------ IN THIS ISSUE: A Simple HELP Function N-Digit Pi Code Book Review: Thinking FORTH Software Review: LMI Z-80 FORTH 3.0 In Print: Review of (then) recent FORTH articles Public Domain: KFORTH for the Z-80 Kaypro Errata from our last issue -=<***>=- Word of the Month * A SIMPLE "HELP" FUNCTION * HELP displays the "cheat sheet" for the editor functions. I seem to be forever looking for my editor reference sheet because I only use the editor occasionally. The text for the HELP display can be stored in any screen. I used Screen 19 because it was free, and the code for HELP is in Screen 18. Screen 18 is loaded as part of the editor anyway with the DL change that was published last month (see ERRATA). This made HELP part of the Editor vocabulary and not available to the rest of Forth. The following is the source screen listing for both the source and the text displayed. SCR # 18 4 : HELP 5 SCR @ 19 LIST SCR SCR ! ; 6 [rest of screen empty] SCR # 19 0 ( EDITOR HELP SCREEN SCR# 19 11/16/84 ) 1 -R REPLACE SEARCH STRING TRADE TRADE n AND m LINES 2 L LIST SCREEN T TYPE LINE 3 I INSERT LINE DL DELETE LINE 4 M MOVE n LINES D DELETE n CHARS 5 EX EXIT EDITOR/SAVE SCRATCH EXIT EDITOR/NOSAVE 6 NEW INSERT LINES SPREAD MOVE LINES DOWN 7 S SEARCH FOR STRING E EDIT AGAIN 8 [rest of screen is blank] HELP is very simple. The current edited screen (SCR) is fetched onto the stack for safe keeping. The HELP SCREEN (19) is listed; then SCR is restored. It works well with my line editor and should work with any editor just as well. HELP is so simple and useful that I wonder why I did not think of it before. [nes] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Proceedings * BERG-KAISER N-POSITION PI DIVISION * As presented by Joe Minarick at his November presentation. Replace 'nnn' below with the number of places you wish to calculate Pi to. 0 VARIABLE DIV : /. DUP DIV ! /MOD . 46 EMIT nnn 0 DO I 10 * DIV @ /MOD 9 OVER < IF 7 + THEN 48 + EMIT LOOP DROP CR ; Example: 355 113 /. 3 .1415929203539823008849557522123893805 3097345132743362831... =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Book Review * Leo Brodie's THINKING FORTH * by Norman E. Smith, CDP I am sure everyone has heard that Leo Brodie was finally writing a sequal to STARTING FORTH, which has the well justified reputation for being the best Forth tutorial available. Brodie's new book is called THINKING FORTH. As soon as I saw the publication notices, I ordered a copy from Mountain View Press. (MVP is the best source for Forth publications available !) I was expecting a lot from THINKING FORTH and was not disappointed ! There was a comment at the last meeting that much of the detail of THINKING FORTH will probably be mentioned in the upcoming (January) presentation on Forth coding style, so I will not get into too much detail in this review. If this turns out not to be the case, a more detailed review will be included in a future newsletter. Brodie has a very light style of writing that prevents the terminal boredum associated with most technical/text books. As in STARTING FORTH, THINKING FORTH includes numerous cartoons that illustrate the points in the text. The text also includes useful Forth words in the later sections. For example, DOER/MAKE words are presented to illustrate vectored word execution. Implementations of DOER/MAKE are given in the appendix in FIG, F79, and F83. DOER/MAKE and several other useful words are worth the price of the book alone ! THINKING FORTH is divided into several major sections. Systems analysis and levels of design are spread over several chapters. These chapters contain very little Forth specific information. The remaining two-thirds of the book is very specific to Forth because the examples are all coded in Forth, although the ideas presented can be applied to just about any computer language with little effort. Brodie includes an overview of Forth as an appendix for those readers with little or no knowledge of Forth. The central theme of THINKING FORTH is that systems can be much simpler and much more efficient by proper "factoring" of functions (words). The simpler a word, the easier it is to test and re-use. Brodie shows it is possible to eliminate much control structure through proper factoring of functions. According to Brodie, factoring can take several forms. First, words can be re-arranged so IF's are minimized. Words can use actual data values to control program flow, as can data tables. THINKING FORTH is an excellent book to give your boss who will not let you use Forth for an application because it is not a "real" language. The non-Forth sections present many good suggestions on system analysis and design. The author establishes himself as a very credible systems designer by the time the reader gets into the Forth specific chapters. The many Forth examples in THINKING FORTH illustrate its power well enough to to convince even the most skeptical boss that Forth is a worthy language for "real" applications programming. THINKING FORTH is a great Forth book that makes a very comfortable companion to Brodie's other book, STARTING FORTH. If I could have only two books on Forth, they would be the Brodie pair ! [nes] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Software Review * LABORATORY MICROSYSTEMS Z-80 FORTH 3.0 for CP/M * by Richard C. Secrist Editor's Note: Since the publication of this issue over a year ago, LMI has updated their product making extensive changes to the documentation which now puts it into the superlative class... as of 1/8/85 the current release was Version 3.10. < OVERVIEW > Laboratory Microsystems Inc. (LMI) Z-80 FORTH version 3.0 is an 83-Standard Forth development system optimized for the Z-80 uP that runs as a task under CP/M. The disk and console interface make use of the host operating system and provide high level compatability with other LMI Forth implementations for various microprocessors. Z-80 Forth uses standard CP/M random access data files for screen storage, so its programs and data coexist on the disk with other applications and may be manipulated with standard system utilities. < UTILITIES > Z-80 Forth includes full screen and line editors, an assembler, decompiler, and extensive file I/O facilities. The full-screen editor uses Wordstar-like command sequences and is adaptable to sundry video terminals through the video attributes installation procedure. If you are either new to Forth or lazy the manual offers you an easy way out of configuring Z-80 Forth to your terminal by hand. Simply photocopy the cursor and attribute control section out of your terminal book and send it to them with your distribution diskette. Then LMI will return your disk via express mail with your terminal listed as one of the choices on the installation menu. This saves you the grief of having to do it yourself, and helps LMI out because their Forth now supports the XYZZY type terminal. This also configures your copy of Forth to take advantage of the various video-support words made available in Z-80 Forth (e.g. CLEARSCREEN, BLINK, UNDERLINE). The assembler uses standard Zilog mnemonics in the traditional Forth postfix style. Other assorted utilities include a decompiler, notable benchmarks, a non-destructive stack print routine, and even memory dumps in byte or word format. Software floating point and AMD 9511 chip support are available at extra cost. < EXTENSIVE FILE I/O SUPPORT > One of the most outstanding features of the LMI product is superior file I/O support. From within FORTH the programmer is given access to a very powerful complement of disk file and record interface routines. The routines are sufficiently powerful to allow you to get yourself into a lot of trouble, and LMI sprinkles the documentation with numerous cautions regarding what to watch out for. For openers, LMI includes a file access function word called FDOS that gives you direct access to 36 file operation primatives. There are also another set of extensions that "give you total control" for record-level I/O bypassing the FORTH internal disk drivers and virtual memory management features of the LMI FORTH altogether. LMI also supports binary overlays to link things like the editor into the dictionary as a one-shot. This is described in the documentation. < COST-FREE TURNKEY APPLICATIONS > LMI provides several boot-up literals to create custom pre-compiled FORTH applications using this product. No license fee is required as long as you seal-off the LMI F83 itself. They would of course appreciate some credit and a phone call to make sure you sealed everything up correctly. < SIMPLE MULTI-TASKING > Z-80 FORTH includes simple multi-tasking support for up to 10 background tasks. LMI allocates CPU to these tasks on a round-robin basis. In general, however, these tasks should not access the disk or keyboard and must of course leave the stack clean upon exit. < EXCELLENT DOCUMENTATION > The documentation is of excellent technical quality and content - something growing rarer in these torrid days of user-friendly coloring books. The LMI documentation has MEAT. From the internals section describing the formats of the dictionary formats of things like colon and "CODE" definitions, right down to a real index, I am very pleased with the manual. Although I am not trying to scare away beginners, the documentation and the generous extensions make this an excellent "hacker" FORTH. I do not mean to suggest that the newcomer to FORTH is neglected in the LMI manual, however. In fact, the manual contains an instructive and interesting "overview of FORTH" that is one of the most concise yet useful readings on FORTH I have seen anywhere. It does not make for light reading mind you, but ounce for ounce it may be some of the most useful text you may ever scan in terms of putting the language as a whole into a nutshell. The text would be extremely useful to the professional programmer who is just getting into FORTH. The documention also includes several useful appendicies including: 1) "Coping with the F83 Standard", 2) "Restrictions on an 83-standard program", 3) "Checklist for Program Conversion to Z-80 FORTH 3.0", and "Adapting STARTING FORTH to Z-80 FORTH 3.0". < USER SUPPORT > A word about support. Once I called them for support and got handed off to a knowledgeable analyst promptly, who did a very good job of fielding my questions. Another nice thing happened in my dealings with LMI to date: I purchased this product because I wanted a real FORTH for the Z80 and I noticed in their ad in FORTH DIMENSIONS a few months ago that it was still only $50. Well, I ordered it assuming (ass-u-me) that the ad price was right, and didn't verify this with the person who took my order (entirely my stupidity). Well, the next day my new issue of COMPUTER LANGUAGE came in the MAIL and the ad there pegged the LMI Z80 FORTH at $100. Confused, I called LMI back to ask them about it, and it turns out I did fubar it. LMI gave me a partial refund "to take some of the sting out of it". Now THAT'S service ! Not to mention the fact that the product is quite worthy of it's $100 price tag. Overall, I highly recommend the LMI product and will consider their version first when shopping for a FORTH for other processors. [rcs] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= * IN PRINT * "IN PRINT" cites recent references to FORTH articles and literature and lists copies of articles made available by the membership to the chapter publication library. If you see anything that would be of interest to our membership, please bring a copy of it to chapter librarian Norman Smith and the next meeting. It will be automatically listed here. [rcs] Submitted to the ET-FIG Library by Steven Wallace: o "Plug-in Module Adds Forth Language and Assembler to a Handheld Computer", Hewlett-Packard Journal, July 1984. o "ORNL Forth System reference Manual, Including ODDBALL", ORNL Computer Sciences, February 1983. 87 pages. (ORNL document code ORNL/CSD/TM-174, see below.) o "FORTH-83: Evolution Continues" (pg. 137), BYTE magazine, August 1984. Submitted to the ET-FIG library by Steven Wallace. Cited by Norman Smith : o Reviews: PC/FORTH and polyFORTH (pg. 303); GO for MacFORTH, (pg. 180) BYTE magazine, November 1984. For people with access to the X-10 PDP-10 system, Steven says to copy the "DSKD:FORSYS.DAT [200,20560]" file into your area and execute the image "DSKD:FORTH [200,25150]". If someone could VAXINE a tape of these files for us we will make them available on 9-track magtape to the club at large (talk to Richard Secrist). [rcs] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= * ET-FIG NEWSLETTER STAFF * Editors: Richard C. Secrist, Norman E. Smith Staff Writers: Norman E. Smith, Richard C. Secrist Distribution: Joesph Minarick Treasurer: Steven A. Wallace =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Public Domain * KFORTH, FORTH-BASIC INTERPRETER JOIN ET-FIG SOFTWARE LIBRARY * The East Tennessee-FIG public domain library has grown again, with more to come in the next few months. Another version of 8080 Fig-Forth is available called KFORTH (purchased from Micro Cornocopia). The source, execuatable file, and a 150 screen file make up the package. It has several things that make it worth looking at. First an excellent full screen editor is included. This of course is set up for the Kaypro (ADM-3A) screen control sequences, but the words relating to screen control are localized in one screen. This should make it easy to port the editor to other Forths. Another neat feature is it displays the current contents of the stack across the top of the screen at all times. This makes it easy to see what is going on during debugging. Screens are kept in normal CP/M files, and the screen file is compatable with the Laxen & Perry (L&P) F83 ! The implication is it should be possible to convert the KFORTH full screen editor and stack display to F83 without having to type in 25 or 30 screens of source. I plan to port the KFORTH editor and stack display to the PDP-11 Fig Forth we have. This will be a major upgrade to its capability. Don't hold your breath though, it will be a couple of months at least before that is done. We are also working on integrating it with the RSX file system. The PDP-11 Fig Forth that is available through this group will have most of the tools necessary to be used in real applications development ! [nes] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= * E R R A T A * In the previous issue of the ET-FIG Newsletter (Volume 1, Number 4) the following screen was ommitted from the article "SAIC VAX/PDP-11 FIG-FORTH UPDATED" describing the new delete line (DL) function. We apologize for the oversight. SCR # 18 0 1 : DL ( N --- ) 2 DUP 64 * ESCR @ BLOCK + 3 64 BLANKS T STK ; ------------------------------------------------------------------------ Acknowledge-To: ... the FIGIL Digest <UMFORTH@WEIZMANN>