Home

V4N5 - Forth

image

Contents

1. l LOAL Listing continued on next page FORTH Dimensions 15 Volume IV No 5 INDEXER continued The Indexer sample session OK ok PLUSH ok LOAD DB ok ok Ls ok T Since this is a new database we have to enter ok the keyword terms we intend to use ok ok KFILE ok NEW KWD ENTER NEW KEYWORD BICYCLING BICYCLING ok ok a NEW KWD ENTER NEW KEYWORD BRAIN MIND BRAIN MIND ok ok NEW KWD ENTER NEW KEYWORD COMPUTERS COMPUTERS ok ok NEwW KwD ENTER NEW KEYWORD NETWORKING NETWORKING ok ok ok T Now add some data records and index them ok ok DFILE ok NEW DATA Enter contact name JEFFREY SCHWINN Enter telephone 805 555 1212 Enter network address TZA999 JEFFREY SCHWINN 80 1212 T2ZA99 ok TERMS BICYCLING NETWORKING BICYCLING NETWORKINGOk ok NEW DATA Enter contact name MARK I RIS Enter telephone 619 555 3730 Enter network address 12345 765 MARK T RIS 61 ok TERMS COMPUTERS BRAIN MIND NETWORKING COMPUTERS tad 0 212345 76 NEW DATA Enter contact mame SHERRIE JOLLYGOOD Enter telephone 713 555 9317 Enter network address none ERRIE JOLLYGOOD 723 9317 none FTERMS NETWORKING COMPUTERS NETWORKING COMPUTERSOk O NEW DATA Enter contact name MO TOBE CANE Enter telephone 415 555 1031 Enter network address OMNI 1031 CZ MO TOBE CANE 415 555 1031 OMNI 1031 CZ ok TERMS NETWORKING BICYCLING NETWORKING BICYCLINGok
2. YES BDOS BIOS amp console control functions CP M YES ___ Double number Standard amp String extensions YES FORTH screen files use standard resident Upper lower case keyboard input YES file format YES epee graphies es WES Double number Standard amp String extensions YES Las column display capability Upper lower case keyboard input YES mme Z 80 CP M Ver 2 x amp Northstar also available YES ees list pede BVA EBIE YES Affordabie 99 95 Affordable 99 95 EO EOS ee option YES Low cost enhancement options i Res turtle grapnhics Floating point mathematics YES Floating point mathematics YES Tutorial reference manual sell ers own manual 50 functions AM9511 compatible format UNCTIONS in all Hi Res turtle graphics NoStar Adv only YES 99 95 FORTH 79 V 2 requires CP M Ver 2 x 99 95 f ENHANCEMENT PACKAGE FOR V 2 49 95 Floating point 49 95 139 95 COMBINATION PACKAGE Base amp Floating point 139 95 MicroMotion advantage users add 49 95 for Hi Res CA res add 6 tax COD amp dealer inquiries welcome na r 12077 Wilshire Bivd 506 L A CA 90025 213 821 4340 Specify APPLE CP M or Northstar Dealer inquiries invited INTRODUCING P FORTH The P FORTH Card is the key member in a family of control systems cards offered by the innovators at Peopleware Systems Inc P FORTH has four major advantages
3. 1 It is a versatile building block The simple addition of a power supply and terminal makes the P FORTH card both a low cost development system as Well as a target system An integrated high level interactive language allows for fast software development Application programs are stored automatically in non volatile memory The STD BUS interface allows the use of a variety of existing peripheral cards FORTH Dimensions HAIRMAN OF THE BOARD PUTTING P FORTH TO WORK Users interactively develop applications through a combi nation of hardware and software These applications are automatic ally programmed into non volatile memory EEROM When the applications are proven and functioning a single switch transforms the system from the developmental mode into the target system PEOPLEWARE SYSTEMS INC 5190 West 76th St Mpls MN 55435 USA 612 831 0827 e TWX 910 576 1735 SOFTWARE e An interactive high level language following the fig FORTH model e A monitor for system checkout e FORTH type screen editor for developing application programs e A FORTH type assembler for writing assembly language routines e High level interrupt linkage e High level communications protocol for down loading from a host system HARDWARE e 6801 microprocessor e 6K EEROM e 8K FORTH firmware e 2K RAM e STD BUS interface e RS232 serial 1 0 e 16 TTL I O lines e Programmable timer Volume
4. COLOR FORTH works with both disk and tape The ROM version will work with 4K of RAM the RAM based version requires 16K RAM COLOR FORTH comes with a powerful Semigraphic 8 editor and a set of utilities It has a unique trace feature and handles inter rupts cleanly in high level FORTH COLOR FORTH maintains the CPU carry flag for easy implementation of extended math and has words for bit manipulation graphics sound task multiplexing fast math auto repeat keys control keys disk and tape control and linkage to Basic routines COLOR FORTH was written largely in assembly language specifically for the Color Computer It takes advantage of the unique features of the Color Computer and is very fast COLOR FORTH does not affect normal operation of the Color Computer Hoyt Stearns Electronics 4131 E Cannon Drive Phoenix AZ 85028 602 996 1717 6502 FORTH ON CODOS fig FORTH upgraded to FORTH 79 with Double Number Standard Extensions for any 6502 based Microcomputer running Micro Technology Unlimited s CODOS Disk Operating System Changes within the nucleus give a 20 30 increase in execution speed over original fig FORTH 6502 The system interfaces to floppy disk via CODOS SVCs and allows for up to eight simultaneously active files as well as more than 800 screens per disk when using double sided disks and direct to disk data transfer capability fig FORTH 79 comes complete with an advanced Editor a 6502 Assembler many useful
5. TH DIMENSIONS VOLUME IV NUMBER 5 2 50 INSIDE BUSINESS APPLICATIONS FORTH in Business Applications Panel DiSCUSSION 0cceeeee 4 The Indexer Enhancements to a Data Base Model Robert N Watkins CCP 10 A PICTURE Worth a 1000 Words ccceeseeeeeeeeeeeeeee Elmer W Fittery asasen 19 DEPARTMENTS GUS Sani e a haute swat dbl is ALA PIAA a Aai anipe IAEE e ST Ta 3 Standards Conner e e re ae a a atone naan a a eae eager otad ees 29 A Technig es T tonal erie nee a a a a a aa aa a ieaie 26 BUSINESS APPLICATIONS THE FORTH SOURCE MVP FORTH A Public Domain Product MVP Forth is fig FORTH modified by 100 of the FORTH 79 Standard Required Word Set plus the vocabulary for the instructional book Starting FORTH Editor assembler and utilities are included Transportability of programs is assured since the kernal of MVP FORTH is the same for all computers to the machine dependent READ WRITE instructions Modification and extension up or down is simplified by having the source Code and through the use of MVP FORTH Programming Aids and Cross Compilers The CP M are supplied on 8 SS SD IBM 3740 format disks The include a track and sector calculation array for down loading to other sizes and formats Other disks are machine specilic All About FORTH is an annotated glossary of MVP FORTH words as well as other dialects It is in 8080 code other MVP FORTH im
6. ee en ene ete 100 00 Intel 8087 support PC FORTH 8086 FORTH only 0 2 e eee eet eee ee 100 00 AMD 9511 support Z 80 8086 FORTH only 2 ccc eee eee 100 00 Color graphics PC FORTH only 0 eee teen tents 100 00 Database management 0 cece ee teen tees 200 00 Symbolic Interactive Debugger PC FORTH only 0 cece cece cee eee eee 100 00 Cross Reference Utility 0 ce eee e tees 25 00 Curry FORTH Programming AidS 0 2 0 ccc ee teen tenes 150 00 PC GEN custom character sets BM PC only 0 cece ec eee eens 50 00 Nautilus Cross Compiler allows you to expand or modify the FORTH nucleus recompile on a host computer for a different target computer generate headerless code and generate ROMable code with initialized variables Supports forward referencing to any word or label Produces load map list of unresolved symbols and executable image in RAM or disk file No license fee for applications created with the Cross Compiler Prerequisite one of the application development systems above for your host computer Hosts Z 80 CP M 2 2 or MP M 8086 88 CP M 86 BM PC PC DOS or CP M 86 Targets 2 80 8080 8086 88 IBM PC 6502 LSI 11 68000 1802 2 8 Cross Compiler for one host and one target 0 06 eee 300 00 Each additional target aissein sees ate Bt Bee Sete OTE Sa A A 100 00 AUGUSTA from Computer Linguistics for CP M 2 2 2 0 0 0 cece cc eens
7. 90 00 LEARNING FORTH by Laxen amp Harris for CP M 00 cece eens 95 00 Z 80 Machine Tests Memory disk console and printer tests with ail source code in standard Zilog MneMONiCS 1 tee 50 00 All software distributed on eight inch single density soft sectored diskettes except PC FORTH on 5 inch soft sectored single sided double density diskettes Micropolis and North Star disk formats available at 10 00 additional charge Prices include shipping by UPS or first class mail within USA and Canada Overseas orders add US 10 00 per package for air mail California residents add appropriate sales tax Purchase orders accepted at our discretion No credit card orders Laboratory Microsystems Inc 4147 Beethoven Street Los Angeles CA 90066 213 306 7412 2 80 is a registered trademark of Zilog Inc CP M is a registered trademark of Digital Research Inc Augusta is a trademark of Computer Linguistics IBM is a registered trademark of International Business Machines Corp PCIFORTH and PC GEN are trademarks of Laboratory Microsystems FORTH Dimensions 24 Volume IV No Forth Procrammina Alps FORTH PROGRAMMING AIDS is a software package containing high level FORTH routines that allow you to write more efficient programs in less development time It is also useful for maintaining existing FORTH programs The FPA package includes four modules from Curry Associates TRANSLATOR provides a one to one transl
8. BYTE April 1982 pp 322 85 O TRANSPORTABLE SOFTWARE fig FORTH and FORTH 79 Model Systems for DEC PDP 11 RSX 11M e Multi User e Multi Tasking e Re entrant Resident Library e Shared Commons e RSX 11M Directive Support RT 11 e Compatible with RSX 11M System e RT 11 Programmed Request Support IBM PC PC DOS CP M 86 e ROM BIOS Support e Stand Alone TRS 80 TRSDOS e ROM Support e Stand Alone Data Base Support Data Language including e Base Relative Variables e Advanced String Package e Many Classes of Arrays Key File Support e Hashed Search e Binary Search Additional features Input and Output Forms Support Screen Editors Execute Variable Support Extended Memory Support Additional Control Structures Trace Support with Stack Snapshot Decompiling Text Formatting Time and Date Support Double Integer Support Floating Point Support Transportable System Development e Consulting Services e Systems Analysis and Design e Communications e Networking e Encryption e Full Sources Available Contact Transportable Software Inc P O Box 1049 Hightstown NJ 08520 fig FORTH and FORTH 79 are trademarks of Forth interest Group DEC PDP 11 RSX 11M RT 11 are trademarks of Digital Equipment Co IBM PC PC DOS are trademarks of International Business Machines Co CP M 86 is a trademark of Digital Research Co TRS 80 TRSDOS are trademarks of Tandy Co FORTH Dimensions 17 Volume IV No 5 D
9. PARAMETERS III C Figure 2 Example INFORM CREATE DOES gt sSn S n CR The number P number 10 INFORM ROMAN 13 a T G3 4 am IV 63 7 VII C3 DROP 10 INFORM ENGLISH 1 C One C3 is in OONGMW PUNK SO C C C 4 C Four C 7 C Seven C3 DROP of use for parameterized CREATE DOES gt A little more substantial example PARAMETERS INSTALL n DUP OP in Arabic and type gt REMOVE Cs Roman numerals C Cz II C5 C3 Ce TEI GC Cs Vv C5 6 amp Cs VI C VIII Cs 9 Cz EX Cs English text C Two C 3 Cs Five C 6 Cz Eight C3 C 9 Cs Three C Six C Nine C Figure 3 Notice how the defining word INFORM mixes both constant functions such as printing out the carriage return the message about Arabic and the actual Arabic number with the variable data of the number in some other format and the name of the format This con cept of parameterizing your defining words can lead to substantial code sav ings and considerable simplifications in many cases where you want to do almost the same thing many times but a few of the little details are different I find that the most common use for this concept is in error handling since what is being manipulated by the de fining word is always the same but you often want to do som
10. _ 8086 8088 _ 9900 CJAPPLE II ECLIPSE PACE _ NOVA LJPop 11 68000 C ALPHA MICRO Starting FORTH by Brodie BEST book on FORTH Paperback 16 20 Starting FORTH by Brodie Hard Cover 20 25 L_JPROCEEDINGS 1980 FORML FORTH Modification Lab Conference 25 35 JPROCEEDINGS 1981 FORML Conference Both Volumes 40 55 C Volume I Language Structure 25 35 Volume II Systems and Applications 25 35 L_JPROCEEDINGS 1982 FORML Conference 25 35 _ JPROCEEDINGS 1981 FORTH Univ of Rochester Conference 25 35 L_ PROCEE DINGS 1982 FORTH Univ of Rochester Conference 25 35 LIFORTH 79 Standard a publication of the FORTH Standards Team 15 18 L_ Kitt Peak Primer by Stevens An in depth self study primer 25 35 JBYTE Magazine Reprints of FORTH articles 8 80 to 4 81 5 10 _ FIG T shirts _ Small Medium JLarge _ X Large 10 12 _ Poster August 1980 BYTE cover 16 x 22 3 5 _ JFORTH Programmer s Reference Card If ordered separately FREE send a stamped addressed envelope TOTAL m eoa NAME MATL STOP APT a U ORGANIZATION ooo o o O PHONE Jee teh Org 8 oe ADDRESS aa a tee CITY STATE ZIPLOC O COUNTRY ae eed VISA f MASTERCARD See Expiration Date __ Minimum of 15 00 on charge cards Make check or money order in US Funds on US bank payable to FIG All prices include postage No purchase orders without check California residents add sales tax 1 83 ORDER PHONE NUMBER 415 962 8653 l FORTH INTEREST
11. trouble of implementing a stack to per form these operations The answer is that I wanted to be able to nest these structures and simply using a variable instead of a stack would have caused instant death By using a stack words defined by parameterized defining words can call other words defined by parameterized defining words The only rule that must be obeyed is that whatever is INSTALLed must be RE MOVEd before exiting the DOES gt por tion of a word Parameterized CREATE DOES gt Structures S n addr for Forth 7 OVER 2 IMMEDIATE EXECUTE 5 Figure 1 26 Volume IV No 5 Now let s take a look at Fig 2 for an example of how to use the beasts we have just constructed We define a simple yet flexible case statement that allows us to use code fragments rather than just single words for the different cases The compile time part of the definition simply allocates some space in the parameter field of the word being defined and leaves the address of the beginning of the parameter field on the stack Notice that it reads very nicely If you knew how many para meters you wanted some constant number in the CREATE part of a defin ing word you could take care of them by simply saying CREATE 5 PARAME TERS for 5 In the case of CASES we will specify the number of parame ters by placing a number on the stack before invoking CASES The runtime part simply INSTALLs the pfa of the word d
12. Aids for decompiling callfinding and translating Specify CP M IBM PC 8086 Z80 or Apple II I 150 O TRS 80 or ill by Miller Microcomputer Services F X amp 79 130 TUTORIAL by Laxen amp Harris CP M with a copy of Starting FORTH 95 C Extensions for Laboratory Microsystems IBM Z80 and 8086 O Software Floating Point 100 250 O 8087 Support IBM PC or 8086 100 C 9511 Support Z80 or 8086 100 L Color Graphics IBM PC 100 L IBMe L 8086 300 300 300 300 MVP FORTH PRODUCTS for CP M IBM PC and Apple O MVP FORTH Programmer s Kit including disk with documentation ALL ABOUT FORTH and STARTING FORTH Assembly source listing versions 100 J MVP FORTH Disk with documentation Assembly source listing version 75 MVP FORTH Cross Compiler with MVP FORTH source in FORTH 300 MVP FORTH Programming Aids for decompiling califinding and translating Specify computer 150 MVP FORTH Fast Floating Point for Apple II II on board with 9511 math chip Requires MYP FORTH for Apple 400 MVP FORTH Assembly Source Printed listing 20 ALL ABOUT FORTH by Haydon MVP FORTH reference plus fig FORTH and FORTH 79 20 x x MVP FORTH operates under a variety of CPU s computers and operating systems Specify your computer and operating system CP M supplied on 8 SS SD 3740 format FORTH MANUALS GUIDES amp DOCUMENTS ALL ABOUT FORTH by AIM FORTH User s Haydon
13. An annotated Manual 12 glossary of common FORTH f APPLE User s Manual words MVP FORTH MicroMotion 20 reference 20 C TRS 80 User s Manual And So FORTH by Huang A MMSFORTH 19 college level text 25 METAFORTH by Cassady FORTH Encyclopedia by Meta compiler in 8080 Derick amp Baker A complete code 30 programmer s manual to fig P tig FORTH with FORTH 79 Systema Guds o Mo e LF harted lel aa Caltech FORTH Manual 12 2nd Ed 25 Starting FORTH by Brodie Invitation to FORTH 20 J PDP 11 FORTH User s Best instructional manual Manual 20 available soft cover 16 7 Starting FORTH hard CPIM User s Manual MicroMotion 20 cover 1980 FORML Proc 25 FORTH 79 Standard 15 1981 FORML Proc FORTH 79 Standard 2 Vol 40 Conversion 10 1982 FORML Proc 25 Tiny Pascal in fig FORTH 10 1981 Rochester FORTH NOVA fig FORTH by CCI Proc 25 i 1982 Rochester FORTH with editor assembler and 4 utilities 15 whee 25 MVP FORTH S Listi i 25 OU ource Listings en oe a IBM PC O CP M FORTH Primer Apple II II 20 Threaded Interpretive Languages 20 O Installation Manual for fig FORTH contains FORTH model glossary memory map and instructions 15 Source Listings of fig FORTH for specific CPU s and computers The Installation Manual is required for implementation Each 15 3 1802 6502 6800 G AlphaMicro O 8080 8086 88 9900 O APPLE II
14. GROUP PO BOX 1105 SAN CARLOS CA 94070 FORTH INTEREST GROUP fi wy fat SUNNYVAL Ss CL 94985
15. HEAD CNT CRT ARRAY 2 a2 3 systems HEADER HEAD ADDR HEAD CNT HEAD XV CRT ARRAY 8 9 CRT ARRAY 6 D MASK TYFE CRT ARRAY 9 2 2 MASK ADDR CRT ARRAY 2 6 a 9 MASK CNT CRT ARRAY 4 2 10 MASKER MASK ADDR MASK CNT 11 DIGIT CNT CRT ARRAY d 2 12 MASK XY HEAD XY SWAF 13 HEAD CNT SWAP O32982 EWF application programs in FORTH ONCA H S Consulting services including custom oe program development ee Peter oe Our latest product SCR 132 DUAL TASKING SCREEN GEN 2 0F 5 O92B81 EWF OZORI EWR FORTH 1 2 MASK CRT ARRAY 3 EXECUTE Now you can run your MASE CNT OVER SFACES process control programs P S PUT HEADER HEADER ONLY gt 6 HEAD XY XY HEADER TYPE in background while still Z MASK CNT SPACES using your FORTH MASE XY XY 3 9 system in the normal way 10 PUT STRING n 11 FUT HEADER PAD MASKsCNT TYPE Background and 12 foreground tasks may 13 PUTSMASKED MASK XY XY oa hi 14 MASE TYPE 3 each be written in high n level FORTH They can FIND gt INSERT gt execute simultaneously and exchange data The SCR 133 as foreground task can i 1 OZB EW i O VARIABLE CNT control the background 2 ASE PER 1 0 task DO KEY DUP 13 4 IF DROF I CNT S00 LEAVE LOOF gt Available NOW 5 ELSE DUP 8 moo b IF R IF S SPACE 32 PAD I 1 C 8 diskette 285 7 ELSE DROP 7 8 THEN R gt 1 O MAX 2k
16. KEEF DOES ACTUAL End of Listing FORTH Dimensions 23 means VALUE in DATA COMMUNICATIONS PRODUCTS BitSwitch transfer switches up to 6 ports Break out boxes Gender changers Cable assemblies Connectors Other harc to find items We offer value in quality delivery amp pricing BitSwitch is the lowest priced AB switch that switches all 25 lines Write or call for our catalog PRODUCT DEVELOPMENT SERVICES Studies Hardware Software development Mechanical design Documentation Prototype fabrication testing Manufacturing Complete development and consulting services Fixed bid or hourly rate Write or call for our descriptive brochure LD DEVELOPMENT ASSOCIATES 1520 S Lyon Santa Ana CA 92705 714 835 9512 Volume IV No 5 Z 80 and 8086 FORTH PC FORTH for IBM Personal Computer available now FORTH Application Development Systems include interpreter compiler with virtual memory management assembler full screen editor decompiler demonstration programs utilities and 130 page manuali Standard random access disk files used for screen storage Extensions provided for access to all operating system functions Z 80 FORTH for CP M 2 20r MPM 00 00 c ee cee eters 50 00 8086 FORTH for CP M 86 1 1 ete ee teen nes 100 00 PC FORTH for IBM Personal Computer 0 2 0 ccc cee teens 100 00 Extension Packages for FORTH systems Software floating point
17. a flag of 1 will be placed on the stack otherwise a false flag of 0 will be placed on the stack By typing PUT amp GET COMPANY NAME a PUT COM PANY NAME will be performed followed by a GET COM PANY NAME If the GET COMPANY NAME returns a false flag FORTH Dimensions the PUT COMPANY NAME will be performed again NOTE A false flag specifies no input was done a true flag specifies input was done and data is at PAD Usually the PUT amp GET mode is used for displaying default information then allowing the user to accept the default or enter his own information This was the first of three examples in using PICTURE If you have a FORTH system running get the code PICTURE running and try the above example EXAMPLE 2 Build an input output field for cost of beach front property This field is to display the cost in the following format Z ZZZ ZZ9 99 where Z specifies zero suppress 9 specifies hard digit output and the dollar sign comma and decimals mean outputing those characters when appropriate This field is to start on row 8 column 0 SOLUTION 2 22Z 2Z29 99 PICTURE 2DOLLAR 0 8 PROPERTY COST 2DOLLAR PROPERTY COST The HEAD GET PUT and PUT amp GET modes function exactly the same as when using them with an alpha numeric in put field Data input output is handled a little differently First only digits 0 9 are allowed as input second input is from right to left NON PROGRAMMERS are more fa
18. be Forth based tools and EJ their applications in industry and research Referees are being chosen based on their experience and interest from universities research laboratories and businesses using Forth We intend to publish papers not EE only by professional Forth programmers but also by people who have used Forth asa tool to facilitate their own work The journal will try to represent the growing Forth community and provide a forum for aa original work ae ae PUBLICATIONS The journal will appear twice the first year and quarterly thereafter The first issue will come out in January 1983 The Institute will also undertake publication of the proceedings of the conferences it sponsors The 1982 EE Rochester Forth Conference Proceedings should be available in September from Mountain View Press J If you are interested in helping to further the Forth concept through a unique organization please contact j Thea Martin Executive Director The Institute for Applied Forth Research Inc 70 Elmwood Avenue Rochester New York 14611 716 235 0168 A FORTH Dimensions 38 Volume IV No 5 Fig Chapters U S e ARIZONA Phoenix Chapter Dennis L Wilson Samaritan Health Services 2121 E Magnolia Phoenix AZ 602 257 6875 e CALIFORNIA Los Angeles Chapter Monthly 4th Sat 11 a m Allstate Savings 8800 So Sepulveda Blvd L A Philip Wasson 213 649 1428 Northern California Chapter Monthly 4th
19. been that FORTH has been different from one in stallation to the next So think standard The missing link in the past has been that users had to go a long way off to get the applications that they needed What we ve been trying to do is to sell an ap plication that is almost right for some one in your neighborhood for a few hun dred dollars In that way you can modify the package for a few more hundred dollars and produce what the customer wants This is the sort of work that a lawyer or doctor does A few of them are inventing new diseases cures or statutes but most of them are helping someone to get a problem fixed So our non custom work is intended to be 90 of your custom work and we believe that FORTH is a good vehicle for this sort of work Moderator Could we have some ques tions now Audience How can you support a pro gramming environment in which the customers have customized systems Miller We only support what we sell For example we don t run under other operating systems although we do have a FORTH that runs under CP M We call it the shoehorn and we don t sell it we only use it for in house development It s a lousy FORTH that lets us get into the machine and bring over a good FORTH Audience What I mean is when you sell a customized system how do you support it FORTH Dimensions Volume IV No 5 Miller We differentiate between clients and customers A customer gets a de bug
20. e g ARR1 ARR2 Source Index includes all source code manual and program disk postpaid for 50 Specify fig FORTH or FORTH 79 in one of the following disk formats 8 CP M 5 PC DOS 5 Apple 3 3 Ren Curry Curry Associates P O Box 11324 Palo Alto CA 94306 415 322 1463 FORTH Dimensions 32 Volume IV No 5 SSEFORTT SSI FORTH for the IBM Personal Computer is fig FORTH and much more Our FORTH system is designed for the serious PC programmer and offers powerful editing and debugging capabilities and a complete interface to BIOS and DOS for the keyboard screen disks communication ports etc In addition SSI FORTH can accept text from other text editors like our text editor P Edit and perform screen to text converions All screens used are DOS format compatible Editor Full Screen FORTH Editor with Search Machine Speed Search Over Multiple Screens Additions to FIG FORTH Complete Interface to BIOS and DOS for Keyboard Screen Disks Communication Ports etc The words PEEK POKE PEEKW POKEW for easy transfer of functions defined in the BASIC language Ability to use the speaker and timer to produce tones Debugging Capabilities Debugging Aid HEX Dump Decompiler Text Conversion Screen to Text Document Conversion gt Load from Text Format Requirements i 7 gt IBM Personal Computer Price 9 J PC DOS SATELLITE SOFTWARE INTERNATIONAL eer 288 WEST C
21. excellent tool for that sort of manage ment I m pleased to see that Dick Mitch and Marvin mentioned readability FORTH is truly a readable language I ve heard for ten years that FORTH is very nice but it s not a readable language I have achieved a state of mind in which I don t even wince although I might say that the person doesn t understand the problem There is no way that I can convince a person that FORTH is readable short of teaching him to read it The question is not the degree of FORTH s readability but rather whether people are willing to learn to read it It is folklore that an effective manager knows more than the people he is manag ing A manager of programmers is wise to use his programmers to write code but he is also wise to read the code that his programmers write If he doesn t he places himself in a very vulnerable posi tion because he is accountable not the programmers The ability of the manager to read the code implies that the pro grammers must write readable code Anyone can write UNreadable code The presence of funny little at signs and ex clamation points now pronounced fetch and store respectively can be minimized with a certain style of pro gramming In business applications Continued Volume IV No FOR TRS 80 MODEL OR IiI IBM PERSONAL COMPUTER MORE SPEED 10 20 times faster than interpreted BASIC MORE ROOM Very compect complied code pius VIR
22. lt madicatedc bit 3 OVER CO OR 3 4 a TTOFF a F 2 seb indicate D o 5 ELTMASK COMF OVER C AND 3 z B FEIT addr k aa E 9 TMASK SWAF CPR AND Qe NOT 3 10 SCR 49 0 CR SCREEN 693 WORKING VARIAS 6 128 CONS 0 VARIA T ire work with verb literals 3 ECT CAND OJR i Pile gt SCR i T 2 3 F i ART DROF 4 2 RONT mno C seb recer 5 S DFEN 8 AL RON IRCNT rn OFEN 2 B IKWO KWD 32 FILL p AD COUNT KWD ROT MIN CMOVE DATE C sere add record to keyword file 1 DUF IRONT READ EW KEYWORD KWD FLUSH ted count Por AD RENT t Ee auword in record NEF OMON Herrem DG 0 CR SCREEN 71 INDEX MAINTENANCE Loy f 2 true if FAD t SWAF Ce 6 SE g o aapea IELE READ i aml strains gt r for kwd gt SWAF BITON C oee READ kt if defimeds 0 af mot gt ARENT thru keywords wrt toumd or mot D COUNT KWD DROP TEXT C comprare gt SWAF IL SWAF LEAVE THEN a v Listing continued on next page 13 Volume IV No 5 0 bitmer in bytes ANDNOT CORNOT lt Cour INDEXER continued Ro SCREEN 72 INDEX MAINTENANCE 2 Z LISTLIM lt 3 RECSTART 4 DUF KWDZRE ras oe PSLOT rm addr 7 0 SWAF 8 LISTLIM det Limits of Keywords Ho 10 re QVER get kwdt from List amp co it IF SW
23. section for example can be a powerful incentive to get that person working for you I have always wanted to put FORTH on a mainframe I have always thought that a 370 or whatever they re called now with hundreds of terminals would be a challenging environment With the passage of time mainframes have become not only obsolete but uninterest ing We are now in the position where it is probably easier to build the main frames out of minicomputers than it is to program the mainframes A network of microcomputers is cheaper easier to program maintainable fail soft redun dant etc All the good words apply so strongly that I think that the mainframes will quietly rust away in the back rooms while a network of micros quietly take over the real work in the front rooms That s about all I have to say Moderator Any questions Any general questions Audience read in Business Week that many companies are forming what they call decision centers because the con ventional data processing facility has too slow a turn around to be effective in mak ing decisions Do any of you know of this Dick Miller I have a comment We do a lot of business with large companies but very little of it is through their data processing centers What s been happen ing is that every corner of the corpora tion except the data processing depart ment is quietly getting a desk top data processor or some other device that doesn t s
24. the benefits that we ve gotten Now I d like to talk about these bene fits and how they helped the project to be successful Something to keep in mind is that Abacus II is a start up company doing research and development in new fault tolerant techniques The company s financial position was basically very in secure and complicated by the necessity of having to show results to financial people throughout the false starts and dead ends that always accompany R amp D This environment is where FORTH started showing its true colors In this sort of environment what does a com pany really need It doesn t have a pro duct yet so it has no income so what it needs most is money and it has to get that money by impressing financial people with a demo that shows the potential of the company Abacus II spent a lot of time meeting milestones showing con tinual progress to these people by means of demos This approach led to a concept of vertical design and implementation I can best explain this by looking at a tradi tional language first At the beginning of a three year project you do system analysis and way over at the end after three years you release a salable product In between you do specification design coding testing and validation It is a se quential process and it takes the entire life of the project There s no time for er ror If you make a wrong turn near the beginning of the project you may not find out unti
25. there s a big enough market out there to pay for good things Our little applications are optimized to show results on the screen instantly We can t do everything that way but the things that we can do that way are so useful that they have found a market Sometimes we have to trade off that speed for fancier processing or else get fancier hardware but we re willing to do those things If you re looking for an ap plication that will do well find an ap plication that people need and then trade off its capabilities so that 90 of the peo ple are happy about how you traded off If you have an application that you need to develop in two months look around for tools that already exist to help you finish the job If you have trouble get ting started hire some professionals to come in and write the most difficult parts of the job while simultaneously training your group By using this method your group will understand the problem in time to finish the job FORTH works if you handle it reliably and these methods are some fairly reliable cookbook recipes that work Our applications are written in 79 Standard FORTH and if you don t have one of our machines we are happy to sell you the application words that you can pop over into someone else s 79 Standard FORTH So understand what the 79 Standard means when you have a big job to get done on time There s a reason why FORTH has been confusing and part of that reason has
26. what my applicaiton code needs are If the total number of Z s and 9 s is greater than 5 PICTURE will build a word which builds 32 bit input out put handling fields otherwise it will build a word which builds 16 bit input output handling fields Figure 1 shows an example of using my screen handling technique As you can see changing headings for fields changing the position on the screen where input output fields pro cess data changing masks used by fields is very simple Simple screens may be built in 15 minutes while very detailed screens may be built in approximately one hour One final note when you set your mode it remains the same until you change it I e in the word DISPLAY SCREEN HEAD is in effect when all field words are executed Feel free to use this code for personal use Contact us concerning commercial use Our hardware consists of a IBM Personal Computer two Apples three floppy drives and one 10meg Corvus drive Our software development system supports 1 Index files which allow access to any of 1 079 127 records by key in two disk reads Based on 6 byte key and a 16 byte record 2 Direct files which allow access to any of 2 147 483 647 records in one disk read 3 Merge sort package report generator binary overlays head and link stripping vocabulary which stores stripped names and links on disk For more information contact Elmer W Fittery at Inter national Computers 13048 Olive Blvd St Loui
27. 3 g HLOQE 0 CR SCREEN 7462 QUERY LANGUAGE l zZ C index gt C errant verii indexi gt 3 4 3 7 TRATLING TYEE 5 6 t ROEJ kw gt Print keyword name gt 7 ABEJ Q DUF Qs IF 2 SFACES Ss 8 DFEN SWAF KFILE READ KWD TRAILING TYPE 9 an DT OFEN THEN 10 rE es C erint auers that created work 12 DO 13 SPACE I QO0EJ LOOF FORTH Dimensions s glob or my bhe ra THEN en d ne more OPEN QUIT le gt Td gt THEN THEN 409 le gt ta record gt comma ing set 14 0 gt gt BLOCK gt the file The selections here waste very little space on my Micropolis Mod II drive on each 5 25 diskette I have 304 blocks divided as shown in figure 4 It is not necessary to contain the en tire data base on a single diskette as I have done If you have more than one drive you can split the files among dif ferent drives to make more room or to make the keywords file common to several data bases In a bartering ser vice for example the same keyword file could serve both Wanted and Of fered data bases Robert F Cramer suggests that indexing is most effective when this is the case 1 By defining the starting blocks correctly the various files could appear anywhere within your total disk environment A user with a hard disk would need to alter the contents of the various FIBs in the load screens to prevent
28. AF DROF I SWAF LEAVE THEN return 12 2 LOOF DROF SCR 4 73 0 CR SCREEN 733 INDEX MAINTENANCE 3 13 KWD e C uedate all linkages for 1 keswo z OFEN DF ILE DUE 3 TF NO CURRENT RECORD DROF OFEN QUIT PKWD DUF 5 IF NO SUCH KEYWORD 2DROF DUF SLOT is the kwd alreacds 7 IF 2DROF C yess mo further wedatins r 8 ELSE 0 SLOT DUF C may is there room for o 9 NOT IF e TOO MANY KEYWORDS DROF ZDROF 10 ELSE SR DUP R UPDATE NDX 11 THEN 12 THEN 13 OPEN C restore the rreviously oren Pi SCR 74 0 CR BCREEN 74 INDEX MAINTENANCE L KWD remove ail Linkages L heswo Zz OFEN DEFILE RECH DUF Q 3 TF e NO CURRENT RECORD DROP OFEN QUIT 4 PKWD 5 z 5 IF an en NO SUCH KEYWORD ZDROF OPEN UIT as is the kwd already in the lis 7 UF DATE NDX Th a restore the ereviowsly oren fi 10 3 Bees C add n keswords to currersit il 44 TEXT NULL NOT Coch iz WHILE CR PAD COUNT TYPE KWD SCR 75 0 CR C 4 753 INDEX MAINTENANCE F 2 3 TERMS 3 C remove n kevwoards from current record 3 BEGIN 449 T NULL NOT 4 WHILE CR FAD COUNT TYPE KWD K F wd 3 TERMS lt gt C epint keuwords for current date record 7 LISTLIM DG 8 RECSTART DROF C heer date rec im but vi 9 I C get keuword F ec i 10 XLF AFEN KFILE IT READ ii CR KUD TRAILING TYPE 12 THEN 1
29. CK DDR leave address of current record Listing continued on next page FORTH Dimensions 11 Volume IV No 5 INDEXER continued SCR 62 ck N 4623 FILE DEVELOPMENT 2 23 TFIELD UXLDS C create a text field gt leaves file count for DSDHUENFOCNMANAUM AUR SO OVER DUF DOE Leaves create a data leaves file count for addr court field gt this defr gt this defn The data file is the same as in the previous article with one addition the last n positions of the record are reserved for a list of keyword numbers that are associated with the record n leave address 2 x the maximum number of key create a mamed storasde allocation words data record This redundancy 1 starting block im file has speed benefits at maintenance 1 lt mmber of records in file gt time as the bitmapped index has speed 1 DUF B EUF OVER x C butes block d AE T In addi 1 y 0y C bytes records current rect advantages at inquiry time In addi 1 OF EN 3 when file mame is weeds roint to tion the keywords list enables the 15 7S its descrietor block index file to be rebuilt for the data SCR 63 file if a system crash or other mishap 0 CR SCREEN 633 DOUBLE PRECISION ARITHMETIC 24 causes the two files to be out of syn Bei Bs BUS tei eh oe chronization
30. Call Barry Greebel Continental Data Systems 1 Bala Plaza Suite 212 Bala Cynwid PA 19004 TEXAS Austin Chapter Call John Hastings 512 327 5864 Dallas Ft Worth Chapter Monthly 4th Thurs 7 p m Software Automation 1005 Business Parkway Richardson TX Call Marvin Elder 214 231 9142 or Bill Drissel 214 264 9680 e UTAH Salt Lake City Chapter Call Bill Haygood 801 942 8000 e VERMONT ACE Fig Chapter Monthly 4th Thur 7 30 p m The Isley Library 3rd Floor Meeting Rm Main St Middlebury VT 05753 Contact Hal Clark RD 1 Box 810 Starksboro VT 05487 802 877 2911 days 802 453 4442 eves VIRGINIA Potomac Chapter Monthly 1st Tues 7p m Lee Center Lee Highway at Lexington Street Arlington Virginia Call Joel Shprentz 703 437 9218 eves e WASHINGTON Seattle Chapter Call Chuck Pliske or Dwight Vandenburg 206 542 7611 39 FOREIGN e AUSTRALIA Australia Chapter Contact Lance Collins 65 Martin Rd Glen Iris Victoria 3146 or phone 03 292600 e CANADA Southern Ontario Chapter Contact Dr N Solntseff Unit for Computer Science McMaster University Hamilton Ontario L8S 4K1 416 525 9140 x2065 Quebec Chapter Call Gilles Paillard 418 871 1960 or 643 2561 e ENGLAND English Chapter Write to FORTH Interest Group 38 Worsley Rd Frimley Camberley Surrey GU16 5AU England e JAPAN Japanese Chapter Contact Masa Tasaki Baba Bldg 8F 3 23 8 Nishi Shimba
31. ENTER OREM UTAH 84057 ee ARO a ii NOT ERE LE a oa x a AEA A gt E Ioan B01 224 8554 800 321 5906 TELEX 453 168 eee E E AS rere FORTH Dimensions Volume IV No 5 4th FORML CONFERENCE FORTH Modification Laboratory October 6 7 1982 Asilomar California Conference attendees left to right Michael Perry Charles H Moore Glen B Haydon and Michael Stolowitz break FORTH into laughter during a special Asilomar Session devoted exclusively to silliness William Ragsdale explains his proposed vocabulary managment scheme called ONLY to Michael Stolowitz The poster sessions provide an opportunity for one on one discussions of topics presented in the oral presentations Jill and Dick Miller present a poster session on turtle graphics a san Neo Ed Rotberg plays his rendition of Ravel s Bolero which he programmed in FORTH on his Atari 800 for an appreciative Klaxon Suralis FORTH Dimensions gt E 34 Klaus Schleisiek delivers his presentation on WORD Without a Reserved Character Volume IV No 5 THE 4th ANNUAL FORTH NATIONAL CONVENTION October 9 1982 The Red Lion e San Jose California George Shaw of Shaw Labs Ltd displays fancy graphics i running under his own multi tasking FORTH Dr C H Ting left demos his new FORTH system to a prospect John James aeveoper of tne software for Communitree ee Suen EE oo explains how he implemented that
32. EVELOPMENT TOOLS Develop FORTH code for any target No downloading No trial PROM burning 8080 Z80 system on your current 8080 Z80 This port addressed RAM on your S 100 host or Cromemco CDOS based system is the ROM of your target system 8080 Z80 METAFORTH WORD BYTE CROSS COMPILER WIDE ROM SIMULATOR Produces code that may be downloaded to any Z80 or e Simulates 16K bytes of memory 8K bytes for 2708 and 2758 8080 processor Simulates 2708 2758 2516 2716 2532 2732 2564 Includes 8080 and Z80 assemblers and 2764 PROMS Can produce code without headers and link words for up to The simulated memory may be either byte or 16 bit 30 space savings word organized Can produce ROMable code No S 100 memory is needed to hold ROM data 79 Standard FORTH Driver program verifies simulated PROM contents Price 450 Price 495 each CONSULTING SERVICES Inner Access provides you with Custom Software Design We have supplied many clients with both Systems and Application Software tailored to their specific needs Contact us for your special programming requirements FORTH WORKSHOPS ONE WEEK WORKSHOPS ENROLLMENT LIMITED TO 8 STUDENTS FORTH Advanced FORTH Advanced FORTH Fundamentals Applications Systems e Program Design e FORTH Tools e FORTH Internals e Program Documentation e Engineering Applications e Assemblers and Editors e FORTH Architecture e Floating Point e Other Compilers e FORTH Arithmetic e Communications e Cross Compilation The
33. I will have more information next time Robert Smith is the current Secretary of the FORTH Standards Team and was a member of the original FORTH Implementation Team for FIG He is i by ESL Inc in Sue eee JOIN THE APPLICATION MIGRATION e PRODUCE MACHINE TRANSPORTABLE CODE e GENERATE ROMABLE HEADERLESS CODE e FORWARD REFERENCING ALLOWED e PUT FORTH ON OTHER COMPUTERS e PRODUCE EXECUTABLE IMAGE IN RAM OR ON DISK e PRODUCE ADDRESS MAP OF APPLICATION e NO LICENSE FEE OR ROYALTIES ON APPLICATIONS fig FORTH CROSS COMPILERS by NAUTILUS SYSTEMS Apple Atari TRS 80 Model I Zenith and Northstar fig FORTH CROSS COMPILER by LABORATORY MICROSYSTEMS CP M 80 CP M 86 IBM P C and 68000 requires LAB FORTH at additional cost 79 Standard Systems by MOUNTAIN VIEW PRESS C 300 00 tax and 5 00 shipping and handling Apple is a trademark of Apple Computer Inc Atari is a trademark of Atari Computer TRS 80 is a trademark of Tandy Corp Zenith is a trademark of Zenith Radio Corporation Northstar is a trademark of Northstar Computers IBM is a trademark of International Business Machines Inc Nautilus Systems P M 80 P O Box 1098 SANTA CRUZ CA 9506 FORTH Dimensions High performance M68000 HighResGraphics polyFORTH 3e2 That s right The power of poly FORTH 32 has been com bined with the Omnibyte 68000 based system and high resolution
34. IV No 5 THE INDEXER Enhancements to a Data Base Model Robert N Watkins CCP Long Beach California A previous article in FORTH Dimen sions by Glen Haydon 3 presented a good foundation for data base work This article describes the addition of an indexing scheme and query lan guage to that design to implement a specific type of data base optimized for retrieval of data records by keywords The essence of the previous article is contained on screens 61 and 62 The eight FORTH words defined there enable the declaration of a data base file fields within each logical record in such a file and some primitive operations Each file is described by a file infor mation block or FIB which is created by the defining word FILE A FIB see figure 1 holds the starting block number of the file the maximum number of records it may contain the length of a physical record buffer and the length of a logical record several of which may fit into a physical record Invoking the name of a file places the address of its FIB into a variable called OPEN All other access words use OPEN to point to the FIB of the currently open file The word READ places a logical record number relative to zero at the address returned by REC to in dicate which logical record in the file is to be considered current The defining words DFIELD and TFIELD can be used to create words that describe fields within the logical record Invoking th
35. In the example we first choose a working set equal to all people in volved in networking using the SELECT NETWORKING query COUNT tells us that this includes everyone To narrow the search we use AND to require hits to also be into bicycling COUNT now tells us the working set consists of two members and SET lists their record numbers 1 and 4 At this point we can use READ to make one of these the current record and process it in some manner we decide instead to define a new word that will print the record image for all records in the working set This we give the name TELLME and when ex ecuted we get a listing of records 1 and 4 Finally we do another FLUSH before removing our newly updated data base from the drive IMPLEMENTATION NOTE This program was written using A FORTH a version which runs on Z80 8080 systems under Micropolis MDOS operating system You should be aware that tick is immediate in A FORTH and that the block size on the diskette is 1024 bytes REFERENCES 1 Cramer Robert F Understanding Key words for Creative Selective Dissemination of Information Lateral Thinking 6 February 1980 pp 1 6 2 Glass Harvey Functional Programming and FORTH FORTH Dimensions January February 1982 pp 137 8 3 Haydon Glen B Elements of a FORTH Data Base Design FORTH Dimensions July August 1981 pp 45 52 4 Reese Peter A Disk Operating System for FORTH
36. K and ROLL Move QUERY to the Controlled Reference Word Set Clarifications for LOAD CON VERT EXECUTE and BLK For referee consideration Add a new word LEAVES to the Controlled Reference Word Set Add SPAN to Required Word Set Span returns the address of a word holding the number of characters actually received by EXPECT Change meaning of NOT to yield the one s complement of the input argument Move LIST and SCR to the Con trolled Reference Word Set Delete from the Required Word Set Move CURRENT and CONTEXT to the System Word Set Modify text of VOCABULARY and FORGET The integer quotient returned from signed division functions is the floor of the real number quotient The MOD value has the sign of the denominator Name changes U to UM and U MOD to UM MOD In EXPECT one or two nulls might be stored at the end of the text Add the word RECURSE to the Con trolled Reference Word Set FIND and return the compila tion address EXECUTE takes a com pilation address Continued Volume IV No 5 CHANGES continued The word BODY converts a compila tion address to a parameter field address FIND takes a string address and 309B James 310 Patten amp James returns a compilation address and a flag indicating whether the word was found and if so whether the word is immediate 311 Harris A Programmer s Bill of Rights 313 Tenney Labelling requirement for En vir
37. N You can decompile one word or a range of words at one time even the whole FORTH system This decompiled output may be sent by FPA options to the console printer or disk DECOMPILE is useful for look ing up words or for obtaining variations of words by decom piling to disk editing and recompiling ARERR RNR I TEENIE EEN EINE TTT TERETE I NN LE ONE System Requirements FORTH nucleus based on the fig FORTH model or 79 STAN DARD a minimum of 3K bytes and a recommended 13K bytes of free dictionary space For more information call Ren Curry 415 322 1463 or Tom Wempe 408 378 2811 a ee ar eae Yes send me a copy of FORTH PROGRAMMING AIDS including all source code and the 50 page manual O fig FORTH model O FORTH 79 STANDARD specify system 150 150 O Manual alone credit toward program purchase 25 O Send more information O Master Charge O Visa Name Calif residents add 6 5 tax Foreign air shipments add 15 Account Number a Company Street City State Zip Exp Date Indicate disk format O 8 ss sd fig FORTH screens O 8 ss sd CP M 2 2 file O Apple 3 3 O PC FORTH O Other Send to Curry Associates P O Box 11324 Palo Alto CA94306 415 322 1463 or 408 378 2811 FORTH Dimensions 25 Volume IV No 5 A Techniques Tutorial Parameterized CREATE DOES gt Henry Laxen Last time I talked about names and the importance of choosi
38. ND AMOUNT 26 number of each must be preserved lL 6 define action for each scale case To accomplish this I reversed the E ERA eis ERROR KODE E eB BGACE order in which REC and OPEN were ve gt Vou A oe e pa ZN e gt 4 define Te csse Sndcestend e defined on screen 61 Then I redefined 5 OSCALe VARIABLE NSCALE REC in terms of OPEN to return 6 l 1s TK le erecision value accordimst to DFL gt addr 8 of the currently open file s B i SCALE DPL 3 MIN 2 NSCALE EXECUTE 3 FIB Finally I added a zero comma wot MBit Tor gecimal yatia and scale i to the lt BUILDS portion of the defining 19 AMOUNT QUERY EL WORD HERE d FILE k for th d il erint d from stack as and rish astifu in 8 sraces wor to make room or t e TECOT 12 3 SAMOUNT number in each FIB and initialize it to 13 DUF ROT ROT DABS lt 46 HOLD SIGN see as 5 14 36 EMIT DUF 8 SWAP SPACES TYFE zero The FIB layout modification is 15 98 shown in figure 1 This modification to REC illustrates SCR 66 OCR SCREEN 66 BIT MANIFULATION the functional nature of FORTH 2 1 ot SAND from toa court C move while ANDing Recall that a variable leaves on the t eC Le Bo eS SON es de es Ba stack an address at which the data can 3 2DUP I SWAF ae 4 I AND be found The new definition has the 5 OVER I same stack effect interface to other 2 LOOP 2DROF 3 ee 7 i words yet internally is implemented i 20K from t
39. O PACE J 6809 C NOVA O PDP 11 LSI 11 C 68000 O Eclipse J VAX Ordering information Check Money Order payable to MOUNTAIN VIEW PRESS INC VISA MasterCard or COD s accepted No billing or unpaid PO s California residents add sales tax Shipping costs in US included in price Foreign orders pay in US funds on US bank include for handting and shipping by Air 5 for each item under 25 10 for each item between 25 and 99 and 20 for each item over 100 Minimum order 10 Ali prices and products subject to change or withdrawal without notice Single system and or single user license agreement required on some products DEALER amp AUTHOR INQUIRIES INVITED MOUNTAIN VIEW PRESS INC PO BOX 4656 FORTH Dimensions MOUNTAIN VIEW CA 94040 415 961 4103 Volume IV No 5 Letters Helpful Documentation Dear FIG Your correspondent Derek Vair echoed my problems I had recently tried to tread the same path Mountain View press sorted me out very effi ciently and courteously even though by miscalculation I phoned them at 3 00 a m one night I cannot speak too highly of Glen Hayden s All about FORTH It is a work of meticulous scholarship and surely a must for all FORTH novices such as myself Dennis A Larder Saudi Arabia Another 1 4 2 Dear FIG I write to you on behalf of the TO solution For more than two years I ve pro grammed instrumentation s
40. O SWAF 9 ELSE R R gt 2DUP R R 1 Write for our FORTH 10 iF DROP 7 information booklet 11 ELSE DUP 1 ROTZ PADI c 12 THEN ini 5 THEN EMIT OTimin Engineering Co 14 Ca a N QOO 6044 Erlanger St S San Diego FIND gt INSERT CA 92122 714 455 9008 Listing continued on next page FORTH Dimensions 21 Volume IV No 5 PICTURE continued SCR 134 Q 02982 EWF 1 OSTRING ASE CNT DO oe CNT GET STRING FUT HEADER INVERT CRT FLAG 2 4 IF FR THEN FAD MASFK CNT TYPE 5 MASE XY xY DIGIT CNT STRING 6 MASES XY XY FAD MASE SCNT NORMAL TYFE Fi 8 FUT GET STRING FUTSSTRING GET STRING 9 Software Systems 10 presents li 12 MARX FORTH V1 4 13 150 t4 15 For the FIND 6 INSERT gt ATARI RADIO SHACK NORTH STAR DOS SCR 135 CPM oO SCREEN GEN 3 OF S CO92BB1 EWF t O3N7A2 EWF POLYMORPHIC 1 DNUMBER 1 0 O 2SWAF 2 DO KEY 13 OVER Marx Forth is not just another warmed 3 IF DROP I CNT S00 over Fig Forth This 79 83 standard 4 ELSE 48 57 ROT RANGE Forth has been completely rewritten to 5 TF R gt Re 2DUP R gt R 1 include advanced coding techniques not 6 IF OROF 7 EMIT o available in most systems 7 ELSE R 10 DkS R gt 48 M 1 8 THEN Marx Forth package includes i ELSE 8 e Complete source code 10 IF Re 1 O MAX gt R 10 D S e Screen editor 11 THEN e Double number word set ra THEN 3 PICK 3 PICK MASK TYFE 1 e Forth style macro assemble
41. SADENA CALIFORNIA 91107 37 Volume V No eu Purpose In the past decade the Forth programming language has emerged as a powerful too for applying computers However we feel a lack of application oriented information has reduced its general Sa acceptance Recognizing this we have chartered a not for profit corporation to support and promote T Forth and its applications PURPOSE Programs The Institute will sponsor Forth related conferences such as the 1981 and 1982 conferences at the administrative backing from the Institute We will address specific topics in Forth through seminars workshops and lectures like those held this past May in Rochester PROGRAMS We are starting a program of summer student fellowships at universities working with Forth in which the projects will be chosen so as to further a student s expertise in Forth while doing work of interest to the have not had a chance to apply that science within the constraints of industry we are arranging summer internships within companies applying Forth Combination academic industrial internships are also possible and would facilitate the transfer of new techniques between the academic and industrial sectors Bs We welcome suggestions for this program as well as inquiries from companies and institutions interested in sponsoring students community Publications We plan to publish a refereed professional journal whose primary subjects will
42. SFORTH UTILITIES DISKETTE Inciudsa FLOATING POINT MATH BASIC ROM routinas plua Complex numbers Rectan Gular Potar coordinsta conversions Degrees mode more a Powerful CHOSS REFERENCER to list Forth words by biock and line plus TRS 80 a full Forth style Z80 ssaembier or IBM PC cotor Turtis Graphics requires MMSFORTH V2 0 1 drive amp 32K RAM FORTHCOM communicationa package provides RS 232 drivar dumb terminal mode tranater ot fitea or FORTH blocka snd hoat mode to oparate a remote FORTHCOM system re quires MMSFORTH V2 0 1 drive amp 32K RAM 30 05 THE DATAHANDLER a very feet detebase management system operabia by non pragrammers requires MMSFORTH V2 0 1 drive amp 32K RAM FORTHWRITE feet powerful word processor wiessy key strokes Heip screens Menual amp demo flise Full Proportional witabe oufdenting Include other blocke documents key board inpute DATAHANDLER fisids ideei for form iettera requiras MMSFORTH V2 0 2 drives amp 48K RAM 178 00 MMSFORTH GAMES DISKETTE resi time graphics amp board gamee wisource cods Includes BREAKFORTH CRASH FORTH CRYPTOQUOTE FREEWAY TRS 80 OTHELLO amp TICTACFORTH requiras MMSFORTH V2 0 1 drive amp 32K RAM Other MMSFORTH products under development FORTH BOOKS AVAILABLE MMSFORTH USERS MANUAL wio Appandices STARTING FORTH beet THREADED INTERPRETIVE LANGUAGES analysis of FORTH internals PROGRAM DESIGN amp CONSTRUCTIO pro
43. Sat 1 p m FORML Workshop at 10 a m Palo Alto area Contact FIG Hotline 415 962 8653 Orange County Chapter Monthly 4th Wed 12 noon Fullerton Savings 18020 Brookhurst Fountain Valley 714 523 4202 San Diego Chapter Weekly Thurs 12 noon Call Guy Kelly 714 268 3100 x4784 e MASSACHUSETTS Boston Chapter Monthly 1st Wed 7 p m Mitre Corp Cafeteria Bedford MA Bob Demrow 617 688 5661 after 5 p m o MICHIGAN Detroit Chapter Call Dean Vieau 313 493 5105 o MINNESOTA MNFIG Chapter Monthly 1st Mon Call Mark Abbot days 612 854 8776 or Fred Olson 612 588 9532 or write to MNFIG 1156 Lincoiz Ave St Paul MN 55105 MISSOURI St Louis Chapter Cai David Doudna 314 867 4482 NEVADA Las Vegas Chapter Suite 900 101 Convention Center Dr Las Vegas NV 89109 702 737 5670 o NEW JERSEY New jersey Chapter Cail George Lyczs 201 451 2905 eves NEW YORK New York Chapter Call Tom jung 212 46 062 FORTH Dimenmons e OKLAHOMA Tulsa Chapter Monthly 3rd Tues 7 30 p m The Computer Store 4343 So Peoria Tulsa OK Call Bob Giles 918 599 9304 or Art Gorski 918 743 0113 e OHIO Dayton Chapter Monthly 2nd Tues Datalink Computer Center 4920 Airway Road Dayton OH 45431 Call Gary Ganger 513 849 1483 OREGON Portland Chapter Call Timothy Huang 9529 Northeast Gertz Circle Portland OR 97211 503 289 9135 e PENNSYLVANIA Philadelphia Chapter
44. T STRING CFA GET STRING CFA FUT STRING CFA FUT HEADER CFA ERT ACTION STRING SCT LON 139 SCREEN GEN OF amp 6092881 EWF DIBI EWF ACTION CRT FLAG DUF R MASE TYPE IF STRING ACTION ELSE NUMBER ACTION THEN R CRI FLAG t 3 GET COUNT CNT OVER Ca 68 IF 2DUF FE 1 1 D 53 NUM IF DROF ELSE QUIT THEN ELSE ZDUF 1 OVER SWAP DO I Ca 90 I ca 37 OR CNT LOOP CNT THEN STRING FLD OVER Ca 65 140 SCREEN GEN 5 OF 5 092881 EMF O32982 EWF GET TYFE STRING FLDF IF O ELSE CNT 3 iF 1 ELSE CNT 10 THEN 3 z ACTUAL FEEP ADDRESS OF MASE TYPE ARRAY ADDRESS OF HEADER LENGTH OF HEADER Y POSITION HEADER a X FOSITION OF HEADER ACTUAL BUILDS ACTUAL FEEF DOES 7 CRTsARRAY ACTION z MASE ADDR C 26 IF 26 HOLD THEN i i 1F 2 ELSE 3 THEN THEN t 141 oz2rg2 EWF MASK BUILDER MASK TYFE Z MOD IF D THEN MASKER OVER 1 ADDRESS OF MASK DO i ca SFr IF e ELSE Ca 90 IF 2DUF DO IF 7 LEAVE ELSE THEN J ELSE I 1 CJ 70 IF 2DUF DO IF 7 1L000 ELSE I Ca HOLD 2 THEN ELSE I C HOLD 1 THEN THEN THEN LOQF 3 e 142 PICTURE FKEEF GET CQUNT DUF GR GET NUMBER OF Z 9 OR GET TYFE DUF D ALFHA 1 SINGLE 2 DQUBLE 3 TRIFLE IF Re DROF ELSE DROF R gt THEN MASK SIZE lt MASE ADDRESS MASK BUILDER CFA EXECUTE WORD gt PICTURE BUILDS FICTURE
45. TUAL MEMORY makes your RAM act larger Variable number of block butters 31 char unique wordnames use Only 4 bytes in aadar MORE INSTRUCTIONS Add YOUR commands to iis 79 STANOARO pius Instruction set Far more compiete than most Forths single amp double precision arrays string handling clock grephics IBM low res gives B W and 16 color or 200 tint color displey MORE EASE Exceltent full screen Editor structured amp modular programming Word saarch utility THE NOTEPAD lottor writer Optimized for your TRS 80 or IBM with Reyboerd reposts upper ower case display driver full ASCII MORE POWER Forth operating system Concurrant Intarprater AND Compiler VIRTUAL HO for video end printer disk and tape OOM megabyte hard disk available Full or 8088 Assembler sboard 280 Assembler siso available for TAS 80 Intermix 35 to 80 track disk drives 1BM can read writa ang run M 3 disks M 3 can read write ang run M 1 disks THE PROFESSIONAL FORTH SYSTEM FOR TAS 80 amp IBM PC Thousands of systema In use MMSFORTH Disk System n uires 1 anak drive a PAM V2 0 for Radio Shack TR jode 120 88 V2 1 for IBM Persons Computer oo laren Rane AND MMS GIVES IT PROFESSIONAL SUPPORT Source code provided MMSFORTH Newolettar Many demo programs aboard MMSFORTH User Groups naxpensive upgrades to latest veraion Programming etat can provide advice modifications snd custom programs to tit YOUR needs MM
46. Utility reciaims the file you thought you lost when the disk was full 35 BM IS A REGISTERED TRADEMARK OF IBM CORPORATION FORTH 32 QUESTalk PrintPak DiskPak ARE TRADEMARKS OF QAI QUEST RESEARCH INC P O Box 2553 Huntsville AL 35804 m 205 533 9405 Toll Free 800 558 8088 FORTH Dimensions 28 Volume IV No 5 FORTH Standards Corner Summary of Changes in Proposed FORTH 83 Robert L Smith The FORTH Standards Team met in Carmel Valley on October 3 5 1982 A number of changes were made to Draft A the working draft of the proposed FORTH 83 Stan dard The team has instructed me to publish a brief descrip tion of the technical proposals passed at the meeting This summary is given below Due to lack of time and space I will defer more extensive comments for later issues of FORTH Dimensions Team sponsors have received most of the proposals listed below along with others for which no action was taken or which were rejected by the team The following proposals were accepted by the team Prop Author Description 39 Tenney Modify definition of BUFFER and move to the Controlled Reference Word Set 204 Referees The serial number of a glossary definition will indicate the year in which a substantive change was made 205 Referees Expand defihition of DOES gt so that the creation of a new word may use CREATE or any user defined word which executes CREATE 207 Referees Append an M to glossary definition
47. at I have been speculating over the last year about motives It s not clear that your typical manager of a corporate com puter center wants to minimize the size of the program computer and staff while maximizing the program s main tainability and response speed These are things that FORTH is good at He loses at every stage he wants the biggest most expensive installation he can have because that increases his salary stature and influence within the company Rather than saying that s wrong it s necessary to recognize that it s so To try to sell such a person on the virtues of FORTH is foolish To achieve some market penetration it may be useful to divide the business world into large business and small business Small businesses have tradi tionally relied upon their accountants and lawyers to provide the services that a computer now provides FORTH would make it more possible for a com puter to provide those services Never theless it may be more fun or more ef fective to deal with a trained person than with a computer Therefore perhaps even in the small business area FORTH is not good for business If a business has management which is willing to be incompatible with every thing because FORTH really is incom patible with everything else for the sake of economy and efficiency and if that management is willing to innovate and accept the hassle that new computer systems always have then FORTH is an
48. ation of FORTH run time code CALLFINDER finds calling words i e calls to a specific word DECOMPILER generates structured FORTH source code from RAM and inserts program contro words e g IF ELSE SUBROUTINE DECOMPILER finds called words i e words called by a specific word to all nesting levels FORTH PROGRAMMING AIDS enables you to m Minimize memory require ments for target systems by finding only those words used in the target application a Tailor existing words includ ing nucleus words to specific needs by decompiling the word to disk editing and recompiling a Build on previous work by extracting debugged FORTH routines including constants and variables from RAM to disk m Patch changes into existing compiled words in seconds FORTH PROGRAMMING AIDS comes with complete source code and a 50 page indexed manual The DECOMPILER alone is worth a second look This is a true decompiler which converts the FORTH words in RAM into compilable structured FORTH source code including program NFA PFA INTERFRET BEGIN FIND IF STATE J amp IF CFA control words such as IF ELSE THEN BEGIN etc If you ask FPA to DECOMPILE the nucleus word INTERPRET you get the following output displayed on your terminal within 3 seconds 4796 4810 ELSE CFA EXECUTE THEN STACE ELSE HERE NUMBER DFL d 1 IF COMPILE DLITERAL ELSE DROF CCOMFILE LITERAL THEN STACE THEN AGAI
49. ce as efficient as with comparable packages because they spend most of their day typ ing on the numeric keypad and they don t have to look at anything except the work that they are typing in Considera tions of efficiency are important for serious users We have all these packages available as standard packages which run on our standard system which is available on several computers We also have special requests Sometimes that means special hardware sometimes a modification for the pre existing hardware and sometimes it means starting from scratch We find our packages easy to modify because certain building block words can be factored out and changed For ex ample our communications package which normally runs menus at 1200 baud can be easily modified to run 9600 baud on the TRS 80 or over three times that on the IBM PC We ve done some very interesting jobs just moving bits and pieces of these packages around and splicing them together The strange thing is that we can afford to sell the packages complete for less money than we can sell their pieces We re selling popular ap plications The applications cost a lot to make but if we can sell enough of the same application we do OK and the customer does OK The big shortfall of FORTH that I see these days is that FORTH is not being delivered to users with many usable ap plications That s what we ve been trying to do We think that FORTH is good enough and that
50. ch index record This file is maintained by words that establish a linkage between whichever data file record is current and the desired keywords Continued oO CR 4 e Study DE Field Defirnitions F L gep F NAME Name of corbech gt EH 1 C Fhone rember corntact NETWORK Network address of C ineuk and store camtact mame IUERY 1 TEXT FAD COUNT MOVE UPDATE erint name Field gt NAME TYFE mbat ehone w SOUNT abore Ce 1 FAD CMOVE JATE C erint phone field FHONE TY ee ee e Studuy cork os Field cef tras cort twork address COUNT gt NETWORK TYRE Shawty cont d F erint comber BR NAME PHONE NETWC ene add mew data record ba DE 1 DUF RONT YD a L mames horde Es network address APE First load the databace l LOAR 62 OAD J LOAD 64 LOAD 64 LOAD Now load The Indexer s screens t LOADEM B3 66 DO FORTH X LOAD LOOF 3 LOADEM Fraceed base disk amg Cores Ll eser how 1 ALL dores Te ENT 22 N 6i FILE DE 0 VARI DPEN 94 20 DUFF 2 SWAP B C domble feteh gt t LAYOUT leave butes record 2y butes blaack L gt OFEN 4 20 READ C meth records or 30K is made currermrt 0 MAX RUF C 2 Qs IF FILE COR QUIT THEN RECH 2 RECORD Gy e address of m th record LAYGUT MOD OFEN BLO
51. computer conferencing Don Colburn right of Creative Solutions Inc proudly shows off program in the Communications panel discussion his multi tasking FORTH for the Hewlett Packard 9826 Kim Harris left and Henry Laxen relax during a break between presentations FORTH Dimensions i l 35 Volume IV No 5 8080 2780 FIG FORTH for CP M amp CDOS systems 50 saves you keying the FIG FORTH model and many published FIG FORTH screens onto diskette and debugging them You receive TWO 8 inch diskettes single sided single density soft sectored only The first disk is readable by Digital Research CP M or Cromemco CDOS and contains 8080 source I keyed from the published listings of the FORTH INTEREST GROUP FIG plus a translated enhanced version in ZILOG 280 mnemonics This disk also contains executable FORTH COM files for 280 amp 8080 processors The 2nd disk contains FORTH readable screens including a extensive FULL SCREEN EDITOR plus many items published in FORTH DIMENSIONS including a FORTH TRACE utility a model data base handler an 8080 ASSEMBLER and formatted memory dump and I O port dump words The disks are packaged in a ring binder along with a complete listing of the FULL SCREEN EDITOR and the FIG FORTH INSTALLATION MANUAL the language model of FIG FORTH a complete glossary memory map installation instructions and the FIG line editor listing and instructions This entire work is placed
52. conflicts among multiple data bases on the disk Screen 70 contains pre defined fields for the files in the data base RENT is used with record number zero in keyword and data files and holds the current record count of the file KWD is the single field in keyword records RECSTART is used by all files to give the starting address of the logical record The convention of for store and for fetch is used in RCNT RCNT and IKWD A new convention was required to replace the word INPUT in the previous article since we need to update both the keyword and data files directly I use the word NEW KWD to serve as IN PUT for the keyword file and NEW DATA in each data base s load screens to do the same for the data file Screens 71 75 define words used to update the index They require par ticular attention because most of the file switching and other tricky code is found here I adopted a convention that either a word would take respon sibility for saving on the stack which file was open when it started then restore it before leaving or it would ignore such things altogether and operate transparently on the current ly open file The sequences OPEN and OPEN as a matched set indicate that the word will be switching the open file Volume IV No 5 After a user has entered the text of a keyword in conjunction with an in dex maintenance or query word it is placed at PAD NULL checks to see if the string entered i
53. ding the ketchup usage and personnel Who works in the store Is he under 16 years old Is he a high school graduate What skills does he have All of that informa tion is necessary for crew scheduling which can be a major problem since the average store has about 300 employees mostly part time As you can imagine there s a definite need in the marketplace for this product The problem with similar products in the past was simply that the computers didn t work By coming into the market place with a fault tolerant system we should do quite well The total package consists of about 50 applications all written in FORTH This size of project is significant compared with some others that I ve seen I sat down and figured it out and over the last 212 years we ve written roughly 2500 screens of code From the standpoint of a traditional programming environment say a fantastic government data base pro ject in a large COBOL shop this is a medium sized project A project of this sort is quite common in the data processing industry and could have been done in most any language But we didn t do it in just any language we did it in FORTH And because we did it in FORTH we got some benefits that are realistically only available in FORTH Any of these things could have been done in other languages but they never actually would be because it would be too inconvenient Only FORTH and its extensibility would have given us
54. dual bytes Screen 69 contains working vari ables WORKSIZE is a constant that tells how large the current working set is in bytes WORKSET is that working set a bitmap with one bit per data record in the file If a bit is on the associated data record is a member of the subset under consideration WORK holds the current bit within the working set The next four words are used to keep track of the current query that set of commands that created the working set STEPS tells how many commands have been given QVERB and QOBJ are tables maximum capacity 30 entries that store the number of the command given and the number of the keyword involved if any VERBS is a super string that explains what the various command numbers mean for use by QUERY The last three words on screen 69 are the file designations As in the previous article defining a file re quires three arguments the logical record length maximum logical records and starting block number for Continued FORTH Dimensions SCR 67 9 CR SCREEN 673 EIT MANIFULATION 2 13 SNOT from to corre C mover com Lemerrt irns 2 zx DO 3 OVER I 4 OVER r 5 2 LGOF 2DROF rod 7 3 AZ C mn 2An C see ref Eid 8 DUF O IF DROP L 9 ELSE 1 SWAF 0 DO 2x LOGE 10 THEN Ld 12 3 BITMASK itt oitmask C see text P SWAF 7 SWAF AZ 0 EIT MANIFULATION 3 1 as addr bitai
55. e T Now we can process the database for specific keywords ok o SELECT NETWORKING ok COUNT 4 ok ia ok AND BICYCLING ok COUNT 2 ok SET 1 Tok ok QUERY SELECT NETWORKING A 9 ok ok T Make a special purpose word to print hits ok sTELIME FIRST 0O BEGIN NEXT WHILE WORK READ REC REPEAT ok O TELLME JEFFREY SCHWINN 805 555 1212 _ TZA999 MO_TOBE CANE 415 555 1031 OMNI 1031 cCz ok ok FLUSH ok End of Listing FORTH Dimensions 16 each command in FORTH is executed left to right all operators are at equal precedence and are interpreted in the order given Multiple commands can be given on a line if right parentheses are used as delimiters between them SELECT ARTS AND HABITATS is an example of a valid query The next two query words enable a user to process the working set FIRST sets the current bit number in WORK back to zero NEXT returns the record number of the next member of the working set or zero if there are no more COUNT and SET are examples of us ing FIRST and NEXT They interrogate the working set and for each member perform some action COUNT just in crements a tally on the stack and prints the total when done SET prints the record number of each member LOAD DB resets some default values and starts loading the user s data base definition screens USER DB is another null word that can be used to FORGET a data base and load another without having to
56. e rest of the system just worked I specifically checked on this The parts that were just FORTH ran no problems no trouble they just ran Now this is a large complex product and that means that it has a long product life Since it has a long product life it will need to be maintained for years Some people estimate that maintenance costs can be up to 90 of a product s total cost So in order to produce a maintainable system we wrote the system with good style Some critics have characterized FORTH as a write only language but that claim is absolutely wrong These applications are the closest to English of anything that I ve ever seen We didn t use FORTH like a 250 mnemonic assem bler What we did was create English We could take an owner operator of a McDonalds store sit him down to look at the FORTH code and he could read it The high and intermediate level code is written in their terms rather than in computerese or some programmer s terms Basically we did this with factoring one function to a module Probably the best rule of thumb has turned out to be that if you have a comment in a module you throw away the old name and the parentheses and make the comment the new name of the module This quick rule of thumb made readable code The proof of the pudding has been maintenance it s been long enough to see some results Originally we had two schools of thought short cryptic words save
57. e to software houses This package in cludes Marx Forth for all systems we support including the target compilers This allows software to be devel SCR 137 oped for many computer systems simultaneously as O SCREEN GEN 4 OF S co 28R1 EWF 82982 EWF wel as having the most powerful compiler available 1 These applications can be target compiled to run on ali gt PUT N a m Sapt computers for which Marx Forth is available and mar ER PH ue NUMBER 4 WERDER oy i keted without the end user ever knowing it was written a FUT HEADER FUT MASKED in Forth Call for details 4 Marx Forth model license is available for Forth ven 53 PUT DETENUMHER 1 HEADERTPUTSGET dors who want to improve their product or implement TYFE 2 Marx Forth for another machine Call for marketing 7 IF FUT GET DBL incentives 3 ELSE FUT GET SGL COMING SOON Marx Forth for the IBM PC and T THEN 3 Apple and Marx Multi tasking Forth for the larger 10 systems 11 o 12 Perkel Software Systems 13 1452 NORTH CLAY 14 SPRINGFIELD MO 65802 15 417 862 9830 or 417 883 3709 FIND 3 INSERT Consulting Services available FORTH Dimensions 22 Volume IV No 5 Ae es ee CON a 3 10 11 13 14 1S D O pa iA b o ND 0 138 4 OLL2982 EWR gt CRTSACTION BUILDS 4 DQ LOOF DOES SWAF 2 x d2 EXECUTE FUT GET NUMGER CFA FUT SGET NUMBER CFA FUT NUMBER CFA FUT HEADER CFA CRT ACTION NUMBER ACTION FUT amp ZGE
58. e user that a keyword is required after them SELECT sets the current working set equal to the index record of a given keyword AND performs a logical AND with the working set and the index of the named keyword OR does the same thing with the logical OR operation ANDNOT and ORNOT are similar to AND and OR except that they complement the index record bit map before doing the AND or OR Since Continued SCF dk Nie MReEOGVGND LE Be Ree Ei CR 7 QUERY LANGUAGE 2 NONE Come g make workings s WC T WORKSTZE 0 FTL C g gt 4 enst j ig aris 0 at dirne Ll gt Coma kwi Por this verb t data cords 3 ts o QUIT THEN QUIT THEN gt 78 Lo one kewword gt GOR iff seb with kevword gt WORKSIZ work i DLJ T WORKS with NOT of keuword gt AD 3 B QVE ek with NOT of kewword gt EAD N 803 QUERY LANGUAGE 5 erar EOERRSTE oe Lo current pitt to bes OQ WORKH Loita WORKSET Lamit 3 iwit 9 SUNT i NOT EN ZPUE N DRO R OO DO SCLITT 3 Looe xrireg 3 d THEN LOQ THEN N BL QUERY LANGUAGE 6 kL record ts in currerrk set NEX TE WHILE WORK 82 Ck N 82 UTILITY WORDS LOAD DE reset defanwits amp load user s cef ms 16 KWD R NONE DFILE C dumis header to skart user s def ms gt
59. ed with FORTH for a com siderable time Anyone wishing to talk at future meetings please contact Dr Solntseff in Hamilton Ontario Canada at 416 525 9140 ext 2065 FORTH Interest Group At the October 28th meeting of the FORTH Interest Group in Phoenix Arizona Dennis Wilson president of Aristotelian Logicians demonstrated his Full Screen Editor for Disk and Memory The Editor is written com pletely in fig FORTH and was running on a Cromemco 3102 terminal The Editor combines the ability to view and update memory instead of resor ting to dumps peeks and pokes with full screen editing proFORTH COMPILER 8080 8085 Z80 VERSIONS e SUPPORTS DEVELOPMENT FOR DEDICATED APPLICATIONS INTERACTIVELY TEST HEADERLESS CODE IN PLACE COMPILATION OF ROMABLE TARGET CODE MULTIPLE PURGABLE DICTIONARIES FORTH 79 SUPERSET AVAILABLE NOW FOR TEKTRONIX DEVELOPMENT SYSTEMS 2250 Vol V Ma 2 Proect Manageme Vol V No 3 Guest Regional tssue eves Vol V No 4 FORTH Environment Toos 8 amp 1 483 Vol V No 5 FORTH in the Laboratory 10 1 83 Vol V No 6 Looking Back History 12 1 83 MICROPROCESSOR BASED PRODUCT DESIGN SOFTWARE ENGINEERING DESIGN STUDIES COST ANALYSIS ELECTRONICS AND PRINTED CIRCUIT DESIGN PROTOTYPE FABRICATION AND TEST FORTH Dimensions REAL TIME ASSEMBLY LANGUAGE proFORTH MULTITASKING DIVERSIFIED STAFF MICROSYSTEMS INC 213 577 1471 2500 E FOOTHILL BLVD SUITE 102 PA
60. efined onto the STACK we created executes the phrase corre sponding to the number on the stack with P and REMOVEs the pfa from the STACK The code in lines 4 thru 8 illus trate a word which prints out the first nine Roman numerals based upon what is on the stack Notice that we did not have to create a name for each of the 10 cases we simply compiled the code for each case witha C and pair which patched their runtime address into the appropriate slot in the para meter field of ROMAN The DROP on line 8 is needed to remove the incremented parameter field of ROMAN which is still on the stack at this point We could have given it the more impressive name of something like END CASE by defining END CASE DROP Now let s take a look at a slightly more non trivial example in Fig 3 Here we define a word called INFORM which prints a message about a num ber both in Arabic notation and in some other notation which we will specify later In fact parameter 0 of the definition is in charge of printing out the name of the format in which the number is being displayed Parameter 0 is executed by the little code frag ment 0 P on line 5 Thus if we were to execute the line 8 ENGLISH we would get The number is 8 in Arabic and Eight in English text FORTH Dimensions CASES CREATE S n DOES gt Sn 9 1 2 3 4 3 6 7 8 9 Example of use for parameterized CREATE DOES gt A generalized CASE statement
61. ences in the file The basic structure of the defining word can take the data element look it up by say sequentially searching the file and then do something depending on the data element and the result of the lookup Conventional defining words FORTH Dimensions fail for this kind of task since the action to be taken must be specified in the DOES gt portion of the defining word and cannot really be dependent upon the actual data element that was searched for One way to solve this problem is to allow for some kind of parameters other than those passed on the stack inside of defining words That way a defining word becomes a template whose actions can be customized later depending upon your desires and re quirements The idea then is to leave room for some number of parameters in the defining word and then recall and execute them at runtime In Fig 1 you will see a screen of FORTH code that accomplishes this task Let s ex amine it carefully The first word called PARAMETERS allocates space in the parameter field portion of the word being defined and leaves a pointer to the beginning of the parameter field on the stack The next word patches the parameter field that was left on the stack with the parameter field of a colon definition and starts compiling The CFA LITERAL code lays down the code field address of colon The HERE OVER phrase patches the parameter field that was left on the stack and
62. ert L Smith called FORTH 79 Standard Conversion It is available for 10 00 U S from Moun tain View Press We re nat aware of any current move ment on the part of the FORTH Interest Group towards a Standard revision of the model We feel that this is the pur vue of the FORTH vendors One such vendor which not only offers a 79 Standard FORTH but has also placed it in the public domain is Mountain View Press Editor FORTH Dimensions Published by FORTH Interest Group Volume IV No 5 January February 1983 Editorial Production Leo Brodie Publisher Roy C Martens FORTH Dimensions solicits editorial material comments and letters No responsibility is assumed for accuracy of material submitted Unless noted otherwise material published by the FORTH Interest Group is in the public domain Such material may be repro duced with credit given to the author and the FORTH Interest Group Subscription to FORTH Dimensions is free with membership in the FORTH Interest Group at 15 00 per year 27 00 foreign air For membership change of address and or to submit material the address is FORTH Interest Group P O Box 1105 San Carlos CA 94070 Volume IV No 5 FORTH in Business Applications A Panel Discussion Moderated by John Hall 4th Annual FORTH National Convention October 9 1982 Transcribed from tape by Ray Van de Walker John Hall Moderator Welcome to our panel discussion on Busine
63. es as opposed to 32 bit values I want to get into some technical stuff now When PICTURE builds a word the character string proceeding the Continued Volume IV No 5 PICTURE continued word PICTURE is examined to determine whether PICTURE is to build an alpha numeric double or single input out put building word In the case of alpha numeric fields the count for the input output field is determined by looking at the character sequence following the A in our first example it was 20 This specified a 20 byte alpha numeric input output field building word was to be created by PICTURE If A25 was used in place of A20 in example 1 you would have built a 25 byte alpha numeric input output field building word In the case of numeric input output the digits allowed to be input is determined by the number of Z s and 9 s the output window size is defined to allow all digits and all mask characters to be displayed The other problem I had to address was does a word built by PICTURE build words handling 16 bit values or 32 bit values My approach to this problem follows 16 bit values may only display numbers from 0 to 9999 i e I do not handle negative numbers and I do not try to process numbers larger than 10 000 with a 16 bit field handling word 32 bit values may only display numbers from 0 to 9 999 999 999 again no negative numbers Not handling negative numbers and numbers above 9 999 999 999 is only a matter of
64. ese words will cause the disk block containing the current record to be loaded if needed and return the starting address of the field within the disk buffer Words created with TFIELD also leave a count on the stack for use by words like TYPE and CMOVE Given the basic file development words above it is possible to construct STARTING BLOCK pfato Poo oo oa Teo Io oa Figure 1 File Information Block addr 0 addr 1 original design Precompiled FORTH and electives blocks APPLICATION File Development Bit Manipulation Index Maintenance Query Language Utilities USER DB User s Definitions Figure 2 Dictionary Layout addr 2 o 123 4 6 7 48 9 10 1112 13 wisisat a 3 Figure 3 Bit number designations 303 RESERVED User s Definitions Load Screens Keyword Pile Index File Data File 10 37 252 Figure 4 Example Diskette Allocation FORTH Dimensions 10 Volume IV No 5 many different visions of a data base The Indexer is merely one such vision My purpose was to find a way to cross reference data records under several subject headings and be able to con duct queries to extract subsets of the file For example if I ran a clipping service and found an interesting arti cle on bicycling I would want to be able to quickly find out which of my customers would be interested in a copy The goals were 1 fast response time on reasonably comp
65. ething special and data dependent if an error occurs You can use parameterized defining words to help you out in those situ ations 27 Next time we ll explore the how and why of compiling words and look at some non obvious examples of how to use them We can use compiling words to change the syntax of FORTH and create special compiling structures in ways totally different from defining words Until then good luck and may the FORTH be with you Henry Laxen in an independent FORTH consultant This is the first anniversary of his Techniques Tutorial column and we personally think it is an excellent series Thank you Henry for your continuing con tributions Editor 0 Volume IV No 5 IBM PC SOFTWARE FO RTH 3 gM allows access to all of the PC memory using intermixed 16 32 bit addressing Screen editor assembler decompiler debug graphics CASE and DOS interface Package Builder Utility produces compact marketable software 150 Floating Point Library Software or 8087 50 QUESTalk Asynchronous Communications connects your PC to other computers Menu driven with help feature terminal or local mode UPLOAD DOWNLOAD file transfers Multiple BAUD rates 45 PrintPak alows customized printouts via menu driven selection of page headers line numbers character type time date and more 45 DiskPak recovers erased files prints views and modifies sectors and more 35 Edlin Recovery
66. etitive re use of subroutines The routines for adding and subtracting dates are an excellent example of routines whose re use saved much repetitive coding In BASIC the date routines had to be re written for each application By re using one set of date routines I was able to save much time in debugging Any savings of time is very important because besides writing the program time is my worst enemy I receive my final tax law proofs in late November and I must have my program written de bugged and documented by January 1 When I was trying to meet this time schedule in BASIC I found that it re quired several programmers In FORTH we are able to update not only the program but also our documen tation which is also written in FORTH In our documentation we felt that a pic ture is worth a thousand words so many of our screen displays are also re used to FORTH Dimensions produce illustrations In FORTH we were able to re use both our screen displays and input sheet codes to pro duce camera ready copy for our printer This procedure saved me many hours of cut and paste work and saved me from needing to use someone else s word pro cessing program Essentially my docu mentation is now a FORTH program With FORTH I am now able to read my programs a year later I have been able to reduce my program modification period because my routines have mean ingful names now instead of numbers I believe that what I am doing does not e
67. ever type 941 without meaning that particular report I hate to write off the large business world because there is a lot of fun to be had by solving the many corporate pro blems that occur One of my day dreams has been to reprogram IBM s corporate books I think that they could probably be placed on a minicomputer with im proved throughput and greater executive confidence in the results I think that the project would be about one man year Of course I ve just been hanging back waiting to be invited laughter but I no longer think that it will happen There have been a number of large ap plications that have been done in FORTH Any start up application that will run on a dedicated stand alone machine is a good candidate for FORTH because there s no installed conservative attitude Big inventory systems have been done in FORTH banking systems have been done in FORTH accounting systems stock market back rooms even hospital systems There s no reason to fear a large ap plication the tools for handling a large application are more available in FORTH than in any other language The challenge is to implement these applica tions with fewer programmers than they would otherwise require Programmers will have to handle larger parts of the program but this should lead to happier programmers Programmers like to solve significant parts of a problem Letting a person handle the entire accounts receivable
68. finally the 2 increments the parameter field to the next one to patch One note of caution here the FORTH that I am using is Starting FORTH compatible and EX ECUTE operates on parameter fields PARAMETERS HERE SWAP 2 ALLOT Cs tS n n S COMPILE EXIT CREATE STACK s INSTALL HERE isa STACK 2 OVER REMOVE S 2 STACK P Sn 2 STACK 2 2 Qo i 2 3 4 Ss 6 7 8 9 C 7 CFA 3 1 LITERAL COMPILEJ 10 ALLOT Push onto the STACK gt a H not code fields If you have a FIG or FORTH 79 system you should move the HERE word to the very beginning of the definition before the You will then be patching in code fields rather than parameter fields It s a little detail that will cause your system to crash if you leave it out otherwise there are no serious consequences Next C ter minates a code segment begun with C and resumes interpretation The next three words are actually used inside the DOES gt part of the CREATE DOES gt word to set things up and perform them INSTALL should be used right after the DOES gt word to push the parameter field of the defini tion onto the STACK REMOVE is used to pop the STACK and should be included everywhere in the DOES gt part where we exit from the definition Finally P is used to execute a particular para meter from the currently installed parameterized CREATE DOES gt word Why you may ask did I go through the
69. ged standardized package A client pays us by the hour for a different level of service For our clients we maintain a listing with the modifications from the standard package marked in green If the modification is small it fits in our stan dard blocks If the modification is large then the standard block loads the modification from somewhere else and the load is marked in green Large modifications also have a beginning block which has a little code and a lot of text We can usually find out very quick ly what differences our client s systems have I suppose though that the real trick is not to customize unless you need to The way to do that is factoring Factor out the parts which remain unchanged from the standard utility Moderator Thank you Dick Our next speaker is Marvin Benedick of Soft Tax Benedick I d like to give some back ground about my company As the name implies I write an application that s used by commercial tax preparers My pro gramming experience has been 5 years with North Star BASIC and 15 months with FORTH My application has about 25 sub programs 500 fill in the box style in puts and 100 supporting screen displays The application is fairly large but very repetitive because it fills in tax forms FORTH excels in this repetitive string and number handling environment In BASIC the program was 350K In FORTH its size was reduced to 140K This 210K saving was largely caused by the rep
70. graphics from Ikier Technology You get big sys tem performance at micro prices The standard system includes a 10 Mhz Motorola 68000 with the FORTH operating system The base system also has 128K bytes of RAM expandable to 16M bytes Witha single interface board you can connect to disks a Centronics printer a realtime clock and 48 lines of parallel 1 0 Need file storage The standard Omnibyte system has a 1M byte floppy and a 20M byte hard disk You have this and more High resolution graphics makes the picture complete The Ikier HRG Display Controller gives you hardware vectors arcs pan scroll and zoom There are two megapixels of display memory on a single board with a built in DMA function for image transfer For color multiple Ikier boards can be configured to give up to 256 colors from a palette of 2 4 with two overlay planes Graphics goes FORTH It s the realtime thing polyWFORTH 32 At your disposal you have a full 32 bit system with multitasking an un limited number of partions 32 bit wide stacks and real time functions Data base support includes direct ran dom sequential and indexed files For graphics there are easy to use graphic commands and you can software define the CRT you are using The best news about our system is the price To find out more and get a quotation call Randy Cochran Omnibyte marketing manager at 312 231 6880 Or if your inter est is just graphics call Larre Nelson Ikier Tech
71. gremming good for Fort FORTH 79 STANDARD MANUAL officisl reference to 7 STANDARD word set etc LALE h FORTH SPECIAL ISSUE BYTE Magazine Aug 1980 A col lectore item for Forth users end beginners 34 00 ORDERING INFORMATION Software prices include manuels end require Bloning ot a singie computer licensa for one parson support your hardware Add 2 00 plus 3 00 per MMSFORTH and 1 00 per additional both jeas orders add 5 tax Foreign orders add 20 UPS COD VISA and M C accepted no unpaid purchase orders or refunds Send SASE for free MMSFORTH information Good dealers sought Get MMSFORTH products from your computer desler or MILLER MICROCOMPUTER SERVICES 61 Lake Shore Road Natick MA 01760 617 653 6136 FORTH Dimensions where readability is paramount you shouldn t use them They should not be removed from the language because they are useful but their use should be minimized when the code will be read by non programmers It is almost always possible to arrange the FORTH words that describe an ap plication in such a way that the words form meaningful English sentences FORTH gives you a great deal more freedom in doing things than almost any other language For example in my business package I have a word called 941 which generates the form for a 941 tax report Fortran would never allow such a subroutine name Some how I feel that no one using that applica tion will
72. in the public domain in the manner and spirit of the work upon which it is based Copies may be distributed when proper notices are included USA Foreign AIR T Above described package esecsssesoassseoo 50 60 lf Printed 280 Assembly listing w xref 15 18 Zilog mnemonics o Printed 8080 Assembly listing e ssesoseessoo 15 18 TOTAL Price includes postage No purchase orders without check Arizona residents add sales tax Make check or money order in US Funds on US bank payable to Dennis Wilson c o Aristotelian Logicians 2631 East Pinchot Avenue Phoenix AZ 85016 602 956 7678 THE FORTH SPECIALISTS COLORFORTH AND PCFORTH Quality figFORTH compilers need not be expensive COLORFORTH is a version of figFORTH for the TRS 8O Color Computer It requires a minimum of 16K but does not require Extended Basic COLORFORTH has been customized for the Color Computer with special DUMP and PRINTER functions and a CSAVEM command for those owners without Extended Basic When you purchase COLORFORTH you receive both cassette and RS disk versions and the figEDITOR This means no added expense when you upgrade your system Complete Both cassette and RS disk versions with extensive manual JUST 49 95 PCFORTH is FORTH tailored for the IBM Personal Computer You receive all the outstanding qualities of standard figFORTH compiler and editor plus several additional words to customize it for
73. l customer verification three years later Volume IV No 5 What you do in vertical design and im plementation is that you slice your pro ject vertically Then you implement a very high level design and bring in the financial people and say Look this is what we re trying to do Then these people can sit down and interact with a live system They can touch the screen call up dummy forms and generally see what we re trying to do We were able to gradually replace the simulation stubs by increasingly detailed operational code At each milestone we were able to give a demo consisting of ac tual code that would be part of the final system We weren t just writing demos we were doing useful programming as well After about three weeks we had something that we could show Now this could be done in other languages but it s just not convenient In this sort of environment you can sit down with a customer and find out is this feature good this looks fine that doesn t and so forth On the next pass he might say Wow you fixed that but it s not what I meant What I really think would be better would be this You just keep iterating until it s right We even changed computers in mid stream Just the other day we finished moving the code from a 6502 to a Z80 system This is the benefit of standardiza tion After we factored out the terminal drivers and some other peripheral dependent code th
74. le AL 35804 800 558 8088 205 533 9405 FORTH 370 FOR LARGE IBM COMPUTERS FORTH 370 is a fig FORTH adaptation for IBM 370 43X1 303X 308X and equivalent computers It runs under VM CMS or MVS TSO to give an office mainframe the power and flexibility of FORTH with program compatibility to micro fig FORTH systems FORTH 370 is complete with a Reference Manual Editor Assembler and a Library of Utilities FORTH 370 disk files are compati ble with and can be accessed by the host operating system For example in the CMS version either the CMS editor or the FORTH editor can be called from FORTH 370 to edit screens Single and double numbers are 32 and 64 bits respectively FORTH 370 is available on 1600 or 6250 BPI tape for the introductory price of 1 350 00 Specify CMS or TSO Maryland firms add 5 sales tax Ward Systems Groups 8013 Meadowview Drive Frederick MD 21701 CURRY ASSOCIATES ANNOUNCES SOURCE INDEX SOURCE INDEX is a software routine to aid in the development of large FORTH programs Written in high level FORTH it interprets the source code and collects the names of newly defined FORTH words The program output consists of an alphabetical list of word names the defining word e g VARIABLE the word s location in the source code screen and line number and a count of defined words An unusual feature of this routine is the ability to detect a new defining word e g ARRAY and the objects of this defining word
75. lex queries 2 reasonable response time on file maintenance and 3 tolerable use of disk space The method I chose is based on a manual method of indexing using optical incidence cards 1 Num bers are assigned to the keywords and the appropriate numbers are punched into each card By superimposing cards and holding them up to the light matches can be spotted The Indexer uses bitwise logical operations to superimpose index records and bit testing to hold them up to the light Each Indexer data base consists of four disk areas which are load screens keyword file index file and data file Think of a little kid L KID to remem ber them The load screens contain the user s definitions of fields in the data base see screens 27 and 28 of the previous article Also any words to manipulate those fields such as REC to list the con tents of the current record could be contained here The keyword file contains the sub ject terms that are to be used in index ing In the version contained in this article each can be up to 32 characters long and have embedded spaces The keyword file is updated much the same as any other file The index file is essentially a bitmap for each combination of keyword and data record there exists one bit which is set to one to indicate a relationship or left zero to show no relationship For each keyword there is a correspon ding index record For each data record there is a bit in ea
76. memory and long English names will make maintenance easier The cryptic code had to be thrown out The English code is being maintained by junior level programmers who in my ex perience could not have done the job in other languages These are some of the benefits of using FORTH There s one more key point that has proven to be very important When we first started we had some experienced programmers but mostly we had junior level programmers We had very few pro grammers who had ever used FORTH We had Kim Harris come in and give a class in FORTH By giving the class we eliminated the learning curve that nor mally goes with making full use of the features of FORTH Because FORTH is different there s a learning curve Lear ning curves are expensive This course eliminated that expense FORTH was just a marvelous language to work in immediately I can heartily recommend that if you plan a large pro ject get your programmers educated So in summary I d have to say that for commercial applications FORTH is the only language for me Moderator Do we have any questions Audience Are there about 50 modules in your application Derick No there are about 50 applica tions the number of modules is larger than that and still growing Audience You say that you ve targeted McDonalds as the market for your system Do owner operators have the freedom to buy directly from you or do you have to sell these systems to the
77. miliar with calculator style input By typing HEAD PROPERTY COST the cursor is positioned to row 0 column 8 and the heading is typed out By typing PUT PROPERTY COST the HEAD function is per formed the double number 32 bit value is masked ap propriately then displayed By typing GET PROPRTY COST the HEAD function is per formed input from the field is commenced Every time a key 0 9 is pressed the new value is displayed properly for matted The number of Z s and 9 s used when building 2DOLLAR specify the maximum number of digits to be in put Exceeding this limit will cause a bell to sound When you press the return key a true flag will be placed on the stack above the double i e a 32 bit value if input was done otherwise a false flag will be placed on the stack By typing PUT amp GET PROPERTY COST the PUT function is performed followed by the GET function If the PUT amp GET causes a false flag to be placed on the stack the original value displayed by the PUT function will be redisplayed In all other respects the PUT amp GET function is the same as the GET function EXAMPLE 3 Define an input output field for area codes It is to be of the form 999 where 9 specifies a hard digit The field is to be on row 10 starting at column 35 SOLUTION 999 PICTURE 16DIGIT 35 10 AREA CODE 16DIGIT AREA CODE AREA CODE functions the same as PROPERTY COST except it handles 16 bit valu
78. ng them care fully We also looked at an example of how the STACK data structure can be handy and that there is no require ment for naming stack operators with little arrows attached to them This time we will see another example of where stacks are a useful data struc ture and the names we will choose for the stack operators again will not have little arrows attached to them Also we ll tie in some of the CREATE DOES gt concepts we learned in the previous three articles If CREATE DOES gt is still mysterious to you I strongly suggest you reread the three article series on defining words and get comfortable with them Let s review defining words philoso phically One way of looking at them is that they are a mechanism for build ing small custom compilers By using defining words you can specify both the compile time and the run time behavior of subsequent words This gives you incredible flexibility but occasionally you want even more That is where what I call parame terized defining words come in Sometimes you may want to create a defining word that has a general struc ture that is always the same but some of the details may change depending upon what happens For example sup pose you had a defining word that defines words that look up something in a file and do one of three things depending upon whether the data ele ment was missing in the file uniquely present in the file or had multiple occurr
79. nology marketing manager at 617 275 4330 31 Volume IV No 5 NEW PRODUCT ANNOUNCEMENTS FORTH ON SANYO The Software Works announces the release of Software Works FORTH Level I for the MBC 1000 2000 and 3000 computers of Sanyo Business Systems Corporation Software Works FORTH is a fully documented well supported enhanced 79 Standard version of the FORTH programming language Level I a basic system that resembles fig FORTH retails for 95 00 Software Works FORTH uses CP M for file handling and disk input output for sharing data files and disk storage with other languages and application programs Features include a fig style line editor a full block editor a versatile modular assembler a generalized interface for character I O devices a stack practice aid and a collection of utilities for copying and deleting FORTH screens terminal independent input and output simultaneous output to several devices and volume spanning Level II a more comprehensive version of Software Works FORTH is also available for 179 The Software Works 1032 Elwell Court Suite 210 Palo Alto CA 4303 415 960 1800 TRS 80 COLOR FORTH COLOR FORTH for the TRS 80 Color Computer 6809 is now available from Hoyt Stearns Electronics Prices are 58 95 for the RAM version and 123 00 for the ROM version the RAM version Included with the ROM are instructions for installing it in the disk controller or it will work in a ROM cartridge
80. o count move while Ring quite differently to extend the concept E ii N L SWAF of the current record 11 I OR Screens 63 65 are the date and dollar ie a eee conversion routines from the previous 2 thOOr DROF 5 14 article No changes were made 15 38 FORTH Dimensions 12 Volume IV No 5 Screens 66 68 contain bit manipula tion routines gt AND gt OR and gt NOT are designed to be similar to the 79 Standard MOVE in that they move 16 bit cells at a time and take three argu ments from the stack from addr to addr and cell count But a funny thing happens on the way to the to address the desired logical opration is per formed bitwise on the cell An excellent article in Byte magazine about a disk operating system 4 inspired the bitmap words that follow A 2 carat two or upar row two raises 2 to the top of stack power BITMASK takes a given bit and produces the mask required to test that bit if the bit number is greater than seven the address on the stack is also adjusted to point to the correct byte ad dress containing the bit See figure 3 for bit designations BITON and BITOFF do exactly that turn a given bit on or off BIT returns the status of a given bit Specifying both an address and a bit in these three words gives flexibili ty You can number bits from the start of the logical record or restrict the bit numbers to the range 0 7 and work with indivi
81. on 2 For 2 80 CP M 1 4 amp 2 x The complete professional software system that meets amp NorthStar DOS Users ALL provisions of the FORTH 79 Standard adopted Oct The complete professional software system that meets 1980 Compare the many advanced features of FORTH pe p ALL provisions of the FORTH 79 Standard adopted Oct 79 with the FORTH you are now using or plan to buy 1980 Compare the many advanced features of FORTH FEATURES OURS OTHERS 79 with the FORTH you are now using or plan to buy FEATURES OURS OTHERS 79 Standard system gives source portability YES AM9511 compatible FORTH 79 V 2 requires 48K amp 1 disk drive ENHANCEMENT PACKAGE FOR V 2 Floating point amp Hi Res turtle graphics COMBINATION PACKAGE CA res add 6 tax COD accepted MicroMotion 12077 Wilshire Bivd 506 L A CA 90025 213 8214340 Specify APPLE CP M or Northstar Dealer inquiries invited Professionally written tutorial amp user manual 200 PG 79 Standard system gives source portability YES Screen editor with user definable controls YES Professionally written tutorial amp user manual 200 PG Macro assembler with local labels YES Screen editor with user definable controls YES 2 Virtual memory YES Macro assembler with local labels YES e Both 13 amp 16 sector format YES Virtual memory YES Multiple disk drives
82. onmental Dependencies 314 Tenney New wording for KEY and EMIT to allow environmental dependencies Referees may clarify 315 Currie Clarification of DO loop nesting levels 317 McNeil Return Stack Restrictions String Maximum string lengths are 255 for Subteam and ABORT Delete last phrase in the definition of COMPILE String Clarification of WORD Subteam Referees to define limitations of PAD use Referees to clarify USER variables Referees to resolve discrepancies of and Referees to correct wording of CONVERT Referees given discretion of place ment of words in layers Referees to give text on warning on the use of TIB The team has requested Bill Ragsdale to resubmit pro posals 274 and 275 in proper form to be accepted as Experimental Proposals Proposal 274 suggests that vocabularies be non immediate Proposal 275 deals with the ONLY concept for search orders Proposal 216 was tabled awaiting action by the Subteam on Strings headed by Don Colburn This proposal deals with in line argu ments The following proposals were considered but failed to pass by the required 2 3 of the voting members present 213A 213D 215 255 274 279 283 1 289 290 295 297 298 303 Two unnumbered proposals also failed to pass One suggested that PAD be moved to the Reference Word Set and the other would have changed UM MOD to divide a 31 bit number by a 15 bit number
83. ory e Control Structures e Sorting amp Searching e Romability Multitasking e Input Output e Project Accounting System Timesharing e The Vocabulary Mechanism e Process Control e File Systems e Meta Defining Words e Simulations Database Systems OCT 4 8 NOV 8 12 NOV 15 19 OCT 11 15 JAN 3 7 FEB 7 11 FEB 14 18 JAN 10 14 395 Incl Text 495 Incl Text 495 Incl Text Instructors LEO BRODIE GARY FEIERBACH and PAUL THOMAS For further information please send for our complete FORTH Workshop Catalog Inner Access Corporation P O BOX 888 BELMONT CALIFORNIA 94002 415 591 8295 FORTH Dimensions 18 Volume IV No 5 A PICTURE Worth a 1000 Words Elmer W Fittery International Computers St Louis Missouri This article describes a set of words which we use to create user friendly video display screens for data input and output in business applications The general defining word PICTURE creates classes of data structures e g alpha 32 bit dollar amounts etc The name of each of these classes is also in turn a defining word which creates individual fields of that data type with a specified location on the screen and a specified text description Let s look at some examples EXAMPLE 1 Use PICTURE to build an input output field for names of real estate companies you contact concern ing buying beach front property Assume names are less than 20 characters in length Input output is to occur on r
84. other kind of applications We have a data base system that s rather well known It trades off large rela tional data base capabilities for real time results It s very powerful and we think that it s the best professional tool for over half of the real world professional ap plications We know it isn t for the other portion the applications which must answer big fancy questions in one shot When we need more capability we customize it in as do others who buy the package from us We have a word pro cessor called ForthWrite and I like it a lot We ve used it for many manuals and we re pleased with some of its new tricks one of which is to take data from DataHandler the data base package and turn out customized form letters If you want you can list all of our Congressmen and send them customized letters like they send to you We have a general ledger package that out performs the minicomputer packages that we analyzed for the company that consulted us for advice on which package to buy We next got the rights to move the Osborne accounting package into FORTH We weren t smart enough about accounting so the accountants who worked with us threw us and the package out on our ear and we had to come back with a package that worked We had to stop thinking like program mers and find out what the job really was and then come back to it as program mers Our system is very fast and it makes the people who use it about twi
85. ound quite like a computer It allows them to get their answers in an half hour instead of two weeks later The smart data processing organizations are beginning to talk to us Often they seem to figure out a system where the little computer talks to the big computer leav ing the big computer more free for the large tasks and eliminating many of the complaints Audience Why do you think FORTH is particularly well suited to distributed processing Charles Moore There are two reasons First much of distributed processing consists of a large number of simple tasks FORTH is usually very good at pro viding large quantities of simple things Whether the system consists of many tasks running on a single computer or even more tasks each with its own copy of the machine and software is only a small difference The other reason is that FORTH is very very good with com munication protocols of all kinds A sim ple serial communication usually only re quires two lines of code at each end Layered protocols node addresses and other such complexities are usually handled rather nicely by FORTH and very poorly by the only other language which can handle network communica tion namely assembly language Moderator Well our time has run out Thank you gentlemen Moderator John Hall is a FORTH consul tant in the Oakland California area O Volume IV No 5 we FORTH 79 FORTH 79 Ver 2 For your APPLE II II Versi
86. ow 5 column 0 SOLUTION A20 PICTURE 20ALPHA 05 COMPANY NAME 20ALPHA COMPANY NAME The solution is a two step process First we used the word PICTURE to build the word 20ALPHA The A in the string preceding PICTURE specifies the word built by PIC TURE will build alpha numeric input output fields The 20 following the A specifies allow for input output of 20 bytes After building 20ALPHA I build the actual input output field COMPANY NAME Now let s use this mysterious word COM PANY NAME I built with 20ALPHA By typing HEAD COMPANY NAME your cursor is posi tioned to column 0 row 5 and the field heading for the word COMPANY NAME i e COMPANY NAME is typed By typing PUT COMPANY NAME your cursor is positioned to column 0 row 5 and the field heading for COM PANY NAME i e COMPANY NAME is typed Subsequently text in PAD for 20 characters is typed By typing GET COMPANY NAME the cursor is positioned to column 0 row 5 and the field heading for COM PANY NAME is typed 20 spaces are typed in inverse video following video the cursor is positioned to the first posi tion of the inverted video field Input may then proceed until the inverted video field is filled If you try to input too many characters a bell will sound To specify you are finished with input press your return key The return key is that key which responds with 13 when you execute KEY If data is entered it is placed at PAD and
87. plementations include documentation of the differences between it and other CPU s and computers Te a FORTH DISKS FORTH with editor assembler and manual O APPLE IWll by O PET by FSS 90 MicroMotion 100 TRS 80 1 by Nautilus APPLE II by Kuntze 90 Systems 90 ATARI valFORTH 50 6800 by Talbot CPIM by MicroMotion 100 Microsystems 100 CROMEMCO by Inner 6809 by Talbot Access 100 Microsystems 100 HP 85 by Lange 90 Z80 by Laboratory IBM PC by Laboratory Microsystems 50 Microsystems 100 8086 88 by Laboratory Z NOVA by CCI quad Microsystems 100 floppy 100 VIC FORTH byHES VIC20 cartridge 60 Enhanced FORTH with F Floating Point G Graphics T Tutoriat S Stand Alone M Math Chip Support MT Multi Tasking X Other Extras 79 FORTH 79 Z APPLE H M by Micro Motion F G amp 79 140 2 ATARI by PNS F G amp X 90 CPIM by MicroMotion F amp 79 140 Apple il i GraFORTH by Insoft stand alone graphics 75 H89 Z89 by Haydon T amp S H89 ZB89 by Haydon T 175 IBM PC PolyFORTH by FORTH Inc F G S M MT amp X 300 Multi Tasking FORTH by Shaw Labs CP M C Data Base x amp 79 395 Management 200 CROSS COMPILERS Allow extending modifying and compiling for speed and memory savings can also produce ROMable code Requires FORTH disk EJ CP M i H89 Z89 CI TRS 80 300 L Z80 300 l Northstar 300 El Apple Wil 300 L fig FORTH Programming
88. product In this system everything is written in FORTH the operating system the fault tolerant code the utilities the data FORTH Dimensions base and the applications The system has two basic functions The first is the point of sale portion which is what you see the clerk using to enter your order The point of sale portion is used to han dle the on line functions such as cash coupons gift certificates what products are sold and any other things that nor mally occur up front during a sales transaction The data from the point of sale func tion is used by the other major portion of the system the manager function The manager function is a very friendly in terface between the managers who are unsophisticated users and the com puter s applications In real life the user may be a 14 or 15 year old kid who was told to do something by the manager So what we have is a pressure sensitive transparent touch screen over the face of the CRT which displays standard McDonald s forms with which the users are supposed to be familiar The total system handles inventory usage of ingredients wasted materials a cook may drop a hamburger shipments in shipments out transfers ordering projections How much did the store use last week How much last year at this time of the year a very comprehensive statistical package for the mother cor poration McDonalds tracks all materials to four decimal places even inclu
89. r 13 IF DROP THEN PUT MASKED e Standard Marx Forth extension word set 14 THEN Extensions include 15 LOGP CNT 2 IF 1 ELSE DROP THEN o CNT Case e File system e Arguments Results e Disk directories FIND INSERT e Printer controt e String word set e Cursor control e Recursion Internal advancements include Links in front of names SCR 136 e Fast math i oL129B2 EWE No names on internal words 1 FUT GET SGL FUT HEADER INVERT CRT FLAG IF 0 THEN DUF FUT MASEED DIGIT CNT 2NUMEEK IF DROF SWAF DROF 1 OVER ELSE SWAP SHEN NORMAL FUT FUT MASEED e Super fast compiler e New 83 standard circular DO LOOP DO LOOP executes O times if arguments are equal LEAVE leaves immediately Multiple WHILEs Vocabulary trees without vocabulary links Compiler security oy 1 byte relative branches for conditionals 9 FUTTGET DEL FUT HEADER INVERT Smart CMOVE 10 CRT FLAG 2 IF 0 THEN 2DUF Machine code where it counts 1i FHT MASKED DIGIT CNT JNUMBER 12 IF 2SWAF 2DROF 1 3 FICK 3 FICK All Marx Forths are compatible and most code 13 ELSE ROT written on one system will run on any other with no 14 THEN NORMAL FUT PULSMASKED medifications E RST Also available the Marx Forth target compiler This 7 allows your program to be compiled into a stand alone FIND INSERT object file that doesn t need Forth in the system to run RER The Marx Forth application software development system is availabl
90. reload the Indexer The case study included with this article is an index of resource persons their telephone numbers and compu ter network addresses Starting with a newly formatted diskette with all binary zeroes in each block the defini tions shown were typed onto screens 1 3 using a FORTH text editor Then the Indexer was loaded In the sample session a FLUSH is first done to end off processing the pre vious data base if any Then LOAD DB resets some variables and loads the user s data base definitions Next the keywords file is opened by the word KFILE and NEW KWD is used to enter the keywords that will be describing data records in this data base This only needs to be done at the beginning or when additional terms need to be defined Four terms are defined in the sample BICYCLING BRAIN MIND COM PUTERS and NETWORKING Data records are then added to the data base using the word NEW DATA After each record is entered the key words applicable to it are entered via TERMS In the sample a total of four people are entered into the data base with a variety of interest keywords Volume IV No 5 associated with them TERMS could have been used to remove a keyword from a particular data record to cor rect errors or reflect a change TERMS could have been used to check which keywords are defined for the current data record Once a data base exists we can use the query language to extract a subset of it
91. s MO 63141 314 878 3228 D Figure 1 Ag FICTURE ALO PICTURE ARs PICTURE AZO FICTURE ASS PICTURE 2 222 229 99 PICTURE 1999 PICTURE 999 9999 PICTURE 99999 FICTURE 00 O2 REALTOR 0O 94 SALESMAN 2OALPHA ZOALF HA 90 95 STREET 25ALFHA 00 o3 CITY ZOALFHA 30 08 STATE 2ALFHA 40 08 ZIP CODE oo 10 AREA CODE 20 10 PHONE Q 12 PROPERTY DESCRIFTION oO 14 FROFERTY COST Ta display the full screen DISFLAY SCREEN HEAD ZIF MASE AREA MASE FHONE MASE FHONE NUMBER ZALFHA 20ALPHA 2S5ALFHA ZOALPAH S4ALFHA DOLLAR MASK AREA MASE PHONE MASK ZIF MASK CCOMPANY NAME J CSALESMAN NAME J CSTREET ADDRESS CCITYI CSTATE CZ1F CODE CAREA CODE 64ALFHA CDESCRIFTIONI DOLLAR MASk CFROFERTY COSTI CCOMPANY NAME CSALESMAN NAME CSTREET ADDRESS CCITY CSTATE CZIF CODEI CAREA CODE FHONE NUMBER CDESCRIFTION CPROPERTY COSTI FORTH Dimensions 20 Volume IV No 5 SCR 130 SCREEN GEN 1 OF 5 092881 EWF O32982 EWF Look to Bo 2 0 CONSTANT CERT FLAG S CONSTANT CRT ARRAY 4 amp HEAD O CRT FLAG IMI N PUT 1 CRT FLAG 7 3 GET 2 CRT FLAG 3 e e 8 PUTZGET 3 CRT FLAG E n l neeri n Go i 10 8 8 11 12 13 for FORTH 15 software of FIND gt INSERT professional quality SCR 131 ready to run FORTH development HEAD ADDR CRT ARRAY 4 2 3
92. s to indicate those words which may have multi programming implica tions Referee clarification 208 Referees SAVE BUFFERS to Required Word Set FLUSH executes SAVE BUFFERS then unassigns the buffers EMPTY BUFFERS is moved to Con trolled Reference Word Set 209 Berkey The true value returned by Standard et al words has all bits set to 1 210 Smith Add the Immediate attribute to LEAVE 213 Tenney KEY does not display the character but EXPECT does Clarification of Standard action of EMIT 219 Shaw PAD holds at least 84 bytes Other clarifications 222 Shaw Clarification of error conditions for D R and U R Referees to consider FORTH Dimensions 29 223 224 225 226 227 228 249 256 265 283 284 292 296 297 299 301 304 306 308 309A Thomas Thomas Thomas Thomas Thomas Thomas Schleisiek Wasson Oakley Sanderson Rarthe amp Sanderson Tenney Perry amp Shaw Perry amp Shaw Ragsdale MOD Subteam MOD Subteam Schleisiek Forsley James Define concept of a FORTH word Referee clarificaiton Clarify definition of Compilation Address Referees to consider Clarify definition of compilation Referees to consider Clarify definition of glossary Referees to consider Clarify definition of interpreter Referees to consider Additional definitions for clarity Referee clarification Use 0 based arguments for PIC
93. s null NDX takes a tuple of data record number and keyword number and establishes the relationship in the index by turning on the proper bit NDX does the opposite KWD uses the contents of PAD to search the keywords file and returns either the keyword number or zero if no match was found To update the list of keywords in the data record LISTLIM provides a range of addresses that can be used as DO loop limits SLOT uses that range plus a keyword number and returns the address at which the keyword number is found in the list or zero if not found KWD and KWD bring it all together doing error checking and updating both the data and index records for one keyword But the only words the user needs are TERMS and TERMS which take multiple keywords sepa rated by commas and either add them to the current data record or remove them TERMS simply lists which key words are associated with the current data record Screens 76 81 contain the query language words A query is a list of commands that affect the working set QVERB and QOBJ are used by QUERY to print out all the steps in the current query one per line NONE and ALL fill the working set with zeroes or ones respectively KARG is used by the remaining query words to accept a keyword from the user and determine if it is valid return ing keyword number if so and quitting if not The next five words have left paren thesis as part of their names to remind th
94. shi Minato ku Tokyo 105 Japan e NETHERLANDS HCC FORTH Interest Group Chapter Contact F J Meijer Digicos Aart V D Neerweg 31 Ouderkerk A D Amstel The Netherlands e WEST GERMANY West German Chapter Contact Wolf Gervert Roter Hahn 29 D 2 Hamburg 72 West Germany 040 644 3985 SPECIAL GROUPS Apple Corps FORTH Users Chapter Twice monthly 1st amp 3rd Tues 7 30 p m 1515 Sloat Blvd 2 San Francisco CA Call Robert Dudley Ackerman 415 626 6295 Detroit Atari FORTH Monthly 1st Wed Call Tom Chrapkiewicz 313 524 2100 or 313 772 8291 Nova Group Chapter Contact Mr Francis Saint 2218 Lulu Witchita KS 67211 316 261 6280 days MMSFORTH Users Chapter Monthly 3rd Wed 7 p m Cochituate MA Dick Miller 617 653 6136 Volume IV No 5 FORTH INTEREST GROUP MAIL ORDER FOREIGN USA AIR _ Membership in FORTH Interest Group and 15 27 Volume V of FORTH DIMENSIONS Back Volumes of FORTH DIMENSIONS Price per each 15 18 Cll Cl Jm piv _ fig FORTH Installation Manual containing the language model 15 18 of fig F ORTH a complete glossary memory map and installation instructions _ Assembly Language Source Listings of fig F ORTH for specific CPU s and machines The above manual is required for installation Check appropriate box es Price per each 15 18 T1802 6502 jesoo 76809 TJvax C 18080
95. ss Applica tions Our first panel member is Mitch Derick a consultant with Concepta He has a large FORTH business application that he would like to talk about Our next panel member will be Dick Miller of Miller Microcomputer Services He has some actual products and has been work ing for quite a while with business ap plications Marvin Benedick president of Soft Tax will be discussing his tax preparation package I chose him because he has learned FORTH pro duced a product and has apparently found FORTH to be perfect for his ap plication Fourth on the panel is Charles Moore the inventor of FORTH who will be asking the question Is FORTH really good for business applications Mr Derick Derick I d like to talk about a large business application but first I think that I should tell you something about our situation I ve been working with FORTH for 312 or 4 years We got into FORTH slowly at first but now we use only FORTH We ve worked for a com pany called Abacus II for the last two years We ve done everything from systems analysis down to the program ming testing and even some mainte nance because this is a long project The project is a fault tolerant computer system both hardware and software to be installed in fast food restaurants The first restaurant that we are aiming for is McDonalds so we are trying to satisfy a big sophisticated market As a result we ve produced a big sophisticated
96. the Personal Computer PCFORTH requires a minimum of 32K and 1 disk drive DOS Complete with diskette and manual Only 59 95 DEALER amp AUTHOR INQUIRIES INVITED Add 2 00 shipping awl Peo eR ahaa hee Texas residents add 5 percent master charge THE nTfoeann cons P O BOX 7661 AUSTIN TEXAS 78712 PHONE 512 459 7325 FORTH Dimensions 36 Volume IV No 5 FIG Chapter News Potomoc Chapter At the October 5th meeting Dennis Evans discussed FORTH Applica tions in Optics He described and demonstrated optic system design pro grams used at Goddard Space Flight Center Dennis uses Microspeed a FORTH system which includes a hard ware floating point board on an Apple computer At the November 2nd meeting the subject was Commercial Program ming with FORTH Tom Arnall described his experience using FORTH to develop commercial soft ware He compared FORTH with other business software development languages Tom recently completed an inventory system written in FORTH on a PDP 11 Southern Ontario Chapter At the December 4th meeting Dr Charles E Eaker discussed Varieties of FORTH Dr Eaker is well known in the FORTH community for his ver sion of the CASE statement as well as for his implementation of CCForth on Flex operating system His tik pool 3 to be of interest to both begumnass and experts alike as it gave us an appar tunity to meet with someone who has been involv
97. to the dictionary and handles the addresses appropriately In addition to this intermixed 16 32 bit addressing most dictionary entries in the FORTH 32 model have two verbs tied to them The first verb is a 32 bit version and resembles the standard fig FORTH verb The second verb if present is a 16 bit version For example there is a 32 bit and a 16 bit DO LOOP present in the FORTH 32 model The FORTH 32 language is verb compatible with the fig FORTH model FORTH 32 is by nature a 32 bit language which can per form 16 32 and 64 bit mathematical operations allowing extended precision arithmetic A utility allows one to transform a user developed program into a marketable software package without requiring a licensing agree ment with Quest Research Inc as long as the entire FORTH 32 language is not included with the user software package This is accomplished by building on disk a condensed executable file consisting of only those FORTH words needed for the software package The FORTH 32 Development System priced at 100 includes Package Builder Utility Assembler Decompiler Full Screen Editor Debug an extended FORTH debug with high level trace capability and full stack display DOS interface allows direct control of the disk sectors full file capability Graphics dot line circle paint and color capability Case Statement and User Manual A Floating Point Package is also available for 50 Quest Research Inc P O Box 2553 Huntsvil
98. uld publish this letter so that interested vendors may contact us directly A Williams Ledbury Electronics Ltd Unit 2 Little Marcle Lane Ledbury Herefordshire HR8 2AU Don t Leave FIGs Hanging Dear FIG The new editorial policy of Forth Dimensions of giving preference to FORTH 79 programs and tutorials using FORTH 79 is very reasonable but a little troublesome for those who have implemented FIG s 8080 model I have recently implemented this model on a Swedish microcomputer and the implementation will be distri buted to our club s 2 000 members within the coming month I would like to make it easier for them to learn and use FORTH via Brodie s book and Forth Dimensions so I should suggest an alternative vocabulary which defines FORTH 79 behavior in the necessary instances Could you sug gest a source for the information I need to construct this alternative vocabulary A revision of the 8080 model has been in the works for at least a year I assume that it will follow the FORTH 79 standard If this version is soon to be released it would be better for me to implement the new version and thus eliminate the conflict of definitions between fig FORTH and FORTH 79 Can you tell me if the new 8080 Z80 7 version will soon be released Thank you for your help on behalf of the ABC80 club Dr Robert Johnsen Uppsala Sweden Our official guide to conversion from the FIG model to 79 Standard is a docu ment by Rob
99. utility screens and a comprehensive User Manual It is supplied on an 8 inch single sided double density disk or on a cassette at a price of 145 00 for orders from inside the USA and without the disk interface to MTU s CODOS for any 6502 based Microcomputer that can read either KIM or MOS Technology Standard recording formats at a price of 38 00 For those who don t mind the typing the listing for the complete system is available at a price of 34 00 Mark I Manning 7612 Autumnal Lane Liverpool NY 13088 FORTH 32 Quest Research has released FORTH 32 a complete software development system for the IBM PC FORTH 32 is a language system which allows the programmer to easily utilize all of the IBM PC one megabyte memory domain It does this by allowing a 32 bit addressing mode as the FORTH 32 name implies as well as a 16 bit addressing mode In effect FORTH 32 makes the segment structure of the memory management transparent to the user thus the programmer has direct access to all of the available memory without the need of specifying a segment address Addresses in the first 64K bytes relative to the load address can be specified with a single word 16 bits Only when a program spans more than 64K bytes is 32 bit addressing needed A MODE SENSING switch determines whether 16 bits are sufficient to specify an address or if 32 bits are necessary At run time the interpreter properly unravels which mode was compiled in
100. ven scratch the surface of FORTH s capabilities Starting on July 1 1981 I was able to learn FORTH and rewrite a 350K BASIC program incorporating new tax law changes and an improved design in time for my January 15 1982 release date I am very impressed with FORTH as a language I think that it s the language for me Any questions Audience Is this a package that you sell or a service Benedick It s a package It runs under both Northstar and CP M I sell it to enrolled tax preparation agents and CPA s to speed up their work It helped that FORTH was so portable Audience Is your documentation a help type facility or are you using FORTH to print out your documenta tion Benedick My documentation is a series of FORTH words which control the printer to produce documentation when they are executed My documentation really isa FORTH program I don t have a help facility because my programs are already too big I couldn t afford to have that much text Moderator Thanks Marvin Our next speaker is Charles Moore I guess he doesn t need any other introduction Moore The question is often asked Is FORTH really good for business It s as if FORTH s apparent virtues will somehow fall short in this area and some subtle problem will rule it out Well I d like to answer the question with a qualified yes FORTH is really good for business But I don t know that business people know or want to know th
101. whole chain Derick There s a thing called the Approved Vendor List At the moment no one is on it The people who were on it before were removed They were using 1970 state of the art equipment and it s 1982 now We have to deal with both the giant corporation and the individual owner operator Audience Will McDonalds like FORTH because it s 20 smaller laughter FORTH Dimensions Derick No headless FORTH is closer to being 30 smaller Seriously we chose McDonalds because it s a huge potential market Moderator I m sorry to interrupt but we really must move on to our next panelist Dick Miller of Miller Microcomputer Services Miller Is FORTH practical for business Clearly it isn t is what we hear from a lot of people Most recently in fact from the special FORTH issue of InfoWorld that was out this week I won t blame In foWorld because there were a lot of quotes in there that said that FORTH is great for process control and bad for business There are a lot of reasons for that One is it doesn t have strings or any capabilities in that direction and another is that it is totally unreadable as we have already discussed FORTH seems to have been working for us for business for 4 or 5 years We built our own FORTH system We might not have but there was no other way to get a FORTH system for the computers we were working on at the time Of course once we had a FORTH system we sat do
102. with each other 3 SHAF OVER MOD HR SHAR U SWAP DROF Re Figure 2 shows the dictionary layout PORODA ol edd es a Dg ae of the Indexer After FORTH is loaded 5 DUF ROT x ROT ROT Ux ROT 3 lecti 6 D MOD Cg noemd 9 U Ff my system s last electives screen 7 3 pe addr do 0 DUP 2 SWAF defines the null word APPLICATION The D DUF ROT SWAF 2 l4 z Belle l S f ih SHAN Paa a Indexer FORGETs back to that word 10 3 DSWAF lt gi dz 2 d1 ROT R ROT Re 3 then re defines it The original article s P A T DRO DROE screens come next followed by Bit be eo Manipulation Index Maintenance SCR 64 Query Language and Utility words 0 CR o SCREEN 64 DATE COMPRESSION AND EXPANSION 25 A 2 eee F by nner x Finally another null word USER DB is Z i DATEEIT converts date inewt to 2 bytes defined to provide a FORGETing boun 32 Dk D 13 DX D DROP 3 dary for the user s data base definition 8 2 PDATE C MM DD YY gt The earlier data base screens were as pa A E EMER 47 WORD HERE NUMBER i WORD used with only one modification the 3 Sr E ARE variable REC was replaced by a word 9 3 DATE C FORMAT 2 GYTE DATE CODE AND PRINTS which uses OPEN to place the current 10 0 13 U 32 MOD ROT 100 x ROT 0 100 Dx ROT 0 D uhi 11 47 HOLD 47 HOLD F TYPE record number within the FIB The In 12 G5 dexer switches among the three files in the file set and the current record SCR 65 0 CR SCREEN 653 AMOUNT A
103. wn and started to play Then we played for money and discovered that FORTH wasn t good enough for that FORTH is a tool not a solution FORTH programs which get hung up on a stack error are not too re assuring for secre taries and will probably give FORTH a bad name FORTH is fine for program mers That s never been the problem What s needed are programmers under standing what users are We have some pretty good ideas on that My wife Jill is a full partner in the com pany and has 15 years of experience with large industrial business applications She knows that FORTH is good and that little computers are often better than big ones You can also put the little com puters where you want them Once you have them you have to make them talk intelligently The big problem there is that people who spend 2 000 for the computer don t know how much they ought to spend for programs Usually these people are cer tain that it should be a lot less For some reason the applications don t seem to be too available at 15 each We hit that pro blem in several ways We didn t even talk to people who were using small com puters at first Instead we talked to peo ple who were using big computers and told them how to do some of their jobs on little computers They had the budget and understanding and were happy to Continued Volume IV No 5 FORTH continued save money on the hardware while also saving some mone
104. y on the software They weren t begrudging us the fact that the application might be costing them as much as the computer This situation is going to be very clear by next year that we can t bring the cost of people down as quickly as we can the cost of computers So we got ourselves a tool an amplifier FORTH We ve done a lot of the expensive kind of programming that we ve just de scribed and it s been very successful The string handling is aboard in our FORTH as it is today in most real FORTHs To us and the user the strings look about like those in BASIC and they run a lot more directly We see the disk when we want to and the user sees a files direc tory when that s appropriate and doesn t when it s not appropriate We have a full list of applications that are available inexpensively to go with our system We didn t do this because we re benevolent but because we needed them for our other professional projects Bit by bit we developed a library of applica tions and then went back and docu mented them for casual users We have a full communications package The package will seem full to most of you but a few of you may want more But as I heard in a previous panel designing something that s everything for every body may take an infinite amount of time and the package probably will not fit in 64K We have a pretty complete system targeted for most real applications We customize like mad for the
105. ystems and microprocessors in FORTH I have experienced a reluctance of my customers to accept FORTH which stems to a great deal from the seeming ly awkward notation ofA B C compared to C A B which every body is used to And I really think that FORTH code would become clearer if an explicit assignment operator like would exist We do have this operator called TO by Bartholdi Ever since reading his paper I have included the construct in to my system but I prefer to call the operator Thus the above code reads AB C A B and are variables of the new datatype INTEGER There have been discussions in F D whether INTEGERs ought to replace VARIABLEs I prefer to use both datatypes each in the place where it fits best i e makes code clearer Judging by published programs in F D and the conference reports many people seem to use TO My experience with the TO or solution is so good that I wonder why it is not considered for inclusion into the 1983 standard Thank you for your efforts and for the good work being done by FIG Wolf Wejgaard Switzerland FORTH Dimensions Importing Annnouncement Dear FIG We have noticed among your corre spondents various commercial ven dors of FORTH hardware software As recent and enthusiastic converts we would be interested in establishing contact with vendors to see if we can import and distribute various FORTH oriented products in the U K Perhaps you co

Download Pdf Manuals

image

Related Search

Related Contents

Sivoia QEDTM  16-8 inputs standalone digital video recorder art. 49146  

Copyright © All rights reserved.
Failed to retrieve file