Home
V5N1 - Forth
Contents
1. not worth it MASC could probably be critized for not taking care of certain things such as generating simple envelopes or random voltages But the synthesizer itself does these things so there s no need to submit that task to the computer Still the vocabulary is there to make these things if necessary A keyboard makes strong aesthetic implications Our synthesizer uses keys but keys don t necessarily mean pitches A keyboard is simply a voltage divider We can use the keyboard to call up words Say we have a word called FUN1 which produces a bunch of random pitches and spins the sound around the room in our quadraphonic studio We can move sounds dynamically Then we have a word called FUN2 which plays a C major scale in the right hand speak er and FUN3 which plays a C major chord on another speaker We put these words in an execution array If we hit key 1 FUN1 will play but if we hit key 16 FUN2 will play will play etc So we can play the structure of a composition not by playing notes but by playing words The keyboard is a series of touchplates that know how hard you re hitting by reacting to body capacitance So if you press the key hard it will spin around the room at one rate press soft it will spin at another rate You decide what elements you want to control and what element you want to control it then write the commands that recognize those actions Over the last couple of years we ve had over 50
2. mm Ne le MBA SE OM ELS PARS Dimensions Volume V Number 1 2 50 ARTICLES Interactive Computer Graphics Bob Gotsch 3 FORTH in the Arts tentent tenent 5 3 D Animation T9 Paul Lutus and Phil Thompson 11 i Space Graphics Problem PRU PE E E EE 14 Double Precision Math Words L H Bieman 16 Add a Break Point Tool Leo Brodie 19 Extending the FORTH Compiler Luke Seeto 20 More on Data Bases Lindsay Doyle 27 A Simple Overlay System Christian Mahr 37 DEPARTMENTS New Product Announcements essere 31 WO CIOL S eR 34 PIG Chapter NEWS is ie tado xo tere Ib cactus ova p des ee UU anes 40 FIG Cliaplel Soo ec cn adea pem emet uai fe dadas 41 FORTH System Vendors ruini ioiii io ient 42 FORTH for Z 80 8086 68000 and IBM PC FORTH Application Development Systems include interpreter compiler with virtual memory management and multi tasking assembler full screen editor decompiler utilities and 130 page manual Standard random ac cess files used for screen storage extensions provided for access to all operating system functions 2 80 FORTH for CP M 2 20rMP IMI 0 0c ccc cence eR ames 50 00 8080 FORTH for CP M 2 2 or MPIM lh oc ccc ct
3. R1 R2 SI 6800 so cers ented SUSVNG ER C2 F3 F5 K1 L3 M6 TI 6801 cce Eee yere Ra P4 BRDO soceri uia Seton C2 F3 L3 M6 S11 TI 68000 a cet en b RORIS C2 C4 D1 El KI GS008 Snc chet Sedes tS P4 8080 85 Louceoeea s eei oak nes AS CI C2 F4 IS L1 L3 M3 M6 R1 T3 Z80 89 ee ee A3 AS C2 F4 I3 L1 M2 M3 M5 Ni T3 Z80000 5 bisa eset RES I3 8086 88 roce RE ETE C2 F2 F3 L1 L3 M6 DOO i iis sc titarurta cres Suo E E2 L3 CP M oen noe dred A3 AS C2 F3 I3 L3 M1 M2 M6 T3 GP MBO coro Peres C2 Computers Alpha Micro P3 S3 Apple is v esr XR ewe A4 F4 I2 14 J1 L4 M2 M6 M8 02 03 NEATIS rea a ate Rete Y a M6 P2 Q1 VI Compag voee RERREEEES M5 Cromemco eese AS M2 M6 DEC PDP LSI 11 C2 F3 L2 S3 Heath 89 M2 M6 M7 Hewlett Packard 85 Hewlett Packard 9826 36 C4 IBM PC enue 9 a b o 9 ee ew ee A8 C2 F3 L1 M5 M6 Q2 S9 W2 IBM Other ee L3 Wi Kaypro II Xerox 820 M2 Micropolis 04 A2 M2 S2 North Star vo LEER IS M2 P1 87 Nova 226500 enred wil oed C5 Ohio Scientific A6 B1 C3 O1 S6 T2 Osborne 2 n REEL M2 Pet SWTPC Al A6 B1 C3 OI S6 T2 T5 Poly Morphic Systems A7 TRS 801 II and or III I5 M2 M5 M6 S4 S5 SIO TRS 80Color A3 A8 F5 M4 S11 TI
4. Kill name of Y DECIMAL 35 end of resident section of caverlar ergtem dan t forget to place thie error message an scrH 4 line 12 no valid overlay block found To LAS me I 4 Cm g a CO Cm o T e c m O co OU Qa CU cO CD CO UC CO CD oU Ox pi pi cn St Ax s e 5 Qo uU c m dg B B3 BO BR BO BS pa Po BS BR B3 pa SG po BO pa Ug co co co Q3 co CO Do CD CO CO 2 is reserved G i cverlay system non resident sectian cm au l ET T ee 4 contains the number of 2 GPEN OQVERLAY abs fy blks F Open up space tor 3 au 3 amp creation of an caverlay image with size blEs as blocks to be loaded 4 k starting on iabzg BblkK i1 memory aligned ta EM 2 au 5 CANCEL amp cancel a possible overlay before 3 B DUF BYEUF MINUS EM isa overlay adress as 6 contains the 7 DUP HERE U lt 2 ERRUR i enough room as overlay start address a DUP OMA f is overlay adress 3 em 9 HERE WER 12 DP i gave DP new DP OVA 95 16 SWAP 256 MOD SWAP etrt blK dr blks gt as 8 contains the 11 DUE W i save load adress 3 as 12 a ee ee Hs output link address 13 LATEST 2 ALLOT save in linK 3 g5 BESET 3 i save UOC LINK gt 2s 10 contains the ui v input link address H averlayr srstem non resident section cm a4 1 a6 2 DCLOSE OVERLAEAY K eus 3 amp clase overlay area se 12 contains the 3 UNLINK PFA LFA OVA a amp i gave aut link
5. FORTH Dimensions PO ce ma arma Extending the FORTH Compiler Luke Seeto Christchurch New Zealand The following discussion deals with extensions to the FORTH compiler A familiarity with the FORTH compiler and its words is required for implementation Readers are referred to the following manuals fig FORTH installation Manual Assembly Language Source List ing of fig FORTH A description of the FORTH system used is first discussed FORTH can be implemented for both a development environment and a target environment Such a dual en vironment has e separate RAM memory for vari ables separate compiler operating system memory separate program code memory this is RAM in a development environment and ROM in a target environment e separate dictionary memory In our FORTH systems 8K byte blocks of memory at 8K boundaries can be bank selected by controlling any of eight bank select registers to al low any memory address to be repeated up to 32 times Figure 1 shows the memory map used which is as follows RAM memory for variables is at locations 0000 1FFF stands for hexadecimal This can be extended to location 5FFF for the target environ ment only RAM memory also exists at locations 4000 SSFFF as a num ber of selectable banks of 8K bytes except for the first bank where the compiler operating system resides RAM memory residing in banks is handled transparently as is RAM at loc
6. Q1 4 CON O MO COO 4d GO NO 6 O h ph anh jene fu Qum Ci GINS 00 00 SI 5D da GO NJ I 5 S ph fund pen amd Ber DATA STRUCTURE VS2 0 JAN 83 CREATELX1 TEX 3 CREATELX CREATE ARRAY CREATEC 1 3D CREATE ARRAY CREATEL 1 3F CREATE ARRAY CREATEILJ PSW LIMIT IN 8 OVER CONSTANT IN CREATE NAME 4C 3 ADJUST NAME NOTE MAY NEED ONE MORE WORD DEPENDING ON WHETHER NEXT INTREPRETATION IS PRE OR POST INCREMENT USE MACHINE CODE FOR SPEED EXAMPLE FOR M6809 PROCESSOR AND JSR RTS SUBROUTINE CALL IS PULS X LDD 3 X SUBROUTINE CALL IS 3 BYTES PSHU D PUSH INTO P STACK RTS DOUBLE EXIT FOR DO VAR gt NOTE LEAVE OUT THE WORD 8 NOT POINTED TO FOR A NON ROMABLE SYSTEM EG R 2 8 FOR DO VAR s DO UAR POO T IDA aed 2 FOR 2 BYTES AWAY EQUALS 1 WORD DO CVAR R 2 8 Ce ai INSTEAD OF 2 gt 2 8 C8 gt DOSARRAN I Listing Continued DO VAR R 4 8 DO CVAR R gt 4 8 C DO ARR P C gt NOTE MODIFY M UAR M CUAR M ARRAY AS REGUIRED SEPARATE DICTIONARY FROM GENERATED CODE SUPPLYING CODE ADDRESS AS REQUIRED CHANGE ORDER OF ACTION LISTING IS FOR SYSTEM WHICH ALREADY SEPARATED DICTIGNARY FROM CODE X DO VAR IS EMPLACING WHICH GENERATES THE CODE gt 24 Volume V No 1 FOR PRE INCREMENT NEXT following the record header definition their order and the size of each data item The internal description is an
7. LJ APPLE by MM F G amp 79 L Extensions for LM Specify 140 BM Z80 or 8086 T ATARI by PNS FG amp X soo H Software Floating TA LJ Apple GraFORTH by 75 IBM PC or 8086 100 J Multi Tasking FORTH by SL LJ 9511 Support CP M X amp 79 395 Z80 or 8086 100 TRS 80 or IH by MMS LJ Color Graphics F X amp 79 JJ MENS dic 3100 ata Base O Tae by FD tape G X P Management 200 C TUTORIAL by LH includ Requires LM FORTH disk y LH includes Starting FORTH 95 Victor 9000 Dy DE gerne O fig FORTH Programming Aids for decompiling callfinding and translating CP M IBM PC Z80 or Apple 150 CROSS COMPILERS Allow extending moditying and compiling for speed and memory savings can also produce ROMable code eHequires FORTH disk CP M 300 C IBM 300 8086 300 Z80e 300 3 Northstar 300 O Apple II l 300 L FORTH Computer Jupiter Ace 150 LJ 16K RAM Pack 50 J 48K RAM Pack gt 125 O Par Sec Interface 100 Key to vendors CCI Capstone Computing Inc DE Dai E Systems FD Forth Dimension I Insoft LH Laxen and Harris LM Laboratory Microsystems MM MicroMotion MMS Miller Microcomputer Services NS Nautilus Systems PNS Pink Noise Studio SL Shaw Labs C MVP FORTH Meta Compiler for CP M Programmer s kit Use for applicatons on CP M based computer includes public domain source 150 C MVP FORTH Fast Floating Point for APPLE Programmer s Kit Includes 9511 m
8. contour 3D projection or as a grey scaled image by assigning a different number of dots to each pixel according to its Space Graphics Problem brightness When a satisfactory image has been accumulated the data may be saved on floppy disc and transferred to a minicomputer for detailed image processing if required Since the build up of the image can be monitored in real time the accumulation of useless data can be stopped at an early stage reducing wasted time This development would have been very difficult using the EXORset s BASIC not least because the BASIC interpreter uses the graphics display memory making interactive develop ment of graphics impossible poly FORTH and its graphics package however fit in about 12K bytes leav ing plenty of room for graphics dis play data and the application pro gram This article is reprinted from a periodical published by Comsol Ltd England object lies in and then not to bother doing a line by line erase The GraForth word undraw is designed for doing just this Undraw erases a portion of the screen just as unblk does on a character size basis However undraw also sets a flag telling GraForth not to do a line by line erase of the 3 D object After setting the block size and the position appropriately you can erase the ob ject yourself so that the 3 D routines don t have to erase it This method requires that you know what rectangu la
9. executes 9 times faster than ACCUMULATE because there is far less computing being done It should also be noted that this optimization produces a different PRBS than the original algorithm Loaded in Decimal Mode SCREEN 499 n of C CnmgRECTED tLZMWOp 1 CODE U MOD 2 Mole STY a GEL ae zb SEL tg ij SEC STY 2A ASL s SED STAG za SEC 3 t LDA SEC 1 LEY s SER Go ORE Veg 0A EOL SEL t Vb ag i db LDA M STA a RG SED xe RB UL BEC 3 e ROL N be ROL v SEL SEL d LDA BOT SEC CD 1 SEC 3 L BOT 1e SEC FHA ii Hoi Loa 0 d SEC 0 Xd LOA M lt STA FLA dar ESO DF SEC g STY SEC F 5T THEN l3 oC KROL SEC l ROL M DEC e UNTIL L POP BP I END e CARE 35 C64 FORTH for the Commodore 64 FORTH SOFTWARE FOR THE COMMODORE 64 C64 FORTH TM for the Commodore 64 99 95 e Fig Forth 79 implementation with extensions Full feature screen editor and macro assembler Trace feature for easy debugging e 320x200 2 color bit mapped graphics 16 color sprite and character graphics e Compatible with VIC peripherals including disks data set modem printer and cartridges Extensive 144 page manual with examples and application screens e SAVETURNKEY normally allows application program distribution without licensing or royalties C64 XTEND TM FORTH Extension for C 4 FORTH 59 95 Requires original C 4 FORTH copy Full
10. 714 698 8088 4 Creative Solutions Inc 4801 Randolph Rd Rockville MD 20852 5 Capstone Computing Inc 5640 Southwyck Blvd 2E Toledo OH 43614 419 866 5503 E 1 Emperical Research Group P O Box 1176 Milton WA 98354 206 631 4855 2 Engineering Logic 1252 13th Ave Sacramento CA 95822 1 Fantasia Systems Inc 1059 The Alameda Belmont CA 94002 415 593 5700 3 FORTH Inc 2309 Pacific Coast Highway Hermosa Beach CA 90254 213 372 8493 4 FORTHWare 639 Crossridge Terrace Orinda CA 94563 5 Frank Hogg Laboratory 130 Midtown Plaza Syracuse NY 13210 315 474 7856 6 FSS P O Box 8403 Austin TX 78712 512 477 2207 1 IDPC Company P O Box 11594 Philadelphia PA 19116 215 676 3235 2 IUS Cap n Software 281 Arlington Ave Berkeley CA 94704 415 525 9452 3 Inner Access 517K Marine View Belmont CA 94002 415 591 8295 4 Insoft 10175 S W Barbur Blvd Suite 202B Portland OR 97219 503 244 4181 acer EE VT E a FORTH Dimensions 42 Volume V No 1 5 Interactive Computer Systems Inc 6403 Di Marco Rd Tampa FL 33614 J 1 JPS Microsystems Inc 361 Steelcase Rd W Markham Ontario Canada L3R 3V8 416 475 2383 K 1 Kukulies Christoph Ing Buro Datentec Heinrichsallee 35 Aachen 5100 West Germany L 1 Laboratory Microsystems 4147 Beethoven St Los Angeles CA 90066 213 306 7412 2 Laboratory Software Systems Inc 3634 Mandeville Cany
11. Call Gilles Paillard 418 871 1960 or 418 643 2561 ENGLAND English Chapter FORTH Interest Group 38 Worsley Road Frimley Camberley Surrey GU16 SAU England JAPAN Japanese Chapter Masa Tasaki Baba Building 8F 3 23 8 Nishi Shimbashi Minato ku Tokyo 105 Japan NETHERLANDS HCC FORTH Interest Group Chapter F J Meijer Digicos Aart V D Neerweg 31 Ouderkerk A D Amstel The Netherlands e WEST GERMANY West German Chapter Klaus Schleisiek FIG Deutschland Postfach 202264 D 2000 Hamburg 20 West Germany SPECIAL GROUPS Apple Corps FORTH Users Chapter Twice Monthly 1st amp 3rd Tues 7 30 pm 1515 Sloat Boulevard 2 San Francisco CA Call Robert Dudley Ackerman 415 626 6295 Detroit Atari FORTH Monthly Ist 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 Groups Monthly 3rd Wed 7 p m Cochituate MA Dick Miller 617 653 6136 25 groups world wide pe a i I C ss iM PUn und a Dr cmi i ygu gev nml tct i dr o n Volume V No 1 FORTH Dimensions FORTH System Vendors by Category Codes refer to alphabetical listing e g Al signifies AB Computers etc Processors 1802 ois betes tee ux ESS Cl C2 F3 F6 L3 6502 AIM KIM SYM
12. No 1 33 FORTH Dimensions LEAST EXPENSIVE FORTH SYSTEM AVAILABLE MULTI FORTH for the SINCLAIR ZX 81 TIMEX SINCLAIR 1000 BY TREE SYSTEMS Compiler Directive not interpretive Compilers DO LOOP IF ELSE THEN etc need not be put in a definition to run Single user Multi tasking Event Scheduling 32 Bit clock 2 yrs e Schedule with AT IN EVERY commands e maximum resolution 1 60th second Task Options e LOCK UNLOCK START STOP e Tasks can dynamically reschedule themselves e Upto 10 tasks scheduled at one time e Tasks can be linked to run in the background e Each task has its own 32 bit clock e Task execute according to priority e Wait execution in 31 deep event que Unique Editor User defined split screens e Complete visual editor e Run editor while execution screen is running program e Cursor oriented Delete lines e Delete characters e Store line in pad Insert line from pad e Automatic character insert e Compile Lines Technica Information e extremely fast run 30000 0 DO LOOP in 1 second real time 32 bit clock with user defined periods high priority task runs constantly for detection of stack underflow has separate character stack user stack and processor stack RESIDENT ON 64K EPROM HOUSED INSIDE YOUR ZX 81 SWITCH BE TWEEN BASIC AND FORTH RE QUIRES only 2K RAM TO OPERATE Works with 16K and 64K RAM modules Turns the SINCLAIR into e excellent rea time controller e
13. Norman 2908 California Ave 3 San Francisco CA 94115 415 563 1246 Continued on page 33 Volume V No 1 43 FORTH Dimensions MED i PR t HAC Rp PO Har ra RI e RE Bd Qi eae Vie re tiim Ma repr rid IBI AP s Pe Manis Aim io ua Agra er apa degit am e rA MBA ABC Vh APT UR IE TR AAA UR FORTH INTEREST GROUP MAIL ORDER FOREIGN USA AIR C Membership in FORTH Interest Group and 15 27 Volume V of FORTH DIMENSIONS Back Volumes of FORTH DIMENSIONS Price per each 15 18 Li Bi jm Iv _ fig FORTH Installation Manual containing the language mode 15 18 of fig FORTH a complete glossary memory map and installation instructions JAssembly 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 1802 6502 6800 L 6809 L VAX zeo 8080 8086 8088 79900 CJAPPLE It JECLIPSE PACE LL NOVA POP i1i 8000 ALPHA MICRO Starting FORTH by Brodie BEST book on FORTH Paperback 18 22 L Starting FORTH by Brodie Hard Cover 22 27 PROCEEDINGS 1980 FORML FORTH Modification Lab Conference 25 35 JPROCEEDINGS 1981 FORML Conference Both Volumes 40 55 Volume 1 Language Structure 25 55 Volume II Systems and Applications 25 55 IPROCEE DINGS 1982 FORML Conference 25 55 JPROCEEDINGS 1981 FORTH Univ of Rochester Conference 25 35 PROCEED
14. Vector Graphics M2 Other Products Services Applications P4 Boards Machine F3 M3 P4 R2 Consultation C2 CA NI P4 T3 WI Cross Compilers C2 F3 I3 M6 Ni P4 Products Various AS C2 F3 IS S8 W2 Training uso y dee ERRAT C2 F3 I3 P4 W1 FORTH Vendors Aiphatetical The following vendors offer FORTH systems applications or con sultation FIG makes no judgement on any product and takes no responsibility for the accuracy of this list We encourage readers to keep us informed on availability of the products and services listed Vendors may send additions and corrections to the Editor and must include a copy of sales literature or advertising FORTH Systems A 1 AB Computers 252 Bethlehem Pike Colmar PA 18915 215 822 7727 2 Acropolis 17453 Via Valencia San Lorenzo CA 94580 415 276 6050 4 Applied Analytics Inc 8910 Brookridge Dr 300 Upper Marlboro MD 20870 5 Aristotelian Logicians 2631 E Pinchot Ave Phoenix AZ 85016 7 Abstract Systems etc RFD Lower Prospect Hill Chester MA 01011 8 Armadillo Int Software P O Box 7661 Austin TX 78712 512 459 7325 B 1 Blue Sky Products 729 E Willow Signal Hill CA 90806 1 CMOSOFT P O Box 44037 Sylmar CA 91342 2 COMSOL Ltd Treway House Hanworth Lane Chertsey Surrey England KT16 9LA 3 Consumer Computers 8907 La Mesa Blvd La Mesa CA 92041
15. completion The aim of this project is to combine graphics with word pro cessing to produce a system capable of handling lecture notes for computer organization and computer architec ture courses An IBM PC is being used as the development system YES FEATURES OURS OTHERS 200 PG 79 Standard system gives source portability bd Seo ee MES Professionally written tutorial amp user manual 200 PG YES Screen editor with user definable controls YES Sn YES Macro assembler with iocal labels YES Ssss YES Virtual memory YES asau YES BDOS BIOS amp console control functions CP M YES YES FORTH screen files use standard resident YES file format YES YES Doubie number Standard amp String extensions YES YES Upper lower case keyboard input YES YES APPLE 1I II version also available YES 99 95 Affordable 99 95 YES Low cost enhancement Options ed Floating point mathematics YES Tutorial reference manual 50 functions AM9511 compatible format Hi Res turtle graphics NoStar Adv only YES 2 99 95 FORTH 79 V 2 requires CP M Ver 2 x 99 95 ENHANCEMENT PACKAGE FOR V 2 4995 Floating point 49 95 139 95 COMBINATION PACKAGE Base amp Floating point 139 95 MicroMotion 40 12077 Wilshire Blvd 506 L A CA 90025 213 821 4340 Specify APPLE CP M or Northstar Dealer inquiries invited advantage users add 49 95 for Hi Res CA res add 6 tax COD amp dealer
16. encoded internal representation of the data structure and includes the number of elements for array data During program execution data structures are interpreted for action according to the internal description and checked for range An example of a record structure describing the FORTH dictionary is given see listing 3 This is one of several different types of record structure This particular record structure allows the description of the record to be switched to any entry to be cited by name This is useful to describe linked lists queues tables etc Two examples of using this record structure are given Example 1 To read the next dictionary entry use the statement LINK ADDRESS DICTIONARY ENTRY READ PICTURE RECORD When LINK ADDRESS is cited the contents of the link field is placed on top of the stack When DICTIONARY ENTRY is cited the address of the record data structure is placed on top of the stack When READ PICTURE RECORD is cited the environment pointer is switched by context Since the address of the environment pointer is the first word of the internal record data structure the code for the switch by context is simply READ PICTURE RECORD Whenever LINK ADDRESS is now cited the contents of the new link field and not the previous link field will be accessed Example 2 To invert the precedence or immediate bit use the statement PRECEDENCE BIT NOT PRECEDENCE BIT When PRECEDENCE
17. sor BREAK compile BREAK into amp Cm BREAEL f a Cm R Pa RES 4 CHECK O BLE a CEGIN PIE RY INTERPRET UO amok 7 1o GO fo 3 t enter GO to resume 11 RED CHECHE p IF Ro DROP RE la Elo can t resume LET LS 1 4 P Volume V No 1 Debugging Ey Frank tion executes BREAK you enter a spe cial interpreter You may type any normal FORTH commands and press return After completion of your commands the special interpreter will respond aok instead of ok to remind you which interpreter it is then await more com mands You can stay in this special in terpreter as long as you want When you re ready to have the ap plication resume enter the word GO and press return GO will exit the special interpreter and allow the defi nitions that had been executing to resume their addresses had been nest ed and patiently waiting on the return stack all along The real work is done by the BEGIN AGAIN loop in BREAK which ob viously is the special interpreter and the phrase DROP R DROP in the word GO which unnests two levels from EXECUTE inside INTERPRET and from INTERPRET inside BREAK That s all the code you really need except for one aspect of human factors If BREAK consisted only of this BEGIN AGAIN loop then if you were to cause an abort while inside the BREAK interpreter by misspelling a word or underflowing the stack etc ABORT would call
18. techniques for the two but would 50 NOT AS GOOD point out that the new words gt AND 2 HMM 0 1 WOW OR etc developed by Watkins are not needed in the coded approach as we are simply comparing pairs of 16 bit numbers which can be done with the primitives gt and lt My final contribution is the thought that in systems for indexing physical libraries where we are dealing only with the record number and do not containing up to 64K documents can be completer index E Itile BITS RECORDS MAXIMUM OF MAX COMMENTS pletely indexed for multiple RECORD KEYWORD RECORDS KEYWORD keyword retrieval on a few 5 disks Is SS anybody doing it 65536 100 BIT MAP Lindsay Doyle is 299 gt 100 POINTLESS 4096 100 POINTLESS a frequent contributor to 65536 MR IN SUGBESTED RANGE MicroComputer Printout and other British microcomputer publications Table 3 8192 bytes per keyword or 8 screens proFORTH COMPILER 8080 8085 Z80 VERSIONS 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 MICROPROCESSOR BASED PRODUCT DESIGN SOFTWARE ENGINEERING DESIGN STUDIES COST ANALYSIS ELECTRONICS AND PRINTED CIRCUIT DESIGN PROTOTYPE FABRICATION AND TEST REAL TIME ASSEMBLY LANGUAGE
19. 68K SYSTEM 3 Call 415 562 0636 and ask us for the name of the SYSTEMS CENTER nearest you Price shown does not include dealer installation and support services REGHEEDGNTCUZUPN ECTMGPENDMVTMPERMR RIGELAGAE UNCLE MIEL UC MM CC ce CU EEUU KCLEEDME uaEEEE IM T C ED CompuPro division Godbout Electronics Oakland Airport CA 94614 Volume V No 1 7 FORTH Dimensions FOR 8080 Z80 8086 68000 MULTIUSER MULTITASKING A professional quality full feature FORTH system at a micro price TaskFORTH Single double triple quadruple and floating point math trigonometric functions Case statements Interactive debugger Novice Programmer Protection Package Multiple thread dictionary System date calender clock Hierarchical file system Screen and serial editor Inter task communications Unlimited number of tasks Starting FORTH FORTH 79 and FORTH 831 compatible Graphics support TaskFORTH is the FORTH system you would write if you had the time ALL included for just 395 plus applicable taxes Available for CP M Northstar DOS Micropolis and Stand alone Visa amp MC Accepted Available soon t When standard is approved CP M is a trademark of Digital Research TaskFORTH is a reg trademark of Shaw Labs Ltd Single user single computer license agreement is required SHAW LABORATORIES LIMITED 24301 Southland Drive Suite 216 Hayward California 94545 415 276 5953 FORTH Dimensions
20. Huang A Coben 350 college level text 25 LJ Systems Guide to fig 7 FORTH Programming by PORTI 25 Scanlon 17 O Caltech FORTH Manual 12 J FORTH on the ATARI by E Lj Invitation to FORTH 20 Floegel 8 3 PDP 11 User Man 20 O Starting FORTH by Brodie 3 CPIM User s Manual Best instructional manual MM 20 available soft cover 18 O FORTH 79 Standard 15 L3 Starting FORTH hard O FORTH 79 Standard cover 22 Conversion 10 C 1980 FORML Proc 25 O Tiny Pascal fig FORTH 10 C 1981 FORML Proc 2 Vol 40 1 NOVA fig FORTH by CCI 0 1982 FORML Proc 25 Source Listing 15 C 1981 Rochester FORTH LJ NOVA by CC User s Manual e Proc 25 includes editor assembler S and utilities 25 Installation Manual for fig FORTH 15 Source Listings of fig FORTH for specific CPU s and computers The Installation Manual is required for implementation Each 15 LJ 1802 O 6502 J 6800 L AlphaMicro 8080 1 8086 88 9900 APPLE II C PACE L 6809 O NOVA O PDP 11 LSI 11 168000 O Eclipse O VAX 280 Ordering Information Check Money Order payable to MOUNTAIN VIEW PRESS INC VISA MasterCard COD s 5 extra 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 handling 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 15 All prices and products
21. II drive The system which runs the Byte prime number benchmark in 164 seconds includes 79 Standard required word set double number ex tension CASE strings arrays on stack local variables vocabulary stacks dictionary overlays heap store block buffer control hi and lores graphics including turtle graphics I 0 execution vectors mac ro assembler full screen editor with tundo and syntax check features interactive source level debugger in telligent multi block copy memory dumper threaded code decoder paginated printer output screen IN DEX and OUTLINE words Support for 40 80 column display language card and multiple disk drives 100 4 screens of source code for upper levels of system 170 page User s Guide assumes knowledge of FORTH Price 79 00 15 VAT in UK in cludes shipping Manual only 8 00 Information leaflet available Dealer inquiries welcome Contact Metacrafts Lts 144 Crewe Rd Shavington Crewe CW2 5AJ England Phone 0270 666274 FORTH COMPUTER This C MOS Eurocard module gives faster software and hardware develop ment times than assembler level pro gramming Software costs in in dustrial applications cannot be amor tized over the large quantities as sociated with personal computers and electronic games This C MOS embedded computer card aims at resolving this problem by including FORTH high level language program ming and developmental facilities
22. Including Screen Editor 8088 Assembler Graphic Interface Sound Generation Math matical extensions games and many more And So FORTH 374 page manual US 15090 Dai E FORTH Levei n Professional Level FORTH Package Will conform with the proposed 1983 standard Features On line Documentation Decompiler Debugger tracen Viewer help Line Editor and Screen Editor 8086 8088 Assembler Meta Compiler Double precision Math extensions Native Operating System file handler True LRU disk buffer mechanism Separate header Graphics Sound Interface Hashed dictionary structure Multi tasking Available for CP M MS DOS or stand alone versions US 350 available in second quarter 1983 SYSTEMS INC MULTI LANGUAGE COMPUTING SYSTEMS 503 682 3201 29783 Town Center Loop West P O Box 790 Wilsonville Oregon 97070 U S A FORTH Dimensions 3 3V3 8 elo 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 e Produces code that may be downloaded to any 780 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 780 assemblers
23. No attempt has been made to supply a compatible listing as the implementation details of fig FORTH are not familiar The listing applies to a system which e scans all Words into a fixed buffer area rather than a changing HERE e the dictionary is automatically separated from program code ROMable version rather than preceding program code CAR o n2 C5 CO CD 403 QI I GO NJ HS pa pab pad pud pad PA pa paa QOrt000 4C 14 CORN O O NTN AUN e amp pi ph Pe M pai dead ph Pret f edi Pah E fee fa EWM C OCD 402 UI WN HO iX GN OO OO SJOOCI AS CO NJ OD Ub S WIN OVOVNU dS CONO RO WN d ph h pui em mA NOTE NOTE NOTE NOTE e 3D CREATE ITEM ci i ic DATA STRUCTURE U52 0 JAN 83 PAGE 1 LISTING FOR DATA STRUCTURE a iem ee qm um dde WEM TR im cm spp SED UND UEM UU UMP CU MP UE rm cm m m THIS SYSTEM ALREADY SEPARATED DICTIONARY FROM GENERATED CODE CONSIDER 18 AS 1 as BUT DEALS WITH THE DICTIONARY AND NOT CODE SPACE FOR DEFINITIONS OF WORDS USED SEE CALTECH FORTH MANUAL SECOND EDITION JUNE 1978 gt PSWi 1 FOR ITEM 3 FOR ARRAY PSW22 OR OR ORL ADJUSTS A DICTIONARY NAME NOT A WORKING EXAMPLE CONCEPTUAL IDEA ONLY PEE Z EZ ES EE EE ET TE E TEE TE EET EEE EEEE ZE E E EEE E E ga CURRENT B 4 ADD OF LENGTH gov DUPLICATE 18 LENGTH IN M S B DUPLICATE 4 BRING 8 LSHIFT NEM LENGTH IN MSB 3 BRING 1 CHANGE LENGTH FLD NEXT NAME POSITION
24. WHICH NAME TYPE ARRAY INSERT X AND SUPPLY FOR INSERTION INSERT X OR 1 8 E 14 SWAP IF SWAP 5B00 OR OVER 1 Z 5D SWAP THEN SWAP 8 LSHIFT SWAP 1 amm aa ee ee ag ey uim gt CCREATE IS THE ACTION FOR CREATE BUT CREATE IS IMMEDIATE WHILE CCREATE IS NON IMMEDIATE THE SAME APPLIES TO CONSTANT VAR CCVARI CARRAY gt CODE ADDRESS IS NOT SUPPLIED SINCE THIS SYSTEM ALREADY SEPARATED DICTIONARY FROM GENERATED CODE CREATEX IN 8 CREATE IN CREATE NAME ADJUST NAME gt CREATE ITEM i CREATEX 3D IS HEX 3D FOR ASCII 2 r 3F CREATE ITEM MES 24 AME GIVES Listing Continued ciume V No 1 FORTH Dimensions ep RW B E RE SS SSS ss SS SSS so eS St PRU ERE T e interpretation is by calls to subroutines rather than threaded code There is no code address generated for COLON or SEMI e variable RAM memory space is automatically separated from program code ROMable version rather than intermixed with program code Record Structure Using the same technique as for data structure a COBOL like structure for contiguous memory space is easily implemented Data can then be described as items or arrays of word byte bit s string or decimal FORTH systems with program code space separated from the variable space ROMable system are particularly suitable for inclusion of such a re
25. and 2764 PROMS Can produce code without headers and link words for up to The simulated memory may be either byte or 16 bit 3096 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 includes our new tools diskette 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 System Fundamentals amp Tools 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 Theory 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 Task Scheduling e Meta Defining Words e Simulations Algorithms JULY 11 15 SEPT 12 16 SEPT 19 23 OCT 17 24 OCT 31 NOV 4 NOV 14 18 395 Incl Text 495 Incl Text Instructors GARY FEIERBACH and PAUL THOMAS For further information please send for our complete FORTH Workshop Catalog Inner Acce
26. binary 1 on top of the stack When NOT or 0 is cited bit 0 of the top word of the stack is 5th Annual FORTH NATIONAL CONVENTION FORTH Based Systems A Look into the Future October 14 15 1983 Hyatt Palo Alto Palo Alto California When PRECEDENCE BIT is cited bit 0 of the top word of the stack is stored in bit 7 The LENGTH OF NAME field is not manipulated even though PRECEDENCE BIT lies in the same memory byte To do the same in conventional FORTH the following is required FETCH ADDRESS OF LINK FIELD 4 DUP C 80 XOR SWAP C e Exhibits Equipment Demonstrations inverted the high order 15 bits are e Speaker aint Groups irrelevant e Tutorials e Worldwide FIG Meeting e Vendor Meetings e Banquet v Panel Discussions e Awards FORTH is for everyone The FORTH computer language is used in video games operating systems real time control wordprocessing spread sheet programs business packages DBMS robotics engineering amp scientific cal culations and more Learn about FORTH and make your life easier The convention will show you how FORTH Based Systems A Look into the Future is the theme and will cover FORTH applications FORTH based instruments and FORTH based operating systems Those wishing to participate and be speakers and or panelists are urged to contact the Program Coordinator immediately Telephone the FIG hotline 415 962 8653 Convention registration is 5 00 Special conventi
27. directories e Printer control e String word set e Cursor control e Recursion Internal advancements include s Links in front of names e Fast math e No names on internal words e Super fast compiler e New 83 standard circular DO LOOP e DO LOOP executes O times if arguments are equal e LEAVE leaves immediately e Multiple WHILEs e Vocabulary trees without vocabulary links Compiler security e 1 byte relative branches for conditionals a Smart CMOVE s Machine code where it counts AA aA aA e AA A eA A ae e ee A AA AA a AD oA e A A A AA fl All Marx Forths are compatible and most code written on one system will run on any other with no modifications Also available the Marx Forth target compiler This allows your program to be compiled into a stand alone object file that doesn t need Forth in the system to run The Marx Forth application software development system is available to software houses This package in cludes Marx Forth for all systems we support including the target compilers This allows software to be devel oped for many computer systems simultaneously as well as having the most powerful compiler available These applications can be target compiled to run on all computers for which Marx Forth is available and mar keted without the end user ever knowing it was written in Forth Call for details Marx Forth model license is available for Forth ven dors who want to improve their product or implement Marx
28. drawn and two objects though positioned and oriented differently on the screen can both use the same 3 D image in memory For example two rotating cubes on the screen can use the same set of 3 D lines For each image the X Y and Z coordinates can range from 128 to 127 giving a possible 256 positions along each of the three axes which is plenty for most applications The ac tual number of lines in an image is limited only by the amount of avail able memory Each end point of line entry in the image uses four bytes of memory Up to sixteen different objects can be manipulated at one time in Gra Forth They are numbered 0 through 15 and referenced with the GraForth word object After giving an object command the 3 D commands will manipulate that object until another object command is given For ex ample if you type 3 OBJECT 30 XROT 10 SCALE then object 3 will be rotated 30 units around the X axis and scaled to a size of 10 To manipulate a number of ob jects you select each object in turn with object then give the appropriate commands for that object Here is a quick summary of the in dividual 3 D commands their effects and the appropriate ranges of num bers to use Xpos ypos These set the X and Y position on the screen of the 3 D point 0 0 0 for the object and are used for positioning the object in the appro priate place on the screen Xpos can range from 0 to 255 and ypos can range fro
29. e RSX 11M Directive Support RT 11 e Compatible with RSX 11M System e RT 11 Programmed Request Support IBM PG 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 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 Gontact 4 Votume V No 1 FORTH in the Arts Three Application Stories Shown here is a print of a digital valentine a sample of computer art Santa Cruz California This valentine is also a frame out of a one minute l6 mm mov
30. entered as characters 0 F preceded by a sign by modifying the compiler as follows e define a variable IBASE similar to BASE NUMBER is to first calculate IBASE as 16 if the first character of the Word is a sign otherwise it is as for BASE NUMBER is to use IBASE rather than BASE A listing from the compiler operat ing system is shown see listing 1 Any user program which calls NUMBER will remain correct Any which calls NUMBER will not in which case change NUMBER to INUMBER in the listing Also the Word is specifically tested for this is because interpreta tion first mis matches against the dic tionary before doing a number conver sion and not vice versa as in some FORTH systems Typically use of an implicit hex number scheme avoids confusion Data Structure Normally program code can be structured such that only the contents of a data structure and not the memory address of the data need to be referenced In particular the Words CQ C CSETO CINCI SETO can be eliminated from a piece of program code Thus it is possible in FORTH to say A 14 A to correspond to the BASIC statement LET A A 1 Typically citing A and A generates less FORTH Dimensions 20 Volume V No 1 d eee ene rr ef a AA program code and runs faster Also LISTING 1 NUMBER CONVERSION USED BY COMPILER OPERATING SYSTEM the source program is easier to follow VS2 0 JAN 83 PAGE 1 ran ee diuo d
31. error refinement at computer displayed images is much more practical than with the sticky paint or dried ink of traditional graphic media There is no tube of paint that can run out Moving scaling rotation duplication and coloring are some of the manipulations available Actions are selected in menus that pop up when needed on the color monitor screen The position of the pen is always shown on the screen as an XORed crosshair so with menus and positional feedback the artist rarely needs to take attention away from the screen The hand holding the pen becomes an automatic part of the process of willing an image into being Complicated pictures can be built using combinations of line rectangle circle and ellipse primitives frames and cells loaded from disk digitized video images fills and freehand drawing with various size pens tairbrushes and user defined brushes The sequence of actions that will result in the desired image whether diagrammatic or illusionistic is often as critical as the sequence of instructions in programming the sophisticated computer graphic artist is a visual programmer using yet a higher level language than FORTH A tremendous advantage of programming at this level is that any bugs are completely visible Extensible Software Like FORTH EASEL is interactive and extensible The user can select among optional menus and add new menus as they become available or pro
32. expertise and dedication has helped make this magazine as useful a journal as it is In particular I d like to thank Henry Laxen a tireless and I might add unpaid as are all F D writers columnist for his always excellent work and to Robert Smith FIG s own active archivist on standardization Both columnists are taking a much deserved vacation with this issue but will return next time I d also like to thank regular reviewers Kim Harris Michael Perry Klaxon Suralis Glen Haydon and Bill Ragsdale for helping me ensure technical correctness of published material I m looking forward to more issues of interesting and pertinent FORTH news and commentary In fact I just sent off my 15 renewal check Hope you have too See ya Leo Brodie Cover Art The end of another beautiful definition as semi colon sets over the Firth of Forth LB Interactive Computer Graphics for Art Design and Learning Bob Gotsch Time Arts Inc A video paint program called EASEL written in FORTH for use with several medium resolution graphics frame buffers Cromemco and Digital Graphics Systems among others allows an artist to create images and illustrations with electronic pen on digitizing tablet Video painting is a new medium of expression with characteristics that challenge an artist s skill and imagination and also provide new creative opportunities Interactive Visual Programming Interactive trial and
33. file and the new record number is added at the end of the list of record numbers on each card This system which I shall refer to as the coded record number approach is shown in Fig 2 It only requires two files and as indicated by the broken line the keyword file is open ended Previously the maximum number of records that the entire file could hold was dictated by the number of dedicated punch hole positions on any one card or the number of bits allowed per keyword in the computer version Now the number of records the file can hold is no longer limited by the number which can be put on a card but will be controlled by other system parameters Clearly it is no longer possible to have a keyword which references every record but such a keyword is useless in any case The question now becomes what percentage of the total records should one keyword be able to reference My guess is that the answer is in the range of from 5 to 10 and that keywords which reference more than this need to be retired or broken down into multiple more specific new keywords Let us examine my statement above that the card area is now being used more efficiently as it applies to the computer version Instead of allocating to each keyword one bit for every possible record we must now encode the selected record numbers and record them with the keyword The coding scheme used will define the maximum number of records the system can ho
34. people work on this What we have is universal so it should be very useful to a lot of people Note The system described here will be taught in a two week course starting on July 11 1983 Contact Allen Strange Music Department San Jose State Multi Media and Rock Promos FORTH Dimensions interviewed Peter Conn President of Homer and Associates in Hollywood California We have two main computer systems that work together One is a computerized optical printer interfaced to a paint system raster graphics The other is a 24 channel visual mixing console that controls 16 slide projectors and four 16mm projectors as well as an audio tape machine with time code and music The combination allows you to do a very complex mix of music and images in real time FORTH Inc was the only consulting firm who said we can do that We ve been using FORTH for around two years now We recently bought a frame store originally as a tool for aligning the op tical printer But the one we bought went far beyond what we needed be cause we got a good deal on it Once Paul Rother our programmer got it working the software happened very fast In a month we had a full fledged paint function written completely in FORTH with all kinds of features It s 512 by 512 by 7 bits We can paint to the RGB monitor make slides or movies that interface to the optical printer Since then we ve used the paint program on all of our rock pr
35. priced computer graphics equipment Some applications that currently justify the cost of professional graphics systems are video illustration and real time animation story boarding for film and video graphic design layout business graphics scientific simulation equipment control and engineering and architectural design With cheaper memory and new designs good frame buffers are becoming available at a fraction of the former cost This will give many more artists and designers access to interactive graphics systems And interactive tools are most of all useful for learning Access to tools for experiment rather than production is a necessary part of the creative process After imitating old graphics for a while with new technology artists can be expected to contribute new techniques of graphic representation This development would have been very difficult using the EXORset s BASIC not least because the BASIC interpreter uses the graphics display memory making interactive develop ment of graphics impossible poly FORTH and its graphics package however fit in about 12K bytes leav ing plenty of room for graphics dis play data and the application pro gram Come to the FORTH Convention Oct 14 15 1983 Palo Alto CA FORTH Dimensions TRANSPORTABLE SOFTWARE fig FORTH and FORTH 79 Model Systems for DEC PDP 11 RSX 11M e Multi User Multi Tasking e Re entrant Resident Library e Shared Commons
36. q a BFBI approach brute force and 1G DUF I I OFFSET w BLOCK BBUF CMOME UPDATE Sa 11 8 BUF LC QFP FLUSH 23 bloody ignorance but it works well 45 _ MEX zi oe for my needs An overlay occupies a 13 3 multiple of 1K Byte counted i3 Be backwards from the end of available dictionar y memory determined by my i overlay system non resident section cm a4 t ad system constant EM The first eight 2 UNLINK YinkiXlinkz 0 unlink the overlay definitions as words of an overlay block contains the 3 rom main dic as 4 LATEST CR unlink a4 following loading and linking E ESTA 13 information DUP ID 2 SPACES i print unlinked 3 aS d DUP PFA LF OUR w Us u WHILE ag a PFA LFA ea block address B REPEAT CR a 0 contains the start 1g gt a block of the overlay Listing Continued Volume V No 1 37 FORTH Dimensions TONNE whe m DHF amp E thie is LFA af First def X NFA 1 LITERAL SWAF EK link X to the first DUP i qd RELINK i this is WEA at last def DUP OVA 7 GVH get OVA and OF 3 ELSE DROP THEN 3 i Cuerlay system resident section cm j EXG addri asddr2 gt amp exchange variable contents DUP gt R s SWAP DUF a R QU SUITCH ewi tch from main dictionary ta overlay CURRENT a OVA g 14 EXG area and back DF DVS a 12 EXG VOC LINK QUA 14d EXG HEX AB x NFA i C amp Kill name cf X 2s Ae Y NFA 1
37. s and 0 s stored with the keyword can be extended as far as one wishes This system which I shall refer to as the bit mapped 00100001010 INDEX FILE OR BIT MAP SELECTED RECORD NOS OPTIONAL KEYWD NOS 200 125 8 134 130 10 6 250 220 100 250 220 99 6 25 20 18 7 50 40 25 8 255 200 100 DATA FILE Fig 1 Bit Mapped Approach 27 FORTH Dimensions approach is shown in Fig 1 It requires three files to be maintained the keyword file the index file or bit map and the data file Watkins chose to include the keyword numbers for each record number within the record data but as he points out this is not required but is done to give a bit of redundancy in the event of damage to the bit map There is an improvement one can make both to the manual inverted card file system as described and to its computer equivalent I don t know whether this has a name or not It no longer allows the use of peekaboo detection in the manual case but is very easy to implement in the computerized case As before there is a card for each keyword Instead of the area of the card being mapped out in bits one for each possible record the selected record numbers are simply written on the card in increasing numerical order Now the card area is being used much more efficiently To say it another way when a new record is to be added to the file the desired keyword cards are removed from the card
38. 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 Volume V No 1 15 MOUNTAIN VIEW CA 94040 415 961 4103 FORTH Dimensions L H Bieman Energy Development Associates a Gulf Western Company Madison Heights Michigan Convinced of the beauty of pro gramming in FORTH I started an ap plication to interface a lab experiment with a microprocessor Another fac tor was that FORTH was the only lan guage available besides Assembler and am not fond of programming in Assembler My scientific background yearned to use floating point math but I decided to stick with the credo of FORTH programmers use integer arithmetic it s fast and exact Unfor tunately my application required the use of double precision numbers for which there were very few math opera tions in my version of FORTH There were four basic operations available double precision addition subtraction multiplication of two singles to form a double and division of a double by a single yielding a single This was not enough for my application I needed to take the ratio of two double precision numbers scale double precision numbers etc Thus I did what a FORTH programmer must create the needed words Hopefully these words which are found on the three screens shown will help other
39. 3 S overlay dictionary pointer 4 QU 8UITCH Be a EM HERE Uc 13 PERROR o averlay area too small 3 S6 OVA J PR ae 14 contains the 7 RPS ad R2 RZ2 3 RP 4 J SAVELIMAGE as 8 CANCEL Ba overlay VOC LINK oP ae To invoke load from disk if 11 don t forget to place this error message on scr 4 line 13 Be necessary an overlay caller must be is overlay area too small sis defined in the main dictionary The 14 ae PFA of this caller looks similar to the bs S first 4 bytes in the overlay overlay system non resident section cm 23 12 82 0 a PFA of the overlay caller n Eg 2 0 contains the start block of the 3 PFA of an overlay caller 87 overlay 4 BLK DR BLKS OVA 2r 2 contains the drive to load the 5 2 4 27 6 li a7 overlay from 7 parameter block of the overlay 87 4 contains the number of blocks to 8 BLK DRHD BLKS OVA QOUT LIMK IN LINK QU DP VOC SAVE 87 be loaded 9 8 2 g 10 1200 14 87 e 1e a7 6 contains the overlay start address 11 87 s a If you now want to convert a 14 a program or programming tool to an P Overlay proceed as follows l be 1 Make the resident section of the U load screen for avertay assembler 2 eau 01 FORTH DEFINITIONS TASK marker b 88 overlay system a part of your cold e nun be eg start system or make sure that it is a3 83 LOAD the non resident overlay generator definitione gt ga 4 T always loaded to the same address 3 232 OPEN OQW
40. 999 records The only valid way to add a new keyword to the system is to review all existing records in the file to see whether it applies to them This can also become a problem when the user s interests change If I suddenly become interested in lasers it does only a small amount of good to add the word laser to my list of keywords for indexing magazine articles for only future articles will have that keyword applied unless I go back and review my entire library of SELECT DESIRED KEYWORDS RAYGUN ANTIGRAV INPUT KEYWORD NUMBERS RECORD NO DATA OUTPUT RECORD DATA potential laser article containing magazines and re index them Watkins describes optical incidence or peekaboo cards where there is a card for each record and punch hole positions on each card corresponding to all keywords the positions corresponding to selected keywords being punched the others not The system he then implements is not the analog of this which may have caused some readers to be confused His system is the analog of an inverted file system where there is a card for each keyword and punch hole positions for each record Such systems find limited use in their manual form because the number of punch hole positions one can put on a reasonably sized card is very small thus limiting the number of records one can index The computerized version has the advantage that the number of punch hole positions 1
41. BIT is cited bit 7 is placed on top of the stack at bit O with the high order 15 bits all zeros This effect is referred to as transformation that is conversion of data types occurs automatically when data is cited by name This can be simply illustated if PRECEDENCE BIT Continued on page 33 pn nA m pach jun Pn ende este eed e PA na jd e des tnA4 GJh i OUO COO UIS GNFSO UANO 10 021 AUN O UAONK ODIO IOU CUL JS CON OD Ui ix WaN e ODO D OD 1001 G1 4 CO NJ i C MAA AUN O CRAIN OO JO CA IS GO 9 f D pem endo prie fen deno e ub Pad foh irn jd jm DATA STRUCTURE V52 0 JAN B3 PAGE 3 IMMEDIATE CREATE DO VAR CREATE DO VAR VAR ADJUST ADDRESS ITEM NAME IMMEDIATE CREATE DO CVAR CREATE X DO CUAR CCVARI AD JUST ADDRESS I TEM NAMES IMMEDIATE TE CREATEC 7 V DO ARRAYC 1 CREATEL X DO ARRAYE CARRAY 24 3 ADJUST NAME EXAMPLE OF RECORD STRUCTURE SHOWING FORTH DICTIONARY V82 0 JAN 83 PAGE 1 EXAMPLE OF RECORD STRUCTURE RECORD DESCRIBES FORTH DICTIONARY MAXIMUM ENTRY SIZE IS SHOWN THIS RECORD STRUCTURE DOES NOT ALLOCATE MEMORY SPACE STRUCTURE COBOL EGUIVALENT M 1 18 PICTURE 1 16 M 1 5 PICTURE 1 5 M 1 1 PICTURE 1 1 M FILLER 1 1 FILLER PICTURE 1 1 31 M 1 B ARRAY PICTURE 1 8 OCCURS 31 31 M X PICTURE X 31 M PICTURE RECORD DICTIONARY ENTRY RECORD HEADER M 1 18 LINK ADDRESS 16 BIT FIELD M 1 18 CODE ADDRESS M 1 5 LENGTH OF NAME 5 BIT FIELD M FILLE
42. DOUBLE PRECISION MATH WORDS BIEMAN SA DN DABS ABS SIGN FIND ANI SAVE SIGN CHANGE TO ABS ZDUP XOR gt R ABS gt R DABS R gt R DS D N D SA XR T DROP R gt D MULT DOUBLE TIMES SINGLE D S D N D 5A gt R O SWAF T R gt D DIVIDE DOUBLE BY SINGLE D D N2 N1 D R SA R gt DUP ROT XOR gt R ABS FIND SIGN AND AES U R gt D CALCULATE AND SET SIGN 3S FORTH Dimensions 16 Voiume V No 1 j Dx Takes a double precision and multiplies and divides by single precision numbers yielding a double precision very useful for scaling The math words numbers include for unsigned Tx Multiplies a double times a single precision number to yield a triple precision product T Divides a triple by a single precision number to yield a double precision quotient Ux Takes a double precision and multiplies and divides by a single precision number yielding a double precision In the comments found on the screens U stands for unsigned N stands for single precision D stands for double precision and T stands for triple precision For some versions of FORTH the R must be replaced with R Another item to check is that the U works correctly for divisors greater than hex 7FFF There are some modifications of the words that might suit your application better You might want D to produce a double precision quotient rather tha
43. ERLAY x overlay begins at scr 232 reserve 3 33 scr 80 to 82 6 KByte screens y gg 2 Y b 8 LOAD load the source text of the ASSEMBLER gt 35 your program becoming an Overlay amp to be compiled into the cverlay area aS should be debugged calculate the size t i see how far the overlay area iz filled 3 33 of it in K byte and determine some 011 CR last memory location HERE HEX amp D DECIMAL ea continuous free blocks on the disk L2 aa 3 CLOSE OVERLAY X reset pointers to main dictionary and save as where the binary mags will reside If 14 FORGET TASK the binary image te disk forget all ae you proceed as shown on screen 88 SEE 85 theimage will be created and saved on 8 load screen for overlay assembler gt a disk No dictionary space will be l a consumed after this procedure and 2 232 OVERLAY ASSH create the overlay caller ASSOV 2 ey hi ilati E d l E overlay is on screen 232 a7 this compilation 1s ped one d a 3 To invoke the overlay you have to 5 AsSCK ig overlay for i Fiini amp aT SSO get this overlay for the fallowing defiinitions PA compile what I have named an overlay 7 make the following definition global by including the 3 caller into the main dictionary as 3 overlay caller and redefine this definitions di shown on scr 89 where the assembler 08 ASSEMBLER ASSO COMPILE ASSEMBLER ay overlay caller ASSOV is created Each eae ee EDEN 5 ti
44. F 4 not in memory gt CANCEL 7 SR R Ww R 7 other Unfortunately these tools are 8 R 2 R 4 3 GET IMAGE load into memory 3 eating up a lot of valuable dictionary 9 R 8 addr 1a DUF a R gt w 12 ERR R wrong Block space decreasing the amount of free Li memory for my application programs 12 On the other hand a loading i compiling of a tool for each time of 15 use would be very time consuming Some tools can t be discarded from memory after use because they generate code themselves i e the assembler These facts in mind I wrote this overlay system to rapidly load a tool as a binary image All tools use the ia same memory space counted 11 backwards from the end of available dictionary memory So there is only 14 need for enough memory for the tool I actually want to use The overlay 8 overlay system non resident section cm 85 83 83 3 ea system is divided into a resident part s ote si BN deeds opm ta bon the fa i as Y images 2c R foe Dese ut i Say t EK ase See YoUr zretem haz wea located behind the system definitions 3 1824 Byteeblock and 258 Blacks drive or not 3 az and a second part that is loaded durin H a3 A p 4 A d UMNE ra FORTH DEFINITIONS DECIMAL 33 the generation of a binary overlay ay image only 7 SAVE IMAGE 4 addr start blk dr blks 3 83 A a CE writir werlay image scr jo ES The following concept is certainly a 5 toon DUEB IE BO
45. FORTH at additional cost 79 Standard Systems by MOUNTAIN VIEW PRESS CP M 80 300 00 tax and 5 00 shipping and handling Apple is a trademark of Appie 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 Nlautilus Systems P O Box 1098 SANTA CRUZ CA 95061 Volume V No 1 9 FORTH Dimensions suoisueuig H1HOJ L ON A 9UinIOA Ot et Patet ta tatu E DERA LZ9p 1 WOA MON APOY 989L7 XOY Od qo1eosoy pue uongoridd y yuoy jo pjeumof oy T 0 suondu sqns pue sournbur s duosnueul j e joeirp aseo d 1 ysonbor uodn o qe IeA oie sourpopin3 yduosnueul ojioeds 210 poit 2q pjnous saoua12jo1 juoAo 21 pue pojuouinoop m aq pinoys 9po2 8 H L3OdJ 10 6L HLYOd Woy 9ouoS1oAIp Jofew Aue jo uoniuiosp 9uios pue ur8uo s ulojs s YYO J MOA 3A BEI uonen3ijuoo uiojs s IY se M SB pesn juouidinbo pue ore pieu au sequosop yorya uoroes uongjuesumrsur ue 9pnpout pinous s1oded uoneoyddy sjuauroounouue pue SNOU eoruq29 POYS Sapo MAII SUIOOTOM osje m 9J9 A9S 9 UO eoi qnd 104 uongejopisuoo Jepun Kjsnoouv3rnuris 3q jou pjnous au L peusi qnd Ajsnotaeid jou yJom peu uo juosaJd jsnur pue YOWIS JO T 3uo mo Jo suoneotr dde aquosep p nous sjedeq sony 10j uorjeuuoju 1240952 pup uoivojddy yu
46. Forth for another machine Call for marketing incentives COMING SOON Marx Forth for the IBM PC and Apple and Marx Multi tasking Forth for the larger systems Perkel Software Systems 1452 NORTH CLAY SPRINGFIELD MO 65802 417 862 9830 or 417 883 3709 Consulting Services available LLL AAA AAA AA AAA A aA A oA A o a t ooh AA A A A ae oe 0 ao AOA A A oA A oA AA A AA A A A A A A A A AA A AAA A A oA A A AA A A AAA A A oA AS AA AA ALAA AA AA AA AAA AAAAA AA AALALAPPAAPLD DAS LILA A SA ADD SA A A AD DS A A oA ae A aaa ALAAAAAAAAAAA AA A Agfa AA AA AA eA A LAA ALAA A A A A A ASL LL DS Volume V No 1 Technotes Continued U Bug Fumigated K G Lander Crewe England In Technotes IV D Vol IV pg 2 Jack Haller identified a bug in U 79 standard UMOD for which he proposed a correction Unfortunately his solution is only partially correct as the following entries demonstrate 1048576 65535 U MODok U 31 ok Quotient should be 16 U 31 ok Remainder should be 16 The problem is that the N 1 ROL instruction on line 7 accumulates ALL the carries that would have been lost by the original version instead of just the latest The corrected version see listing clears N 1 after the remembered 17th bit has been processed Incidentally while checking out the corrected solution I discovered that the Ux carry bug correction in the Installation Model has not been incorporated into t
47. INGS 1982 FORTH Univ of Rochester Conference 25 35 FORTH 79 Standard a publication of the FORTH Standards Team 15 18 Kitt Peak Primer by Stevens An in depth self study primer 25 55 BYTE Magazine Reprints of FORTH articles 8 80 to 4 81 5 10 FIG T shirts Small 7 Medium Large X Large 10 12 Poster August 1980 BYTE cover 16 x 22 3 5 L FORTH Programmer s Reference Card If ordered separately FREE send a stamped addressed envelope Jor Dobb s Journal Two FORTE Issues 9 81 amp 9 82 7 10 i PEA eel TOTAL Suee o NAME A MAIL STOP APT__ ORGANIZATION NN PHONE i ADDRESS en eee CITY STATE ZIP COUNTRY VISA MASTERCARD 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 2 FORTH INTEREST GROUP PO BOX 1105 SAN CARLOS CA 94070 Atv dm c ie PP n NES s Me FORTH INTEREST GROUP Q Box 1105 Vm tenta anum i A Mam eater AR rr a dcm emori dr sta e AN ACHAUEI TE NANTON CRT Hr rrt 472 b ort ill AL IB Tm TH a AR aN ehe m NAIR EL ien M S e P a arraga e B hog i 8 Aun ras mta Kms i Poo le heater A ate ses art pu M Sheqphe Q2 AT BULA BATE rie CHOTA gs bm PE Ss ai gh i PAID Ju ER Perm No 25 l oan Carlos CA 94070 e
48. OLL OBJECT 37 0 DO 13 XROT 15 YROT 16 25 XPOS 13 35 YPOS 118 ABS CHS 18 SCALE DRAW LOOP None of these formulas were arrived at by magic As the routine was written we tweaked each formula until we got the desired display Here are the numbers that come out Loop value 0 to 36 XROT 0 to 108 YROT 0 to 180 XPOS 25 to 241 YPOS 35 to 143 SCALE 0 to 18 then back to 0 The scaling formula deserves more comment The desired effect was to have the object grow and then shrink FORTH Dimensions 12 Volume V No 1 We could have used two scaling loops one after another the first increasing and the next decreasing But then we would have had to keep all the other parameters moving smoothly through the transition from one loop to the next without a skip in values For simplicity we decided to use a single loop With the loop value moving from 0 to 36 we wanted the scaling function to slide from 0 to 18 and back to 0 This can be shown with Figure 1 Figure 2 shows the steps we used to achieve the effect Sometimes a more complicated animation cannot be performed inside a simple do loop This is especially true if the user is interacting with the program through a joystick or keyboard and the program must make decisions In this case it s often best to use separate variables to keep track of each parameter The parameters can then be updated at any time from the runni
49. QUIT which would cause an immediate cessation not only tools BREAK amp GO WF Seuberling 3 4 81 CHEE CHECKS if FRstack contains RED at time of BREAK 19 changed 1GSDECSI of the BREAK interpreter but of the suspended application as well At that point if you don t happen to notice you re back in FORTH s in terpreter and you type GO you ll crash To prevent such an occurrence from blasting you off to never never land a check has been added the value of the return stack pointer is saved at BREAK time and checked at GO time If they don t match you ve changed levels and an error message will result Another pleasant addition has been the stack dumps both data stack and return stack on line 6 BREAK will run fine without either of these if you haven t got them yet Kim Harris has noted a possible en hancement in the margin of the listing By saving the contents of the return stack at break time in an array then restoring the return stack to its former condition at GO then you could re sume even without having to be in the special interpreter Come to think of it you wouldn t even need a special in terpreter The possibility of suspending one application in mid stream performing any number of other tasks then re suming at your leisure is very interest ing for a non multiprogrammed en vironment Leo Brodie KRH since BREAE 3 def RN wR AGAIN DROFP THEN i
50. R 1 1 SPARE BIT 5 M FILLER 1 1 SPARE BIT G6 M 1 1 PRECEDENCE BIT BIT 7 M 1 8 ARRAY NAME ELEMENT 31 BYTE ARRAY M REDO NAME ELEMENTI 1 irc n NARE NAME ELEMENTILJ CHARACTER M X C NAME STRING M END RECORD RECORD TRAILER End Listing Volume V No 1 FORTH Dimensions 8080 Z80 FIG FORTH for CP M amp CDOS systems FULL SCREEN EDITOR for DISK amp MEMORY 50 saves you keying the FIG FORTH model and many published FIG FORTH screens onto diskette and debugging them You receive TWO diskettes see below for formats available 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 Z80 mnemonics This disk also contains executable FORTH COM files for Z80 amp 8080 processors and a special one for Cromemco 3102 terminals The 2nd disk contains FORTH readable screens including an extensive FULL SCREEN EDITOR FOR DISK amp MEMORY This editor is a powerful FORTH software development tool featuring detailed terminal profile descriptions with full cursor function full and partial LINE HOLD LINE REPLACE and LINE OVERLAY functions plus line insert delete character insert delete HEX character display update and drive track sector display The EDITOR may also be used to VIEW AND MODIFY MEMORY a feature not available on any other full screen editor we know of Th
51. R65F1 1 One 8 bit port with programmable latched input Two 16 bit programmable counter timers with latches Serial port Ten interrupts 32 RS232 Serial Port R65FII FORTH based microcomputer Power on reset circuitry Expandable VOSoORVOOD PAS CS fwd et actual size Expandable to 16K bytes of external memory Flexible clock circuitry T us minimum instruction execution time Q 2 MHz NMOS silicon gate depletion load technology Single 5V power supply 12 mW standby power for 32 bytes of the 192 byte RAM 40 pin DIP R65F 11 We will be advertising very soon in the major trade journals We anticipate demand to be so great that this will quickly become a limited availability item We wanted to offer it first to the people that made the R65F 11 possible the people involved with the FORTH Interest Group We are offering a special order price of 220 00 This is 30 off our list price but to reserve your board WE MUST HAVE YOU ORDER NOW This is a limited time offering ACT NOW Enclose Payment With Order To New Micros Inc 2100 N Hwy 360 Suite 1607 Grand Prairie Texas 75050 214 660 1106 Telex 78 5551 Volume V No 1 was described as decimal with the structure M 9 1 which corresponds to PICTURE 9 1 in COBOL In this case the data variable is either ASCII 0 or ASCII 1 in memory while PRECEDENCE BIT when cited places binary O or
52. T E Variable Space of one byte is 5 OVERFLOW NOT CATERED FOR DECIMAL BASE allocated with the data structure M M 8 dli 10 ON BSW START ADDRESS OF STRING M z This is equivalent to the statements H ue Sol CONVERTED VALUE i CVAR A 13 ABORTS IF NOT A VALID NUMBER 2 AS C T 33 343 4E EE 9 3 9E EXE EE E3EEEE EE IECOEEHE EXE IE EEUU RE IG 3 F A Az A C SCR 7 O NUMBER ATE 1 C GE T_CHARACTER TE FL green array data structure l 4 DUPLICATE CB 1 WORD IS Variable space of n bytes is 5 IF QUESTION YES ERROR a allocated with the data structure 7 ee o d aren HEX NUMBER y 5 H i n M ARRAY A g BASE CURRENT BASE This is equivalent to the statements t THEN opis r NOTE pens z BESELEDABES IOS ov rop sano i A L ARRAY A 14 PSW3 MINUS SIGN INDICATOR 0 1 FOR AI AIS C 15 PSW4 START ADDRESS OF WORD STRING gt a d T SCR 8 0 A AIS Ct i IBASE SAVE BASE TO USE 2 ROTATE ADDRESS OF 1ST DIGIT o Roce 4 20 Thus to fetch access the fifth 5 BY A SPACE CHAR element of the data structure use 4 S TF BORTE o T A j I the 7 WS ABORTS NOT A NUMBER A The limit is also defined by name 9 SWAP SIGN ADJUST FOR for use with DO loops 10 LF NEGATE A NEGATIVE VALUE 12 implementation details a A description of how M VAR can be 15 implemented is given M CVAR and M ARRAY are similar Firstly program code
53. TH system up to the resident part of the overlay system is changed recompilation of the system the images have to be recompiled as well e How to relocate a precompiled image Perhaps by using an additional link table e How to invoke an overlay from another and return to the old after execution e If the compiler flags an error during generation of an overlay keep in mind that the DP is now in the overlay area while compiling First FORGET everything before trying to compile the overlay again If you have difficulties in adapting this program to your system I mainly use a FIG FORTH version on a 6809 or a 6502 with 1024 Byte Buffers and 250 Blocks Drive Bo S867 assembler label cm 23 12 82 F 1 i equate and label uses the averiay 2 Fe v 3 FORTH DEFINITIONS vu 4 7a 2 EQUATE create a temporary canstant in the overlay area 78 E TEXEC COMPILE ASSEMBLER OV SUITCH 7 f COHSTABT 9 a LATEST RELIME QU ZSWITCH IMMEDIATE 7e 5 78 i LABEL create a temporary label in the cverla y area Ta 11 HERE COMPILE EQUATE IMMEDIATE 78 ie 7 13 ASSEMBLER DEFINITIONS mes F i4 7 15 78 i Quverla y amp yztem resident section cm 5 083 835 3 71 i 71 Z alternate definition for GET IMAGE if vou have no direct 7i 3 access to loader for fast multiple black leading 71 4 7i 91 5 5 BEIVIBMOE addr estart blkw drHsblks 71 P load zblkz contingous blocks from disk star
54. Using FORTH rather than machine assembler gives a fast reaction time to market opportunities Production pro ducts use the same board as employed in the prototypes No microprocessor development system is needed since the card con tains a screen editor working with simple visual display units VDUS It also has the compiler for the FORTH source code Debugging is inherent in the FORTH language and once the code is working this can be output to a PROM programmer Use of C MOS throughout has brought the power consumption down to 28mA making the TDS900 espe cially suitable for portable and battery driven applications The TDS900 price is 179 95 and in hundreds versions are available at 87 120 In the U S the FORTH Computer is available from Stynetic Systems Inc Flowerfield Bldg 1 Saint James NY 11780 516 862 7670 Extensible Text Formatter Editor QTF is a powerful documentation tool ideal for technical writing and documentation of FORTH programs The formatter features string and for matting macro defining capability justification centering tabbing hanging indent automatic page and chapter numbering page headers and footers soft hyphenation automatic page number referencing to tables figures and topics elsewhere in your document and formatting of FORTH screens as well as full utilization of the Epson printer fonts underlining and boldface The cursor controlled wrap around text editor offers
55. aler about the world of MMSFORTH MILLER MICROCOMPUTER SERVICES 61 Lake Shore Road Natick MA 01760 617 653 6136 FORTH Dimensions which are keyboard devices Our studio is built around Buchla systems Buchla was the first manufacturer in the early 60 s to produce commercial synthesizers These use all analog pro gramming with the synthesizer itself We were interested in something that would breathe new life into analog synthesis Everyone talks about digital synthesis and forgets about the special qualities produced by analog In the arts the big problem when you re forced to learn a language is that it takes you further away from your art In music your concept is translated into notes then translated again into manuscript Now the poor computer guy has to translate it one step further But in FORTH we can call a process anything we want You re back to being closer to your art We decided FORTH was the way to go We ve come up with a language call ed MASC Metalanguage for Analog Synthesizer Control It s a series of about 25 words that lets us do any thing we want to do For instance we can cause the synthesizer to play a major scale play a minor scale play it backwards We can randomize the notes in a major scale according to some format We can create timing structures in musical terms such as commands called WHOLE NOTE and HALF NOTE We can define sequences of things For instance we can eit
56. ath chip on board with disk and documentation 400 L MVP FORTH Programming Aids for CP M IBM or APPLE Programmer s Kit Extremely useful tool for decompiling callfinding and translating 150 O MVP FORTH by ECS Software for IBM PC or ATARI 400 800 Standalone with screen editor License required Upgradeable 100 O MVP FORTH by ECS Software for IBM PC or ATARI 400 800 Enhanced with color animation multitasking sound utilities and unlimited run time license 175 O MVP FORTH Professional Application Development System PADS for CP M IBM PC or APPLE A three level integrated system with complete documentation Complete system 400 C MVP FORTH PADS enhanced virtual system 150 O MVP FORTH PADS Programming Aids 150 O MVP FORTH PADS Meta Compiler 150 xo MVP FORTH operates under a variety of CPU s computers and operating systems CP M disks can be supplied 8 SS SD 3740 format or 5 4 for Osborne Northstar Micro Decisions Kaypro or H89 Z89 Specify your computer and operating system x x x FORTH MANUALS GUIDES amp DOCUMENTS 1 ALL ABOUT FORTH by 1 1982 Rochester FORTH Haydon See above 25 Proc 25 C FORTH Encyclopedia by 3 A FORTH Primer 25 Derick amp Baker 2 Ed C Threaded Interpretive Programmer s manual to fig Lanquages 23 references Flow charted 25 AIM FORTH User Man 12 C APPLE User s Manual iQ ot MM Z FORTH Encyclopedia Var C METAFORTH by CL And So FORTH by
57. ations 0000 IFFF this is the case also for the development environ ment even though the compiler resides in the same address space Locations 2000 7FFF for the first bank contains the compiler operating system and input output memory space Into this area is placed source compiling code which is not required for ROMing The compiler is extended as required Program code resides at locations 8000 FFFF for the first bank Program code also resides at locations 8000 9FFF as a number of selec table banks of 8K bytes Dictionary memory space exists at locations A000 BFFF as a number of selectable banks of 8K bytes except for the first bank where program code resides The dictionary is transparent to the user and is only for the develop ment environment FIGURE 1 MEMORY ORGANIZATION Why use such an unusual system Essentially to extend the memory space past 64K bytes This has the added advantage that no cross compilation is required to produce ROMable code and a huge dictionary space is available The dictionary is fast when accessed and can periodical ly be culled With ample dictionary space names can be meaningful rather than cryptic and the compiler can be extended to relieve the user s load Number Base Numbers in FORTH can be ex pressed in decimal or hexadecimal base Using the words DECIMAL and HEX establish the base of succeeding numbers in the source program Hexadecimal numbers can also be
58. ce 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 MMC AU DL A OL UU UG AIIANGO oQ IA2OAALLLLLLLIL OQ6OCLOEAZLZL AHAAZSZAAZ5Z 34 ZEZSKSEASZSZOZCOELOOIDDACAZ CCOON H OCAELOESEEAANSEm nn FORTH Dimensions 26 Volume V No 1 ne ed i More on Data Bases Lindsay Doyle I learned a lot from Robert Wat kins article The Indexer in Vol IV No 5 However I suspect that the degree of familiarity he assumed his readers would have with information retrieval techniques may have made it difficult for newcomers to the field to grasp the concepts he was presenting Also readers should not assume that the bit mapped approach he used is the only one or even necessarily the be st one for solving his problem On a third point he implies it seems to me tnat keywords can be added indiscrim inately at any time to such a system which is not the case I would like to clarify these three points and perhaps a few others as well in the hope that the results may be helpful both to other readers and to Watkins in the further development of his system In the type of information retrieval system under discussion records may consist of data held in computer storage or and this is a significa
59. cord structure The record structure implemented consists of about 2K bytes of compiling code and 4K bytes of program code ROMable code This does not include dictionary space Typically citing A or A for a record structure involves an executive speed of between 4 to 6 times that of the Word The increase in execution speed due to runtime interpretation is found to be negligible for applications on Motorola M6800 and M6809 processors at IMHZ A typical application program would be reasonably interrupt intensive VDU display orientated and consist of over 64K bytes of ROMable code Dictionary space while heavily used is not included in the target application Implementation Details A record data structure is described internally by e the address of an executable environment pointer the relative offset position from the start of the record structure e the internal encoded description of the data structure An environment pointer is allocated when a record header definition appears in the source program All data structures within a record refer to the same environment pointer which may be switched by context or executed as required while the program is running The relative offset position is determined by the data structures FORTH Dimensions dee Pm PA em Bots Dem MO JS C h C US GN OCTUCD O TAUN MO U PUN QOO 10 01 AGO e qe eA rA je FA Pe Un CN OUO JOD CD JS C9 8D C2 e iun eua irme PA est
60. cription more natural For instance we ll continual ly refer back to a number that s used for timing information in a DO LOOP If you want to change the tem po you just say the new tempo TO the variable The students don t come out hot shot programmers but they know what they re talking about We ve even managed to place a few students in industry working on video games where music is very important It s un usual for a music major to graduate and be able to step into a relatively high paying job based on the relation ship between music and technology When we first started we had about a hundred words After doing this for two semesters we ve thrown out most of these words because they conform ed to too narrow an aesthetic The danger of including powerful com mands is that they imply an aesthetic For a lot of people the language was getting in the way So we took it back to the bare bones These questions of aesthetics can be handled very well by FORTH just by using this core of words The students use and BUILDS DOES to generate their own aesthetic MASC itself gives them only the bare tools to pass infor mation back and forth with the computer At first the students get mesmerized and think that the computer can do everything But we re careful to teach them to use the computer only for what they need it for Like when you need an extra set of eight hands But making it complete enough to use for a complete
61. d Altwasser Richard gained his honors degree in Engineering at Trinity College Cambridge England He joined Sinclair in September 1980 and was instrumental in the research that led to the development of the Spectrum or Timex 2000 Recently these two experts started their own company and developed the Jupiter Ace range of hardware which is based on the exciting new language for micro computers FORTH For the FORTH enthusiast The Jupiter Ace closely follows the FORTH 79 standard with extensions for floating point sound and cassette It has a unique and remarkable editor that allows you to list and alter words that have been previously compiled into the dictionary This avoids the need to store screens of source allowing the dic tionary Itself to be saved on cassette Comprehensive error checking removes the worry of accidentally crashing your programs Order Form Product Send To Computer Distribution Assoc Jupiter Ace 56 South 3rd Street 16K Ram Pack Oxford Penna 19363 48K Ram Pack Par Ser Interface Credit Card No Exp Date Shipping and Handling Signature rp iv 6 Total Order FORTH Dimensions 36 Volume V No 1 A Simple Overlay System Christian Mahr This article presents a simple overlay system The overlays are binary images of pre compiled FORTH code i e programming tools or other ready to run programs In my FORTH system I like to have all the programming tools at han
62. d that 12 I need in program generation and 13 testing the assembler editor disk lt maintenance programs disassembler G O0n Joo0 not 2G c Ll aT J i Oyerla y system resident section cm FORTH DEFINITIONS HEX into overlay aver lay Y LFA 1 LITERAL i Pink RELINK I 8 QUA CANCEL AE 9FFF CONSTANT EM DECIMAL end of availiable dic memor 9 8 VARIABLE OUR amp current overlay number amp VARIASLE OVA amp current averlay addr X 4 ALLOT amp the input dummy link definition 3 OY 3 4 ALLOT the cutput dummy link definition NFA RELINK cancel addr etart tGliksdr amp esblkz 1 starting at GET IMAGE y load lt blKs gt contingous blocks from disk start Bblk gt driver lt dr gt destination address addr S8 SR sectors gt SWAP 8 FR amp start sector R drive gt 1 do a read 3 R gt R gt R DISZK 4 DECIMAL gt the FORTH discompiler and some a overlay system resident section cm 1 OVERLAY C BIK Ves i create an overlay caller 3 others Most of them are mutually 2 BUILDS DUP OFFSET 3 258 MOD SWAP exclusive they refer only to 3 DUP BLOCK DUP ROT 12 ERR R valid overlay 3 Bi lace 4 4 HERE 4 CMOVE 4 ALLOT i copy load intormation 9 definitions of the main FORTH 5 DOES DUP amp HERE U lt 2 ERROR does nat fit system but not to definitions of each DUP a OV I
63. e QD OV IETYyV VIR Address Correction Requested s A NR ri in are ra qua E Se aga Yu tea C Warn ir Remo mu riaa i H 7 f i PNA M e my aH Imi e m i sy a sa mt f 2 ems m mtem t oe UMP Ge uo n ee Meet rami et eA wey cae rem mon n
64. e back and forth rather than remaining still The solution to this problem is simple when you don t need to move an object any more give it one extra object command without any new parameters 1 OBJECT This will cause the same picture of the object to be drawn on the second graphics screen The two pictures of the object will then be identical and the object will remain still while other objects are manipulated Moving Faster With a little extra planning the speed of 3 D graphics can often be increased considerably The line by line undrawing of each 3 D object uses as much time as drawing the new object A faster method to remove old images is simply to erase the area of the screen the enable fast software development the interactive high level language polyFORTH was selected For detector development or ground based use each individual photon registered by the detector has its coordinate recorded in the memory of the EXORset allowing an image to be built up over a period of minutes The multi tasking capabilities of poly FORTH allow an image display to be generated on the graphics screen and updated in real time with an overlay of numerical data which is also fre quently updated while the data from the detector is handled on an interrupt basis The operator may also enter commands via the keyboard function keys during the accumulation of an image The image data may be displayed in a variety of ways such as a
65. eadowview Dr Frederick MD 21701 2 Worldwide Software 2555 Buena Vista Ave Berkeley CA 94708 415 644 2850 1 Zimmer Tom 292 Falcato Dr Milpitas CA 95035 Boards amp Machines Only See System Vendor Chart for others Controlex Corp 16005 Sherman Way Van Nuys CA 91406 213 780 8877 Datricon 7911 NE 33rd Dr 200 Portland OR 97211 503 284 8277 Golden River Corp 7315 Reddfield Ct Falls Church CA 22043 Triangle Digital Services Ltd 23 Campus Road London E17 5PG England Application Packages Only See System Vendor Chart for others Curry Associates P O Box 11324 Palo Alto CA 94306 415 322 1463 InnoSys 2150 Shattuck Ave Berkeley CA 94704 415 843 8114 Consultation amp Training Only See System Vendor Chart for others Bartholomew Alan 2210 Wilshire Blvd 289 Santa Monica CA 90403 213 394 0796 Boulton Dave 581 Oakridge Dr Redwood City CA 94062 Brodie Leo 9720 Baden Ave Chatsworth CA 91311 213 998 8302 Eastgate Systems Inc P O Box 1307 Cambridge MA 02238 Girton George 1753 Franklin Santa Monica CA 90404 213 829 1074 Go FORTH 504 Lakemead Way Redwood City CA 94062 415 366 6124 Harris Kim R Forthright Enterprises P O Box 50911 Palo Alto CA 94303 415 858 0933 Intersystems Management Computer Consultancy Story Hill Rd RFD3 Dunbarton NH 03045 603 774 7762 Laxen Henry H 1259 Cornell Ave Berkeley CA 94706 415 525 8582 McIntosh
66. er where the objects should appear on the two dimensional screen or if they should appear at all what size to draw them and how they should be oriented Each object is con verted from three dimensions to two independent of every other object This means complex scenes can require more programming to pro duce but manipulating each in dividual object is faster and easier This is the technique used by GraForth GraForth allows you to manipulate 3 D objects through direct high level commands For example the Gra Forth word scale sets the displayed size of a 3 D object xrot rotates the object about the X axis and ypos sets the vertical position of the object on the screen These straight forward com mands provide an easy to follow method of generating 3 D graphics The 3 D process can be divided into two parts first the image is created using the Zmage Editor supplied on the GraForth system disk Then the GraForth commands are used to read the image and draw the object on the screen with the appropriate rotation and scale The image may reside in any free area of memory and is not chang ed by the drawing commands Let s define a couple of words for this discussion An image is a set of 3 D points and lines as stored in memory An object is a picture of the 3 D image as it is manipulated and actually displayed on the screen Im ages can reside in memory without being assigned as objects and
67. eseda CA 91335 2 Quest Research Inc P O Box 2553 Huntsville AL 35804 800 558 8088 2 Rockwell International Microelectronics Devices P O Box 3669 Anaheim CA 92803 714 632 2862 1 Saturn Software Ltd P O Box 397 New Westminister BC V3L 4Y7 Canada 2 Shaw Labs Ltd P O Box 3471 Hayward CA 94540 415 276 6050 3 Sierra Computer Co 617 Mark NE Albuquerque NM 87123 4 Sirius Systems 7528 Oak Ridge Highway Knoxville TN 37921 615 693 6583 5 Software Farm The P O Box 2304 Reston VA 22090 6 Software Federation 44 University Drive Arlington Hts IL 60004 312 259 1355 7 Software Works The 1032 Elwell Ct 210 Palo Alto CA 94303 415 960 1800 8 Supersoft Associates P O Box 1628 Champaign IL 61820 217 359 2112 9 Satellite Software Systems 288 West Center Orem UT 84057 801 224 8554 10 Spectrum Data Systems 5667 Phelps Luck Dr Columbia MD 21045 301 992 5635 11 Stearns Hoyt Electronics 4131 E Cannon Dr Phoenix AZ 85028 602 996 1717 Talbot Microsystems 1927 Curtis Ave Redondo Beach CA 90278 2 Technical Products Co P O Box 12983 Gainsville FL 32604 904 372 8439 3 Timin Engineering Co C o Martian Technologies 8348 Center Dr Suite F La Mesa CA 92041 619 464 2924 4 Transportable Software P O Box 1049 Hightstown NJ 08520 609 448 4175 1 Valpar International 3801 E 34th St Tucson AZ 85713 800 528 7070 1 Ward Systems Group 8013 M
68. esizers with digital logic I was interested in developing a language that could be used by anyone doing analog synthesis We re not talking about commercial analog synthesizers Volume V No 1 FORTH Dimensions FOR TRS 80 MODELS 1 3 amp 4 IBM PC XT AND COMPAQ The MMSFORTH System Compare e The speed compactness and extensibility of the MMSFORTH total software environment optimized for the popular IBM PC and TRS 80 Models 1 3 and 4 e An integrated system of sophisticated application programs word processing database management communications general ledger and more all with powerful capabilities sur prising speed and ease of use e With source code for custom modifications by you or MMS e The famous MMS support including detailed manuals and examples telephone tips additional programs and inexpensive program updates User Groups worldwide the MMSFORTH Newsletter Forth related books work shops and professional consulting IM FORTH A World of Difference e Personal licensing for TRS 80 129 95 for MMSFORTH or 3 4TH User System with FORTHWRITE DATA HANDLER and FORTHCOM for 399 95 e Personal licensing for IBM PC 249 95 for MMSFORTH or enhanced 3 4TH User System with FORTHWRITE DATAHANDLER PLUS and FORTHCOM for 549 95 e Corporate Site License Exten sions from 1 000 If you recognize the difference and want to profit from it ask us or your de
69. gram special application menus such as TV weather effects display lettering or key frame animation Recently added menu operations oblique and perspective are used to create depth illusion The 64K address space isn t nearly adequate for a large and expanding video paint system so menus or more accurately the compiled code to perform their FORTH Dimensions Published by FORTH Interest Group Volume V No 1 May June 1983 Editorial Leo Brodie Publisher Roy C Martens Typesetting Production LARC Computing Inc FORTH Dimensions solicits editorial material comments and letters No re sponsibility is assumed for accuracy of material submitted Unless noted other wise material published by the FORTH Interest Group is in the public domain Such material may be reproduced 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 Inter est Group P O Box 1105 San Carlos CA 94070 Volume V No 1 FORTH Dimensions actions are overlays loaded quickly when needed Thus the number of available menu overlays is limited only by disk space Access and Applications Artists and designers even the ones who would not be intimidated by computers have not had much access to high
70. he 6502 Assembly listing A Better CRC Mike Steckmyer I am writing to comment about your article entitled Checksum for Hand Entered Source Screens which appeared in FORTH IV 3 I became interested in the algorithm after reading the part about being patient Waiting up to 2 seconds per screen was noted This seems to be a little too iong One of my past projects was to develop a Pseudo Random Binary Sequence PRBS register PRBS is just another name for a CRC register As you suggested an evaluation of the given algorithm was in order I simulated the algorithm to determine if it has a maximal length sequence A PRBS register will cycle through states and eventually start repeating The number of states before repeating is the length of the register A 16 bit register is maximal if it has a 2 16 state PRBS I found that the register in ACCUMULATE is 2 15 states long The number 4002 H 16386 defines the feedback used in the given algorithm I found that a feedback value of 148C H 5260 produced a maximal length PRBS I also determined that the byte shift left 256 and bit shift left loop 8 0 DO LOOP did not effect the length of the sequence So both operations can be removed without a loss of performance and help improve the speed of checksumming I propose using this new definition PRBS oldcrc char newcrc XOR DUP 0 lt IF 5260 XOR DUP SHL 1 ELSE DUP THEN I found that PRBS
71. her play in or type in a series of notes Then we can read it out in a variety of ways backwards forwards inside out to generate musical events The events are used to compile phrases phrases are used to compile sections sections to compile compositions The lan guage makes it easy for the performer to reorganize the formal aspects of his music The performer can try putting this part first then try putting it last etc We re now using a Terak Computer which is an RT 11 based system a small PDP 11 We conned the campus computer center into giving us this thing and in buying the FORTH package The system uses 32 channels The computer generates 8 channels of control output in the range O to 10 volts via D As and 8 channels of timing pulses to initiate certain events At the same time there are 8 channels of A D input for controlled voltages and another 8 channels of input dedi cated to timing logic to start and stop processes in the computer count events etc I ve been teaching this class for a couple of semesters Originally I tried teaching them this language without getting into FORTH But we ve made a few additions that make the FORTH more readable so now I m really teaching FORTH One of the changes is that we implemented the word INTEGER instead of VARIABLE INTEGER returns its value to the stack without having to say and you can store into by saying number TO name This makes the des
72. home environment controller tem perature zones time zones real time data acquisition of analog and digital signals e even use it to control your model railroad e has DELAY Variables and CLAMP Variables as in most real time control languages Complete instruction booklet describ ing the language and applications EPROM Extension Complete System including Sinclair Prices include shipping Free information available Write to Tree Systems Suite 233 3645 28th St S E Grand Rapids Mi 49508 616 949 8506 FORTH Dimensions Technotes ENCLOSE Encounters Nicholas L Pappas Ph D Here are two tests and a practical solution for the ENCLOSE bug In many applications a natural decision to take is HEX 1 B SCR blocks screen 1 400 B BUF bytes block buffer 1024 One consequence is the enclose bug may get you The ENCLOSE primative in many Forth listings uses a one byte counter to accumulate the blank delimiter and character counts When B BUF holds less than 100 hex the counter s capacity is adequate however a two byte counter is needed when B BUF holds a number greater than the one byte counter s FF capacity If a screen has more than FF delimiters in a row call this a bad string two kinds of wrong events may occur A bad string before the end of the screen will cause the system to lock up so that OK is not returned We have a crash requiring a reset A bad string el
73. i FORTH the strip chart windows tape control and analog to digital conversion and analytical functions operate as multiple background tasks while the operator interface operates in the foreground i e the strip charts may be scrolling up or down through the database while the operator is selecting channels viewing data or initiating computations e owe 7 CH t HORIZ CHANNEL NO 1 SPAN ROTATION MIXER 2 6 CHANNELS ROTATION ItTEC Inc 1983 Revision No 06 We think that Lloyd Lamb and Howard Houserman of ZETEC deserve a lot of credit After attempting this application with HP Basic an unusually fast Basic at that they stopped after three months due to insufficient display performance The project was converted and completed in Multi FORTH in about 1 months While both men are acknowledged industry experts in Eddy current technology and data acquisition neither has had extensive training in computer science Gentlemen we salute you And boy are we proud MULTI FORTH IS AVAILABLE ON ALL HEWLETT PACKARD SERIES 200 COMPUTERS 9816 9826 9836 AND MOST 68000 SINGLE BOARD COMPUTERS KDM VMO1 VMO2 OB68K 1 BRI EXORMACS VME110 ENG696 DUAL FOR MORE INFORMATION GET IN TOUCH WITH US Volume V No 1 New Product Announcements METACRAFTS FORTH FOR APPLE Il lle Metacrafts Limited announces the release of Metacrafts FORTH V1 2 for Apple II IIe computers with 48K RAM and at least one Disk
74. i integral interrupt linkage and communica tions protocol JEDEC standard memory sock ets for 2K or 8K CMOS NMOS or perts in FORTH based application oe develooment and are excited to ae ee Lo be able to share their special with Laqaer Ulagrams Or knowledge with you on a person FORTH Multi Tasking 3l basis oai ieda ta Md ue tomorrow to give d ntertace amp ar a new family of control system prod 2 16 bit 1 0 ports ucts today Our innovative FORTH team eee pud Compatible with industry continues to introduce versatile pow standard optical isolation erful and unique firmware with impor VM edges boards tant advantages low cost system development interactive FORTH lan guage to speed software creation EE PROM nonvolatile memory and STD PEOPLEWARE BUS interfacing Look through our new FORTH firmware we know you ll discov f Uy f TEM f INC er an application for your current or future projects For samples docu 812 851 0827 TWX 910 576 1755 mentation or consultation call one of our FORTH team Mike Oran Hardware Engineer Fred Olson Applications Engineer Gary Winkler Hardware Firmware Design Engineer Andi Marinenko Customer Support idet Yancey roject eee FORTH Dimensions 22 Volume V No 1 memory space Four words are generated as follows address of VAR A address of VAR A address of Word CONSTANT A address of data variable The third and fourth wo
75. ie called Circlove Life It was produced on an AED 512 high resolution color system running 6502 FORTH as its operating system graphics language and heart de scription language Once the graphics language had been imple mented it took only three days to pro gram the entire animation including the heart description language Howard Pear mutter spoke at last year s FIG national convention on this project Digital Valentine Colon definitions are great for designing scenes and out of scenes you can build acts out of acts you can build entire movies The natural nesting structure of FORTH makes it perfect for animation The script for Circlove Life was done right on the computer after building a few special types of things such as loop constructs that control the range and parameters for the different dimensions i generated by Howard Pearlmutter of Simulation on the inside is animation on the outside The movie is made up of hearts The definition of the heart fits on one screen It s basically a loop that goes over a certain range that increments either by a positive or negative value depending on whether you re going up or down and uses the index of the loop to control everything from color to size to the spread You can change the color table in a variety of ways We had three different loops built out of CMOVES that were running at dif ferent frequencies By picking har monic
76. ing 3 D animations one screen area is displayed while the other is being invisibly updated This way the lines are not shown being erased and redrawn This is only true for 3 D graphics GraForth text printing line drawing and character graphics always draw to both screens simultaneously In this way the screen flipping 3 D graphics can be mixed with other kinds of graphics without causing lines and characters to repeatedly appear and disappear The sequence GraForth uses in putting a 3 D object on the screen is a four step process whenever the word draw is executed the drawing routines are first directed to the graphics screen that is not currently being displayed Then the previous 3 D objects are individually erased line by line by following the parameters that were originally used to draw them Next the new objects are drawn on the screen using the current parameters Lastly the display is switched to this screen so that the new objects can be seen To increase speed the word draw only works with the objects that have been referenced since the last draw command This reference can be made by giving the object one or more new parameters or by simply calling it again with object This means that objects that don t need to be changed can be left on the screen as they are and will not slow the drawing of objects still in motion Suppose you re manipulating two 3 D objects call them objects 1 and 2 simultaneous
77. inquiries welcome Volume V No 1 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 Boulevard Los Angeles Phillip Wasson 213 649 1428 Northern California Chapter Monthly 4th 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 ext 4784 MASSACHUSETTS Boston Chapter Monthly 1st Wed 7 p m Mitre Corp Cafeteria Bedford MA Bob Demrow 617 688 5661 after 5 p m MICHIGAN Detroit Chapter Call Dean Vieau 313 493 5105 MINNESOTA MNFIG Chapter Monthly 1st Mon MNFIG 1156 Lincoln Avenue St Paul MN 55105 Call Mark Abbot days 612 854 8776 or Fred Olson 612 588 9532 MISSOURI St Louis Chapter Call David Doudna 314 867 4482 e NEVADA Las Vegas Chapter Suite 900 101 Convention Center Drive Las Vegas NV 89109 702 737 5670 e NEW JERSEY New Jersey Chapter Call George Lyons 201 451 2905 eves e NEW YORK New York Chapter Call Tom Jung 212 746 4602 e OKLAHOMA Tulsa Chapter Monthly 3rd Tues 7 30 p m The Computer Store 4343 South Peo
78. insert delete replace and string move Au thored by Leo Brodie Requires IBM PC with 64K running Laboratory Mic rosystems PC FORTH Available for 50 00 from Laboratory Microsys tems 4147 Beethoven St Los An geles CA 90066 LOOK SEE The SOFT WRIGHTS new screen design package FORTH LOOK SEE provides a model for the design of screen menu input for FIG 8080 FORTH LOOK SEE allows the user to design screen menu input in a man ner that is similar to the way the screen menu is to look to the user This provides extreme ease in the design maintenance update of screen menu driven programs in FORTH thus reducing costs and design change turnaround time Cost 10 00 postpaid in the U S Comes as a listing with a clear concise user manual LOOK SEE utilizes user screen I 0 Contact THE SOFT WRIGHTS 840 Van Ness 107 San Francisco CA 94109 FORTH 79 VER 2 FOR 2 80 CP M amp APPLE USERS MicroMotion has announced an ex panded line of formats available for Z 80 1 4 amp 2 x users These include APPLE Micropolis Mod II Vector Grahics Micropolis amp Tandon North Star Cromemco Heath Zenith Os borne I Kaypro II Xerox 820 and TRS 80 Model II Meets all provisions of the FORTH 79 Standard Base sys tem includes a screen editor macro assembler string package 3 bit in teger arithmetic and 200 page tutorial and reference manual Floating Point available for all versions HIRES for APPLE amp Northsta
79. is disk also has formatted memory and I O port dump words and many items published in FORTH DIMENSIONS including a FORTH TRACE utility a model data base handler an 8080 ASSEMBLER and a recursive decompiler The disks are packaged ina ring binder along with a complete listing of the FULL SCREEN EDITOR anda copy of 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 in the public domain in the manner and spirit of the work upon which itis based Copies may be distributed when proper notices are included USA Foreign O FIG FORTH amp Full Screen EDITOR package AIR Minimum system requirements 80x24 video screen w cursor addressability 8080 or Z80 or compatible cpu CP M or compatible operating system w 32K or more user RAM Select disk format below soft sectored only cece cece ce eee hn 50 65 D 8 SSSD for CP M Single Side Single Density Cromemco CDOS formats Single Side S D Density O 8 SSSD O 8 SSDD O 54 SSSD 5 SSDD Cromemco CDOS formats Double Side S D Density O 8 DSSD O 8 DSDD 5 DSSD O 5 DSDD Other formats are being considered tell us your needs D Printed Z80 Assembly listing w xref Zilog mnemonics 0 0 cee cee eee ees 15 18 O Printed 8080 Assembly listing 0 0c cece ccc cee eee HR Hh hen 15 18 TOTAL _ Pri
80. ith local labels Virtual memory Both 13 amp 16 sector format Multiple disk drives Upper tower case keyboard input LO Res graphics 80 column display capability Affordable Low cost enhancement option Hi Res turtle graphics Floating point mathematics Powerful package with own manual 50 functions in all AMO9511 compatible ENHANCEMENT PACKAGE FOR V 2 Floating point amp Hi Res turtle graphics COMBINATION PACKAGE CA res add 696 tax COD accepted MicroMotion 12077 Wilshire Blvd 506 L A CA 90025 213 821 4340 Specify APPLE CP M or Northstar Dealer inquiries invited FORTH Dimensions Ver 2 For your APPLE II H The complete professional software system that meets ALL provisions of the FORTH 79 Standard adopted Oct 1980 Compare the many advanced features of FORTH 79 with the FORTH you are now using or plan to buy 79 Standard system gives source portability Professionally written tutorial amp user manual Double number Standard amp String extensions Z 80 CP M Ver 2 x amp Northstar also available FORTH 79 V 2 requires 48K amp 1 disk drive called Fcode by analogy with the Pcode of the Pascal system Currently this implementation strategy is being tested via an implementation on McMaster s CYBER 170 with a mic rocode interpreter written in ETH Pascal A macroprocessor for generat ing host computer machine code is being designed c Implementation
81. ld as well as the number of records which can be noted in a given sized coding area against one keyword If for a first example we limit ourselves to the same sized coding area that Watkins selected which was 1024 bits or 128 bytes per keyword some of the possible coding schemes are shown in Table 1 The idea of being able to index 64K different records on a micro is very interesting On the Commodore products with which I do most of my work there are 256 different symbols available counting graphics or their lower case equivalents and reversed video versions of everything It is therefore possible to represent 16 bit numbers as two characters A screen in the FORTH I use contains 1000 instead of 1024 characters but let us stay with 1K which is more common If we allow each keyword s record list to occupy one whole screen instead of only 128 bytes as in Table 1 what sort of performance can we get Some possibilities are shown in Table 2 To take this sort of investigation one step further let us look at the case where the maximum number of records is the same for bit mapping and for two byte coding This occurs when 8192 bytes are allotted and is shown in Table 3 The penultimate cognitive jump to make is to realize that in any of these schemes the bit map approach must have the total dedicated space assigned at all times The coded versions however and taking case L as an example may start with e g one screen
82. lus 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 symbolis and ex ecutable image in RAM or disk file No license fee for applications created with the Cross Compiler Prere quisite one of the application development systems above for your host computer Hosts Z 80 CP M 2 2 or MPIM II 8086 88 CP M 86 or MS DOS IBM PC PC DOS or CP M 86 68000 CP M 68K Targets 8080 Z 80 8086 88 6502 LSI 11 68000 1802 2 8 Cross Compiler for one host and one target 6 eee nnn Soot 300 00 Each additional target 0 0 cece eee hh I hh emere 100 00 AUGUSTA ADA subset compiler from Computer Linguistics for Z 80 computers under CP M 2 2 90 00 LEARNING FORTH computer assisted tutorial by Laxen and Harris for CP M includes Brodie s Starting FORTH ssi 2dcicdidotete eee eae rad e e E EORR M Roa Pee quia edet Een ene eee E gee 95 00 Z 80 Machine Tests Memory disk printer and console tests with all source code in standard Zilog MAGMONICS ccd Fonsi tse eee ttg etta deoa unus Det c ae ee Bw Row eer ee Far Ree 50 00 DATA ACE fully relational data base system from CSD for the IBM Personal Computer Faster and more powerful than dBASE Il 0 ec ete hh hh ere e
83. ly First both of them are in motion and the animation toggles between the two graphics screens with each draw command Then you decide to stop the motion of object 1 while continuing object 2 To do this you simply stop giving object l any new commands Since object 1 Continued on bottom next page The Mullard Space Science laboratory part of the Department of Physics and Astronomy of University College London is currently running polyFORTH on a Motorola EXORset 33 to tackle the problem of displaying and storing data produced by its latest generation of imaging detectors The detectors will be used on future space missions to record X ray images of distant astronomical objects and also at ground based observatories where their extreme sensitivity will al low observations of the faintest and farthest known galaxies in the universe A desktop microcomputer system was chosen for the task since it could meet most of the system requirements at a much lower cost than commercial systems and special features could be included by writing the necessary con trol software The chosen computer was the Motorola EXORset 33 based on the MC6809 microprocessor To 3 D Continued was previously in motion the picture of the object on the two graphics screens is different As the animation continues with object 2 the display will switch back and forth between the two screens The two pictures of object 1 will alternat
84. m 0 to 191 At the extremes however the object may overlap the edge of the screen causing wrap around Scalx scaly scale These commands determine the size of the object on the screen Scalx sets the width and scaly sets the height The word scale simply sets both width and height to the same number simultaneously The range is from 31 to 31 A scale of 0 produces a displayed object with no thickness and negative numbers create a mirror image effect Since two objects can use the same image in memory symmetrical objects such as bird wings can be created using two objects side by side with positive and negative scale numbers Scalz This determines the amount of perspective used Perspective is what causes the front of an object to appear larger than the back A large perspective number makes the front a good deal larger and negative num bers provide reverse perspective with the back of the object larger than the front Zero perspective means the front and the back will be the same size The range as above is 31 to 31 Xrot yrot zrot These commands rotate the current object around each of the three 3 D axes A complete rotation is divided up into units from 0 Volume V No 1 11 FORTH Dimensions to 256 Zero is no rotation 64 is a right angle 128 is the same as 180 degrees and 192 is three quarters around the circle Values greater than 256 or less than 0 can also be used for rotating m
85. me ASSOV is executed it checks 4 a E o OU 3 x P 13 LABEL ASS0V COMPILE LABEL BF whether this overlay is in memory and le ede Rese gESUMITEE TESTE i S7 loads it from disk if not Now you can make some key definitions global by redefining them with the overlay Listing Continued caller included In the example the FORTH Dimensions 38 Volume V No 1 word CODE will automatically ask for the right overlay In order to not waste time while loading a binary image I highly recommend you use a fast multiple block loader like the one which is accessible in my FORTH In case you don t need or want it use the high level version on scr 91 There is an extra goodie when keeping the assembler in a separate overlay area the use of local labels It is possible to compile local LABELs or EQUATES as constants into the overlay area which is never written back to disk These labels are valid as long as the assembler overlay is not canceled but they consume no memory of the main dictionary A proposal for such a LABEL and EQUATE definition is shown on scr 90 In conclusion I want to mention some points that I regard as drawbacks or as open questions e How to handle multiple vocabularies from the inside to the outside of an overlay This system requires one link into and one out of the overlay A vocabulary inside the overlay has to begin and end within this overlay e If anything in the FOR
86. n single precision This can be done by compiling D after T changing line 11 on screen 120 from R_ gt U SWAP DROP to 0R gt T changing line 12 from u SWAP DROP to T and changing line 13 from to D Of course the execution time for D will greatly increase You might want to save the remainder in T by changing line 8 on screen 121 from SWAP DROP to gt R and changing line 9 from D to D R gt ROTROT If you make this change don t forget to change T to T ROT DROP in Ux in D S and if it appears in D ACKNOWLEDGMENT I would like to thank Jim Galloway for introducing me to FORTH and for being kind enough to review this note FORTH Dimensions requested our resident math operator authority and Standards Team Secretary Robert L Smith to review Mr Bieman s contribution Mr Smith writes I implemented and tested the functions described in this article and found that they worked pretty much as advertised and even better than expected I expected that the D routine would fail because the factoring of the double precision divisor would yield two single precision numbers whose product would not give the original double precision value That turns out to be not as important as I assumed because of the order in which the partial quotients are taken It is likely however that the quotients are just slightly more inaccurate than one would obtain from a very precise technique I was surprised also at his
87. nd is ideal for dedicated microcomputer applications Our board the NMIX 0011 surrounds the R65F11 with equally innovative circuitry that allows the chip to be a complete FORTH development system We call the board the 100 squared for short due to its extremely small size All that is needed to do program development in FORTH is a CRT terminal or microcomputer that speaks RS232 seven data one start two stop bits Look for a complete Euro card boardline coming soon sere FORTH Dimensions se eH we mh NEDI Sh MI E XE E jni s X X amp OX OBOROR amp nA The 100 squared features on board rectification and regulation of power from a 9 volt AC or DC power source Terminals are there if you prefer to use your own regulated 5V supply An on board DC to DC convertor can provide negative voltage for the RS232 interface either way Address decoding is accomplished by a bi polar PROM that can be replaced by the user if necessary A standard development PROM decoder is provided with the board Three JEDEC 28 pin sockets are provided which will accept RAM s 2016 2128 5517 6116 5564 EPROM s 2716 2732 2764 EEPROM s 2816A The board can program in circuit R2816A 2764 requires additional VPP voltage supply All this plus the powerful R65F 11 which features FORTH kernel in ROM Enhanced 6502 CPU 192 byte static RAM 16 bidirectional TTL compatible 1 0 lines two ports
88. ng program The following program duplicates the Roll Tetra routine using this technique VARIABLE XR X rotation VARIABLE YR Y rotation VARIABLE XP X position VARIABLE YP Y position VARIABLE SC Scale VARIABLE DIR Scale direction larger or smaller UPDATE TETRA XR 3 DUP gt XR XROT increase X rotation by 3 Y R5 DUP gt YR YROT increase Y rotation by 5 XP6 DUP gt XP XPOS increase X position by 6 36 18 36 Start with loop value Subtract 18 18 Take the absolute value Turn it upside down Add 18 ABS CHS 18 Figure 2 Volume V No 1 13 FORTH Dimensions YP 3 DUP gt YP YPOS increase Y position by 3 DIR IF if scale is increasing SC 1 DUP gt SC SCALE increase scale by 1 SC 18 IF 0 gt DR THEN change direction ELSE SC 1 DUP SC SCALE Decrease scale by 1 THEN ROLL TETRA1 0 gt XR 0 gt YR initialize variables 25 gt XP 35 YP 0 gt sc 1 DIR set scale direction DRAW Draw first object 36 0 DO Start loop UPDATE TETRA Set new parameters DRAW Draw object LOOP Loop back We used a do loop to run the animation since no branching decisions were needed for this program If they were required the current value of any 3 D parameter would always be available For smooth animation the GraForth 3 D graphics routines automatically take advantage of both hi res screen pages in the Apple memory Dur
89. nitions in overlay area from the main dictionary OPEN OVERLAY start blk blks sets pointers for compilation into the overlay area the overlay shall start at lt start blk gt and be lt biks gt KByte of size CLOSE OVERLAY no stack effect stops compilation into overlay area unlinks overlay from main dictionary saves it to disk and resets pointers back to main dictionary Volume V No 1 39 FORTH Dimensions FIG Chapter News Southern Ontario The fifth quarterly meeting of Fig Southern Ontario was held on March 5 1983 with 15 people present During the meeting Dr N Solntseff outlined the FORTH related work being carried out within the Unit for Com puter Science at McMaster University Implementation a Continuing work on implemen tation of fig FORTH 78 79 on Ohio Scientific Instruments C2 8P and C3 computers The aim of this work is to investigate floppy disc Winchester and OS interfaces as well as achieving improvements to the fig model b Development of a portable FORTH system undergraduate pro ject to be completed by April 1 1983 The idea behind this is the design of pseudo microcode to implement an Abstract FORTH Machine see paper with this title in 1982 Rochester Con ference Proceedings pp 157 160 The FORTH system kernel has been rewritten in the pseudo microcode FEATURES Screen editor with user definable controls Macro assembler w
90. nt point not mentioned in the referenced article they may be physical documents such as books catalogs magazines file folders coins in a collection etc On acquisition i e at the time it is entered into the file each record is given a sequential record number and is characterized by selecting one or more keywords which describe its content or other aspects of significance to users To retrieve such a record the user selects keywords which he thinks will describe the record or type of record he is nterested in and links these keywords with the logical operators AND OR AND NOT and OR NOT The system returns all records which fulfill the specifications Other logical operators not provided in Watkins system are also possible such as lt gt EARLIER THAN LATER THAN etc The ideal situation is one where the person who designs the keyword list is also the only user of the system where me V No 1 others use it the question of personal interpretation and preferences on keywords may arise In either case it is important that the keywords used be taken from a previously constructed list which has been carefully inspected to make sure that it contains no synonyms or unintentional overlaps of meaning If when record number 1000 is being entered a new keyword is invented to cover some apparently novel feature of that record who is to say whether that feature exists previously unrecognized in the first
91. of figFORTH78 on a VAX11 780 under VMS gradu ate project This project is complete and is being written up Applications a Animated Graphics Tutorial Sys tem funded by McMaster s Instruc tional Development Centre pilot project completed A script based tutorial development system has been designed capable of acting as an animated text book to be used in conjunction with computer organiza tion and computer architecture class es The present version is too machine dependent for general distribution as it is based on OSI equipment FORTH 79 FORTH 79 Version 2 For Z 80 CP M 1 4 amp 2 x amp NorthStar DOS Users The complete professional software system that meets ALL provisions of the FORTH 79 Standard adopted Oct 1980 Compare the many advanced features of FORTH 79 with the FORTH you are now using or plan to buy OURS OTHERS b High Level FORTH Graphics Primitives undergraduate pro ject April 1 1983 completion This project is aimed at the comparison of several line drawing and other plotting primitives that could be used to pro vide a machine independent graphics system c Graphics Primitives for the TRS 80 Colour Computer undergraduate project A pril 1 1983 completion This project complements b above and is looking at graphics primitives for the TRS 80 Colour Computer d Document Preparation System graduate project December 1983
92. olumns on the left are a strip chart window into the much larger data base in excess of 1 Mb of data The current display shows a section of data recorded on Channel 1 at 400 kHz The active channel and display mode are selected on the right side of the screen Channel frequency span of sample and phasing rotation may be modified through a simple sequence of soft labeled special function keys The data in the small window in the far left most column is expanded in the lower center window and the view size may be increased or decreased by the operator The center upper window is an XY plot of the data in the expanded strip chart below All windows are continuously refreshed in real time as the operator scrolls through the database The fuzzy balls in both center windows are the result of a least squares fit on the data and further indicate the point of maximum deflection Ly FORTH Dimensions Paying the Piper Creative Solutions tnc Problem Solving For Business and Computer Applications 4801 Randolph Road Rockville MD 20852 Phone 301 984 0262 ANOTHER CSI CUSTOMER APPLICATION SUMMARY 30 The results indicate 97 through wall flaw in the pipe at 49 degrees at location 4280 in the pipe Obviously this pipe is not in service Two mixer channels are provided to differentially remove the effects of structural supports for the pipe so that flaws under such supports may be detected Under Mult
93. omos including the film we developed for Steve Miller s Abracadabra On that promo we shot actors on film then fed it into the digitizer Then frame by frame an animator would draw on top of the picture The electronic graphics are later recomposited back with the original movie It s a form of electronic rotoscoping We created action in the frames that was not in the original sparkles enhancements etc In one scene there s a girl juggling scarves lit by an overhead light The animator tied her hand to the shadow of her hand on the floor with an electronic line as if it were a rubber band That particular filn has won awards all over the world It just got nominated for best director American Video Awards 1982 We just did one called Atomic Dog for George Clinton We created a fictitious video game called Atomic Dog using the computer graphics Then we had a location that matched the game The guy goes down into the game like TRON and the game comes alive with dancers At the end of the four minutes he ends up back at the video arcade You can see the live action doors with the computer doors right next to them We also have developed a three screen multi media show that will play in all the Six Flags Volume V No 1 amusement parks across the country and we did The Great Rock and Roll Time Machine which is playing at Magic Mountain right now We developed these using the mixing console Everything transfer
94. on Los Angeles CA 90049 213 472 6995 3 Lynx 3301 Ocean Park 301 Santa Monica CA 90405 213 450 2466 4 Lyons George 280 Henderson St Jersey City NJ 07302 201 451 2905 M 1 M amp B Design 820 Sweetbay Dr Sunnyvale CA 94086 2 MicroMotion 12077 Wilshire Blvd 506 Los Angeles CA 90025 213 821 4340 3 Microsystems Inc 2500 E Foothill Blvd 102 Pasadena CA 91107 213 577 1477 4 Micro Works The P O Box 1110 Del Mar CA 92014 714 942 2400 5 Miller Microcomputer 61 Lake Shore Rd Natick MA 01760 617 653 6136 6 Mountain View Press P O Box 4656 Mountain View CA 94040 415 961 4103 7 MCA 8 Newfield Ln Newtown CT 06470 8 Metacrafts Ltd Beech Trees 144 Crewe Rd Shavington Crewe CW1 SAJ England N 1 Nautilus Systems P O Box 1098 Santa Cruz CA 95061 408 475 7461 OSI Software amp Hardware 3336 Avondale Court Windsor Ontario Canada N9E 1X6 519 969 2500 2 Offete Enterprises 1306 S B St San Mateo CA 94402 On Going Ideas RD 1 Box 810 Starksboro VT 05487 802 453 4442 tL tad d Perkel Software Systems 1636 N Sherman Springfield MO 65803 2 Pink Noise Studios P O Box 785 Crockett CA 94525 415 787 1534 3 Professional Mgmt Services 724 Arastradero Rd 109 Palo Alto CA 94306 408 252 2218 4 Peopleware Systems Inc 5190 West 76th St Minneapolis MN 55435 612 831 0872 1 Quality Software 6660 Reseda Blvd 105 R
95. on room rates are available at the Hyatt Palo Alto Contact FIG or the hotel and mention the FORTH convention The FORTH Convention is sponsored by the FORTH Interest Group FIC The FORTH Interest Group is a nonprofit organization of over 3 800 members and 40 chapters worldwide devoted to the dissemination of FORTH related information FIG membership of 15 00 year 27 00 overseas includes a one year subscription to FORTH Dimensions the bimonthly publication of the group C1 Yes want to attend the FORTH Convention Enclosed is my check for for pre registered admission s 3 I want to be an exhibitor please send exhibitor information O Yes want to join FIG and receive FORTH Dimensions Enclosed is my check for 15 00 27 00 foreign The following irrelevant code exists the offset is required to be known 4 the address of the precedence bit is required to be specifically calculated the structure of the memory cell is required to be known to be a byte C Cl the position of the precedence bit is required to be known to be in bit 7 80 the memory address is manipulated on the stack DUP SWAP Furthermore the code is not self documenting it is not obvious that the precedence bit is inverted Conclusion It is desirable to extend the FORTH compiler Experience shows it is viable to adapt features from another language to FORTH This is best done in FORTH source to allow portability and could be im
96. ore than once around For example a rotation to 258 units is the same as to 2 units Note The actual rotation of the ob ject changes for every other rotation value This means that if you rotate an object in steps of 1 unit per draw the view of the object will change every other draw making the animation ap pear slower It s best to increment rotation values in steps of 2 Xtran ytran ztran These com mands translate or slide the ob ject in each of the three directions in space The object can be shifted as long as none of its points falls out of the 128 to 127 position range If this happens a wraparound effect will oc cur Therefore translation works best with small images having room to move Objcolor This determines what the object s color will be when it is drawn if color was not specified when the im age was created If color was speci fied then objcolor is ignored The standard GraForth color numbers 1 through 7 are used Note that obj color also sets the normal color com mand so be sure to reset color to the desired value after using objcolor Table 1 shows the 3 D parameters and the range of values they use You can experiment with the definitions by changing some of the parameters from the editor and recompiling Of course you can also type the word definitions directly into GraForth from the keyboard Creating animations with GraForth s 3 D graphics is easy and straightfor
97. oy fo jousmor ay T 0 o qe ed siopjo ououi 10 Sqo9uo IYEN odejsod 10 OIS ppe sead eousury YON episyno s1oquosqns 10 jsonbo1 uodn oe qepreAe SILI USPS anssi qoeo ut pojsi 9q ir sjosuodg 0ScS reo ROS E Josuodg Aueduio7 O01S n uonninsu ueduio oors e eto 25 9 9 Josuods EnpriAIpUT oe ae eee t n n n9 enprAmpu Nye SONSSI INOJ JAVY IA aunjoa Youd JI IOA PM ZUILEIS 86T Jequieoo pug Ang sonsst om urejuoo r OA I 10A suonduosqng IIo y uo sn20J INCA 3q UBD jounor ou p i jdde 0 uou pue moy mowy 0 pasu no uoy Suuoprsuoo o1e noA jj Ay pue Surjuourojdun ore sondeo joo euorssajoud 1no eym mouy 0 peau nod io ypa YOM noA jT suoneor qnd pojeraJ qo JUANI jo xoput UB pue sjuauroounouue SMAA YOO SIINA sazou eoruq2o sioded poo19ja1 JAVY I Du4nOf II JO onssi yov g uoneonpo pue rnsnpul 99Uu9IoS Ut SJ9qoIeoso1 pue sJosn JO UMIOJ e Surpiaoid Aq jrunurmuoo quoJ Iy jo 14013 Surjoxo OY 19409 JIM YosDasay PUD uonvoiyddy 11404 fo jpuanof ayy udisop STA pue soured oopiA UOEUIOINE IJO pue AJOJBIOGE SB ISIJAIP SE SEIE U asn syi yim dn doo 0 ynorgrp Suruoooq s s1a ndus0S Jur jdde 10J 001 nyamod e se ipo jo e2uos1oure IN MM HOUVASAY ANV NOILVOIddY TERRITUS 10 IWNYNOF AHL ONTON TONNY 3J D Animation Paul Lutus and Phil Thompson The following article is reprinted from a series titled The Animated Apple With GraForth originall
98. per keyword and add extra screens by chaining as required but only on those keywords which require it i e it is not necessary to predict how many records per keyword one may end up with One can tentatively conclude that the bit map approach is suitable for small files which will not be called upon to expand beyond the 128 129 212 501 1203 1207 1562 128 200 300 357 429 646 1562 200 201 201 325 454 1589 1590 1 500 525 677 2345 2454 2560 2 3 4 128 1566 2000 3489 333 345 4795 6800 6925 6926 KEYWORD FILE SELECTED RECORD NOS RECORD NO DATA QUTPUT RECORD DATA DATA FILE Fig 21 Coded Record Number Approach FORTH Dimensions 28 Volume V No 1 originally allowed for limits but that the coded approach has advantages where long files are concerned I have not attempted to compare search MAX IMUM RECORDS BITS RECORDS OF MAX COMMENTS RECORD KEYWORD KEYWORD 1024 128 85 64 TABLE 1 128 bytes per keyword or 8 keywords per screen BITS RECORDS MAXIMUM OF MAX COMMENTS RECORD KEYWORD RECORDS KEYWORD have to store the record data the use 8192 100 BIT MAP POINTLESS INTEREST ING WOW of 16 bit numbers expressed as two characters means not only that there is Table 2 1024 bytes per keyword or 1 keyword per screen no longer a data file in the sense used by Watkins but also that a library 100 BIT MAP
99. performance is too much work and Volume V No 1 CPU 68K A T 695 CSC 850 SPECIFICATIONS The CPU 68K operates at 8 MHz assembied and tested A T and 10 MHz for the Certified System Component CSC version of the board FORTH HARDWARE REQUIREMENTS CompuPro s DISK 1 floppy disk controller INTER FACER 1 2 3 or 4 64K of RAM and CPU 68K COMPLETE FORTH OPERATING SYSTEM 200 FEATURES an assembler full screen editor CP M file transfer utility time of day date stamping shadow screen printing utility and line editor fully compatible with STARTING FORTH by Leo Brodie as well as many other useful extensions All CompuPro products meet the most demanding mechanical and electrical standards and are backed with one of the best warranties in the business 1 year limited warranty on all BOARD LEVEL products 2 year limited warranty with exchange program for products qualified under our Certified System Component pro gram Call CompuPro at 415 562 0636 for additional information or to order COMPLETE 68K SYSTEM 8995 INCLUDES ENCLOSURE 2 DESK TOP 8 MHz CPU 68K SYSTEM SUPPORT 1 INTERFACER 4 256K BYTES OF 16 BIT MEMORY 1 5 MBYTES OF M DRIVE H DISK 1 CONTROLLER DISK ENCLOSURE WITH 2 QUME DRIVES 2 4 MBYTES ALL CABLES e mapFORTH amp CP M 68K CP M is a registered trademark of Digital Research AUTHORIZED SYSTEMS CENTERS offer complete installation and implementation of our CPU
100. plemented by runtime interpretation for an increase in execution speed Many areas of the FORTH compiler need addressing to incorporate Name Address City ee NTE Phone Zip Return to FORTH Interest Group P O Box 1105 San Carlos CA 94070 e 41 5 962 8653 FORTH Vendors Continued from page 43 Metalogic Corp Schleisiek Klaus Softweaver language operating system features 4355 Miraleste Dr Eppendorfer Landstr 16 P O Box 7200 With the availability of large Rancho Palos Verdes CA 90274 D 2000 Hamburg 20 Santa Cruz CA 95061 development systems for generating 213 519 7013 West Germany 408 425 8700 target applications falling memory 040 480 8154 Petri Martin B Technology Management Inc prices and languages with an 50a pull st Schrenk Dr Walter 1520 S Lyon St increasing number of features the van Nuys CA 91406 D ot a NER Santa Ana CA 92705 time may not be too far away when 213 908 0160 714 835 9512 West Germany very large compilers are readily EE we Redding Co Software Engineering Timin Mitchel available As to memory size for the p o Box 498 6308 Troost Ave 4210 3050 Rue d Orlean 307 FORTH compiler why not heed the Georgetown CT 06829 Kansas City MO 64131 San Diego CA 92110 directive to go forth and multiply 203 938 9381 816 363 1024 619 222 4185 NM NR M lt n n n ng a n a ng RR RR SSS Ss iS SS SS nnt d Volume V
101. proFORTH MULTITASKING DIVERSIFIED STAFF MICROSYSTEMS INC 213 577 1471 2500 E FOOTHILL BLVD SUITE 102 PASADENA CALIFORNIA 91107 hom a a a Te Volume V No 1 29 FORTH Dimensions Getting Results The Problem Metal pipes cannot be manufactured with out flaws When exposed to high pressure and temperature such flaws gradually deteriorate and eventually fail Metal pipes are used in Nuclear Power Plants The Solution Zetec Corporation devised a technique with which flaws in installed piping can be measured and analyzed allowing for safe operation and life cycle maintenance of the large piping systems necessary in nuclear power plants The technique involves pushing a probe through the pipe The probe emits vibrations which produce Eddy currents between the probe and the walls of the pipe Flaws cause abnormalities in the frequency of the Eddy currents which are detectable by coils in the probe This data is recorded onsite on an 8 channel analog data recorder and evaluated offsite by ZETEC personnel The Analog Data is read from the type converted to digital and analized by a Hewlett Packard Model 9836 68000 based computer running Multi FORTH The HP 9836 features built in disc drives an 80 x 24 alpha 512 x 390 graphics CRT HPIB interface and up to 2 megabytes of RAM Multi FORTH provides a Real Time Multitasking programming environment On the right is a graphics screen dump of a flaw Note that the two c
102. r 99 95 139 95 Contact MicroMotion 12077 Wil shire Blvd 506 Los Angeles CA 90025 213 821 4340 SOFTWARE WORKSHOPS IN MMSFORTH Miller Microcomputer Services introducers a regular series of Boston area MMSFORTH Workshops on a variety of topics and ability levels The schedule of offerings for the remainder of the 1983 is as follows Workshop Level Cost Days Introduction to Elem 250 2 MMSFORTH Applications in Int 250 2 MMSFORTH Database Design and Adv 950 5 Implementation MetaForth amp Other Adv 950 5 Advanced Topics Forthwrite User Elem 150 Techniques Datahandler User Elem 150 1 Techniques Forthcom User Elem 150 Techniques Schedules and further information are available from Miller Microcomputer Services 61 Lake Shore Road Natick MA 01760 617 653 6136 9 a m to 6 p m Eastern Time Zone TE re Serer ya SSS hf WEE Volume V No 1 31 FORTH Dimensions A PREMIER OFFERING TO THE FORTH COMMUNITY A limited number of R65F11 Microcomputer FORTH Development System at a special price 2 Input Output Paraliel Port 9 VAC Power supply Power terminal 2 PROM address decoding Three JEDEC RAM ROM EPROM Sockets By the time you read this ad we should receive our first shipment of production R65F11 Microcomputers the 6502 based single chip microcomputers with the run time portions of FORTH in ROM This chip features a complete FORTH based operating system a
103. r area of the screen is used by the ob ject and that no other graphics line in this area since they would also be erased Here is an example of using undraw Starting from scratch let s first get an Object onto the screen 0 40 18 24 WINDOW ERASE Optional CR 132 PUTC PRINT BLOAD CUBE A2816 CR OBJERASE 0 OBJECT 5 SCALE 20 XROT 20 YROT DRAW An easy way to determine the block size and placement to use with undraw is to fill the screen with characters then draw the object over them 0 VTAB 1000 0 DO I 10 MOD LOOPO OBJECT DRAW By simply counting down and across you can see that the cube fills a block nine characters wide by eight characters tall starting at 8 v ab 14 htab The undraw command can be used to erase this block during a 3 D animation ERASE 9 8 BLKSIZE Now type this entire line and then press the return key 8 VTAB 14 HTAB 257 0 DO YROT UNDRAW DRAW 4 LOOP 18 VTAB This sets the character position for the block and rotates the object while erasing the block with undraw Compare it with the same loop without undraw 257 0 DO I YROT DRAW 4 LOOP The difference is quite noticeable FORTH Dimensions Volume V No 1 THE FORTH SOURCE MVP FORTH A Public Domain Product MVP Forth is fig FORTH updated to the FORTH 79 Standard Required Word Set The source is public domain Included are an editor FORTH assembler tools and utilities making it compatible with
104. rds gener ated are the code for VAR AS This dis cussion refers to a ROMable system That is the program code space is separated from the variable space Hence the fourth word generated is an address and not the contents as in most FORTH systems of the data vari able The code for VAR need only fetch the 16 bit word contents from a data address as given by a pointer which lies two words from where the code was called The code is to end after popping the top word off the return stack The code for VAR is similar Secondly the dictionary should be separated from the generated code in order to implement the code for VARm and VAR The multiple dictionary entries can be implemented as follows IN is saved IN points to the position of the source program between M VAR and A e WORD is used to scan the source Word A into a buffer area HERE in some FORTH systems this buffer contains a one byte count e g Word size of 3 for XYZ followed by the characters of the name e g XYZ e Adjust the buffer to the required name e g add one to the count insert the ASCII character z after the name CREATE is used to create the dictionary supply other fields such as code address as required for completing the dictionary entry e Restore IN and repeat the process two more times to obtain the names Az A A A listing of an implementation is given see listing 2 Unfortunately this will not work as is for a fig FORTH system
105. ria Tulsa OK Call Bob Giles 918 599 9304 or Art Gorski 918 743 0113 OHIO Dayton Chapter Monthly 2nd Tues Datalink Computer Center 4920 Airway Road Dayton OH 45431 Call Gary Granger 513 849 1483 OREGON Portland Chapter Call Timothy Huang 9529 Northeast Gertz Circle Portland OR 97211 503 289 9135 e PENNSYLVANIA Philadelphia Chapter Continental Data Systems 1 Bala Plaza Suite 212 Bala Cynwid PA 91004 Call Barry Greebel e 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 UTAH Salt Lake City Chapter Call Bill Haygood 801 942 8000 e VERMONT Vermont Fig Chapter Monthly 3rd Mon 7 30 p m Vergennes Union High School Room 210 Monkton Road Vergennes VT 05491 Contact Hal Clark RD 1 Box 810 Starksboro VT 05487 802 877 2911 days 802 453 4442 eves e VIRGINIA Potomac Chapter Monthly Ist Tues 7 p m Lee Center Lee Highway at Lexington St Arlington VA Call Joel Shprentz 703 437 9218 eves FOREIGN AUSTRALIA Australia Chapter Contact Lance Collins 65 Martin Road Glen Iris Victoria 3146 03 292600 e CANADA Southern Ontario Chapter Contact Dr N Solntseff Unit for Computer Science McMaster University Hamilton Ontario L8S 4K1 416 525 9140 ext 2065 Quebec Chapter
106. s of these and getting different prime values you could see the red move in the blue move out and you move your three color tables for the three primaries to go at relatively prime frequencies This not only gives you the building up of elements that you d like It also lends itself to the most readable code and exploiting the possibilities of good FORTH style You get to use the noun verb idea the definition of scenes Extensibility is very important because all of this was all built very quickly out of something that had nothing to do with computer art nothing to do with building movies but basically a computer graphics language I suggest that those of you who are really concerned about the readability of FORTH try doing something that is application oriented and try using the terminology of your application The code is extremely readable Howard Pearlmutter has spurred much activity in the area of computer graphics He is author of a report for NASA titled Interactive Computer Graphics the Human Interface to Dynamic Simulation Howard is also the contact for Figgraph the FORTH graphics special interest group 408 425 8709 Music FORTH Dimensions found Allen Strange Professor of Music at San Jose State University using FORTH in his campus synthesizer studio We started about one year ago with an Ohio Scientific 6502 system procured on a small faculty grant to let us experiment with driving analog synth
107. s to film so the actual performance is all done on three synchronized projectors Developing our own paint system has saved us a lot of money There are some products that are similar but they re too expensive in the 60 000 range We ve spent a lot less than that and we have special features too The best thing about our system is that it s programmable You can sit there and change it because it s in FORTH Chuck Moore wrote the inital application on the mixing console Paul Rother has done all the programming since then and he s now part ume With their work and with Peter Conn owner of Homer amp Associates sits at the electronic painting station of their FORTH I m able to set up these computerized optical printer From an album cover drawn by Andy Warhol Peter is creating complex scenes myself scene for a rock video for Billy Squier All software was written in FORTH by Paul Rother Nits RE mA a aE ee CHE JOIN THE APPLICATION MIGRATION PRODUCE MACHINE TRANSPORTABLE CODE GENERATE ROMABLE HEADERLESS CODE FORWARD REFERENCING ALLOWED PUT FORTH ON OTHER COMPUTERS PRODUCE EXECUTABLE IMAGE IN RAM OR ON DISK PRODUCE ADDRESS MAP OF APPLICATION 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
108. s who have a version of FORTH with limited double precision math The math words for signed numbers include D Takes the ratio of two double precision numbers to yield a single precision quotient Dx S Multiplies a double times a single precision number to yield a double precision product D S Divides a double by single precision number to yield a double precision quotient on C 00 4004 0tN ON SCR 90400 50909 Double Precision Math Words TRIAD 120 DOUBLE PRECISION MATH WORDS RBIEMAN z SWAP D D E Di D ROT gt R ROT R gt 3 OVER2 NGS N2 N1 NEG NZ NISNS gt R OVER R gt SWAF D SIGN D2 D1 D2 Di NSIG OVERZ OVER XOR z D D2 D1 NQUOTIENT D SIGN gt R FIND SIGN AND STORE se en cm gt R DABS R gt O R2 DABS DUP 1 DUP gt R U SWAF DROP BREAK DIVISOR INTO Ni N2 u SWAF DROP DIVIDED BY N1 U SWAP DROP DIVIDED BY N2 R gt PUT SIGNON QUOTIENT 3S 121 DOUBLE PRECISION MATH WORDS BIEMAN T UD UN UT DUP ROT U gt R gt R MULT UPPER PRECISION PART Ux MULT LOWER PRECISION PART OR R gt D ADD BOTH PARTS 3 T UT UN UD SR R U SWAP DIVIDE UPPER PRECISION PART ROT O R U SWAP DIVIDE LOWER PRECISION PART ROT R gt U SWAP DROP DIVIDE REMAINDER O 2SWAP SWAP D ADD PARTS 3 U UD UN UN UD gt R T R gt T 3 7S 122
109. sewhere may confound loading the screen see IN in WORD or crash Testing for existence of the enclose bug is easy to do Fill screen in with blanks set b scr 1 b buf 1024 and n LOAD If you get OK all is okay A more direct test is to set up for 1024 byte buffers and HEX FIRST 2 400 BLANKS blanks a block buffer If the response prints as 400 401 400 addr there is no bug If the response prints 0 1 0 addr you have the bug A simple practical solution is breaking up bad strings with a harmless and a long term solution is to rewrite your ENCLOSE primitive using a two byte counter for a gotcha and an 8080 rewrite see Forth Dimensions Vol III 2 pages 35 and 41 2 blanks or more Continued 34 LA A A aA eA eA eA AA A A eo A ee aA A oA a eA A ce at Perkel Software Systems presents MARX FORTH V1 4 150 For the ATARI RADIO SHACK NORTH STAR DOS CPM POLYMORPHIC Marx Forth is not just another warmed over Fig Forth This 79 83 standard Forth has been completely rewritten to include advanced coding techniques not available in most systems SL A oA oA A A A eA A A A A A A A A oA A A A A A ALP AAA AD PALA AL LA aa Marx Forth package includes Complete source code e Screen editor e Double number word set e Forth style macro assembler e Standard Marx Forth extension word set m x r 5 pel o 3 an 5 e c c D e Case e File system e Arguments Results e Disk
110. should be generated together to optimize Listing Continued Volume V No 1 21 FORTH Dimensions PWS1010 8 Bit CPU Card 6801 8K FORTH Firmware PWS2030 Expansion Memory Board JEDEC standard 6K EEPROM 2K RAM 16 TTLI O RS 232C programma memory sockets ble timer 2K monitor 8K FORTH firmware includes edi Maximum of 64K EEPROM EPROM or RAM tor assembler high level interrupt linkage and communications protocol PWS3010 Color Video Graphics Card 119918 8K FORTH graphics firmware 256x192 pixels 15 color PWS1080 16 Bit CPU Card 68008 16K FORTH Firmware graphic RS 170 video output 16K video RAM ability to memory expansion and waitstate gener ator 16K FORTH firmware includes moni tor editor assembler high level power supply 5 volts at 6 amps 12 volts at 1 amp on off and cir cuit breaker switch PWS2010 Interface Card 8K extended FORTH firmware CUSTOM MADE BOARDS 2 16 bit I O ports compatible We will custom make boards to with industry standard optical your exact application if none of isolation boards battery back the aforementioned boards up calendarand clock 2 28 pin meet your needs i CONSULTING EPROM memories software RDS amp readable 8 bit switch Firm Our FORTA PaM DEORE ae ware options P FORTH Stan 2K or 8K EEPROM 8K RAM RS 232C 4 pro GENLOCK to external video JEDEC Stan grammable timers Non multiplexed dard socket for additional firmware i 6 Slots mother on
111. ss Corporation P O BOX 888 BELMONT CALIFORNIA 94002 415 591 8295 FORTH Dimensions 18 Volume V No 1 Add a Break Point Tool Here s a scenario familiar to most programmers you have a large section of an application running but some how right in the middle of things something bizarre happens some thing that couldn t possibly be hap pening The application either crashes mysteriously or continues past the problem too late for you to figure out where things went wrong Here s a very useful ingenious debug tool that lets you halt your ap plication in mid operation then use the full power of FORTH s interpreter to examine the stack contents of vari ables and so on and then resume Before I heard about this tool I was prone to editing a QUIT into a suspec ted spot in my code to terminate the application then poke around for clues The technique described in this article still lets you poke around but from within the temporarily suspend ed application Those of you with multiprogrammed FORTH systems and multiple terminals know how use ful this can be The technique originally called PAUSE GO was invented by Frank Seuberling adapted here by Kim Har ris and brought to my attention by John Clark The idea is simple you edit the word BREAK into your aplica tion where you want the breakpoint then recompile When your applica Scr eer X 4c PEE i zo MARIOBLE or f 4
112. suggested method of obtaining the double precision quotient of two double precision numbers However if the denominator has a high order part of zero then the quotient will be OK with proper full precision If the most significant part of the denominator is non zero then the quotient will have a zero in its most significant part The greatest error will be just one or two least significant bits The routines are written in FORTH so some small changes have to be made to convert to 79 Standard The function names are somewhat new to me but there is not sufficient widespread use of these sorts of functions to say that any names are traditional I believe that routines of this sort are useful since FORTH s traditional 16 bit precision is insufficient for a number of mathematical functions and even for some measured physical quantities In my opinion FORTH badly needs a good library of useful mathematical routines in the public domain The routines here could possibly be a small part of that library I was asked if the routines are optimal They appear to give approximate results in a much shorter time than a more precise method would There seems to be only trivial improvements that could be made to get the same results This paper has some rough gems that others might be able to polish Robert L Smith Volume V No 1 FORT H VICTOR 9000 Microcomputer Dai E FORTH Level r Beginners Package in Fig FORTH Style
113. t directly from the keyboard it can be run by simply typing THREE ROT The trick is to find the right formula for the desired motion Suppose with the above example you also wanted to make the tetrahedron grow in size from 12 scale to 20 scale The change from 0 to 256 in the loop must be translated to change from 12 to 20 Note that the difference between the start and end loop values is 256 and the difference in the scales is 8 If we divide the loop value by 32 we get a range of 0 to 8 If we then add 12 we get the desired range of 12 to 20 Loop value 0 32 0 0 12 12 Scale value Loop value 256 32 8 8 12 20 Scale value The new routine looks like this ROT amp SCALE 257 0 DO I YROT 13 YROT 132 12 SCALE DRAW LOOP Parameter Range In steps of XPOS 0 to 255 1 YPOS O to 191 1 SCALX 311031 1 SCALY 311031 1 SCALE 31 to 31 1 SCALZ 31to31 1 XROT 0 to 255 2 YROT 0 to 255 2 ZROT 0 to 255 2 XTRAN 128 to 127 1 YTRAN 128 to 127 1 ZTRAN 128 to 127 1 OBJCOLOR 1 2 3 5 6 7 Table 1 Now we ll look at a program adapted from the rolling tetrahedron display in the GraForth demonstration program The tetrahedron moves down and to the right rotates end over end and grows and shrinks giving the appearance of rolling closer then farther away You can use this routine with any image in memory 36 m r 0O0o 18 36 18 Loop value 36 Figure 1 R
114. tats nara teen enes 595 00 FORTH application development systems require 48 kbytes RAM and 1 disk drive Cross Compilers require 64 kbytes All software distributed on eight inch single den sity soft sectored diskettes except PC FORTH on 5 inch single sided double density diskettes Prices include shipping by UPS or first class mail within USA anc Canada California residents add appropriate sales tax Purchase orders accepted at our discretion Laboratory Microsystems Inc 4147 Beethoven Street Los Angeles CA 90066 213 306 7412 2 80 is a registered trademark of Zilog Inc Augusta is a trademark of Computer Linguistics CP M is a registered trademark of Digital Research Inc dBASE II is a trademark of Ashton Tate IBM is a registered trademark of international Business Machines Corp PC FORTH and PC GEN are trademarks of Laboratory Microsystems Inc FORTH Dimensions 2 Volume V No 1 From the Editor This issue of FORTH Dimensions marks my last as Editor Starting with the next issue V 2 I m pleased to pass the baton to Marlin Ouverson formerly the Editor of the distin guished magazine Dr Dobb s Journal We can all look forward to interesting issues and new ideas from him Meanwhile I ll be dividing my time between writing my book on Style and Methodology and teaching FORTH courses I want to thank all of you who contributed your articles and ideas to FORTH Dimensions during the past year Your
115. te eben tenet ee 50 00 8086 FORTH for CP M 86 or MS DOS 0 00 oc ccc Re er arre 100 00 PCIFORTH for PC DOS CP M 86 or CCPM 00 I he hn 100 00 68000 FORTH for CP M 68K i e hare aaa ehh 250 00 FORTH Systems are 32 bit implementations that allow creation of programs as large as 1 megabyte This is the only language that supports the entire memory space of the 8086 88 directly for programs and data PCIFORTH for PC DOS or CP M 86 cu sese o hh eh s a9 Ra ee rec nee nn 250 00 8086 FORTH for CPIM BO oreet are EEQUCS NA RMERS Eme uv RAE bbs RE quU X FE bed 250 00 Extension Packages for FORTH systems Software floating point Z 80 8086 PC only 6 nn 100 00 Intel 8087 support 8086 PC only 6 eee hr 100 00 AMD 9511 support 8086 Z 80 only 2 6 0 nents 100 00 Color graphics PG only coe Seo rtm Rap ace Besson pun 8 a i Io dol Coes Ee 100 00 Symbolic interactive debugger PC only iiis nnn 100 00 Cross reterence ulllily ao sedes v S toe IU ma e ges E pee Gia at 25 00 PC GEN custom character sets PC only c isssssse e n nne 50 00 Hierarchical file manager 0 eee hm ehh mmm hh 50 00 B tree index manader s soos 0 osecva red Yoraime pagis eise Ue vieta ed eed eq ond istud add arg 125 00 B tree index and file manager iiie hh hehehe 200 00 QTF Screen editor and text formatter by Leo Brodie for IBM PC with IBM or Epson printer lisse mmm heh 50 00 Nauti
116. the SCR 1 0 NOTE LISTING F R NUMBER BASE stack The extra co i ATA EOSTIG ME UIS HOHOLY 2 24 IS HEX 24 FOR ASCII space Citing A and A is 3 IBASE IS IBASE 8 independent of whether the structure 5 epee LE is a byte or a word variable Hence the B ere eee statement A 1 Am and not A INC1 8 7 gt The data structure described below SCR 3 0 NOTE ENTRY DOES NOT CONFORM TO FORTH SYSTEMS allows a user to define a named data and automatically generated are its 4 NUMBER i 5 WAP START VALUE 0 fetch access structure and its store DEBIN 14 NEXT PDEITION structure which are cited by name All 7 DUPLICATE CB IBASE CONVERT A DIGIT he d 8 DIGIT VALID DIGIT access to the data structure by name E XE triacs TER a ae od ae T pun EM P TM e following data structures are an 13 S TERMINATED BY A alternative to the conventional i 1 NON VALID DIGIT variable data structure in FORTH Bee namely VAR VARIABLE CVAR ARRAY UT i word data structure NOTE DUCERE ORS Chri ee te AE TENEAN ETA Variable space of 16 bits is allocated UNSER UAL A ORAC TER een dM A with the data structure B EITHER USING CURRENT BASE e M VAR A 7 OR IMPLICIT TEMPORARY HEX BASE 8 FORMAT IS This is equivalent to th f S M es Pe equivalent to the statements 12 LEADING SIGN F R IMPLICIT HEX BASE 14 A A 15 gt ai Piu 1 TS GUIRKS ARE 2 ONLY LAST 4 DIGITS OF HEX IMPLICIT HEX byte data structure 3 BASE IS RELEVAN
117. the instructional book Starting FORTH Except for hardware dependencies all high level FORTH is transportable between ail systems Modifications and exten sions can be simplified through the use of MVP FORTH Programming Aids and Meta and Cross Compilers MVP FORTH Books A Series L Volume 1 A about FORTH by Haydon MVP FORTH glossary with cross references to fig FORTH Starting FORTH and FORTH 79 Standard 2 9 Ed 25 CO Volume 2 MVP FORTH Assembly Source Code Inciudes CP M IBM PC and APPLE listing for kernel 20 MVP FORTH Software A Transportable FORTH L MVP FORTH Programmer s Kit including disk documen 15C tation Volumes 1 amp 2 of MVP FORTH Series A f About a FORTH 2 Ed amp Assembly Source Code and Starting FORTH Specify CP M O CP M 86 O MSDOS APPLE IBM PC Lj TRS 80 1 or 3 CJ TRS Color Computer LJ MVP FORTH Cross Compiler for CP M Programmer s Kit Can also generate headeriess code for ROM or target CPU 300 FORTH DISKS FORTH with editor assembler and manual J APPLE by MM 100 1 IBM PC by LM 100 C APPLE by Kuntze 90 NOVA by CCI 8 DS DD 150 L ATARI valFORTH 60 O zgo by LM 50 L CP M by MM 100 8086 88 by LM 100 HP 85 by Lange 90 VIC FORTH byHES VIC20 O HP 75 by Cassady 150 cartridge 60 Enhanced FORTH with F Floating Point G Graphics T Tutorial S Stand Alone M Math Chip Support MT Multi Tasking X Other Extras 79 FORTH 79
118. ting at v1 ea Z amp tart hlk drive amp dr amp destination address caddr 7i 7 SWAP 258 OFFSET 71 ia CER SWAP DO 2 11 I BLOCK OVER BBUF CMOVE 7i iz BBUF 7i 13 LOOP OFOP 7i 14 DECIMAL V 7 1 13 Cl End Listing Glossary addr 16 bit address n signed 16 bit integer d signed 32 bit integer resident section EM constant gives end address of available dictionary memory in your system ovs variable keeps the screen number of the current overlay in memory zero means no valid overlay in memory OVA variable keeps the address where the current overlay begins X and Y are dummy definitions that are renamed to blank and used to link the overlay into the main dictionary RELINK nfa links this nfa into the dummy definition Y CANCEL no stack effect cancels the current overlay GET IMAGE addr start blk dr blks loads lt blks gt continuous blocks from disk drive lt dr gt starting at block lt start blk gt to the destinatikon address lt addr gt Accesses the disk driver directly not via BLOCK EXG addrl addr2 exchanges the contents of addrl and addr2 OV SWITCH no stack effect switches from overlay area to main dictionary and back non resident section SAVE IMAGE addr start blk dr blks writes lt blks gt continuous blocks to disk drive lt dr gt starting at block lt start blk gt from the source address addr UNLINK no stack effect unlinks all defi
119. ward As we mentioned in an earlier column animation is simply a series of still pictures displayed rapidly one after another providing the effect of movement One fast way to generate this movement is with a do loop 257 0 DO YROT DRAW 4 LOOP This example rotates the object a full circle around the Y axis Since the loop is in steps of four it repeats 64 times producing 64 separate draws one after another For each draw the rotation around the Y axis is set to the loop value incrementing from O to 256 This type of animation is straightforward but for most applications a number of parameters need to be manipulated at once Let s look at how to do more complicated manipulations with a few examples When using a do loop usually one draw will be performed each time through the loop The size of the loop then determines how many times the object will be drawn To change the parameters two approaches are possible the loop value can be used to generate the desired parameter values or separate variables can be used to keep track of each parameter In the first method the conversion from loop value to parameter value is done with short formulas For example if you want the tetrahedron to rotate around the Y axis three times for each rotation around the X axis you can use this routine THREE ROT 257 0 DO XROT 13 YROT DRAW 2 4LOOP After entering three rot into the editor and compiling or entering i
120. y ap pearing in Softalk Magazine In any type of computerized 3 D graphics system you start by creating a set of points lines and shapes in 3 D Every point has a relationship to every other point it can be higher or lower closer or farther away and more to the left or right And of course this relationship depends on your point of view The three different direction aspects of a point are repre sented using three numbers or coor dinates labeled X Y and Z It s the computer s job to convert your set of points according to some formula into points on a two dimensional screen using only X and Y coordinates Then the points are connected with the ap propriate lines just as the 3 D points were connected with lines There are two different philosophies used in creating 3 D graphics For the first imagine a universe in which all of the 3 D objects exist You describe the objects and tell the computer where they are in the universe You then decide where your eye is and which direction you re looking The com puter figures out which objects lie in that direction converts them into a single two dimensional image and draws that image on the screen This concept makes it fairly easy to repre sent complex scenes but manipulating individual objects within that scene can be more time consuming Another philosophy is to treat each 3 D object separately on the screen You describe each 3 D object then tell the comput
121. y compatible floating point package including arithmetic relational logical and transcendental functions e Floating point range of 1E 38 to 2E 39 e String extensions including LEFT RIGHTS and MID e BCD functions for 10 digit numbers including multiply divide and percentage BCD numbers may by used for DOLLAR CENTS calculations without the round off error inherent in BASIC real numbers Special words are provided for inputting and outputting DOLLAR CENTS values e Detailed manual with examples and applications screens Commodore 64 is a trademark of Commodore TO ORDER Specify disk or cassette version Check money order bank card COD s add 1 50 Add 4 00 postage and handling in USA and Canada Mass orders add 5 sales tax Foreign orders add 20 shipping and handling Dealer inquiries welcome PERFORMANCE MICRO PRODUCTS 770 Dedham Street S 2 Canton MA 02021 617 828 1209 WX f em Next Generation Micro Computer Products FORTH Dimensions DESIGNED BY EXPERTS IN THE FIELD OF MICRO COMPUTERS RICHARD ALTWASSER AND STEVEN VICKERS Steven Vickers Steven gained his degree in Math at King s College Cambridge England and his Ph D in Algebra at Leeds University His first assignment after school was to create the Sinclair 2X 81 or Timex 1000 8K ROM and to write the ZX 81 manual Subse quently he wrote most of the ROM for the Sinclair Spectrum or Timex 2000 Richar
Download Pdf Manuals
Related Search
Related Contents
English echo™ 100 und echo 150 ASSISTENTE SOCIAL - Instituto Brasileiro de Educação e Gestão Manual de Instalação do Sistema El-Roi Profissional – v.3.0.1 () Esmeralda - quasimodo, mon amour Lightweight RTAI for IA-32 (revised version) Weishaupt Solarsysteme WTS-F Montage CONSULTEz le guide des normes postales - Effica Jwin JXMP256FM 256MB DIG. AUDIO RECORDER JACUZZI MANUAL DE USO E INSTALACIÓN Copyright © All rights reserved.
Failed to retrieve file