$1.50 in USA AUGUST 1977 VOLUME 2, Number 8 the small systems journal Robert Iinney SWTPC announces first dual minifloppy kit under $1 ,i • it Now SWTPC offers complete best-buy computer system with $995 dual minifloppy, $500 video terminal/ monitor, $395 4K computer. $995 MF-68 Dual Minifloppy You need dual drives to get full benefits from a minifloppy. So we waited to offer a floppy until we could give you a dependa- ble dual system at the right price. The MF-68 is a complete top-quality minifloppy for your SWTPC Computer. The kit has controller, chassis, cover, power supply, cables, assembly instructions, two highly reliable Shugart drives, and a diskette with the Floppy Disk Operating System (FDOS) and disk BASIC. (A floppy is no better than its operating system, and the MF-68 has one of the best available.) An optional $850 MF-6X kit expands the system to four drives. $500 Terminal/ Monitor The CT-64 terminal kit offers these premium features: 64-character lines, upper/ lower case letters, switchable con- trol character printing, word highlighting, full cursor control, 1 10-1200 Baud serial interface, and many others. Separately the CT-64 is $325, the 12 MHz CT-VM monitor $175. Enclosed is: $1 ,990 for the full system shown above (MF-68 Minifloppy, CT-64 Terminal with CT-VM Monitor). $995 for the Dual Minifloppy $325 for the CT-64 Terminal $175 for the CT-VM Monitor $395 for the 4K 6800 Computer $250 for the PR-40 Line Printer $79.50 for AC-30 Cassette Inferface Additional 4K memory boards at $100 Additional 8K memory boards at $250 Or BAC # Exp. Date._. OrMC# Exp. Date _ Name Address City State -Zip- $395 4K 6800 Computer The SWTPC 6800 comes complete with 4K memory, serial interface, power supply, chassis, famous Motorola MIKBUG® mini-operating system in read-only memory (ROM), and the most complete documentation with any computer kit. Our growing software library includes 4K and 8K BASIC (cassettes $4.95 and $9.95; paper tape $10.00 and $20.00). Extra memory, $100/4K or $250/8K. Other SWTPC peripherals include $250 PR-40 Alphanumeric Line Printer (40 characters/line, 5x7 dot matrix, 75 line/minute speed, compatible with our 6800 computer and MITS/IMSAI); $79.50 AC-30 Cassette Interface System (writes/ reads Kansas City standard tapes, controls two recorders, usable with other computers); and other peripherals now and to come. ra Southwest Technical Products Corp. 219 W. Rhapsody. San Antonio, Texas 78216 London: Southwest Technical Products Co., Ltd. Tokyo: Southwest Technical Products Corp./Japan TV DAZZLER O o) z o o o I o p\ a To make ^ your computer more useful- a wide choice of memory, I/O, CPU Your computer's usefulness de- pends on the capability of Its CPU, memories, and I/O interfaces, right? So here's a broad line of truly useful computer products that lets you do interesting things with your Cromemco Z-1 and Z-2 computers. And with your S-100-compatible Al- tairs and IMSAIs, too. CPU • Z-80 MICROPROCESSOR CARD. The most advanced ^.P card avail- able. Forms the heart of our Z-1 and Z-2 systems. Also a direct re- placement for Altair/IMSAI CPUs. Has 4-MHz clock rate and the power of the Z-80 [xP chip. Kit (Model ZPU- K): $295. Assembled (Model ZPU- W): $395. MEMORIES • 16K RAM. The fastest available. Also has bank-select feature. Kit (Model 16KZ-K): $495. Assembled (Model 16KZ-W): $795. • 4K RAM. Bank-select allows ex- pansion to 8 banks of 64K bytes each. Kit (Model 4KZ-K): $195. As- sembled (Model 4KZ-W): $295. • THE BYTESAVER — an 8K capa- city PROM card with integral pro- grammer. Uses high-speed 2708 eras- able PROMs. A must for all com- puters. Will load 8K BASIC into RAM in less than a second. Kit (Model BSK-0): $145. Assembled (Model BSW-0): $245. • 16K CAPACITY PROM CARD. Ca- pacity for up to 16K of high-speed 2708 erasable PROM. Kit (Model 16KPR-K): $145. Assembled (Model 16KPR-W): $245. I/O INTERFACES • FAST 7-CHANNEL DIGITAL- ANALOG I/O. Extremely useful board with 7 A/D channels and 7 D/A channels. Also one 8-bit par- allel I/O channel. Kit (Model D + 7A-K): $145. Assembled (Model D + 7A-W): $245. • TV DAZZLER. Color graphics in- terface. Lets you use color TV as full- color graphics terminal. Kit (Model CGI-K): $215. Assembled (Model CGI-W): $350. • DIGITAL INTERFACE (OUR NEW TU-ART). Interfaces with teletype, CRT terminals, line printers, etc. Has not one but two serial I/O ports and two 8-bit parallel I/O ports as well as 10 on-board interval timers. Kit (Model TRT-K): $195. Assembled (Model TRT-W): $295. • JOYSTICK. A console that lets you input physical position data with above Model D + 7 A/D card. For games, process control, etc. Con- tains speaker for sound effects. Kit (Model JS-1-K): $65. Assembled (Model JS-1-W): $95. PROFESSIONAL QUALITY You get first-class quality with Cromemco. Here are actual quotes from ar- ticles by independent experts: "The Cromemco boards are absolutely beautiful" . . . "The BYTESAVER is tremendous" . . . "Construction of Cromemco I/O and joystick are out- standing" . . . "Cromemco periph- erals ran with no trouble whatso- ever." Everyone agrees. Cromemco is tops. STORES/MAIL So count on Cromemco. Look into these Cromemco products at your store. Or order by mail from the factory. We wish you pleasure and suc- cess with your computer. Q Cromemco incorporated Specialists in computers and peripherals 2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043 Circle 102 on inquiry card. (415) 964-7400 Meet the most powerful jjlC system available for dedicated work. Yet it's only $595t Here's the muscle you've been telling us you wanted: a powerful Cromemco microcomputer in a style and price range ideal for your dedicated computer jobs — ideal for industrial, business, instrumentation and similar applica- tions. It's the new Cromemco Z-2 Computer System. Here's some of what you get in the Z-2 for only $595: • The industry's fastest /xP board (Cromemco's highly regarded 4 MHz, 250-nanosecond cycle time board). • The power and convenience of the well-known Z-80 M P. • A power supply you won't believe ( + 8V @ 30A, + 18V and — 18V @ 15A — ample power for addi- tional peripherals such as floppy disk drives). • A full-length shielded motherboard with 21 card slots. • Power-on-jump circuitry to begin automatic program execution when power is turned on. S-100 bus. Standard rack-mount style construction. All-metal chassis and dust case. 110- or 220-volt operation. DEDICATED APPLICATIONS The new Z-2 is specifically designed as a powerful but economical dedicated computer for systems work. Notice that the front panel is entirely free of controls or switches of any kind. That makes the Z-2 vir- tually tamper-proof. No accidental program changes or surprise mem- ory erasures. FASTEST, MOST POWERFUL nC Cromemco's microcom- puters are the fastest and most powerful available. They use the Z-80 mi- iprocessor which is widely regarded as the standard of the future. So you're in the technical fore with the Z-2. BROAD SOFTWARE/PERIPHERALS SUPPORT Since the Z-2 uses the Z-80, your present 8080 soft- ware can be used with the Z-2. Also, Cromemco offers broad software support including a monitor, assembler, and a BASIC interpreter. The Z-2 uses the S-100 bus which is supported by the peripherals of dozens of manufacturers. Naturally, all Cromemco peripherals such as our 7-channel A/D and D/A converter, our well-known BYTESAVER with its built-in PROM programmer, our color graphics interface, etc., will also plug into the S-100 bus. LOW, LOW PRICE You'll be impressed with the Z-2's low price, technical excellence and quality. So see it right away at your computer store — or order directly from the factory. Z-2 COMPUTER SYSTEM KIT (MODEL Z-2K) (includes 4 MHz [iP card, full-length 21 -card-slot motherboard, power supply, one card socket and card-guide set, and front panel; for rack mounting) $595. Z-2 COMPUTER SYSTEM ASSEMBLED (MODEL Z-2W) (includes the above as well as all 21 sockets and card guides and a cooling fan; for rack mounting ). . .$995. w'-^&mZ&riftiaii ' ■ 18 36 44 50 70 158 26 30 81 108 114 120 130 142 4 5 9 17 86 102 129, 156 138 147 152 170 176 176 In the Queue Foreground CONTROLLING SMALL DC MOTORS WITH ANALOG SIGNALS Display Hardware-Sweer-Dwyer-Critchfield UNDERSTANDING APL Programming Techniques— Iverson HERE'S APL IN ACTION! Software— Keefe AN APL INTERPRETER FOR MICROCOMPUTERS, Part 1 Interpreter Design— Wimble SERENDIPITOUS CIRCLES Software-Gal way-Anderson A TRAPPING TECHNIQUE FOR THE 8080 Software— Schulein Background A MICROPROCESSOR COURSE Education— Fohl COSMAC VIP, THE RCA FUN MACHINE Product Description— Weisbecker EDITORIALIZING WITH YOUR COMPUTER Software— McGath WHY PEOPLE GET HOOKED ON APL Software— Atwood AN 8 DIGIT HEXADECIMAL READOUT Hardware— Burns LOOK WHAT YOU CAN DO . . . WITH AN EDGE AS A CUE Hardware— Tenny PROCESSING LOGICAL EXPRESSIONS Algorithms— Maurer SIMPLE ALGORITHMS FOR CALCULATING ELEMENTARY FUNCTIONS Algorithms— Rheinstein Nucleus In This BYTE Comments on the Acquisition of Knowledge Letters Technical Forum: An APL Update The New Heathkit Computer Line Book Reviews BYTE's Bits What's New? Clubs, Newsletters Altair (S-100) Bus Interface New Products Classified Ads BOMB Reader Service Cover: NEWTON UNDER THE APL TREE by Robert Tinney BYTE is published monthly by BYTE Publications Inc. 70 Main St, Peterborough NH 03458. Address all mail except subscrip- tions to above address; phone (603) 924-7217. Address all editorial correspondence to the editor at the above address. Unacceptable manuscripts will be returned if accompanied by sufficient first class postage. Not responsible for lost manu- scripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. Address all subscriptions, change of address. Form 3579, and fulfillment complaints to BYTE Subscriptions, PO Box 36I, Arlington MA 02174; phone (617) 646-4329. Second class postage paid at Peterborough NH 03458 and at additional mailing offices— USPS Publication No. 102410. Subscriptions are $12 for one year, $22 for two years, and $32 for three years in the USA and its possessions. Add $5.50 per year for subscriptions to Canada and Mexico. $25 for a one year subscription by surface mail worldwide. Air delivery to select- ed areas at additional rates available upon request. $25 for a one year subscription by air delivery to Europe, or DM 60,- for a one year subscription through our European distributor in Darmstadt, West Germany. Single copy price is $1 .50 in the USA and its possessions, $2 in Canada and Mexico, and $3 elsewhere, or DM 7,— through our European distributor in Darmstadt, West Germany. Foreign subscriptions and sales should be remitted in United States funds. Printed in United States of America. Entire con- tents copyright © 1977 by BYTE Publications Inc. All rights reserved. BITE Volume 2 Number 8 AUGUST 1977 PUBLISHERS Virginia Peschke Manfred Peschke EDITOR IN CHIEF Carl T Helmers Jr PRODUCTION MANAGER Judith Havey CIRCULATION MANAGER Gregory Spitzfaden ASSISTANT PUBLISHER Debra Boudrieau EDITOR Christopher P Morgan CO-OP EDITOR Raymond Cote PRODUCTION EDITORS Karen Gregory Nancy Salmon ADVERTISING Elizabeth Alpaugh Debra Boudrieau Virginia Peschke EDITORIAL ASSISTANT Ingrid Nyland PRODUCTION ASSISTANT Cheryl Hurd ADVERTISING ASSISTANT Norecn Bardsley SUBSCRIPTIONS Kimberly Barbour DEALER SALES Ginnic F Boudrieau CLUBS, PAPERBYTES Peter Travisano TRAFFIC MANAGER Edmond C Kelly Jr ART Mary Jane Frohlich WaiChiu Li Ellen Shamonsky SPECIAL PRODUCTS Medellin Stephens Floyd W Rehling David Wo/mak EXECUTIVE SECRETARY Patricia Clark RECEPTIONIST Jacqueline Earnshaw DRAFTING Lynn Malo Bill Morcllo Stephen Kruse TYPOGRAPHY Custom Marketing Resources Inc Good way Graphics PHOTOGRAPHY Ed Crabtree EDITORIAL CONSULTANT Daniel Fylstra ASSOCIATES Waller Banks Steve Ciarcia David Fylstra Portia Isaacson FOREIGN DISTRIBUTOR Pan Atlantic Computer Systems GmbH Frankfurter Sir 78 D6I Darmstadt West Germany (061 51) 29 29 23 ADVERTISING SALES REPRESENTATIVES National: Parker & Short 1 Lakeside Office Park Wakefield MA 01880 (617} 246-2293 Southern California: Buckley/Boris Associates Inc 912 South Barrington Suite 202 Los Angeles CA 90049 (213) 826-4621 Northern California: Jules E Thompson Inc Hearst Building Suite 1 1 1 I San Francisco CA 94103 (415) 362-8547 page 70 In This KITE One of the most exciting aspects of experimentation with computers is using the computer to make objects move. Distilling this excitement to its simplest form, Leon Swccr, Thomas Dwyer and Margot Critchficld at the University of Pittsburgh's Project Solo have designed a "one-dimensional plotter" which is used as the output display for the familiar Lunar Lander simulation game. Read Controlling Small DC Motors with Analog Signals. The small computer field is expand- ing fast. Growing with it is a need for more microprocessor oriented courses in our universities. In his article, A Microprocessor Course, Mark E Fohl explains how he helped initiate a microprocessor course at Franklin University in Columbus OH and details some of the difficulties instructors might expect to run into. Read Joe Weisbecker's COSMAC VIP, the RCA Fun Machine, a per- sonal description of his new COSMAC VIP kit. This article contains some background information on one man's design philosophy and its result in a new product from RCA. The lead article of our special sec- tion on APL (A Programming Lan- guage) was written, appropriately, by the man who developed it at IBM during the early 1960s: Dr Kenneth E Iverson. In Understanding APL Dr I verso n analyzes some basic APL op- erators through a series of questions designed to test your powers of induc- tion. The article concludes with some challenging APL "thought experi- ments" for your decoding pleasure. An excellent way to become more familiar with APL is to read David D Kecfe's Here's APL in Action! David has written an APL version of the pop- ular Lunar Lander game along with a detailed description of the entire pro- gram to help the reader decipher those high information density APL statements. Have you ever wanted to own a truly powerful computer? APL may be an answer to this quest for an ulti- mate language when it is added to an otherwise mundane computer. Mike Wimble's An APL Interpreter for Microcomputers can help you imple- ment APL if you have a flair for do it yourself software. With a little effort you can use any of the popular pro- cessors to produce your own APL interpreter from Mike's design. Have you always wanted to have an elegant looking computer art program for graphic display, but didn't want to spend the time required to program it? Try Serendipitous Circles! Authors Galway and Anderson have discovered a simple algorithm to create beautiful and unusual moving patterns in no time at all. The ability to handle and manip- ulate text is a very useful function. It allows programs to be changed very quickly without having to manipulate large amounts of data (and it is cer- tainly better than an IBM correcting Selcctric typewriter for writing and manipulating text). In his article, Editorializing with Your Computer, Gary McGath describes some of the properties of simple text editing programs. What makes APL such a heavily discussed topic among small system enthusiasts? How docs it differ from BASIC, and why should you use it at all? Allen Atwood discusses all of these topics and more in Why People Get Hooked on APL. Find out what you've been missing by programming in BASIC. Often it is necessary to determine the data that is present on a particular port or set of lines of a computer for purposes such as debugging. The usual indicator bit pattern consisting of indi- vidual lamps can be very confusing and lead to errors if read quickly. R R Burns offers a solution to this prob- lem. In his article, An 8 Digit Hexa- decimal Readout, he describes a test rig that can monitor 32 lines in groups of four bits. In this issue, Ralph Tenny describes some of the tricks (some call them kluges) which can be done with pulse waveform edges, Schmitt triggers, resistors and capacitors. Turn to Look What You Can Do . . . with an Edge as a Cue to understand some of the design practices you may occasionally find in a processor. In two earlier articles in BYTE W Douglas Maurer described an algo- rithm for processing algebraic expres- sions when implementing compilers or interpreters. In his latest contribution to BYTE's ongoing flow of tutorials on computer science problems and techniques, Dr Maurer presents an ingenious extension of the Bauer- Samelson algorithm which will enable the do-it-yourself compiler writer to create efficient object code for expres- sions involving logical operators and comparisons of operands. Many people use their computers as number crunchers and want quick, ac- curate algorithms for determining some fairly involved mathematical functions. Typical examples are trigo- nometric functions, hyperbolic func- tions and exponentiation. In his article, Simple Algorithms for Calculating Elementary Functions, John Rhein- stein details several algorithms to calculate these functions quickly. How do you gel rid of bugs? Set out a few traps using techniques out- lined in John M Schulein's article on A Trapping Technique for the 8080. 4 Editorial Comments on the Acquisition of Knowledge By Carl Helmers I am sometimes asked by persons new to the field, "What is the best way to approach the problem of learning enough about com- puters and their intricacies to allow the neo- phyte to accomplish useful tasks?" Some thoughts on this subject, with an aside on simplicity and system design, provide the theme for this essay on the philosophy of personal computing usage and experimen- tation. My point of departure for this thought journey is an old but useful prin- cle adapted to a modern context. The Principle of Simplicity There is a famous rule of thumb which is well-known to philosophers, logicians, mathematicians and natural scientists, which might be called the "Principle of Simpli- city." The familiar name for this principle is the rule of "Occam's Razor" after a medieval logician (William of Occam) who has become identified with the concept. Paraphrased from the typical undergraduate Continued on page 66 Articles Policy BYTE is continually seeking quality manuscripts written by individuals who are applying personal systems, or who have knowledge which will prove useful to our readers. Manuscripts should have double spaced type- written texts with wide margins. Numbering sequences should be maintained separately for figures, tables, photos and listings. Figures and tobies should be provided on separate sheets of paper. Photos of technical subjects should be taken with uniform lighting, sharp focus and should be supplied in the form of clear glossy black and white or color prints (if you do not have access to quality photography, items to be photographed can be shipped to us in many cases). Computer listings should be supplied using the darkest ribbons possible on new (not recycled) blank white computer forms or bond paper. Where possible, we would like authors to supply a short statement about their background and experience. Articles which are accepted are typically acknow- ledged with a binder check 4 to 8 weeks after receipt. Honorariums for articles are based upon the technical quality and suitability for BYTE's readership and are typically $25 to $50 per typeset magazine page. We recommend that authors record their name and address information redundantly on materials submitted, and that a return envelope with postage be supplied in the event the article is not accepted. ■ If you've been looking for S-100 bus 16K module expansion . . . look no further. Solid State Music is delivering, today, through more than 75 computer stores, coast to coast. Delivery is just one of the benefits you'll get from Solid State Music. The New MB-7 16K static board is packed with features that give you total system versatility and expansion at a price you can afford. • Low power— (+8V @ .55A, +16V @ .08A, -16V @ .03 A typical). • High speed— 32 -4K x 1 200ns static RAMs. • Fully buffered — All data output, input and address lines are fully buffered. • Automatic unprotect and memory protect — Memory protects in 4K block segments and memory automatically unprotects at power-on. • Memory disable — ROM monitor can initialize system at power-up or reset (SOL compatible). • Expansion beyond 64K — Low power features and a board-inhibit line allows expansion beyond normal 64K capacities. • Quality construction — includes low profile Tl sockets and gold edge connectors. The new MB7 1 6K static board is priced at just $525.00, in easy-to-assemble kit form, or $625.00 fully assembled and tested. Contact your local computer store today for complete details on the new MB7 or other fine Solid State Music products. Solid State Music 21 02 A Walsh Avenue Santa Clara, CA 95050 (408) 246-2707 WE'RE THE BLUE BOARDS! Sol Terminal Computer A fcxi t ■ Todoreal work with any computer, big or small, it takes a complete system. That's one of the nice things about the Sol-20. It was built from the ground-up as (he heart of three fixed price computer systems with all the peripheral gear and software included to gel you up and on the air. Sol System I costs just SIM 1 ) in kit form or S2I2 ( ) fully burned in and tested. Here's what you net: a Sol-20 with the i as pel sonant y module lor si and alone coin pi Her power, \ ( )2 word memory, a 12" 'I V/ video monitor, a cassette rder with MASK' software tape and all necessary cables, Sol System II has the same equipment plus a larger ^v ■ ■ *- .,.acity 16,384 word memory. It sells for S1883 in kit form: S2283 fully assembled. For even more demanding tasks, Sol System III features Sol-20/SOLOS, a 32,768 word memory, the video monitor, Helios II Disk Memory System and DISK BASIC Diskette. Price. $4750 in kit form, S5450 fully assembled and tested. And remember, though we call these small or personal computer systems, they have more power per dollar than anything ever offered. They provide performance com* iputer Sysii; thousands of dollars more. The Small Computer Catalog for the rest of the real computer system story. Visit your local computer store for a copy oi our iuiiv uiusiraiea n page cata- log. Or you may write or call us if more convenient. Please address Processor Technology, Box B, 6200 Hollis Street. Emeryville, CA 94608. f415) 652-8080. See Sol here ALABAMA ICP, Computerland 1550 Montgomery Hwy Birmingham, AL 35226 (205) 979-0707 ARIZONA Byte Shop Tempe 813 N. Scottsdale Rd. Tempe, AZ 85281 (602)894-1129 Byte Shop Phoenix 12654 N. 28th Dr. Phoenix, AZ 85029 (602) 942-7300 Byte Shop Tucson 2612 E. Broadway Tucson, AZ 85716 (602) 327-4579 CALIFORNIA The Byte Shop 1514 University Ave. Berkeley, CA 94703 (415) 845-6366 Byte Shop Computer Store 6041 Greenback Lane Citrus Heights. CA 95610 (916)961-2983 Computer Center 1913 Harbor Blvd. Costa Mesa, CA 92627 (714) 646-0221 Data Consultants, Inc. 2350 W. Shaw, Suite 114 Fresno, CA 93711 (209)431-6461 Bits'N Bytes 679 S. State College Blvd. Fullerton, CA 92631 (714) 879-8386 The Byte Shop 16508 Hawthorne Blvd. Lawndale, CA 90260 (213) 371-2421 The Byte Shop 1063 El Camino Real Mountain View, CA 94040 (415) 969-5464 Digital Deli 80 W. EI Camino Real Mountain View, CA 94040 (415) 961-2828 The Computer Marl 624WestKatella#10 Orange, CA 92667 (714)633-1222 The Byte Shop 2227 El Camino Real Palo Alto, CA 94306 (415) 327-8080 Byte Shop 496 South Lake Ave. Pasadena, CA 91101 (213)684-3311 The Computer Store of San Francisco 1093 Mission Street San Francisco. CA 94103 (415)431-0640 Byte Shop 321 Pacific Ave. San Francisco, CA 94111 (415)421-8686 The Byte Shop 2626 Union Avenue San Jose, CA 95124 (408) 377-4685 The Computer Room 124H Blossom Hill Rd. San Jose, CA 95123 (408) 226-8383 The Byte Shop 509 Francisco Blvd. San Rafael, CA 94901 (415)457-9311 The Byte Shop 3400 El Camino Real Santa Clara, CA 95051 (408) 249-4221 Recreational Computer Centers 1324 South Mary Ave. Sunnyvale, CA 94087 (408) 735-7480 Byte Shop of Tarzana 18424 Ventura Blvd. Tarzana, CA 91356 (213)343-3919 The Byte Shop 2989 North Main St. Walnut Creek, CA 94596 (415) 933-6252 Byte Shop 14300 Beach Blvd. Westminster, CA 92683 (714)894-9131 COLORADO Byte Shop 2040 30th St. Boulder, CO 80301 (303) 449-6233 FLORIDA Sunny Computer Stores University Shopping Center 1238A S. Dixie Hwy. Coral Gables, FL 33146 (305) 661-6042 Delta Electronics 2000 U.S. Hwy. 441 East Leesburg, FL 32748 (904) 357-4244 Byte Shop of Miami 7825 Bird Road Miami, FL 33155 (305)264-2983 Microcomputer Systems Inc. 144 So. Dale Mabry Hwy. Tampa, FL 33609 (813)879-4301 GEORGIA Atlanta Computer Mart 5091-B Buford Hwy. Atlanta, GA 30340 (404) 455-0647 ILLINOIS The Numbers Racket 623'/2 South Wright St. Champaign, IL 61820 (217)352-5435 illy bitty machine CO. 1316 Chicago Ave. Evanston, IL 60201 (312) 328-6800 Reeves Communications 1550 W. Court St. Kankakee, I L 60901 (815)937-4516 ilty bitty machine CO. 42 West Roosevelt Lombard, IL 60148 (312) 620-5808 INDIANA The Data Domain 406 So. College Ave. Bloomington, IN 47401 (812) 334-3607 The Byte Shop 5947 East 82nd St. Indianapolis, IN 46250 (317) 842-2983 The Data Domain 7027 N. Michigan Rd. Indianapolis, IN 46268 (317)251-3139 The Data Domain 219 West Columbia West Lafayette. IN 47905 (317)743-3951 KENTUCKY The Data Domain 3028 Hunsinger Lane Louisville. KY 40220 (502) 456-5242 MICHIGAN The Computer Store of Ann Arbor 310 East Washington Ann Arbor, Ml 48104 (313)995-7616 Computer Mart or Royal Oak 1800 W. 14 Mile Rd. Royal Oak, MI 48073 (313) 576-0900 Genral Computer Store 2011 Livernois Troy, Ml 48084 (313) 362-0022 NEW JERSEY Hoboken Computer Works No. 20 Hudson Place Hoboken, N.I 07030 (201)420-1644 The Computer Mart of New Jersey 501 Route 27 Iselin, NJ 08830 (201)283-0600 NEW YORK The Computer Mart of Long Island 2072 Front Street East Meadow, L.I., NY 11554 (516)794-0510 Synchro Sound Enterprises 193-25 Jamaica Ave. Hollis, NY 11423 (212)359-1489 The Computer Shoppe 444 Middle Country Rd. Middle Island, NY 11953 (516) 732-3086 Audio Design Electronics 487 Broadway, Ste. 512 New York, NY 10013 (212)226-2038 The Computer Mart of New York 118 Madison Ave. New York, NY 10001 (212)686-7923 The Computer Corner 200 Hamilton Ave. White Plains, NY 10601 (914)949-3282 OHIO Cybershop 1451 S. Hamilton Rd. Columbus, OH 43227 1614)239-8081 OKLAHOMA High Technology 1020 West Wilshire Blvd. Oklahoma City, OK 73116 (405)842-2021 OREGON Byte Shop Computer Store 3482 S.W. Cedar Hills Blvd. Beaverton, OR 97005 (503) 644-2686 The Real Oregon Computer Co. 205 West 10th Ave. Eugene, OR 97401 (503)484-1040 Byte Shop Computer Store 2033 S.W. 4lh Ave. Portland, OR 97201 (503) 223-3496 RHODE ISLAND Computer Power, Inc. M24 Airport Mall 1800 Post Rd. Warwick, RI 02886 (401)738-4477 SOUTH CAROLINA Byte Shop 2018 Green Street Columbia, SC 29205 (803) 771-7824 TENNESSEE Microproducts & Systems 2307 E. Center St. Kingsport, TN 37664 (615) 245-8081 TEXAS Byte Shop 3211 Fondren Houston, TX 77063 (713) 977-0664 Computertex 2300 Richmond Ave. Houston, TX 77098 (713) 526-3456 Interactive Computers 7646V2 DashwoodRd. Houston, TX 77036 (713) 772-5257 The Micro Store 634 So. Central Expressway Richardson, TX 75080 (214)231-1096 VIRGINIA The Computer Systems Store 1984 Chain Bridge Rd. McLean, VA 22101 (301)460-3634 Media Reactions Inc. 11303 South Shore Dr. Reston, VA 22090 (703) 471-9330 WASHINGTON Byte Shop Computer Store 14701 N.E. 20th Ave. Bellevue, WA 98007 (206)746-0651 The Retail Computer Store 410N.E.72nd Seattle, WA 98115 (206) 524-4101 WISCONSIN The Milwaukee Computer Store 6916 W. North Ave. Milwaukee, WI 53213 (414) 259-9140 CANADA Trintronics 160 Elgin St. Place Bell Canada Ottawa, Ontario K2P 2C4 (613) 236-7767 First Canadian Computer Store, Ltd. 44 Eglinton Ave. West Toronto, Ontario M4R 1A1 (416) 482-8080 The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1 (416) 598-0262 Pacific Computer Store 4509-11 Rupert St. Vancouver, B.C. V5R2J4 (604) 438-3282 153^^ Circle 104 on inquiry card. OPTIMIZING KEYBOARDS? i ED/TOR BYTE 70MAINST, N.H. WMW CW Mr. porters; Ja uow edcfaw '^a April 1177 BUJr , uou mode mevvfion ot tW Dvorak susrem. Bu. one rf "Hiose peqjl W r 1 Coincidences, Mono, areat *lmc(s IlKe ourse/ves, J was luadliM a cwiospi of tyi eraonomic tej.- bocwq.- based upon"Tle ^CVovciK ■su-^ei^ and "Hie new f?C.D. Ltd.'s LtzQoMns RoacljWflborouaVlj IfWsjtmlcmcJ] McJtoDKl LUMnC tepuuntef - WU-Doaircl (■see pVjtc, pg, % Apnm77 Popu far Science J. Dew fs a irouak Vev^toHjHeactirJ keus-smcleiwcJlui/i/ecl-ooMuieo Ke.u&-s,lntW W rooi^ksi". CUce ot +wdioiAS a^W«WU. 1u Iteee^-lo we before svml! tompirieir/W^tWs become move ttu/vjeisa/ we fc-Wald i"n>rt^itKct€ Hie DnokqK *«rsp\owiic deswiis. 6Wu 600 mi an Hard ms b ura j >*va-; ?wcp~tlio*-> a[L_V&o'D() cDnuiT|;:\ G®t)4>0[ r ]F3\ /¥ 1234567890-rx QWERTY U TOP* ASDFGHJKLi'i ZXCVBNM,./ iV«!H**I Information on Selectric conversions is coming; have patience. Dan Fylstra's article on the IO Seleclrics is a first step, for the electronics of his interface is the same as that required for a converted manual machine. The mechanical details of the interface are discussed in one article presently being edited and a second article promised (but not yet in our office). Both of these future articles are written by people who have success- fully accomplished working systems. HOMEBREW? First of all, as a newcomer to BYTE, I must say you have a very good set up, but after reading awhile I must call Continued on page 136 12 ■ IS YOUR DOLLAR BUYING AS MUCH POWER & FLEXIBILITY AS TDL'S XITAN SYSTEMS PROVIDE? rolafc OUR CUSTOMERS SAY THINGS LIKE THIS ABOUT TDL PRODUCTS: 7v\2I "... the best CPU board I've put together . . . excellent parts ... . IRC Cambridge, Mass. KMM Bella Vista, Ark. "... high quality components, good engineering & complete ; . . . .wp Seattle, Wash. "Excellent." Col. DWW Santa Maria, Calif. "Very impressed with superb quality." SK-L Boston, Mass. alpha 1 When we combined our highly praised ZPU board and our System Monitor Board, we defined the standard for the industry; we integrated more power and flexibility in two slots of our motherboard than most other systems can muster using five or more boards. When we put this setup into our rugged aluminum case we created the first XITAN system, the alpha 1. By adding a CRT terminal and/or teleprinter you will have a complete computer system. KIT: $769 ASSEMBLED & TESTED: $1039 alpha 2 By adding a Z16 memory module and our PACKAGE A software to the alpha 1 we created a second XITAN system, the alpha 2. Thus, a complete and extremely powerful micro-computer system emerges well worthy of you who are operating at the most sophisticated levels. The XITAN alpha 2 provides you with 18K of RAM, 2K of ROM, 2 serial I/O ports, 1 parallel I/O port, our 1200 baud audio cassette interface as well as our extraordinarily powerful software package which includes 8K Basic, the Text Output Processor, the Zapple Text Editor and the Relocating Macro-Assembler. Add your own I/O device and GO . . .with the most powerful and flexible micro-computer package ever offered. KIT: $1369 ASSEMBLED & TESTED: $1749 IF YOU ARE A BEGINNER, YOU WON'T EASILY OUTGROW THE XITAN SYSTEM. IF YOU ARE AN ADVANCED USER, YOU WILL DISCOVER XITAN IS EXACTLY WHAT YOU NEED. i'Write for descriptive brochure on the XITAN alpha series and system software. When you ask at your dealer, say "ZY-TAN." ORDERING INFORMATION: Send check, money order or BankAmericard, Master Charge current number and expiration date. Shipping is usually made via UPS or UPS Blue Label. Specify other arrangements if you wish. Prepaid orders are shipped postpaid. Circle 107 on inquiry card. I TECHNICAL DESIGN RESEARCH PARK BLDGH 1 101 STATE ROAD PRINCETON. NEW JERSEY 08540 (609) 921-0321 Introducing Apple II. t mszwom&t?^*-" Jk%Z You've just run out of excuses for not owning a personal computer. Clear the kitchen table. Bring in the color TV. Plug in your new Apple Ilf and connect any standard cassette recorder/player. Now you're ready for an evening of discovery in the new world of personal computers. Only Apple II makes it that easy. It's a complete, ready to use computer, not a kit. At $1298, it includes video gra- phics in 15 colors. It includes 8K bytes ROM and 4K bytes RAM-easily expandable to 48K bytes using 16K RAMs (see box). But you don't even need to know a RAM from a ROM to use and enjoy Apple II. For example, it's the first personal computer with a fast version of BASIC permanently stored in ROM. That means you can begin writing your own programs the first evening, even if you've had no previous computer experience. The familiar typewriter-style keyboard makes it easy to enter your instructions. And your programs can be stored on— and retrieved from— audio cassettes, using the built-in cassette interface, so you can swap with other Apple II users. You can create dazzling color displays using the unique color gra- phics commands in Apple BASIC. Write simple programs to display beautiful kaleidoscopic designs. Or invent your own games. Games like PONG— using the game paddles, supplied. You can even add the dimen- sion of sound through Apple II's built-in speaker. But Apple II is more than an advanced, infinitely flexible game machine. Use it to teach your children arithmetic, or spelling for instance. Apple II makes learning fun. Apple II can also manage household finances, chart the stock market or index recipes, record collections, even control your home environment. Right now, we're finalizing a peripheral board that will slide into one of the eight available mother- board slots and enable you to compose music elec- tronically. And there will be other peripherals announced soon to allow your Apple II to talk with another Apple II, or to inter- face to a printer or teletype. Apple II is designed to grow with you as your skill and experience with computers grows. It is the state of the art in personal computing today, and compatible upgrades and peri- pherals will keep Apple II in the fore- front for years to come. Write us today for our detailed brochure and order form. Or call us for the name and address of the Apple II dealer nearest you. (408) 996-1010. Apple Computer Inc., 20863 Stevens Creek Boulevard, Bldg. B3-C, Cupertino, California 95014. Apple II™ is a completely self-contained computer system with BASIC in ROM, color graphics, ASCII keyboard, light- weight, efficient switching power supply and molded case. It is supplied with BASIC in ROM, up to 48K bytes of RAM, and with cassette tape, video and game I/O interfaces built-in. Also in- cluded are two game paddles and a demonstration cassette. SPECIFICATIONS • Microprocessor: 6502 (1 MHz). • Video Display: Memory mapped, 5 modes— all Software-selectable: • Text— 40 characters/line, 24 lines upper case. • Color graphics— 40h x 48 v, 15 colors • High-resolution graphics— 280hx 192v; black, white, violet, green (12K RAM minimum required) • Both graphics modes can be selected to include 4 lines of text at the bottom of the display area. • Completely transparent memory access. All color generation done digitally. • Memory: up to 48K bytes on- board RAM (4K supplied) • Uses either 4K or new 16K dynamic memory chips • Up to 12K ROM (8K supplied) • Software • Fast extended integer BASIC in ROM with color graphics commands • Extensive monitor in ROM •I/O ■ 1500 bps cassette interface • 8-slot motherboard • Apple game I/O connector • ASCII keyboard pqrt_ • Speaker • Composite video output Apple II is also available in board-only form for the do-it-yourself hobbyist. Has all of the features of the Apple II system, but does not include case, keyboard, power supply or game paddles. $598. PONG is a trademark of Atari Inc. *Apple II plugs into any standard TV using an inexpensive modulator (not supplied). _«~ tipple computer inc. Circle 108 on inquiry card. Order your Apple II now Use this order form to get your Apple II fast. As a special offer for those who order now, we will include free a custom vinyl carrying case (a $50 value). And we will also pay shipping charges to anywhere in the continental United States. Apple II Price List. RAM Complement Apple II System Calif. Residents Add Apple II Board-only Calif. Residents Add 4K $1,298.00 $ 84.37 $ 598.00 $ 38.87 8K 1,398.00 90.87 698.00 45.37 12K 1,498.00 97.37 798.00 51.87 16K 1,698.00 110.37 978.00 63.57 20K 1,778.00 115.57 1,078.00 70.07 24K 1,878.00 122.07 1,178.00 76.57 32K 2,158.00 140.27 1,458.00 94.77 36K 2,258.00 146.77 1,558.00 101.27 48K 2,638.00 171.47 1,938.00 125.97 Memory is offered at a 20% savings when ordered with the system-or board-as reflected in the prices above. Additional RAM can be easily added-in at a later date as your needs develop. One set 4K chips (4K bytes) $125 One set 16K chips (16K bytes) $600 Prices and specifications subject to change without notice. apple computer inc. 20863 Stevens Creek Blvd., B3-C Cupertino, California 95014 (408) 996-1010 Order Form □ Please send me an Apple II System □ Board Only with K bytes of RAM (4K minimum) at California Residents add 6. 5% tax Total $_ Name _ Address City State Phone _ .Zip Shipping Address (if different) □ Cashier's check or money order enclosed. (Please allow 2 additional weeks for personal checks.) Please charge to my □ BankAmericard □ VISA D Master Charge Card Number Expiration Date Signature Mail to: Apple Computer Inc., 20863 Stevens Creek Blvd., B3-C, Cupertino, California 95014 Circle 108 on inquiry card. An APL Update E H Anthony Zoology Department University of Guelph Guelph, Ontario N1G 2W1 CANADA You and your contributor, Mark Arnold, are to be congratulated for introducing your readers to APL. Nevertheless, the article in your November 1976 issue may benefit from updating with respect to current usage of some fundamental terminology, especially for those who may have encountered APL for the first time in your journal. Arnold lists functions such as + -- X t "f'tbut calls them operators. They are functions. Then, when he gets to operators, such as / and . , Arnold calls them com- posite operators. They are simply operators. Is this not merely nit picking? No, it is not. Is this distinction in terms really important? Yes, it is. To say otherwise is to overlook much that is significant in the evolution of APL. I believe the corrections proposed here align with the grain of APL in a significant manner. Computer languages scarcely bear close comparison with APL for the simple reason that it is more than just a computer language. First and foremost it is a teaching language. Teaching is the role for which it was born. Requiring a language to be useful in teaching apparently invokes a different and better set of constraints than merely requiring that it enable us to operate a digi- tal computer. In general, it may be said that what is good for teaching is good for all as- pects of society. Certainly computer science is not immune to this thesis. An obvious requirement of a teaching language is consistency in notation and ter- minology. The lack of such consistency has been a common source of difficulty for those learning traditional mathematics. Com- mon functions like plus and minus have frequently been referred to as operators, while less common ones like sine and cosine have been called functions in the same text. This distinction in terminology tends to divert attention from the basic activity they have in common, namely accepting an (non- functional) argument (or arguments) and re- turning a result. Using terminology that relates them to the same class of activity emphasizes the underlying unity. The term function seems admirably suited to that usage, although the choice is obviously arbitrary. Operators perform a higher level of ma- nipulation in APL. They are characterized by the fact that they take a function as one or both of their arguments. (Their introduc- tion necessitates a hierarchy in the order of execution, such that operators are executed prior to functions.) The differences between function and operator in APL may be illus- trated with reference to the symbol / , which serves dual roles. If we say / I 1 Ojl 2 3 4 5 , we are using the symbol as a compression function. It then has a Boolean vector as left argument and an ordi- nary numeric vector as a right argument and returns 7 3 4 as a result. Note that neither argument is a function; the only function in the expression is compression, represented by /. If, on the other hand, we say +/J 2 3 4 5, we are using / as the reduction oper- ator. It takes as its left argument a primitive scalar dyadic function, ie: a function whose three properties are indigenous to APL (present on the keyboard of an APL ter- minal), that it is defined initially for scalars (single numbers), and that it accepts two arguments. In this specific instance, the left argument of reduction is the plus function. Plus reduction is summation and the oper- Continued on page 106 17 Photo I : A detail of the actual model, in operation in the authors' Project Solo laboratory at the University of Pittsburgh. The program used to drive the output device is a relatively conventional BASIC version of lunar lander, with modifications to use the analog inputs and outputs diagrammed in figure 1. Input comes from a "throttle" stick which is a lever mounted on a poten- tiometer read by an analog to digital input conversion channel. Outputs from several digital to analog conversion channels drive display meters (see figure I), as well as the voltage set point of the motor drive electronics described here. In the authors' system, these analog conversion functions are provided by a Cromemco conversion module which plugs into an Altair (S-IOO) bus backplane of the computer which runs BASIC for the lunar lander simulation. Controlling Small DC Motors with Analog Signals (Or, the Key to Making a Realistic Lunar Lander Simulation Display) Leon Sweei Thomas Dwyer Margot Critchf ield Project Solo University of Pittsburgh Pittsburgh PA 15260 Microcomputers are starting to show up in an unexpected variety of places: en- gineering labs, businesses, factories, golf courses, radio stations, the home, and most recently, the classrooms of adventuresome teachers. One consequence of this growth has been a rapid expansion in what might be called "blue sky" thinking about how computers might be used. Amateurs aren't afraid to fantasize a bit, knowing that's where half the fun lies. Even when these ideas are too ambitious for immediate implementation, they often suggest simpler partial projects that will eventually fit in as components of a bigger system. For example, getting simple black and white graphics to work on CRT monitors could be the prelude to running a more ambitious sound and color "spectacular" under computer control. Our experience at Soloworks in applying computers to education indicates that working at this imaginative level helps foster the natural ability of people to learn through creative explorations. This in turn suggests that the more flexible the tech- nology, the better the learning. Computers hold special promise because of the way they can be "transformed" with software. Their main limitation has been at the inter- face level. For example, it has not been easy to find hardware for controlling "things" (as opposed to symbols on a terminal). An important first step in solving this problem has been the appearance of analog to digital and digital to analog interface boards (eg: the Cromemco D+7A). On the input side, continuous joystick control now becomes easy. But what about output? In particular, it now makes sense to ask if a computer can be used for control of con- tinuous DC motors. We'll also want to ask if computers can move things according to algorithms that specify position. The answer is yes, provided that (a) we can find a way to amplify the analog output so it can drive a motor, and (b) we can create a feedback path that lets the motor know if it has run long (or fast) enough to accomplish the task at hand. This article describes one simple approach to solving these two problems. In order to make the ideas involved easier to follow, they are presented in terms of a specific project, namely building a one-dimensional dynamic plotter for use with a "lunar lander" style game. However, with a little imagination, many other applications of these ideas should be possible, including the control 6f several motors. 18 INSTRUMENTS a z -•-FEEDBACK MOTOR CURRENT- ZT^ □ © © O LANDING PAD ^ Figure I: A pictorial diagram of how the one-dimensional plotter fits into the implementation of a planetary landing simulator. The motor drive circuits (2) use feedback to set the altitude of the model ship based on the current set point command X c issued by a digital to analog con- version output of the computer. The computer (I) implements a mathematical model of the spaceship's flight based on analog to digital conversion of a throttle signal input, with analog output of the ship 's altitude as voltage X c . The One-Dimensional Plotter A plotter is an electro-mechanical in- strument for displaying the position or motion of some object, usually as a func- tion of time. It can be used for such things as showing the flight path of an airplane or the trajectory of a rocket. To display the position of an airplane it would be nec- essary to have a three-dimensional display or a three-dimensional plotter (x, y and z, where z is altitude). To show the flight path of a plane flying at constant altitude only a two-dimensional plotter would be needed. The graph produced would have one axis corresponding to the north-south compo- nent of motion, while the other axis would represent the east-west component. While most general plotting work is done in two dimensions with the mechanism dragging a pen to create a picture on paper, a one-dimensional plotter also has applica- tions. For example, a one-dimensional plotter could be used to show the vertical descent phase of a spaceship making a simulated landing on a moon or planet. A small scale model of the spaceship could be raised and lowered a number of feet with respect to a landing surface (the planet's surface) by a motor-driven derrick-like arrangement. The result would be a dynamic plotter that allowed the "pilot" to practice landings in one-dimension, up-down (see figure 1). Later, other components of motion (dimensions) could be added by using a fancier mechanical setup. Authors' note; The next few paragraphs can be read over rapidly by those who are not fa- miliar with calculus. In this design, the information displayed, either graphically or dynamically by a plot- ter, is the position of the spaceship or other object of interest. The plotter must be told the initial position, and any changes in position as part of the mathematical model of a spaceship landing. Sometimes this change information is not known directly, and must be calculated from other informa- tion, such as velocity. For the spaceship problem, the change in position (called displacement or AX) can be calculated from velocity by integrating the velocity with respect to time AX = J'Jv dt. For a constant 19 Figure 2: A block diagram of the ship's position dis- play system (.') unci the programming model oi the ship's behavior which drives the display plotting device (I J. MOTOR WITH GEARS AND PULLEYS <4 fc, CONTROL SOFTWARE WIIH POTENTIOMETER INPUTS velocity, the displacement X is the velocity multiplied by time, X = vl H both the velocity and d en1 are nol known thc\ may be calculated From the accelera tion "| thi i< ■ hip fwhii li is pi'i >pi'»i tiun.il to rocket thrust ). 1 1 .1 acceli 1 ition, V = J a dt (assumin ; velocil ■ 1 cm) and therefore, Ax=/5(/3 1 dt) dt. I hese mathematii al integi ition can b pei formed with anali ig cin uits, 01 with a digital computei r in numn u .1 mi ei aiiun mi il ods. One e thi displacement o1 the ship i h rived hum 1 1 1 > ai i eleration 01 veloi u>. g cither kind ot t ■onipuiri • 1 in be Used to supply ihi input i" iln one dimen iional altitude plottei rhi job of the plottei is to move the modi I ship to a position equal to its initial poi ition plus the displai emi nl Let's call this correct positii in K, , tnd think of it as an input signal to thi plotter. X, 1 hi correct position input, is when thi ship should he, according to thi equations of motion, i le dimi n ;ii in tl pai e. It a digital computei 1 being u ;ed, then will have to be genei tted with 1 ine digital to analog output 1 using the < urrenl 1 iti ot its programmed model o1 the laps behav ior. I igur < I md .' how h< i\\ ilmsi ideas all I ii togethei I f « e < all thi i I p< 'iii. m i it th« i ship X a , this in i) dii i. a at times from the calculated pi isition \, I hi 5 1 1 roi i repre sented In an err 11 ignal w hich 1 pn 1 the difference between the i ah uku. .1 position nl the ship (X ( i and the a< tual position 1 11 the model ( \,,i. PLOTTER HARDWARE e=0 il X c - X a =0 1 -0 il X c X a >0 £■ 11 il x c X a <0 In othei words, e is zero when there is no error (X L =X a ), positive when X c >X a , and in ;ative when X c ), less Ml j^> wire wrapping center BATTERY WIRE-WRAPPING TOOL MODEL BW-630 ANOTHER UNIQUE PRODUCT DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE BY OK MACHINE & TOOL CORPORATION STRIP /WRAP /UNWRAP TOOL MODEL WSU-30 $5.95 ANOTHER UNIQUE PRODUCT DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE BY OK MACHINE & TOOL CORPORATION DIP IC INSERTION TOOL WITH PIN STRAIGHTENER MODEL INS-1416 $3.49 ANOTHER UNIQUE PRODUCT DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE BY OK MACHINE & TOOL CORPORATION $34.95 ANOTHER UNIQUE PRODUCT DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE BY OK MACHINE & TOOL CORPORATION WIRE DISPENSER MODEL WD-30-B THE DISPENSER WHICH CUTS AND STRIPS THE WIRE $3.45 ANOTHER UNIQUE PRODUCT DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE BY OK MACHINE & TOOL CORPORATION WH ATS r NEXT MINIMUM ORDER $25.00, SHIPPING CHARGE $1.00, N.Y. CITY AND STATE RESIDENTS ADD TAX OK MACHINE & TOOL CORPORATION 3455 Conner St., Bronx, N.Y. 10475 1(212) 994 -6600 ■ Telex 125091 Figure 3: Details of the motor drive servo ctrt nil. This basic cin nil < an be used (with appropriate choices of gearing and mechan- ical arrangement at the feedback pots) to control a large numbei oi mei nanisms which depend upon DC motors to set position. The feedback from the position measuring potentiometer X a is compared with the set point X c by amplifier IC1 . The error signal resulting (if large enough) directly drives the motor after inversion by IC4 when the set point X c is far away from the actual position X a . As the set point is appnuu hed, the diret I erroi signal bet omes nearly zero, so the amplified error signals for small positive or negative displacements (K.J and IC3) become the dominant turns in the summation at the input of IC5, until finally X a matches X c within limits set by the small erroi threshold potentiometers. This complexity of the circuit is required by the fact thai the DC motors require a t ei lain minimum dri\ e i 'oltage in older for any motion to occur. •. ■ v.. H H AMI :. I ERROR SIGNAL POSITION rtEDBOCK I ROM P> POTENTIOMETER (SEE FIG 41 (-6 5 TO + 6 5V1 POSITION COMMAND , ^ FROM [_> COMPUTER DAC OUTPUT PORT 1-6 5 TC .6 bVI NOTE: ALL RESISTORS 1/2 WATT EXCEPT R7 TO RI2 WHICH ARE I WATT OPAMP PINOUTS SHOWN FOR 8 PIN DIP OR METAL CAN VERSIONS NVERTING UNITY LAIN POWER OPAMP TO DC MOTOR, FIGURE 4 o than (<), oi equal id (~) X cl . I he motoi driver, in turn, tells the motoi to go one way, or the opposhc way, oi nol to turn, by a +, , or voltage. I he motoi then moves the model ship towards .1 more correct position, M necessary, while infoi ming the 1 circuil oi the new position. When the actual position equals the (.Di- rect position, the error signal becomes equal to and the motor stops. \\\) luitliei change in the input signal (correcl position signal, X c ) will cause furthei movement oi the model in the same way. I he remaindei o1 this article describes how to build the seilol in liguie I labeled motor drive ihiuils| ji], and lm« these circuits interface to the othei components. This corresponds to the element-, in the right of the dotted line in figure 2 Circuit Description Figure 3 shows the motoi drivci intuit, and figure 4 shows the Feedbacl potentio- meter and how it is connected to tin motoi I he output of the potentiometer is the position Feedback. The job of the circuit of figure .1 is to attempt to make the position feedback voltage equal to the position com- mand voltage by moving the motor until the difference between the two is zero. This is accomplished .is follows. K I is connected as a difference amplifier so licit its output is equal to approximately -l*<, where e r (position command X c ) — (position feedback X a ). This difference is led through R15 to the summing amplifier l( I si. lb, n its magnitude is one component oi the final motor voltage. Thus, the larger the dil ference, the larger the voltage, and the fastei the motor turns. In actual practice, as ibis difference approaches 0, it would not be enough to drive a 12 VDC motor. Here is where comparators IC2 and IC3 come' in. I hey are constantly looking to see if the difference voltage, a portion of which appears across R6, is larger than some small positive voltage (set by R13), or smaller than some sin. ill negative voltage (set by R14). If 22 Application Software ! You can buy software from anybody but ours works in your system. We only sell one product, Quality. Our general ledger does what everybody else's Payroll, A/R, A/P, Inventory, General Ledger, and Tax programs do and it's much shorter and easier to use. We have been in business for over nine years building a reputation for providing a quality product at nominal prices — NOT what the traffic will bear. Our software is: • Versatile — as most programs allow for multiple modes of operation. • Tutorial — as each program is self prompting and leads you through the program (most have very detailed instructions contained right in their source code). • Comprehensive — as an example our PSD program not only computes Power Spectral Densities but also includes FFT's, Inverse-transforms, Windowing, Sliding Windows, simul- taneous FFT's variable data sizes, etc. and as a last word our software is: • Readable — as all of our programs are reproduced full size for ease in reading. • Virtually Machine Independent — these programs are written in a subset of Dartmouth Basic but are not oriented for any one particular system. Just in case your Basic might not use one of our functions we have included an appendix in Volume V which gives conversion algorithms for 19 differ- ent Basic's; thats right, just look it up and make the sub- stitution for your particular version. If you would like to convert your favorite program in to Fortran or APL or any other language, the appendix in Volume II will define the statements and their parameters as used in our programs. Unfortunately this much versatility, comprehensiveness and compatibility requires extra money. But over 85% of our programs in the first five volumes will store and execute, as is, in most 8K Basic's with I6K of free user RAM. If you only have 4K Basic, because of its lack of string functions only about 60% of our programs in Volumes I thru V would be useable, however they should execute in only 8K of user RAM. Volume VI will require the user to have external data files and 30K of user RAM. Our "General Ledger Program" (Vol. VI) is a complete com- prehensive business system designed to keep ALL of your com- pany's records without the need for updating from other pro- grams and there is NO need to keep monthly tear sheets to be added together for end of the year reports as our system will provide you with year end account totals. This program generates over 30 major reports, including: 941 s, P/L's, Balance Sheets, and year end account totals for filing Federal Income Tax Schedule C's and/or I I 20's. All of our programs are available on machine readable media. For those that have specific needs, we can tailor any of our programs for you or we can write one to fit your specific needs. Future additions: Soon to be released! A "fantastic" word processing package set up for lawyers, publishers and writers; and a Medical Billing system which will also allow a patients record to be individ- ually scanned. AND there are rumors that a I 2K chess game, in Basic, will also be released. Subjects Covered in Volumes 1 - VI Vol. 1 — $24.95 Vol. Ill — $39.95 Vol. VI — $49.95 Bookkeeping Advanced Business Complete Games Billing, Inventory Business Pictures Investments Systems Vol. II — $24.95 Payroll General Ledger Taxes (requires Math/ Engineering Vol. IV — $9.95 Plotting/Statistics General Purpose Basic Statement Def. Vol. V — $9.95 Experimenter's Program AVAILABLE AT MOST COMPUTER STORES Add $1 .50 per volume handling, all domes- tic shipments sent U.P.S. except APO and P.O. Box which go parcel post. Foreign orders add $8.00/volume for air shipment and make payable in U.S. dollars only. © SCIENTIFIC RESEARCH 1712-B Farmington Court Crofton, Maryland 21114 Phone orders call (800) 638-9194 Information and Maryland residents call (800) 721-1148 accepted Figure 4: A pictorial schematic of the mechanical arrangement used for the lunar lander model. A main shaft is connected directly to the motor and has a spool of thread used to suspend the model. The direction of the motor controls whether the module rises or falls relative to the ground surface of the planet model as the shaft rotates. The main shaft has a spur gear which drives a large gear to achieve a gear reduction which maps complete physical travel of the model lander into the motion of the pot's wiper through its complete range. DRIVE FROM FIGURE 3 IC5 PIN4 FEEDBACK POTENTIOMETER one of these conditions is satisfied, the com- parator output becomes 12 V, and a portion of that output (usually around 2 V, and determined by R17 and R19) drives the motor into its operating range. The actual values of these potentiometers will depend upon the particular motor you use, and upon your actual physical configuration. IC5 is a high power operational amplifier capable of delivering up to one amp of cur- rent at up to 12 V. It is also used as a summing amplifier to bring together the voltage commands from the other circuits. Parts Substitution and Adjustment None of the parts are extremely critical, and substitutions can be made. Almost any operational amplifier that accepts +12 V can be used (eg: 741C), and it is not nec- essary to use the LM306 comparators. LM311s, for instance, will do. A substitute for the power operational amplifier can also be used, but be sure that whatever you use is provided with a good heat sink. When the entire configuration is set up, POINT B, FIG. 3 POSITION FEEDBACK, Xa POINT A, FIG.3 GEAR REDUCTION: PICK RATIO SO THAT FULL TRAVEL OF POT SHAFT TAKES PLACE WHILE LUNAR MODULE TRAVERSES ITS FULL RANGE OF ALTITUDE. be sure that the feedback pot turns less than once when the model moves through its entire range. If it turns more, increase the radius of the take up spool or change the drive ratio of the motor pot gears. The wiper should be almost midway in the pot (0 V) when the model is halfway up in distance. Apply power and short the position command line to ground. The model should position itself somewhere in the middle of its range. If it oscillates, adjust the potentio- meters to set the response range of the lander (R13, R14) and the magnitude of the threshold motor voltage (R17, R19). Ex- perimenting with different motors and gearing setups should give you an idea of what type of performance to expect. Basi- cally, you want the motor to move at a rapid rate if the difference between the X c and X a is more than about 2 V, and then to slow down as X c — X a approaches zero. Use a power supply to apply different position command voltages to see if the model "seeks" correctly. Don't apply more than about 6.5 V. If you do, the system will try to move the model so that the position feedback is more than 6.5 V, and this is impossible. Result: the model goes crazy. Once all of the above is working, you're ready to connect it to an integrating com- puter. The two choices here are a special purpose analog computer, or a general pur- pose digital computer with a digital to analog output board. A discussion of what is involved in using a digital computer for this purpose can be found in chapter 10 of the book An Amateur's Guide to Personal Computing (by Margot Critchfield and Thomas Dwyer, Addison-Wesley Company, Reading MA, 1977) .■ 24 Circle 1 1 on inquiry card. Photo 1 : Packaging technology at Franklin. Although it looks a little shaky it still works. A Microprocessor Course Mark E Fohl 3567 Karikal Dr Westerville OH 43081 In August 1975 Franklin University made a commitment to offer a program in micro- processors. I would like to describe what has happened since then, both in terms of Franklin's goals in offering the course and of my experience in developing and teaching the course. First of all, the character of Franklin may explain some of the rationale used in organizing the course. Franklin University is located in downtown Columbus OH. With some 4,000 students, it is the second largest institution of higher education within 50 miles of Columbus, second only to Ohio State. Sixty percent of the students attend classes in the evening. Franklin promotes itself as "a third kind of education": broader than a technical school but more detailed than a liberal arts school. Franklin offers bachelors and associates degrees in business and engineering, and has recently been ac- credited by the North Central Association of Colleges and Secondary Schools. Franklin keeps in touch with the needs of local in- dustry and stresses practical education. I am currently a software design engineer at North Electric Company, located near Columbus. Prior to this, I worked at a gov- ernment division of RCA doing mostly design automation work. One of my projects there was coordinating the design automa- tion efforts for the design and production of a 3 chip CMOS microprocessor. While at North, I taught math part-time at a small school about 40 miles north of Columbus. I wanted to teach closer to home, so I blan- keted the schools in Columbus with a letter asking for a teaching position in math, pro- gramming or electronics. Dean Sidney Kelly of Franklin responded that there were no such positions open there, but that Franklin was considering offering a course in micro- processors. Following an afternoon interview, we both thought it was worth a try. Franklin decided that its microprocessor course would offer thorough coverage of the fundamental concepts of microprocessors along with in-depth experience on one par- ticular system. It was also decided that the course would start with the basics with respect to available prerequisites, and con- tinue with hands on experience in alaboratory environment. These goals suggested that the course occupy two trimesters, and that it actually be a 2 course sequence. Each course would have four class hours per week for 1 5 weeks, and each course would be worth three semester credits. Furthermore, the sequence would be divided equally between lecture and laboratory, with almost all lec- ture in the beginning, gradually changing to almost all lab in the end. The course pre- requisites were listed as a familiarity with digital logic and the binary number system. These prerequisites could be met with Franklin's series of electronics courses, and 26 It's like adding a room to your brain ! The System 8813 from PolyMorphic Systems is a complete, powerful problem solver in a single walnut cabinet. This machine allows you to perform complex financial, engineer- ing, and scientific models in the comfort of your office or den. The high speed video display presents your results in text, tables and graphics. The detachable typewriter-like keyboard permits relaxed program entry and operation. Convenient mini-discs store programs and data for compact filing, secure storage, and fast access. Our disc BASIC programming lan- guage is simple enough for the computer newcomer, yet powerful enough to amaze the most advanced users. The whole family can immediately use and enjoy pre- programmed applications and educational packages. Let the System 8813 become your trusted business, profession, and personal tool. The PolyMorphic Disc System is a completely assembled and tested unit with brushed aluminum front panel, walnut cover, detachable keyboard, video monitor, 16K RAM. Includes system software and fully extended BASIC on disc. System with 1 disc drive —$3250 System with 2 disc drives — 3840 System with 3 disc drives — 4430 Delivery 60 days ARO. Upgrade packages for POLY 88 owners will also be available. Prices and specifications subject to change without notice. PolyMorphic Systems (805)967-0468 460 Ward Drive, Santa Barbara, CA 931 1 1 with a course entitled "Computer Calcula- tions." The sequence would be offered not only to full-time students at Franklin, but also to anyone in the community who, for either industrial or personal reasons, wanted a solid background in microprocessors. Stu- dents would need no previous experience with microprocessors, and the sequence would be offered as an attractive alternative to a 3 day seminar. With the philosophies and preliminaries taken care of, implementation of the sequence remained. By this time it was late August, and the sequence was scheduled to begin the following January. Being the instructor, I was responsible for putting the entire package together. Two tasks presented themselves: the first was to adopt a course outline and prepare corresponding lectures, and the second was to equip the laboratory. The first task was relatively easy. The obvious strategy was to start from the abso- lute basics and work upward. Accordingly, the course would begin with a review of binary numbers and binary operations. A re- view of digital logic elements, both gates and flip flops, would be next, followed by devel- opment of a generalized arithmetic and logic unit. The arithmetic and logic unit would proceed to a generalized microprocessor unit, followed by a discussion of a particular microprocessor. Course development could not proceed until specific laboratory equip- ment was selected. One of the problems at this point was selection of a suitable textbook. No general textbooks on microprocessors were available at the time. I chose Blakeslee's Digital Design with Standard MSI and LSI because a few of its chapters covered microprocessors and microcomputer system elements. In retro- spect, the text was not very good for the sequence because of its constant emphasis on hardware design considerations. While preparing the lectures, I began the process of acquiring laboratory equipment. At the time, the two manufacturers who seemed to be far ahead of the pack were Intel and Motorola. I thought that these two would be in the best position to donate equipment, considering their stable positions in the marketplace and their competitiveness. Accordingly, I contacted local representa- tives from both Intel and Motorola. I asked each for any help they could provide, and I reminded each that I was talking to the other. The Intel representative stated flatly that there was nothing he could do personally, but he advised me of a university donation program. I wrote to Intel in California requesting more information and an applica- tion form. The material came shortly there- after, and it turned out that each application was good for up to four kits, each containing an 8080 chip, 256 words of programmable memory, 1 K of blank erasable read only memory, and four. 8212 data latch chips. I made a copy of the application and gave it to another instructor at Franklin. We sent in our applications sometime in September; in mid-November, we received eight kits in the mail. Each kit contained the chips plus one programmer reference card. The Motorola representative said he didn't know exactly what to do, but he was sure there was something. After much corre- spondence (among him, me, Austin and Phoenix), he said Motorola would provide five Microcomputer Evaluation Kits, without read only memories, if the University would purchase four kits. Each of these kits con- tained an M6800, 128 words of program- mable memory, two PIAs, one ACIA, a printed circuit board, 1 K of read only mem- ory containing the MIKBUG debugging pro- gram, assembly instructions, a reference manual, and an applications manual. This offer came in early December. It appeared that the cash values of Intel's and Motorola's donations were about equal. Intel's equipment was already in, and I had to decide how to proceed. Whereas Intel's donation represented more raw computing power, Motorola's contribution was a better package, which included a tested system design, software and a Teletype interface. Considering that I would have to do the system design for the Intel package, and con- sidering that I was up to my ears already, I opted for the Motorola deal. The time came now to spend some money. Class was scheduled to start in about four weeks, but we wouldn't be using the lab equipment until about the seventh or eighth week. The dean was reluctant at first to spend any money, but at this point there was no alternative. Besides, the tuition from the students already enrolled in the course was enough to cover both my salary and the lab equipment. The dean gave his blessing, and we proceeded from there. I contacted the Motorola representative and informed him of our decision; then I called the local distributor and ordered the equipment. I expected the equipment to be ready in about two to three weeks, about the same time as the beginning of the winter trimester. The equipment I ordered from the distributor included all the discrete circuitry specified in the assembly instructions. There were still two glaring omissions from the microcomputer system: the power supply and the IO device. In addition, there was the Continued on page 90 28 Whether managing accounts at the local general store or aiding in the development of the latest Space War, the MiniTerm Dual MiniFloppy* System 80/2 can do the job best. Z-80 powered, and S-100 bus structured, the System 80/2 mainframe with regulated supplies for two mini floppies* is also available without cards and drives. Dealer Inquiries Invited. MiniTerm Associates, inc. Box 268, Bedford, Mass. 01730 (617) 648-1200 ■Mini Floppy is a registered trademark of Shugart Assocates. 29 Circle 1 1 1 on inquiry card. f^X- ■i ■■ /^oto 7: 7"/7e COSMAC VIP system demonstrating its graphics abilities. The kit version of this product includes the board alone; the user must supply a standard video monitor (or modified TV) and inexpensive tape recorder. COSMAC VIP, the RCA Fun Machine Joseph A Weisbecker 1220 Wayne Av Erlton, Cherry Hill NJ 08002 Most beginners think of computers only in terms of solving equations or processing data in English language format. Ask some- one with limited exposure to computers about their use in homes and they invariably mention kitchen recipe files, meal planning, income tax preparation or checkbook balancing. I don't think any of these applica- tions has really caught on so far. This view of computers as super calculators or data processors is apparently shared by many people currently involved in the home computer movement. This orientation keeps prices higher than necessary for the majority of potential hobby users who could have just as much fun with much less sophisticated machines. The COSMAC VIP was created to pro- vide a viable alternative to expensive hobby computers. It was not designed to compete 30 with existing systems, but rather to maxi- mize the number of people who can afford to own their own high technology graphics and games fun machine. In this article I'll give you some back- ground information, outline my design philosophy, and describe the COSMAC VIP system. You can then decide whether this article represents a blatant sales pitch or an honest explanation of a relatively low cost approach to small personal computers. Home or business users who want extensive data processing capability should stop read- ing now. You will be better off with one of the more expensive BASIC language oriented systems. Those who are beginners or are interested in computers for fun at absolute minimum cost should continue reading. First some background. About five years ago I developed a system called FRED. This was the prototype for a low cost micro- computer aimed at video games, hobby and school use. (FRED was described in the August 1974 issue of the IEEE Computer magazine.) COSMAC VIP evolved from this FRED system. My family and friends have been using this type of system for almost five years and we've only scratched the sur- face of applications for it. In fact, my $2000 personal BASIC system seems dull by comparison and is gathering dust. The development of the 1 card COSMAC VIP system is due primarily to a desire to share fun I've been having with as many others as possible. RCA deserves a lot of credit for supporting the development and making the system available for home and school use. Design Philosophy COSMAC VIP is based on the premise that a home computer should be low cost, easy to use and fun for the whole family. It is therefore aimed at video graphics and games applications. Even the youngest family member can have hours of fun drawing pictures on the TV screen. Let's examine some cost factors. While memory and logic costs continue to de- crease, a 2 K byte programmable memory will always be cheaper than a 16 K byte one. To many designers, lower memory costs mean that they can design more memory into a system at the same price. To me it means that I can design lower cost computers using about the same amount I've always used. When the current crop of $1000 computers drops to $500, a COSMAC VIP type computer might drop to $150. The lower the cost, the more people can own their own computers. The drastic price reduction for a central processing unit caused by the development of single chip microprocessors has not been matched by equivalent cost reductions for conventional computer input and output devices. The lowest cost home computers can only be achieved if the need for special- ized IO devices is minimized. I don't think it is fair to ask the limited budget, unsophis- ticated beginner to spend several hundred dollars on a system which uses a $10 central processor but requires an additional expen- diture of $1000 for a terminal and enough memory to make it useful. The COSMAC VIP minimizes IO device cost by relying only on a video monitor, audio cassette recorder and 16 position key pad. CMOS circuits reduce power supply costs, and a minimum number of integrated circuits permit the entire computer, including keyboard, to be packaged on one inexpen- sive printed circuit board. As I sec it, four major obstacles must be overcome before everyone can own their own computers. The first obstacle involves justifying a relatively high priced piece of equipment which is often useful to only one family member. COSMAC VIP was designed for relatively low cost and includes 20 video game listings that can be immediately loaded and played by the whole family. This goes a long way toward eliminating the first obstacle. The second obstacle is the complexity of conventional computer operating and pro- gramming procedures. I can't understand how a beginner can be expected to cope with complex operating systems. COSMAC VIP programs are initiated with a single RUN switch. Any memory byte can be examined or modified using the built-in hexadecimal keyboard. Loading programs is easy. Just enter the starting address fol- lowed by the byte sequence to be stored. No extra key depressions arc required between bytes. Memory addresses and stored bytes arc displayed on the TV screen in hexadecimal format. Tapping a single key steps through memory letting the user examine stored bytes without modifying them. To load a cassette program into memory, you merely enter the starting memory address and single digit block length code via the hexadecimal keyboard and play the tape. Less than 30 seconds later, COSMAC VIP shows you the last byte loaded into memory on the TV screen and you're ready to run your program. Recording the contents of memory on a cassette is just as easy. A third obstacle in the path of home Product Description 31 A. PROVIDED WITH COSMAC VIP SOFTWARE • 20 VIDEO GAMES • LANGUAGE TEST PROGRAMS MANUALS OPTIONAL 2046 BYTE USER PROGRAMMABLE MEMORY + 5VDC POWER SUPPLY (COMPLETE) HEX KEYBOARD OPTIONAL 8-BIT PARALLEL 1-0 PORT B. ON-CARD OPTIONS 512 BYTE ROM OPERATING SYSTEM TONE CIRCUIT (TONE OUTPUT) CHEAP SPEAKER OR EARPHONE FOR TONES COSMAC MICRO- PROCESSOR COP 1802 AUDIO CASSETTE READ/WRITE INTERFACE (MIKE - EAR) O O CASSETTE RECORDER C. SUPPLIED BY USER 2048 BYTE USER PROGRAMMABLE MEMORY GRAPHIC VIDEO DISPLAY INTERFACE (VIDEO OUTPUT) ® VIDEO MONITOR Figure I: Block diagram depicting the essentials of a fully functioning COSMAC microprocessor. The system provides the user with everything needed to start programming except a video monitor and a cassette recorder. computer purchase is the ability to program the computer. Suppose you buy an expen- sive system and then discover that you either can't or don't enjoy programming it. COSMAC VIP provides enough ready to use programs to justify the price even if you never write a program. It also provides a simple interpretive user language that many have found just as easy to learn as BASIC. This new language requires much less mem- ory and is oriented toward simple graphics. The fourth obstacle preventing many potential home users from getting started is the fear of buying an expensive computer and watching it become obsolete within several months. I feel that use of state of the art integrated circuits for COSMAC VIP helps minimize this problem, as does the relatively low cost of the system. Hardware Figure 1 shows a block diagram of the COSMAC VIP system. It shows exactly what is provided in the price and what the user has to provide. What you don't get is a video monitor, inexpensive speaker, standard audio cassette recorder and expensive cabinet. What you do get is everything else needed to immediately load and run 20 video games and write and debug your own graphic, game or educational programs. This includes all the memory you need and an easy to use numerically oriented lan- guage. You also have the ability to use COSMAC machine code. All system timing is derived from a crystal clock so there are no adjustments required. A single tone can be generated by programs. This tone can be used in games or sounded when a key is pressed. The hexadecimal keyboard is a reliable touch pad type, and is fully debounced by read only memory software. The audio cassette interface was designed to allow saving programs on tape. You load a program into memory from the hexa- decimal keyboard and then record the contents on an audio cassette. You can then load the program from the audio cassette any time you want to use it again. The cassette data transfer rate is about 100 bytes per second. You must manually start and stop the cassette recorder, unless you add your own start and stop relays. The relia- bility of any audio cassette data system may not be suitable for commercial work. Audio cassettes are however the best means of saving programs available for the hobby computer user working on a limited budget. With proper care in use they have proven themselves to be quite adequate. In the COSMAC VIP tape system, each byte on Continued on page 94 32 I [llr ii;<*Wi[r to have i, i r\ ORDER FORM KIT ASSE MBLE D I I 4KROM [ J 8KSC-Z [ J 68KSC I I 8KSC NAME. [Write in each box the quantity of each part required] KIT ASSE MBLE D KIT AS SEMB LED I | WWC 1 ! 68EXT-L | | I I 88 EXT I , ^] 68WWC | | I I 68EXT-S [ I | | BBUC I I ASSEMBLY AND OPERATING MANUAL $4.00 PLEASE PRINT OR TYPE ADDRESS. CITY . STATE . .ZIP. SEND CHECK • MONEY ORDER • COD'S ACCEPTED • CREDIT CARDS BBS i mThTTT mTi i i i i SEALS ELECTRONICS, INC P.O. BOX 11651 KNOXVILLE, TN 37919 MOST ORDERS SHIPPED WITHIN 1 WORKING DAYS I I 1 I I I I I I •tag ► [_ JJ'. ...all it takes is a c»3& MORY k^Sfrrrrf acres, v.-ti l\. eiira'EVkvirW'tVTSi > • ti- [Static Memory Card for SWTPC 6800] • 8192 Words of Static Memory • Access Time: 500 nsec (250 nsec on request) • Memory Chip 91 L02 APC or 2102AL-4 • Battery Standby • Address Selected 8 ea. SPST Dip Switch • Low Power • All Lines Buffered • All IC's with Sockets • Solder Mask on both sides of PC Board Memory Card from SEALS. Kit Price $269.00 Assembled Price $369.00 OTHER SEALS ELECTRONICS PARTS AVAILABLE Item No, Description Kit Price Assembled Price 4KROM. 4K Read Only Memory Card $119.00 $179.00 8KSC-Z 8K Static Memory Card 250 nsec 295.00 395.00 8KSC 8K Static Memory Card 500 nsec 269.00 369.00 88 WWC Wire Wrap Card 37.50 47.50 88 EXT 88 Extender Card 29.00 38.00 68 EXT-S Extender Card (Small) 19.00 25.00 68EXT-L Extender Card (Largt.' I 29.00 39.00 68 WWC Wire Wrap Car 35.00 45.00 BBUC Battery Back-Up Card 55.00 68.00 4K BASIC 4KROM with 14 EProms containing Seals Basic 8080 and the Seals 4K8080 Basic instruction manual (integer math only availal this time). Phone for more information. List Price $358.00. TRODUTORY PRICE OFFER ELECTRONICS.INC. ORDER DELIVERY: FROM STOCK TO 10 DAYS TELEX NO. 55-7444 TELEPHONE NO. 615/693-8655 Circle 1 1 2 on inquiry card. Our American Economic System isngoodabad. We asked thousands of your fellow citizens this question. You should know how your answer compares with theirs. Not too surprising, most people have gripes. Inflation. Unemployment. Taxes. These are among the concerns that topped the list. Yet, if you checked "good," you join the great majority of Americans (about 80%) who believe that fundamentally the American Economic System— with the individual freedom and high standard of living that have accompanied it — is the best in the world. The question is: how do we overcome the bad without destroying the good? Obviously, the more we all know about our system and how it works, the better we can decide what to preserve, what to change. That's why we are offering a booklet that explains the American Economic System. It is easy to read, interesting — and free. Mail the coupon for your copy today. Every American ought to know what it says. The American Economic System. It's one of your basic freedoms. (check one) Booklets, P.O. Box 1887, New York, NT. 10001 Please send me a free copy of the booklet about our economic system. I would also like a copy of the survey highlights. Name Company . Address City -Title: _State_ Note: Booklets in quantity, posters and other materials are available for use by companies, clubs, etc. For in- formation, write: The Advertising Council, 825 Third Avenue, New York, New York 10022 / VL t A public service message of The Advertising Council ' UB3 : & U.S. Department of Commerce \ # ^T- , I / presented by this Magazine. Circle 109 on inquiry card. Meet the First Family in floppies. The roots of our floppy family /T 1143M controller • LSI technology • IK buffer Dual head 50 pin LSI interface <%;?.■;,— ' ',.V:^V : ~> V 1 _ | • c ■ U 1 1 a " 1 1 1 C 1 m LSI-ll RS-232-C S-100 BUS 1149M Multipurpose Cabinet assembly. Rack or table mounted. New 143M disk drive. Two-sided recording. Single/double density. LSI Multifunction. Our host adaptors CalComp's got it all together for you. A total floppy family. Any way you want it. . .single products or the total package. In every case you get true multifunction, LSI technology, high MTBF and low MTTR reliability, compatibility and multiple interfaces. And that's not all. Field-proven double density — now one or two-sided. And our new 1143M controller along with three host adaptors. With CalComp it's all there. Choice. Flexibility. Everything you need for all or part of a total memory subsystem. Phis CalComp's worldwide service to support our family. We've delivered 50,000 drives— why not add your application requirements to our growing family. Just call us or use the coupon. We'd like to tell you more about our family. California Computer Products, Inc. 24U West La Palma Avenue Anaheim, California 92801 (714) 821-20U Please send me your free Floppy Family information kit. I am interested My needs are immediate Name Company Phone | Stale Zi^i ! Understanding APL A Note to Those Unfamiliar with APL If you are totally unfamiliar with APL, a good first step would be to consult some of the references listed at the end of this article and Mike Wimble's article. We recommend the IBM APL/1 130 Primer, available 3/77 IBM branch offices, as an excellent self-teaching tool ... CM Dr Kenneth E Iverson APL Design Group IBM 1700 Market St Philadelphia PA 19103 Note: In the APL listings which follow, the user's entries are reproduced in blue while the computer's responses are in red f° r clarity. Adin Falkoff, in his review of APL con- ferences to be published in Computer Re- views (as of this writing), indicates the "widely ranging subject matter" covered in APL papers by listing dozens of applications, covering such areas as word processing, convex geometry and database systems, to name a few. Because of this potential breadth, it is necessary, in a short paper, to focus more narrowly on some one aspect of APL. In scanning previous issues of BYTE to identify some aspect which would be rele- vant to its readers, I concluded that, how- ever diverse their interests, this audience held one thing in common: a penchant for experimentation and exploration, for play- ing around with ideas and things. I have therefore chosen to emphasize these aspects of APL: the use of experimentation on an APL computer in learning the language it- self, and the exploration of other topics both with and without the aid of a computer. True experimentation must be carried out on a real physical device. Readers who have the use of APL computers or terminals may find them useful for verification of the questions posed later in the article. For other readers we will try to approximate this experience by showing certain experiments together with the results they produce. The reader may then study the results of these experiments in the same way he or she would study the results of his or her own experiments on a real computer. However, unlike the experimenter at a real APL computer, the reader cannot then decide what experiment to try next in order to settle the questions raised in his or her mind by the last experiment, but can only use the experiments next presented by the author. Although each experiment may have been chosen to answer questions raised by its predecessors, it may miss many of the questions raised in the minds of particular readers. However, this difficulty can also be overcome to a large degree by the use of "thought experiments," discussed later in this article. To fully appreciate and enjoy the experi- mental approach used here, one should make the most of each experiment by not reading any result until every clue has been used to puzzle out what the result should be. For example, one would try to reason out and state the definition of the function \ from the following experiments: 3i"5 UT7 5T3 "5 T3 before going on to read that "the symbol \ denotes the maximum function which yields the value of the larger of its arguments." Remember, of course, that APL statements (shown in red here) start at the left margin, while user entries are indented. Similarly, try to guess the result of the following experiment: 8 1 2 L 8 before reading it, since the relation of the symbols \ and L alone suggests that L de- notes the minimum function. One final comment on the reading of this paper: although it is clear that this magazine enjoys the patronage of many young readers, I have, in the interests of clarity and precision, chosen to use words which may be unfamiliar to some readers. If you happen to fall into this class, then this is as good a time as any to acquire the important habit of reading with a good dictionary at your elbow. Systematic Experimentation Simple functions yield to experiments with randomly chosen arguments, as hap- pened in the case of the maximum function. Even there, however, the arguments were chosen with more care than might appear. For example, if only the two on the left (3(~5 and 4|~7) had been given, one might 36 Memories are made of this. w £ ste MS 'Jm . m m m w m m m m m m m m mimim ki mil iu tnrti. in m\ m\ m m\ m m\ m m m\ w *\ «\ «\ fcv Tli 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ii 1 1 1 1 1 1 1 ■A m m\ m\ M m m m i \ \ \ 32K. One Card. One low price. Only from the Digital Group. Now, on only one fully static card, the Digital Group has squeezed in a whopping 32K of memory. Which, with a little quick addition, means a full 64K architecture now requires only 2 boards instead of 8. That's a 4-to-l space reduction ...and leaves one extra memory slot on the Digital Group's standard motherboard still available for future products. All this and one low price, too. It just may be the best news of all. Our full static, assembled and tested 32K memory board is only $995. Now that's worth remembering. It's substantially less than our equivalent as- sembled 8K board prices. (Please note: We're initially offer- ing this 32K board assembled only, but kit versions will soon be available, too — at even lower prices.) Here's what you get. Specifications: • 32K on single card • Speed — 450ns. All of our current CPUs will operate at full-rated speed. • Decoding — Lower or upper 32K bank • Power — +5V only (a 4A • Card size — 12" x 5" (excluding connector fingers) Features: • May be intermixed on Digital Group systems with our 8K memory cards Circle 114 • All data and address lines are buffered • Fully static memories — EMM 4801 (450ns) or equiva- lent Price: 32K board complete, assembled and tested $995.00 For all the memorable details, just fill out the coupon below. (Then all you have to remember is to mail it in.) mailing fto(JgfiM §\mm> ) P.O. Box 6528 Denver, Colorado 80206 □ I promise to mail this in Name (303) 777-7133 , so add me to your list! Address rity/Statp/Zip I] Remember me? I'm already on your mailing list, but I need the memory spec sheet desperately. on inquiry card. have concluded that the result of the func- tion was simply the value of its right argument, but the third case (5T3) ruled out this possibility. Experimentation with a systematic set of arguments usually gives a clearer picture of the function. For example, we might use a fixed left argument and a set of successive integers for the right argument, as in 3pl and 3T2, and so on. This can be clone most conveniently by giving a list of arguments as follows: 1 ' ! ? 1 J 5 6 7 3 6 9 12 15 19 21 3*1 2 3 4 5 6 7 4 5 6 7 8 9 10 3 r 1 2 3 ii 5 6 7 3 3 3 4 5 6 7 3^1234567 1110 3*123 4567 The behavior of the two new functions (> and #=) are probably clear from the last two experiments. However, the experiment: 12 3 | 1 2 3 12 1 might leave one in doubt, wishing to see cases with different left arguments such as 4, 5, etc. In general, one might wish to see a whole table of values for a systematic set of left arguments. This will be explored in the section on tables. Names It is clearly convenient to give a name to any number or list or table of numbers that is used repeatedly. For example, wc could give the name S to the list 1 2 3 4 5 6 7 as follows: S«-l 2 3 M 5 6 7 We could then write the preceding experi- ments more simply as 3xS and 3+S and 3[5, etc. Thus: it is clear that the multiplication applies to the left argument 4 together with each element of the right argument. In the experiments: s+s 2 4 6 8 10 12 14 S*S 1 4 9 16 25 36 49 it is clear that the functions apply to each of the corresponding pairs of elements of the left and right arguments. In order to make an addition table for the integers from 1 to 7, it would be necessary to add each element of the left argument to every clement of the right argument. This will be indicated by placing the symbols for null (°) and dot (.) before the plus sign as follows: i) 5 6 7 8 9 10 8 9 9 10 10 11 11 12 10 11 12 13 11 12 13 14 Tables for times (x), maximum ([), and less than (<) can be produced similarly: 4 6 10 1? 14 6 9 1? 15 IS 21 8 12 16 20 24 28 10 15 20 25 30 3 5 12 18 24 30 36 42 . : 28 3 5 4 2 4 9 2 3 4 5 6 7 2 3 4 5 6 7 5 6 5 5 5 6 7 6 6 6 6 6 6 7 1111 111 11 1 The patterns of numbers (such as the diagonals of twos, threes, etc, in the addition table, and the L-shaped patterns in the maximum table) are often surprising even if one is already familiar with the particular function, and it is entertaining to predict patterns before actually producing the table. Tables are also useful in determining the definition of an unknown function. To illustrate this we will return to the function I for which we have already seen the case: 3 6 9 1 2 : 2«S 2 4 8 1 5 i: >.-■ . ■ 3«i' 3 9 2 7 81 2 4 3 729 2 1 S 7 S»2 1 4 9 16 25 31 S'-i 1 8 27 64 125 216 343 This use of names corresponds to the notion of variables in algebra. Tables In the experiment: 4xS 4 8 12 16 20 24 28 3|123456 12 12 1 The following table should suffice to iden- tify the function for most readers: So. [s 1 2 1 2 2 2 3 12 3 4 Some Tools The functions introduced by the fol- lowing experiments are not only interesting 38 LIME BUFFEF ^6° ^^3 2 12 )2 J2 52 32 lip 3 134 134 13S 13< 136 137 140 SCELBI does it again! Here, for the first time, are all the tools you need to get the most out of your '8080'. About the only thing missing is the '8080' itself. Just look at what's in this total package . . . '8080' Octal Code Card and/or '8080' Hexadecimal Code Card, instant slide rule aids for programming or debugging '8080' software. Contains all standard mnemonics, with corresponding codes for either octal or hexadecimal modes. Easy-reading instructions are color coded to indicate which flags are affected during instruction execution. Front of card features quick, logical reference formats, while back displays ASCII code chart for all 128 characters, plus '8080' status words and register pair codes. The '8080' Programmer's Pocket Guide is a compact 3 x AVz" ever-ready, instant reference for either Code Card, that explains the instruction set in detail, giving both octal and hexadecimal codes. SPECIAL MONEY SAVING INTRODUCTORY OFFER! Each of these "must" programming tools sell individually for only $2.95. If you order today, you can own any two for only $5.50 ... or all three for only $7.95! You need these low cost, highly productive tools. So, order today, and save, Save, SAVE! Clip this handy mail order coupon and mail it today! Scelbi Computer Consulting, Inc. P.O. Box 133 B PP STN Milford, CT 06460 Please rush items checked below (Write quantities of each in Q_) ) f~J Octal Code Card(s) Qj Hexademical Code Card(s) [J The '8080' Programmer's Pocket Gulde(s) □ I enclose $2.95 for Item indicated above. □ I enclose $5.50 for 2 Items indicated above. □ I enclose $7.95 for 3 Items indicated above. LIMIT: 3 items per customer for this money-saving Introductory Offer. Address, City .State . -Zip. HuAG .AG ) VAL 4T FL- IT R 30 2 065 002 JNZ MRRED • r>M T T / * « — IF NOT, SET PNTR PASS TO CON Circle 1 1 5 on inquiry card. in themselves, but prove very useful in further experiments: 17 17 210 + /3 2 7 5 3+2+7t5 x/3 2 7 5 r/3 2 7 5 7> ( 1 1 ) ' "1 "2 "3 1 "1 "2 2 1 "1 3 2 10 * As a challenge to rea- ders, we will print the an- swer to this thought ex- periment next month to- gether with a complete explanation of how the expression is evaluated. 1 2 3 1 5o3 3 3 3 3 3 Mp2 2 2 2 2 12 3 "10 12 "2 10 1 "3 "2 "1 10 10/15 2 2 6 6 2 2 6 r/r 12 3 These functions can be used in many interesting ways to bring out the properties of other functions. For example, the relation between addition and multiplication and the relation between multiplication and power can be brought out by considering the following expressions for various values of N and/W: tl-'l iV-5 M-3 t/«p« 10 t/»p» M*N 10 «»« «/»pM 32 x/ffpM M*» MtH Thought Experiments Thus far we have considered only experi- ments performed with the aid of a computer or, what amounts to the same thing, with the aid of printed results prepared in ad- vance by a computer. However, if the rules governing the notation are simple and uniform (as they are in APL), then one can perform interesting and revealing thought experiments by simply applying the rules. For example, the following expressions can be seen to be equivalent by performing thought experiments for various chosen values of N: ( (+/i/n + (+/iAO M2 (+/(( iff)+4>iff )M2 C+/((A'pU+l)))*2 (ffx(ff + i ));2 In particular, the last expression is a neat way of evaluating the first. For example, if N is 100, then +/ \N is the sum of the first 100 integers, and is equal to (100x101)* 2, or 5050. We will conclude with two thought experiments which use only functions al- ready treated. The first: (2=+/8)0 = (iAO°. I \N)/iN * has a result which, when obtained for any argument N equal to 7 or more, should be recognized by any reader. The second concerns comparisons of two tables M and T. The expression M¥=T yields a table of the same size containing ones and zeros, with ones only where M and T disagree. Therefore +/M^T gives counts of the disagreements in each row, and +/+//W=7 t 7" gives a single total count. Hence the latter expression yields zero only if M and T are identical. The expression +/+/M^= § M therefore yields zero only if M agrees with its trans- pose § M obtained by "flipping M about its diagonal to interchange the rows with the columns." Evaluate the expression + / + /M*F)/'F' [10] -*(0.01>F)/£830 [II] SETVALUE [12] Mfrr 1 1 ( I r ) L r J"F [13] Z*Z+#<|B [1U] B-CMUBJxxfl [15] B-l ( IB)[(0[F-+\ 3t2 + flxT)*3') [16] ->(0.01SF»0[F-3 , x-i-/|B)/£1530 [17] '.««*. OUT OF FUEL »***»' [18] £1530:->(V/(0=F) ,2=Z)/£1780 [19] (Z»0)/[0](3 10 p ' VERTICAL E WILL BLOW III ' ).<3 3 p [20] E~F-Z«0 [21] £830:£)»D + (PxTH (TxTxG + B DxC)»0. SltltntltC TRANSVERSEHORIZONTAL < IE) , 3 7 p' BURNS. • [22] [23] [21] [25] [26] [27] £1780: !)*2 W'D.OKF »(0.001)/£610 ENDGAME ****BANG'. ' [1] [2] [3] [■4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [11] [1] [2] [3] [»] [5] [6] SAVED TRIS TYPE TYPE [1] [2] [3] [1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [1"] [15] [16] [17] [18] [19] [20] [21] [22] [23] [21] [25] [26] [27] V CKSCALE :DS1:DS2;PL0T -►(lOOOSlfO/O »(100<1*£>)/£1 '.**«». PBSPdtfE FOR IMPACT' -*(10sltB)/£l >***•*••* **FASTEN RETAIHING STRAPS' L1-.DS1- lt(0 20 100 500 2500 <|ltl*£>)/ 1 20 100 500 2500 0S2- l+(0 20 100 500 2500 <| 1+0)/ 1 20 100 500 2500 ' SCALE :X=' ,(?£>S2) , ' ,y= • ,f£>51 P£OT~121pO P£03'[5 + llxill]i-6 F£OT[55+lll]<-llp5 P£02'[60»(llx(5[[ |B[l]ffl51)xxB[l])t( (5LL |D[2 ]«DS2 )*»i>[2 ] >>1 P£0T[6O]-2+P£Or[6O] 4> 11 11 p+' *DBi-l-DD'[P£orl r V FT STAT 'AT TIME T - • ,{lT3-T3*T) . ' SEC. STATS ARE AS FOLLOWS:' • VERTICAL TRAIIVERSE HORIZONTAL' 'DISTANCE' ,9K18 2 »£»),' METERS' 'VELOCITY' ,94(18 2 IV) ,' MTRS /SEC . ' 'FUEL... , ,(2tF),' BURN UNITS' •COMPUTED TIME TO IMPACT AT PRESENT RATE... • , ( 2»J'F«D[0]> 0.001) ,' SECONDS . ' ' )LOAD LEM 18.10 01/03/77 IS THE- "LUNAR LANDER" PROGRAM "LEM" TO ENTER A NEW SET OF SPACE AND VEHICLE CONDITIONS "FLY" TO USE THE PRESTORED SET OR TO RETRY THE SET YOU ENTERED IN " LEM" V LEM 'THIS IS A LUNAR LANDING PROGRAM' 'ENTER INITIAL ALTITUDE IN METERS...' A3*fJ 'ENTER INITIAL VERTICAL VELOCITY (DOWN IS MINUS)...' P6-P 'ENTER TRANSVERSE DISTANCE (Y)...' BH-D 'ENTER Y VELOCITY . . . ' V1-D •ENTER HORIZONTAL (X) DISTANCE. . .' 05-D 'ENTER X VELOCITY. . . ' P5*D •ENTER MAXIMUM BURN RATE . . . • «*□ •ENTER FUEL CAPACITY .. .• F3*D •ENTER PLANETARY FORCES (GRAVITY, Y AND X CORIOLIS COMPONENTS)' G-<-3pD,0 ,0 ,0 'enter minimum specifiable time delta...' mt~d 'enter name of your ship. . . ' About the Game This APL version of the Lunar Lander program is developed from a BASIC version called LEM, published in the November- December 1976 issue of Creative Computing magazine ("LEM" contributed by Bill Cotter). The program has been restructured The APL System This APL Lunar Lander program has been written using a significant subset of the full APL operator set (such as APLSV implemented on the IBM 5100), and is eventually intended for use on a small system APL interpreter. In general, the functions use no array operations or vector sub- scripting (indexing). However, for illustration pur- poses specific examples of array reduction and vector indexing are included. In these cases the text describes alternate procedures with examples to show why it is advantageous to keep this higher level of capability. The operator subset used is based on a proposal contained in Mark Arnold's article "What is APL?" (November 1976 BYTE, page 20), which has been expanded slightly to include the execute and vector rotation operators. t CONTROL TO COMMENCE LANDING' About the Author: Dave Keefe describes himself as an incredibly lazy pro- grammer. He is convinced that APL lets him write, test and bring up a new application in less time, less effort and with less symbols than any other major language. He wrote this article over the holi- day season in the hope that the game format would make a good vehicle for showing how APL can be applied. The game pro- gram took a couple of evenings at an APL machine 's terminal. The rest of the article took considerably longer. 44 Listing J, continued: in Action! to use vector operations within the force equations, resulting in a simplified program structure. Vector operations also allow the game to be easily expanded: For example, the user can now specify Coriolis force elements, seen as an effect on the horizontal and transverse velocities as a result of the rotation of the target planet. These forces are applied as a part of the same equation which applies the gravitational force. The Program The APL LEM program consists of a main program function (FLY), an optional initial- ization function (LEM), and a set of sub- functions which are called from within FLY. In general, the input and output operations associated with LEM have been put into separate functions. This permits experimen- tation with variations of the 10 formats with- out affecting the main processing program which calls these functions. The accom- panying write-up describes each of the state- ments in the FLY program and the general operations performed in the other functions. It is intended as a tutorial to be read in con- junction with the function listings, which continue on the next two pages. rn [21 [3] [1] [1] [2] [3] [«: [5] [6] [7] [8] [9] [1] [2] [3] [1] IS] m if] [3] tt] [5] [6] [7] m [9] [10] en] [12] V SETVALUE •T' SET 'ENTER TIME INTERVAL- ' 'B[0]' SET ' VERTICAL (2) BURN? ' 'Bill' SET ' TRANSVERSE »56789' )/ ' . 0123456789' 1/Z 1 ENDGAME D[0]~0 CKSCALE PTSTAT +(a/3»| v)/succ (8 8 d'OH-OH. . .SHUCKS. .SORRY . 1+ + / 1 2 4 xZ*-3<\V+G ;] .AAAAARCHWUOOPS. .o!?>*'. AIEEEEEEGDHELRUS' )[ ATE' 0.5) 'AT ' , (0»T3*60) , ' MIN.. ' , (2»60 | T3 ) , ' SEC. INTO THE LANDING PROCEDURE' ALL RADIO CONTACT WITH THE ',N,' WAS LOST.' AT LAST REPORT SHE WAS ' , ( ( . 01 >F ) / ' OUT OF FUEL AND ').' DESCENDING AT THE R METERS /SEC. , WITH A GROUND SPEED OF [13] [11] SUCC: OF ' , WlVlOt) METERS /SEC. ' '.»««. 1.HER LAST REPORTED POSITION WAS ' , < 2T ( + /DxD-1 tD)*0 . 5 ) , ' ET LANDING SITE . ' ' SHE IS PRESUMED TO HAVE ' . ( I 3 < I l'[ ] ) / • CRASHED '.(3* METERS FROM THE TARG ' AND ' ) .( (3|B~(+/Bx [16] -»(A/20>IB)/OX [17] ~(r./100>lB)/FAIR [18] ~(A/SO0>|B)/PC<7fl [19] 'OF COURSE YOU ARE HOPELESSLY LOST IN THE WILDERNESS.' [20] ->0 [21] FAIR: 'TOO BAD THAT YOU ARE BALANCED ON THE EDGE OF A CREVASSE. . . YOU WERE ',( 7 2 »S) , 'METERS OFF TARGET' [22] »0 [23] OK:' YOU ARE ALMOST READY TO SOLO WITH THAT PERFORMANCE'.' [21] -»0 [25] CRT:' YOU QUALIFY FOR SENIOR PILOT WITH THAT ONE'.' [26] ->0 [27] POOR-.'UNFORTUNATELY YOU ARE IN THE MIDDLE OF A RATHER DEEP RIVER WORSE YET, YOU ARE 3 METERS UPSTREAM OF A 1000 METER WATERFALL'. [28] -»0 Listing 2: An explanation of the Lunar Lander program shown in listing I. Author Keefe provides detailed comments about the program, a virtual necessity when programming or reviewing programs in APL, because of its conciseness. In the case of the subfunction CKSCALE, an alternate program is described which avoids the use of vector and array indices. FUNCTION NAME: FLY THIS FUNCTION IS THE PRINCIPAL CALCULATION AND bOGIC PROCESS IN THE LUNAR LANDER (ALIAS - THE MAIN LINE). BRANCH POINTS WITHIN FLY ARE LABELLED "l«>" WHERE ««« IS THE LINE NUMBER IN THE BASIC VERSION OF LEM WHICH IS MOST COMPARABLE TO THE PROCESSING WHICH OCCURS AT THIS STATEMENT. THE FOLLOWING SECTION PROVIDES A LINE BY LINE DESCRIPTION OF THE PROCESSING WHICH IS PERFORMED IN FLY: LINE NO | DESCRIPTION 1 THIS LINE SHOWS HOW A SINGLE APL STATEMENT CAN BE USED TC SPECIFY MULTIPLE VARIABLES FOR BOTH VECTORS AND SCALARS. THIS STATEMENT SETS ALL OF THE VARIABLES NAMED TO ZERO. SB, Z, AND B ARE 3 ELEMENT VECTORS: T3 , ST, AND T ARE SCALARS. 2 E IS A VECTOR WHICH SHOWS THE NUMBER OF BURNS LEFT FOR A DAMAGED ENGINE. IF ANY ELEMENT OF E EVER REACHES ZERO THE ENGINE WILL EXPLODE. 3 F IS THE REMAINING FUEL. IT IS INITIALIZED TO THE VALUE INPUT IN THE LEM ROUTINE. TRANSVERSE AND HORIZONTAL VELOCITIES BEING APPLIED TO THE LANDER. £640 - THE START OF THE MAIN PROCESSING LOOP. TF IS THE CALCULATED TIME UNTIL IMPACT ASSUMING THE VERTICAL ENGINE IS SHUT DOWN. THIS IS SIMPLY A SOLUTION FOR THE POSITIVE REAL ROOT OF THE QUADRATIC EQUATION [ = 0+ ( VxTFl t ( . 5»<7 )xTF*2 ] . THE CKSCALE FUNCTION PRINTS THE GRID SHOWING LEM tOCATION VERSUS THE TARGET AS THE LEM APPROACHES TOUCHDOWN. THE PTSTAT FUNCTION PRINTS THE CURRENT FLIGHT STATISTICS. AND 10 PROVIDE A SHORTCUT FOR THE CASE WHERE THE LEM HAS RUN OUT OF FUEL. STATEMENT 9 FORCES THE TIME TO THE FULL TIME-TO-IMPACT AND 10 THEN BRANCHES DIRECTLY TO THE MAIN CALCULATION SEGMENT. THESE STATEMENTS COULD HAVE BEEN COMBINED INTO A SINGLE COMPOUND STATEMENT. FOR EXAMPLE, ->lFT,OoTF)/'F')/LQ30 HOWEVER THE CATENATION FT,0pT->-... IS ARTIFICIAL AND NOT CONSIDERED GOOD FORM IN APL. u D IS THE DISTANCE VECTOR CONTAINING THE ALTITUDE, TRANSVERSE AND HORIZONTAL DISTANCE FROM THE TARGET LANDING AREA. NOTE BOW CATENATION IS USED TO FORM THE VECTOR FROM THE THREE SCALARS WHICH WERE ENTERED IN LEM . 5 V IS THE VELOCITY VECTOR MADE UP OF THE VERTICAL . 11 THE SETVALUE FUNCTION READS IN NEW VALUES FOR THE TIME INTERVAL AND BURN RATE (T AND B). 12 THE RESULTANT VALUE OF T WILL BE EQUAL OR GREATER THAN THE MINIMUM ALLOWED TIME (MT) AND NO GREATER THAN THE NEAREST WHOLE SECOND GREATER THAN THE ZERO-BURN TIME TO IMPACT !TF). 45 Listing 2, continued: 13 A REAL EXAMPLE OP THE POWER OF APL. SOTS HOW THE RESULTS OF THE LOGICAL OPERATION M<\B (MAXIMUM BURS RATE LESS THAU THE ABSOLUTE VALUE OF THE BURN VECTOR ELEMENTS) ARE USED TO INCREMENT THE Z VECTOR WHICH INDICATES ENGINE DAMAGE. IF ANY ONE OF THE BURN ELEMENTS EXCEEDS M, THE CORRESPONDING ELEMENT IN Z IS INCREMENTED. 14 THE RESULTANT B IS LIMITED TO THE MAXIMUM BURN RATE. THE OPERATION xxfl REPLACES THE SIGN ON EACH ELEMENT OF B WHICH WAS REMOVED BY THE ABSOLUTE VALUE OR MAGNITUDE OPERATION. 15 THE BURN VALUES (B) ARE LIMITED BI THE AVAILABLE FUEL AND FUEL PRIORITY GOES TO THE VERTICAL ENGINE BEFORE TRANSVERSE , BEFORE HORIZONTAL. NOTE THE USE OF THE PLUS SCAN OPERATOR (+\). IF gal 2 3, THEN +\"3t2+B WOULD BE + \0 1 2 OR 1 3 . IF PLUS SCAN IS NOT IMPLEMENTED LINE 15 MUST BE EXPANDED TO 3 LINES WITH SEPARATE FUEL TESTS FOR EACH ELEMENT OF B . 16 THE NEW FUEL VALUE IS CALCULATED AND THEN TESTED, A BRANCH TO 11530 OCCURS IF MORE THAN 9 THOUSANDTHS OF A BURN UNIT REMAIN. 17 PRINTS THE OUT OF FUEL WARNING 18 £1530 CONTAINS A POWERFUL TEST USED TO DETERMINE IF ANY ENGINE HAS BEEN ABUSED. TWO LOGICAL VECTORS (0-E AND 2=2) ARE CATENATED AND THE RESULT IS TESTED VIA OR REDUCTION (v/). IF ANY OF THE ELEMENTS IN THE RESULTANT VECTOR IS SET TO 1 , THE BRANCH TO £1780 OCCURS (.BANC). 19 SHOWS APL ARRAY CAPABILITY AS THE LOGICAL VECTOR Z»0 IS USED TO SELECT ROWS OF A CHARACTER ARRAY WHICH CONTAINS A MESSAGE. IF THE MICRO-APL SYSTEM DOESN'T SUPPORT ARRAY OPERATION, USE ONE OF THE NON-ARRAY ALTERNATIVES SHOWN BELOW. [19] (OzltZ)/' VERTICAL' ,(ENG*' ENGINE WILL BLOW IN ') , (JltE) ,BN--' BURNS' [19.1] (0«1+1*Z)/' TRANSVERSE' ,ENG , (rltltE),M [19.2] (0» HZ) /'HORIZONTAL' ,ENG , (.v'liE ) ,BN IF VECTOR SUBSCRIPTING IS ALLOWED A CONVENIENT ALTERNATIVE IS: [19] BURN 'VERTICAL' [19.1] 1 BURN 'TRANSVERSE' [19.2] 2 BURN 'HORIZONTAL' WHERE BURN IS THE FUNCTION... VA BURN MSG [1] IU1/SJS, 1 ENGINE WILL BLOW IN MlIU]), 1 BURNS"! 20 LIKE LINE 13 USES THE LOGICAL VECTOR RESULT IN AN ARITHMETIC 0PERATI0N-T0 DECREMENT THE REMAINING BURN COUNT. 21 £860 - THE REAL WORK OF THE FLY FUNCTION'. THIS STATEMENT CALCULATES THE NEW DISTANCE VECTOR 22 FORMS THE NEW VELOCITY VECTOR 23 ZEROS THE BURN VECTOR IF THE FUEL IS EXHAUSTED. 2U BRANCHES BACK TO £640 IF THE LEM IS MORE THAN A MILLIMETER ABOVE THE SURFACE. LESS. WARNING MESSAGES APPEAR AT 100 METERS ALTITUDE AND AN EXPANDED WARNING APPEARS AT 10 METERS. TRY LINES 6 AND 7 IN BASIC THE HORIZONTAL AND TRANSVERSE SCALES OF THE GRID ARE AUTOMATICALLY ADJUSTED AS THE LEM GETS CLOSER TO THE TARGET. THE LEM IS SUPERIMPOSED ON THE TARGET IMAGE IF YOU FLY IT WITHIN 4 METERS. THIS FUNCTION USES VECTOR OPERATIONS ONLY EXCEPT FOR LINE 14 WHICH PRINTS THE GRID AS A CHARACTER ARRAY. LINE 14 COULD BE REPLACED WITH A LOOP TO PRINT EACH ROW OF THE GRID. THE ROTATE OPERATORS (t) CAN BE ELIMINATED BY CHANCING A COUPLE OF SIGNS IN LINE 12. THIS WHOLE ROUTINE IS MORE STRAIGHTFORWARD IF ARRAY INDEXING IS ALLOWED. EG - HERE ARE LINES 9-14 IN APLSV NOTATION AS USED IN THE IBM 5100: [9] PLOT+ll llpO [10] PLOTl ;5>6 [11] P£OT[5;>5 [12] P£Or[5-(5[[ |0[l]tBSl>« [13] PLOTl 5; 5]-P£On 5; 5]*2 [14] I iDffit |-DD'[P£0!'1V :B[l];5+(5[[ |P[2]*BS2)xx/)[2]]~l AN ALTERNATIVE ROUTINE WHICH USES A LOOP AND AVOIDS BOTH VECTOR AND ARRAY INDICES IS: [9] £i-5-(5LL|Cl*OSl>«*Bl*ltltB [10] fl~5t(5[[ IB25BB2 )xxB2»ltB [11] 7*0 [12 ]£OOP :»(/ = £) /SET [13] ~I-i'+l )/L00P1 FUNCTION NAME: PTSTAT THIS FUNCTION PRINTS OUT THE CURRENT FLIGHT STATISTICS. FUNCTION NAME: LEM THIS FUNCTION IS USED TO INPUT THE INITIAL PARAMETERS TO THE WORKSPACE. NOTE THAT MORE VARIABLES ARE REQUESTED IN THIS VERSION OF LEM THAN IN THE BASIC VERSION. THE ADDED VARIABLES LET YOU MAKE THE GAME MORE CHALLENGING BY SPECIFYING THE MINIMUM BURN TIME AND ALSO IMPOSING CORIOLIS FORCES ASSOCIATED WITH THE R0TATI0N0F THE PLANET IN ADDITION TO THE GRAVITY FORCE. FUNCTION NAME: SETVALUE THIS FUNCTION IS USED TO INPUT NEW TIME AND BURN VALUES TO THE FLY PROGRAM. SETVALUE USES THE SET FUNCTION TO READ AND CHECK EACH VALUE. SET IN TURN USES THE FIX FUNCTION TO TRANSLATE THE CHARACTER INPUT INTO A VALID NUMERIC VALUE. IF NO VALUE IS ENTERED IN RESPONSE TO THE REQUEST FOR INPUT, THE PREVIOUSLY ENTERED VALUE WILL BE USED. SET ALSO SCANS FOR A "*" IN THE INPUT CHARACTER STRINC. THIS CHARACTER IS USED TO SHUT DOWN THE ENGINE FOR THE DURATION OF THE FLIGHT. THE APPROPRIATE BURN VALUE WILL BE SET TO ZERO AND NO FURTHER INPUT VALUES WILL BE REOUESTED FOR THIS ENGINE. 25 THE ENDGAME FUNCTION PRINTS YOUR REPORT CARD. FUNCTION NAME: CKSCALE THIS FUNCTION DISPLAYS A GRID SHOWING THE LEM POSITION ( {SYMBOL ) RELATIVE TO THE TARGET LANDING AREA. THE GRID APPEARS AS SOON AS THE ALTITUDE IS 1000 METERS OR FUNCTION NAME: ENDGAME THIS FUNCTION PRINTS THE GOOD/BAD NEWS ONCE THE LEM HAS REACHED THE SURFACE. NOTE THAT A COMMON MESSAGE IS USED FOR ALL CRASH REPORTS WITH LOGICAL OPERATIONS USED TO CONTROL INCLUSION OF VARIOUS DISASTERS. Listing 3: A sample run of the Lunar Lander program. This is the classic version of the game In which the operator attempts to become a senior pilot by optimally landing his craft within the constraints of the program. As part of its printout, the program provides a set of two coordinate axes show- ing the position of the operator's ship at discrete time intervals. FLY AT TIME T - SEC. STATS ARE AS FOLLOWS: VERTICAL TRANVERSE DISTANCE 3000.00 2300.00 VELOCITY "100.00 "580.00 FUEL... 1500.00 BURN UNITS COMPUTED TIME TO IMPACT AT PRESENT RATE:.. ENTER TIME INTERVAL- 10 VERTICAL (Z) BURN? 1 TRANSVERSE (Y) BURN? 61 HORIZONTAL (X) BURN? "ll AT TIME T = 10 SEC. STATS ARE AS FOLLOWS: VERTICAL TRANVERSE DISTANCE 1900.00 "450.00 VELOCITY "120.00 30.00 FUEL... 770.00 BURN UNITS HORIZONTAL 2000.00 METERS S.OOMTRS/SEC. 2 6.49 SECONDS. HORIZONTAL 1500.00 METERS ~105.00MTRS/SEC. COMPUTED TIME TO IMPACT AT PRESENT RATE. ENTER TIME INTERVAL- 14.5 VERTICAL (Z) BURN? 1.2 TRANSVERSE (Y) BURN? HORIZONTAL (X) BURN? 1 SCALE:X=20 .7=4 I I I I IDI I ! II 14.91 SECONDS. 46 Listing 3, continued: AT TIME T = 2U.5 SEC. STATS ARE AS FOLLOWS: VERTICAL TRASVERSE DISTANCE _181.03 15.00 VELOCITY 117.10 30.00 FUEL... 738.10 BURS UNITS COMPUTED TIME TO IMPACT AT PRESENT RATE . . . ENTER TIME INTERVAL- 1 VERTICAL (Z) BURN? TRANSVERSE (Y) BURN? "30 HORIZONTAL U) BURN? 70 ******PREPARE FOR IMPACT SCALE:X=20 ,7=0 HORIZONTAL _B2.63 METERS 90. SOMTRS/SEC. 1 . 5 14 SECONDS . TRAN VERSE .00 VERTICAL DISTANCE 3.3 3 VELOCITY "2.10 FUEL... 518.10 BUSS UNITS COMPUTED TIME TO IMPACT AT PRESENT RATE. ESTER TIME ISTERVAL- 1 VERTICAL (Z) BURN? 1 HORIZONTAL BURN? 1 HORIZONTAL (X) BURN? - ******PREPARE FOR IMPACT ******,***FASTEN RETAINING STRAPS SCALE:X=U ,7=0 1 1 1 1 IIBI 1 1 1 1 II I IIDI'll I AT TIME T - 26.5 SEC. STATS ARE AS FOLLOWS: AT TIME T = 2 8.5 SEC. STATS ARE AS FOLLOWS: VERTICAL TRASVERSE HORIZONTAL DISTANCE .00 .00 . 6 3 METERS VELOCITY 2.10 .00 . 00MTSS/SEC FUEL... U98.60 BURS UNITS COMPUTED TIME TO IMPACT AT PRESEST RATE... .00 SECOSDS. *t**t*THE HAL-LUJAH HAS LANDED 1 .****** YOU QUALIFY FOP. SESIOR PILOT WITH THAT ONE'. Business Firmware Announced ! Includes over $25,000.00 of busi- ness programs free and that's only part of what we're giving away. We built our reputation providing quality software at affordable prices. Now we are going to do the same with Firmware. Dealer Inquiries Invited. Soon To Be Unveiled What is a Firmware System? A Firmware system is the entire package — Software and Hardware that work. Our Firmware includes a miniature micro 8080 computer; S-100 Buss, with over 65K of user RAM. No switches to set, Power-on operation, multiple I/O interfaces, printer, Video Terminal, over 600K Byte Disk, Disk Extended Basic and applications Software on diskettes complete with full documentation (includes General Ledger, Pay- roll, Word Processing, Medical A/R, A/P, Engineering, Statistics, more) plus a lease purchase plan and field service in most areas. Hard to believe! For less than $300 you could lease your very own, nothing else to purchase. Foreign packages available last of 77. Complete System (fully assembled) $8999.00* Additional 600K disks optional. Compare at $30,000 for other micros or $70,000 for mini's "Add $60 for UPS shipping and handling • No Purchase Orders — include 50% deposit with all COD orders. o SCIENTIFIC RESEARCH 1712-B Farmington Court Crofton, MD 21114 (301)721-1148 47 SYNCHRO-SOUND Enterprises Your Small Computer Department Store LtJ iI^M M*X^ ■!•]•]•] 1 1 L*U4j Hardware and Software NEKI LEARSIEGLER ADM-3A TERMINAL Compare our PRICES, PRODUCTS, QUALITY, you need in small computers, terminals, printers, monitors, keyboards, accessories. We'll meet or beat competitive prices on everything we sell! IMSAI 8080 MICROCOMPUTER • Full addressable cursor. • Character Generation— 5x7 dot matrix. • Display Format— Standard: 1920 characters, displayed in 24 lines of 80 characters per line. • Character Set— Standard: 64 ASCII characters, displayed as upper case, plus punctuation and control. • Communications Rates— 75 to 19,200 baud (switch selectable). • Computer Interfaces— EIA standard RS232C and 20mA current-loop (switch selectable). • Data Entry— New data enters on bottom line of screen; line feed causes upward scrolling of entire display with top-of- page overflow. Automatic new line switch selectable, end-of-line audible tone. ADM-3A Kit 795.00 ADM-3A Assembled . . 895.00 Lower Case Option . . . 89.00 Powerful • Easy to use • Low cost With 22 Slot Mother Board ... $61 9.95 With Z-80 CPU 849.95 OKIDATA Model 110 Line Printer • 110 CPS dot matrix Friction Feed $1099.00 Tractor Feed 1229.00 RS 232C Serial Interface. . .250.00 SPECIAL BUYS HAZELTINE Modular One Video Terminal $1639.00 SORAC IQ120 Video Terminal Kit 959.00 DEC LA180 Printer 2769.00 COMPUCOLOR8001 Color Graphics Computer 2595.00 ICOM Microfloppy Disc & Controller. . . 989.00 NORTH STAR Microfloppy Disc & Controller 599.00 OKIDATA Model 22 Printer 2095.00 OMNITEC 401 C 300 Baud Modem 300.00 2708 EPROMS 29.95 OAE Papertape Reader 69.95 SOL 20 In Stock For Immediate Delivery NEKI COMMERCIAL QUALITY KEYBOARD The Model SS-1 Communications Terminal is a non-contact capacitive keyboard with a guaranteed life of over 100,000,000 opera- tions. • MOS/LSI Encoder with high reliability low power consumption. • Key Roll Over which eliminates operator error and increases thruput. • Hysteresis for tease proof operation. • Solid State performance at mechanical switch prices. • Tactile Feedback at the operate point. • ASR-33 Array with four mode encoding. Keyboard Kit $99.95 Enclosure (with numeric cutout) 49.95 Numeric Pad 34.95 Complete Kit (with pad)1 79.95 Assembled Unit (with pad) 229.95 DECwriterll SOFTWARE Attention ALTAIR DISK Owners Now available— an Accounts Receivable System for the small user. This system is ex- pressly designed to be run on an 8080 based microcomputer using an Altair floppy disk with Altair Basic, Video Terminal and Printer. Many features normally found only on large scale com- puters are included. Provided are such functions as: Adding New Customer Accounts, Deleting Dormant Accounts. Transaction Processing, and Report Generation. The Monthly Statements include both current and aged balances. Other reports generated are the Aged-Accounts Receivable and Delinquency Notices. This easily usable system requires very little operator training. All communication is in an in- teractive mode with the program constantly prompting the appropriate responses. Operator errors are easily corrected and accidental data base deletions are prevented by requiring addi- tional confirmation. This Accounts Receivable System, although supplied ready for use, may readily be modified to include special installation-dependent func- tions. All major programs are written in high level language making program additions and alterations a simple task. This program module is designed to serve as the basis for a complete accounting package. Provisions are included for linking Billing Inventory Control and General Ledger modules which will be available in the near future. We carry a full line of the following: TDL, OAE, Processor Tech., Hayden, Tarbell, IMSAI, Cromemco, Compucolor, Icom, Lear Siegler, Okidata, DEC, Javelin, Teletype, North Star, Heuristics, Peripheral Vision, TRW. Same day delivery and shipping on most items. Full, modern repair facilities on premises for com- plete servicing of everything we sell. SYNCHRO-SOUND Enterprises The Computer People 193-25 Jamaica Avenue, Jamaica, New York 11423 • 212/468-7067 Hours 9-4 daily Visit our new showroom . and Saturday working units on display Dept. b BankAmericard • Master Charge • 132 column printing • 30 CPS • Full keyboard • Tractor Feed $1769.95 I i Please send me furth er informat on on (list items) Price List □ City State Zip Circle 118 on inquiry card. An API- Interpreter for Microcomputers: Parti Michael Wimble 6026 Underwood Av SW Cedar Rapids IA 52404 With this article we begin a three part series by Mike Wimble about an APL in- terpreter for small systems. The articles consist of a series of flowcharts from which the enterprising reader can con- struct his or her own code. Considering the complexities of APL, it is interesting to note that Mike's own program for this interpreter (written in PL/I) is less than 1600 statements long! The format of this article will be slightly different from most of the other articles that have appeared in BYTE. Because this series of articles is pre- dominantly pictorial, we have integrated the main text into the figure captions. As a result, some of the captions dis- cuss topics related to other figures. In these cases we have added cross references for clarity's sake. We hope this format will eliminate unnecessary page turning. Table of Contents The following table of contents describes the material covered in this month's article as well as the two upcoming articles (to be published in the September and October issues of BYTE). Part 1 : The Scanner Statement scanner tables Results of a hypothetical program containing a user-defined function Statement scanner overall flowchart Scanner subroutine flowcharts Part 2: The Statement Interpreter — Expression Evaluation \ Interpretation of variables I September 1977 Interpretation of constants i BYTE Interpreter flowcharts ) Part 3: The Statement Interpreter — Mathematical Processing ) Recognition of operators Interpretation of operators } October 1977 \ BYTE Interpreter flowcharts ) 50 The Great APL Interpreter Contest As an incentive to those experimenters who would like to try writing their own APL interpreters based on this series of articles, BYTE announces the Great APL Interpreter Contest. We will award prizes for APL inter- preters (suitable for publication with royal- ties to authors) based on Mike's flowcharts (or independent of them if you prefer). Contestants are free to write their inter- preters for any microprocessor they choose. Entries will, however, be judged on their suitability for use on small systems with a minimum of 16 K bytes of memory, as well as on programming elegance and efficient use of space. All of these factors should therefore be kept in mind. Entries should be addressed to BYTE, attn: The Great APL Interpreter Contest, 70 Main St, Peterborough NH 03458, and must be postmarked no later than midnight, February 28 1978. Entries must be in the form of a publication quality manuscript which describes the implementation of the interpreter and which includes a listing of source code and object code. Contestants should also submit machine readable source and object code in the form of paper tape or cassette. The winners (if any) will receive $1000 plus normal author payments, should the entry be chosen for publication in book form or as an article in BYTE. We reserve the right to choose more than one winner under the same terms. judging will be done by the editors of this magazine. Those seriously interested in entering this contest should call Carl Helmers or Chris Morgan at BYTE, (603)924-7217. May the midnight oil burn prosperously for all. Introduction Under the sponsorship of the National Science Foundation, Bernard J Robinet produced an NTIS report entitled, "Archi- tectural Design of a Directly-Executed APL Processor". Although at a detail level the paper is fraught with logical and typo- graphical errors, it presents an excellent and complete plan for implementing an APL interpreter via software, firmware or hardware. This article is a description of just such an interpeter. The program was originally written in the PL/I language but is presently being enhanced and translated for execution on a TMS 9900 micropro- cessor. No attempt will be made herein to describe APL, and the information is aimed at the experienced programmer who can use flowcharts and diagrams as a starting point. Emphasis is placed on architecture, rather than on actual code so that, while the more experienced programmer should have enough information to program his or her own interpreter, even the neophyte can still learn many of the techniques of interpreter design. The APL interpreter is organized as two separate subprograms which are executed sequentially. The first subprogram is the scanner, the second is the intepreter. The scanner accepts all program input, trans- lating the program into a series of syllables and pointers, until the end of an immediate mode statement is found. The interpreter gains control to execute an immediate mode statement, using the information built by the scanner, and returns control to the scanner upon completion. We begin our discussion by looking at some of the tables common to both subprograms. After this discussion one should have a general under- standing of the working of the interpreter and we can begin a detailed description of the actual program. Table I : A sample APL statement, plus a breakdown of the statement into "tokens. " This program inputs a list of numbers and prints their average. The token is the basic semantic element of a program, just as a program I consists of one or more statements, a statement consists of one or more tokens. (In the literature, the term token is sometimes equated with "sym- bol" or "atom. " This can lead to some confusion because the term "atom" has a somewhat different meaning when used by LISP programmers.) Even though tokens can be further broken down into elements called characters, the interpreter spends very little time dealing with individual characters j compared with the time spent in manipulating tokens. 1 Characters Token D quad 1 -*- left arrow \ ( left parenthesis APL Statement \ + plus operator 1 / reduction operator [}*■(+/ XX) *p,XX+U ( XX variable name \ ) right parenthesis J T divide operator 1 P rho operator 1 3 ravel operator 1 XX variable name I -<- left arrow \ □ quad 51 Table 2: Set of noun-adjective combinations (syllables) used by the inter- preter. One of the main functions of the scanner is to extract the tokens from each statement, left to right, and to store them in a table as a noun-adjective combination. Surprisingly few nouns (only nine) are needed to construct a powerful interpreter. The table of noun-adjective pairs built by the scanner is labelled SP, and each entry consists of two elements: C is the noun and P is the associated adjective. Three of the adjectives are labelled "variable num- ber. " This number is actually a pointer to the symbol table VTAB which is indexed by VAR. Each entry in VTAB has three elements: VI, V2 and V3. VI is the character representation of the symbol. V2 is a pointer to another table, FTAB (see table 5), but V2 is used to distinguish between global variables and formal parameters of the same name. V3 is also a pointer to another table, D (see tables 4a and 4b), and Is set by the statement Inter- preter as memory is assigned to hold a value for the variable. V3, then, is either the address, or a pointer to the address, of the value of the variable. NOUN NUMBER 1 NOUN FORMAL RESULT ASSOCIATED ADJECTIVE VARIABLE NUMBER 2 FORMAL ARGUMENT VARIABLE NUMBER 3 GLOBAL VARIABLE VARIABLE NUMBER 4 MONADIC OPERATOR OPERATOR NUMBER 5 REDUCTION OPERATOR OPERATOR NUMBER 6 DYADIC OPERATOR OPERATOR NUMBER 7 SPECIAL OPERATOR CHARACTER 8 CONSTANT ADDRESS OF CONSTANT 9 STATEMENT END STATEMENT NUMBER Table 3: Representation of the tokens oftheAPLstate- ment a^{+IXX)+p,XX+-n in table SP (see table I). After a program has been stored left to right in table SP by the scanner, the interpreter will execute the statements from right to left. Obviously more information is needed for statement execution than is contained in this table. Table 4a: Format of entry in table D for a vector or TABLE SP INDEXED BY I a matrix. When a constant is encountered in a state- ment, the actual value is ENTRY C P TOKEN 1 7 11 QUAD D stored in this table, and 2 7 3 LEFT ARROW <- the appropriate adjective 3 7 6 LEFT PARENTHESIS ( in table SP points to the 4 5 1 REDUCTION BY + +/ address of the constant in 5 3 1 GLOBAL VARIABLE XX XX this table. Constants, values 6 7 7 RIGHT PARENTHESIS ) assigned to variables, and 7 6 4 DYADIC OPERATOR i intermediate results of computations are stored in 8 4 7 MONADIC OPERATOR p p this table. Each entry in 9 4 8 MONADIC OPERATOR , 3 the table is a variable 10 3 1 GLOBAL VARIABLE XX XX length string consisting of 11 7 3 LEFT ARROW +• several elements. 12 7 11 QUAD E3 TABLE D INDEXED BY DA ELEMENT CONTENTS 1 TOTAL LENGTH OF ENTRY 2 NUMBER OF DIMENSIONS FOR ENTRY (RANK OF ENTRY OR pp ENTRY) 3 LENGTH OF DIMENSION 1 (SIZE OF FIRST DIMENSION OR pENTBILll) 4 LENGTH OF DIMENSION 2 (SIZE OF SECOND DIMENSION OR pENTRK2l) N+2 LENGTH OF DIMENSION N (SIZE OF LAST DIMENSION OF pENTRYlppENTRYl) N+3 ) f VALUE OF ELEMENTS STORED I IN ROW MAJOR ORDER N+2+x/pENTRY ) 52 TABLE D INDEXED BY DA Table 4b: Format of entry in table D for a scalar. ELEMENT 1 2 3 CONTENTS CONSTANT 3 CONSTANT VALUE OF SCALAR (LENGTH OF ENTRY) {NUMBER OF DIMENSIONS FOR ENTRY) Table 5: Format of an entry in the FTAB table. This table is used to store function headers when they are encountered. Each entry has seven elements, as shown. The remaining table that deals with function definitions is table VFUNC (table 6). There are also several tables of constants, but they are used primarily to simplify the scanner, and are discussed as necessary in the section entitled Statement Scanner later in the article. TABLE FTAB INDEXED BY F ELEMENT n F2 F3 F>4 F5 F6 Fl USE CHARACTER REPRESENTATION OF FUNCTION NAME "ARITY" OF FUNCTION. EQUALS FOR NILADIC, 1 FOR MONADIC, AND 2 FOR DYADIC. "EXPLICIT RESULT" FLAG. BINARY FOR NO EXPLICIT RESULT, BINARY 1 FOR EXPLICIT RESULT. CHARACTER REPRESENTATION OF VARIABLE NAME OF EXPLICIT RESULT. CHARACTER REPRESENTATION OF VARIABLE NAME OF LEFT ARGUMENT FOR DYADIC FUNCTION. CHARACTER REPRESENTATION OF VARIABLE NAME OF RIGHT ARGUMENT FOR DYADIC FUNCTION, OR ARGUMENT FOR MONADIC FUNCTION. POINTER INTO TABLE VFUNC. Note: "ARITY" is a mathematical term denoting the number of arguments in a function. ENTRY VALUE 1 NUMBER OF STATEMENTS IN FUNCTION 1. 2 POSITION OF RIGHTMOST SYLLABLE IN TABLE '5P' OF STATEMENT 1 IN FUNCTION 1 . 3 POSITION OF RIGHTMOST SYLLABLE IN TABLE '£P' OF STATEMENT 2 IN FUNCTION 1 . N+l POSITION OF RIGHTMOST SYLLABLE IN TABLE ' £P' OF STATEMENT N IN FUNCTION 1. N+2 NUMBER OF STATEMENTS IN FUNCTION 2. N+3 POSITION OF RIGHTMOST SYLLABLE IN TABLE '£P' OF STATEMENT 1 IN FUNCTION 2. Table 6: Organization of table VFUNC. VFUNC, indexed by VAL, holds the address pointers to the individual statements in a function. The sample pro- gram and comments in listing 7 should help to clarify the use of VFUNC. Two more tables are dis- cussed in parts 2 and 3 of this series of articles. 53 TABLE 1A TABLE IB TABLE 1C TABLE ID MOPTAB DOPTAB REDTAB CHARTAB Ml M2 Dl D2 HI R2 CI 1 + 2 1 + 52 1 + / 2 1 : 2 - 3 2 - 53 2 -1 3 2 ->- 3 x 4 3 X 54 3 */ 4 3 X- 4 i 5 4 T 55 4 f/ 5 4 * 5 * 6 5 * 56 5 */ 6 5 . 6 i 21 6 1 87 6 = / 21 6 ( 7 p 22 7 P 88 7 */ 22 7 ) 8 , 23 8 * 89 8 / 25 10 Tables 7a, 7b, 7c and 7d: 11 < 73 11 >/ 26 11 □ These tables complete the 12 < 74 12 A/ 27 12 SPACE set of A PL tokens used by 13 > 75 13 v/ 28 this A PL interpreter. The 14 > 76 14 17 29 tables are scanned by sub- 15 A 77 15 L/ 30 routine OTHERS when a 16 V 78 16 ®/ 31 token is encountered which has not already been recognized by sub- routines IDEN or NOM- BRE. Listing 1 : Results of a hypothetical program containing a user-defined function. This exercise demonstrates the interrelationships of tables 1 through 7. The program consists of a definition for a function AVG with a monadic argument Y and an explicit result X. Following the func- tion definition is an immediate mode call of the function. The scanner begins by inserting a statement end noun type in table SP, position 1, and pro- ceeds to scan the first statement. When the function header is recognized, an entry is made in table FTAB as shown and scanning continues with the second statement. Again a statement end noun is inserted into table SP, position 2, but this time it is known that this should be state- ment number 1 of the function, so the adjective has a value of 1. Positions 3 thru 14 are the noun-adjective description of the second program statement and are similar to table 3, the differences being due mainly to the fact that the variables are no longer global but rather are formal arguments and formal results. Program statement 3 produces no entry in table SP but merely signals the end of a function definition. Table SP, positions 15 thru 19, contains the noun-adjective description of the immediate statement. Note how position 19 indicates a con- stant whose value is stored in table D beginning at position 1. Also note how the element vector is stored in D and relate this to the description in table 4a. For the one entry in FTAB, element F7 points to position 1 in table VFUNC (see table 6). Here, VFUNC shows that there is only one statement in the function and that its rightmost syllable (noun-adjective pair) is at position 14 in table SP. Positions 3, 7, 12 and 18 in table SP refer to variables, and the associated adjectives point to entries in table VTAB. For variables X 54 Results of Scanning a Hypothetical Program Containing a User Defined Function PROGRAM: V X -*- AVG Y [1] X «- (+/Y) i p , y [2] V D -*- 4 PC 37~25 T/lSLff SP INDEXED BY I I ~ 20 D 1 2 3 4 5 6 7 8 9 10 11 12 13 m 15 16 17 18 19 C 9 9 1 7 7 5 2 7 6 4 4 2 7 7 9 7 7 3 6 Note: Colored arrows indicate pointer destinations TABLE VTAB INDEXED BY VAR VAR = 4 VI V2 73 1 X (l\ 2 Y 1 3 AVG TABLE FTAB INDEXED BY F F = 2 Fl F2 F3 F4 FS 1 AVG 1 Ttft/ff J TABLE VFUNC INDEXED BY VAL VAL - 3 1 1** ■ — 2 (l3) TABLE D INDEXED BY DA DA = 8 7 1 4 3 _7 2 5 and Y in VTAB, element V2 indicates that the symbols are local to function AVG, while the symbol AVG in VTAB has a V2 value of zero indicating a global variable name. V3 values are all zero at this time, and will be set when the statement interpreter executes. Having now discussed the major tables used by the interpreter and shown the general direc- tion or goal of the scanner we can now discuss the statement scanner in greater detail. The scanner is a relatively easy function to program, and with the detailed discussion and flowcharts which follow one should be able to implement a scanner for any of the popular small computers. 55 The Statement Scanner The main function of this module is to build the various tables required by the statement interpreter. There are two types of statements and two modes of scanning to be handled by this module. The first state- ment type is the function header which 1:1 ** < er ♦ i O Q Q > Q -> o a. cl a. I WW" defines the form of a function and which also causes the scanner to enter the func- tion definition mode. The second type of statement is any statement other than a function header. This type of statement can occur when the scanner is in either immediate or function definition mode. Upon startup, the scanner is in im- mediate mode. When a del character (v) is encounted in immediate mode, the scan- ner switches to function definition mode and the characters immediately following the del, on the same line, form the function header. After the function header come the statements forming the function body. When another del character is found while in func- tion definition mode, the scanner returns to r~\ o z , I , rO C\J 1 \ I 3 => 3 UJ uy _j > _ N 3 or / U_ \ o / u_u- \ O ro Q. D O o > < 3«--> F- \ CD / H / ■ CD Or n\ ViS/ \ 1 CD fc \ P / > \ U_ / o ^ 1E|- CLCfl 0>O uq.; Y — — 'CC I ▼ I + CLO_< + -\ NO <^ A BLANK V ( RETURN J Tyes J-—J + 1 Call SKIPSP Result: Global variable J is incremented until S(J) is a nonblank character. Need Hard Copy? OFT PRICES SSP-40 Contains its own micro processor (or easy connection to your RS232 serial port or TTY Current loop MP-40 Interlaces to your micro computer parallel output port for ASCII data transfer KP-40KIT Contains mechanism. PC board, all components, transformer and complete assembly instructions for parallel data transfer All of our 40 series printers use the same reliable 5x7 impact dot ma up to 40 columns per line on ordinary paper with a print speed o SEND FOR FREE LITERATURE $ 575 $ 425 $ 179 Box 22101 Salt Lake City, Utah 84122 (801) 566-0201 Circle 1 19 on inquiry card. f IDEN j SKIPSP IGNORE LEADING BLANKS Figure 3: Subroutine IDEN. This subroutine is invoked to determine if the next token is an identifier. If not, scanning resumes at block NOMBRE (see figure 4). If a variable is found as the next token, B will be true and Q will contain the character repre- sentation of the variable. ^/slJJ-X. NO B*-FALSE \^ p / < Tyes Q*— S (J ) J « J+ 1 J ' B-«— TRUE „ LOOKUP (S( J ) , DOPTAB, Z) YES (S(J), CHARTAB.Z) note: the symbol "||" INDICATES CONCATENATION. Figure 6: Subroutine OTHERS. This subroutine is used to identify those tokens (listed in tables 7a, 7b, 7c and 7d) not already identified by sub- routines IDEN or NOMBRE. ■/ CARRET j SP(I).C*-6 SP(I). P-«-Z I — — I + I J -"—J + I 4 ERROR 4 ) INVALID CHARACTER ENCOUNTERED SP(I).C-«— 7 SP(I).P-»-S(J) I-"-I+ I J-«-J + I (S(J), SPECTAB.K) YES 0*-S(J)||S (J + l) (O.REDTAB.N ) YES SP(I).C«-5 SP(I). P-«-N I*-I + I J-«— J + I c 3 SP(I).C-»-4 SP(I).P-«-Z J-«-J + I 62 f NILAD ) FALSE Q-«-QI Q-«— 02 (0, FTAB. Fl, Z) F-«-F+l FTAB(F) FA *-'©' FTAB(F) F5 r$ FTAB(F) F6 FTAB(F) Fl —Q FTAB(F) F? —0 FTAB(F) F3 «-W -/ ERROR 5 j FUNCTION PREVIOUSLY DEFINED \ v \true 3 ./ ' FALSE , CK) Figure 7a: Subroutine NILA D. This subroutine performs the scanning function for a niladic function header. A niladic function is one which takes no arguments. ( monad J FALSE LOOKUP (Q, FTAB. Fl, Z) -f ERROR 5 J FUNCTION PREVIOUSLY DEFINED F«— F+ 1 FTABIF) F4-«-'®' FTAB(F) F5-«-'®' FTABIF) Fl —Q FTABIF) F2-»- 1 FTABIF) F3-»— W im *«w Mrr uucraati i» u.uw. n-iu a •CMu.II*. HTtMTIt I HrttMt CMMt nam »•« naauuiu fun ttaa t«« at Bin am my l of view) within the new system. It can be used when acquiring knowledge about a new area by the technique of slicing up a complicated subject into manageable units. We see the success of this method as design discipline in numerous ways, ranging from the modular low level hardware func- tion boxes called integrated circuits, to the design of finished product personal systems, to the modular design of systems software, to the applications software an intelligent user designs modularly with an eye towards the problems of managing complexity. Applying the Principle of Simplicity: A Caution The owner of the personal computing system can use this principle of simplicity in numerous ways. However, it is not possible to accomplish positive goals with a personal computer by ignoring com- plexity and demanding some form of "absolute" simplicity which amounts to a lack of awareness of the subject matter. The computer as a servant to mankind cannot be used to its fullest potential without active thought on the part of an interactive user. A "brain amplifier" is less than maximally useful without for approaching this goal will necessarily reflect this lack of simplicity. However, all is not lost. One of the greatest contributions of the past half cen- tury of systems engineering is what might be called a principle of local simplicity within a larger (ie: system wide or "global") struc- ture. The goal is still complex, but the details are locally simple. This principle is inherited by today's personal computing designs, as well as much of modern tech- nology from aerospace control systems to robotic manufacturing and process control. The practical application of the concept of keeping designs and structures as simple as possible, consistent with accomplishment of complex goals, is seen in the idea of modularity as implemented in both hard- ware and software. It is nearly impossible to keep track of a myriad of details about a large and complicated system. But, if the design is approached from a modular and hierarchical point of view, the principle of simplicity is much more easily and usefully applied on a local basis and reflected in the entire system's conception. Local simplicity is used by the designer to minimize com- plication by choosing and evaluating the best alternatives at each level (or point 67 brain activities (thoughts) to "amplify." With an understanding of the idea that most complex problems can be organized and presented by applying the principal of simplicity locally, a knowledge of the organization and design of systems and their use can grow and flourish in each active user's understanding of the tech- nology. I consider it very important to emphasize the point that the user of a computer is an active participant in the technology, that knowledge of the technology and its potential is essential to its full utilization by individuals. When we publish an article on some subject, it helps in this endeavor by providing a local and specific focus on that subject within the global knowledge of com- puter science. This is a sort of modulari- zation of some aspect of the technology, with various pointers and references to the more general context of computer science practices as necessary. But each such ele- ment assumes an active and intelligent reader not willing to turn off input activities at the scanning of the end mark (■) for an article. There is no simple shortcut to knowledge and understanding; we can only provide aids and pointers to help mark the path. ip with newsletters, a complete software library with access to all programs developed. And programmed instruction courses in BASIC and assembly language to help you learn heath^ programming digt^ fast and easy. |^ l( »S Practical Philosophy for the Neophyte The osmosis theory of education, coupled with a bit of inspiration from the principle of simplicity, is perhaps the best method of approaching the unknowns of personal com- puting systems on the part of the beginner. The osmosis theory may be described as a form of directed Brownian motion (in analogy to a well-known physical pheno- menon of random motion). It is a directed activity in the sense that there is a particular goal used to judge the relevance of sources of information. It is a random activity in the sense that prior to acquiring an under- standing of the field, there is no hard and fast criterion upon which to judge the order and timing of materials to be read and intel- lectually digested. In its simplest form, it is to simply plunge into the literature of a field and read every scrap of information which is related to the desired goal of understanding the subject. As new points are encountered with this approach, they are integrated into a personal internal structure of knowledge. The strategy is eminently successful when it covers all levels of detail about a subject through various readings, coupled with re- flection and a bit of feedback which helps 68 eliminate the randomness in the direction of future readings. In one respect, I write about this osmosis method of acquiring knowledge (and its re- lationship to the principle of simplicity) with some authority; I know that the method is practical because I've personally applied it to gain my present understanding of computer science, such as it is. This process of acquiring knowledge about a field is prone to an apt computer science analogy: imagine that the person acquiring the knowledge is analogous to a compiler program, that the source text of the compilation is the literature of the field, and that the object text out of the compiler is an internal understanding of the field. The analogy is illuminating with respect to the problems compilers often have with parsing and detecting subtle semantic nuances of a source language, or the problems of forward references to undefined elements of a program, which are analogous to gaps in the knowledge of a person embarking upon a detailed study of a field. Learning About Mental Amplifiers I think it can be safely asserted that the Watch for the NEW Heathkif low cost personal computer systems in the next issue! (See them at PC-77, Atlantic City, New Jersey, August 28th and 29th) COMPUTER SYSTEMS They're the ones you've been waiting for! Circle 123 on inquiry card. id documentatioi The H8 and H11 computers and peripherals have been developed by the world's largest manufacturer of electronic kits, with hard- ware assembly and operation manuals plus software documentation that sets new stand- ards for accuracy, clarity and precision. And a War X >. network of service support locations to provide qualified technical help, fast parts replacement and service by trained technicians. raison d'etre for computing is to amplify one's mental powers by automating various processes which can benefit from the effort. There is, of course, the intoxication with technology's details, which affects us all, and a certain degree of speculation on the experimenter's part as to whether an ulti- mately useful result will ensue when enough hardware and software development has been accumulated. But the pot of gold which attracts a lot of such speculations in the present era is the idea that computers can become amplifiers for mental functions. When both the mental and physical func- tions are modeled and automated, the result is a robot, hence one of the reasons for the dual fascination with robots and computers. Mental powers and mental operations are tar from simple. The range of activities to which I can turn my conscious attention is wide and varied; the same applies to every reader. In dealing with a complex subject, mental operations and their assistance through automation, the principle of simplicity is by no means to be forgotten, for it gives a criterion for judgment and discrimination among numerous alterna- tives at all levels." 69 ■ * » **, D John Anderson Dept of Zoology NJ-15 Univ of Washington Seattle W A 98195 William F Galway 2246 Windsor St Salt Lake City UT 84106 Serendipitous Circles In this article we describe a simple algo- rithm which produces beautiful computer art. The algorithm was written to draw circles, but when we tried to draw large circles, we saw strange complex patterns. The screen was filled with wildly oscillating jelly bean shapes which would periodically explode in a beautiful sparkling flash and collapse back into new jelly beans. Experi- menting with different diameters, we discov- ered many new dynamic patterns. The Magical Algorithm The algorithm that produced these seren- dipitous circles is remarkably simple. A Photo 1 : The basic ellipse created with the algorithm in figure 1 and with the origin centered. There is no evidence of "display wrap around" or arithme- tic overflow here. flowchart is shown in figure 1. This algo- rithm can be implemented on the smallest of home computers in a short time, and is guaranteed to impress everybody with pretty pictures while providing an interesting math- ematical puzzle. An example of an assembly language listing for the Motorola 6800 is shown in listing 1. Implementing this algorithm on a com- puter which has graphics capabilities is very easy. However, if you are one of the many unfortunate people with no graphics capabil- 70 CHOOSE AN INITIAL X VALUE AND Y VALUE DISPLAY THE POINT (X,Y) Y X NEW :=X " y Y .. Y v X MEW Y NEW" Y+ ^2^ X:=X NEW Y:= Y NEW Listing 1 : The serendipitous circle algorithm as written for the 6800 micro- processor. This program uses 16 bit arithmetic. The photos shown in this article illustrate circles generated with 24 bit arithmetic, a/though the results for both methods are quite similar. Different precision arithmetics can be used to generate slightly different results. Figure I: The magical circle drawing algo- rithm. This straightforward procedure results in some surprisingly sophisticated displays when each coordinate pair is calculated and displayed on a graphics peripheral device. The algorithm solves a difference equation which has as its solution an ellipse. The none/liplical patterns arise from overflows in the computer's registers during the calcula- tions, and from lack of precision due to the finite size of computer words. ities, we suggest the following possible solu- tion: Borrow your friend's oscilloscope (the one you used to get your computer working). This oscilloscope should be able to draw a point on its screen, given an X deflecting voltage and a Y deflecting voltage. Now all you do is connect a digital to analog converter (DAC) to each of two parallel outputs from your computer, and you'll have the X and Y voltages necessary to drive the oscilloscope. This is how the 6800 program in the listing works. The reason this program produces its beautiful patterns is quite well understood. The algorithm solves a difference equation which has as its solution an ellipse. The continuous analog of this equation is a differential equation which has as its solu- tion a circle. The complicated nonel I iptical patterns come from overflows and lack of precision due to the finite size of a computer 00001 NAM CIRCLE 00002 OPT M 00003 **********>Mo|ok*************!K**«K** 00004 * 00005 *CIRCLE DRAWING PROGRAM 00006 *URITTEN BY UILLIAM F. GALUAY 00007 * 30- DEC-76 00008 *THE ALGORITHM USED IS AS FOLLOUS: 00009 * 00010 *L00F : DISPLAY A POINT AT CURRENT (X.Y) 00011 * X <- X-Y/2 00012 * Y <- Y+X/2 00013 * GOTO LOOP 00014 * 00015 ^tofc ^k Ac SOkllOlQIC Ai >k34^>k"ik *k Ac >k>k^k }4tS( ^fc>k Ac *4^ At Ac W Ac *ikAcA(A( A' Ac X \C Ac Ac Ac ilc Aalc Aolc^k >4e 0001S * 00017 *SIXTEEN BIT ARITHMETIC IS USED ALTHO ONLY 00018 *EIGHT BITS ARE DISPLAYED. 00019 ****#**#*#****************** 00020 * 00021 *S0ME GOOD STARTING VALUES FOR (X.Y) ARE: 00022 * C7F00.0000) 00023 * (7F00.8100) 00024 * (7D00-7D00) 00025 * (7CF3.7CF3) 00026 * 00027 ^^^^^^^r.*t^H s ^''K'K^^^^^^^'K'K^K^K^K?K?KH^n^^K'K 00029 *DEFINE SOME SYMBOLS 00031 3B0B UK0 EQU S3B0B UORK REGISTERS, USEFUL FOR 00032 3B0D UK1 EQU UK 0+2 GETTING NUMBERS FROM 00033 3B0D XHI EQU UK1 UORK REG'S USED FOR X.Y 00034 3B0F UK 2 EQU UK 1+2 00035 38 11 UK 3 EQU UK 2 +2 00036 ***********«**:«************************ 00637 *DEFINE ADDRESSES FOR 00038 *DIGITftL TC ANALOG CONVERTERS 00039 *THE FOLLOWING THREE REGISTERS ARE 00040 *UNIQUE TO THIS SYSTEM 00041 Ac. Ac 'A\ s lc AC Ac & *k AC Ac % \c Ac Ac Ac AC ^k 'AC Ac AC AC 3 k Ac A^ Ac Ac AC Ac Ac AC *k Ac Ac Ac s tc Ac Ac AC Ac AC 00042 3804 DACCSR EQU $3604 USED FOR SETTING UP DAC'S 00043 3805 DACX EQU DACCSR+1 DAC FOR X VOLTAGE 00044 3806 DACY EQU DACX+1 DAC FOR Y VOLTAGE 00B46 2000 ORG $2000 00048 2000 CE 3B0D START LDX *XHI POINT TO HI ORDER X 00049 *THE FOLLOWING TUO INSTRUCTIONS ARE 00050 *UNIQUE TO THIS SYSTEM . AND ARE NECESSARY 00051 *T0 MAKE THE DflC'S UORK IN THE DESIRED MANNER. 00052 2003 86 30 LDA ft #$30 SET UP DAC CSR 00053 2005 87 3804 STA A DACCSR TO SHOU DATA NOT ADDRESS 00054 2008 A6 00 LOOP LDA A 0.X GET HI ORDER X 00055 200P E6 82 LDA B 2.X GET HI ORDER Y 00056 200C B7 3805 STA ft DACX DISPLAY A POINT AT (X.Y) 00057 200F F7 3e06 STA B DACY 00058 2012 E6 03 LDA B 3.X B GETS LO Y 00059 2014 06 02 LDA A 2.X A GETS HI Y 00060 2016 47 ASR ft GET Y/2 00061 2017 56 ROR B 00062 2018 40 NEG ft DO A 16 BIT NEGATE 00063 2019 50 NEG B NEGATE LO ORDER 08064 201ft 82 00 SBC A #8 PROPAGATE CARRY 00065 201C EB 01 ADD B l.X GET X+C-Y/2) LO ORDER 00066 201E ft9 00 ADC A 0.X THEN HI ORDER 00067 2020 E7 01 STfl B l.X STORE LO X 00068 2022 07 00 STA A 0.X STORE HI X 00069 2024 47 ASR A GET X/2 HI ORDER 00070 2025 56 ROR B LO ORDER 00071 2026 EB 03 ADD B 3.X ADD LO Y 00072 2028 A9 02 ADC ft 2.X ADD HI Y UITH CARRY 00073 202A E7 03 STA B 3.X SAVE LO Y 00074 202C ft7 02 STfi ft 2.X SAVE HI Y 00075 202E 20 D8 BRA LOOP LOOP TO DISPLAY SOME MORE 1 00077 END 71 The screen was filled with wildly oscillating jelly bean shapes which would periodically explode in a beautiful sparkling flash and collapse back into new jelly beans. word. For example, overflow occurs when your computer adds two positive numbers and gets a negative number. Lack of preci- sion occurs when your computer divides 5 by 2 and gets 2 as the result. Variations on the Algorithm There are several different ways that the program in figure I can be varied. Some of these are described below. Photo 2: Effects created by overflows and lack of precision of finite com- puter words. The initial point (X, Y) for this photo was chosen to be slightly further from the origin than the initial (X, Y) used for photo 1. • Initial X and Y The choice of a starting point deter- mines the pattern the program draws. Points close to the origin draw ellipses; larger values can produce more interesting patterns. Photo 2 was produced by using slightly larger starting values than for photo 1. The best way to understand this effect is to experiment with different values of X and Y yourself. • Display Wrap Around Most display devices have less than 16 bits of resolution, typically ten or fewer bits are used. If X and Y are represented as 16 bit integers, which ten bits should be displayed? The logical solution is to display only the most significant bits. Different interesting results can be ob- tained by displaying successively less sig- nificant 10 bit slices from a 16 bit value of X and Y. Choosing a 10 bit slice that excludes some high order bits produces an effect called wrap around. The effect is the same as magnifying the original picture and then folding it over on itself to fit the display screen. Photo 3 was pro- duced from the same initial point as photo 2; but photo 2 displays the ten most significant bits, while photo 3 dis- plays the ten bits just below the most significant bit. Photo 4 was produced by displaying an even less significant ■ »l ■....:»:>, i I H l .-■'J I a,' ■ ''Qifl ,-••■,.. .; '■"■..- ' ELLIPSE Figure 2a: One of two preferred locations for the origin of your coordinate system display. Here the origin (o,o) origin is placed in the middle of the display to produce an ellipse cen- tered about the origin. See photo 1. ORIGIN (0,0) ■ 1/4 OF THE ELLIPSE Figure 2b: In this case the origin has been placed in the corner, splitting the ellipse up into four quar- ters. This is called "display wrap around. " P/70/-0 3: This photo shows the effect of dis- playing the ten bits just below the most significant bit for both X and Y. Note the radical change in appearance. .•«,,-• 4*' ' ' ' ¥■ tt « ,r : ».• • V 'f'l » * ■ $■•••**> *N* -O Wf ... . *' i i" v." ■ " . 4 if' KM T t 1 i ,fr" * . r '-■* ■ *■**"* Photo 4: Once again the display changes significantly, this time by choosing an even less significant group of ten bits for display. The technique of using only certain groups of bits is analogous to magnifying the original picture and then folding it over on itself to fit the display screen. group of ten bits and using a different starting point. • Position of Origin Figure 2 shows two choices of place- ment for the origin. Choosing the origin in the center of the display, as in figure 2a, results in the ellipse drawn in the nnr*yiNiiiiiiii | 'iwi»iiiiii iai"ii*iiiin About the Authors William F Ga/way is employed by the University of Utah working with computer-aided instruction using computer graphics. It has been known by many people that the algorithm described in this article will draw ellipses and circles. While working with a computer music research group at the University, Mr. Ga/way noticed the curious behavior of the algorithm when large diameters were used. D John Anderson is a graduate student at the University of Washington in the Department of Zoology wdrking on difference equation models of population growth. In the past, he was employed at the University of Utah where he worked with minicomputers in physics and chemistry. center of the display. However, if the origin is placed in the corner as shown in figure 2b, then one quarter of the ellipse is drawn around each corner. Choosing the origin in the center corresponds to using a signed digital to analog conver- sion and choosing the origin in the corner corresponds to an unsigned con- version. Patterns that are not very inter- esting with one origin may be very interesting with the other origin. • Speed of Display The speed of displaying points, ie: the number of points per second, is an important factor in the appearance of a pattern. You can put a loop in your program to introduce a delay and experi- ment with this effect. Generalizing the Equation Still more patterns can be produced by using the more general equation: X|MEW: = X - aY YNEW:=Y + bXNEW 74 The photographs in this article used a=b=/2. We have tried values other than Vi with interesting results, but have never used dif- ferent values for a and b. Precision of Arithmetic Most of the programs we have written to draw our patterns have used 16 bit arith- metic. The program used for the pictures in this article used 24 bits (double precision on a PDP-8 computer). It is possible that using fewer bits will not produce such interesting results. Other Algorithms Another algorithm you might try is shown in figure 3. Without much trouble it can be shown that this is a difference equation analog of a differential equation that draws parabolas. This particular algor- ithm can produce interesting and compli- cated musical sounds if the output of the Y DAC is amplified and played through a speaker. It is easy enough to try new forms of these or other difference equations. It has been our experience that these algorithms often produce new visual and audio effects that will astound you." CHOOSE AN INITIAL X VALUE AND Y VALUE DISPLAY THE POINT (X,Y) x NEW -. = x+i Y NEW := Y+ *NEW x-.=x NEVV Y;= Y NEW This algorithm can pro- duce interesting and com- plicated musical sounds if the output of the Y digital to analog converter is amplified and played through a speaker. Figure 3: A serendipitous algorithm based on a pa- rabola. (This can be more easily seen by manually executing the algorithm and plotting a few points for X and Y.) The pa- rabola is the solution to a difference equation which forms the basis of the algorithm. COMPUTER ENGINEERING THE MIDNIGHT SPECIAL . . . ... a full color limited edition poster for your Casey Jones fantasies. The poster is \6Vi by 21 Vi inches (41.9 by 54.6 cm) with a white border. The colors are the same as the original by Robert Tinney, which graces our July cover, minus the BYTE logo. The price is $3.00, plus 50$ postage. It is shipped unfolded, in a mailing tube. ORDER NOW. SUPPLIES ARE LIMITED. BITS Inc 70 Main Street Peterborough NH 03458 □ Bill BankAmericard □ Bill Master Charge No Name. In unusual cases, processing may exceed 30 days. Address. City Posters $3.00 each plus $ .50 mailing □ Check Enclosed $ Exp. Date . State Zip. .............. ............... 4 75 Circle 121 on inquiry card. COME TO PC 77 .. Atlantic City, New Jersey August 27 and 28, 197 PC '77 offers you the most complete show of its kind ever held. Proven in '76 and acclaimed in '77 by all the major professional publications as the coming event of the year, this show is a 'must'. Make plans now to at- tend. Here are some of the scheduled events: PRE-CONVENTION PROFESSIONAL SEMINARS August 22-26 Technical Design Labs and Trenton State College Z80 Seminars at near- by Trenton State College. Five software and four hardware seminars. August 25, 26, 28 SYBEX Seminars at the Shelburne Hotel. Three intensive seminars: Introduction to Microprocessors, Programming Microprocessors, Microprocessors Applications. August 24, 25, 26 TYCHON INC. Microcomputer Interfacing Workshop at the Shelburne Hotel. August 26, 27 Osborne & Associates Microprocessors — Where they came from and where they are going, an analysis of all products on the market today. At the Shelburne Hotel. MORE NEW PRODUCTS THAN EVER! All the products you've been reading about in the ads will be on display at PC '77. Many companies will be showing exciting new products. HEATH COMPANY will display exclusively, for the first time, their complete computer line. SOLID STATE MUSIC, POLYMORPHIC ' SYSTEMS. THE DIGITAL GROUP, THOMAS INSTRUMENTATION, MOS TECHNOLOGY, TECHNICAL DESIGN LABS, SOUTHWEST TECHNICAL PRODUCTS, CROMEMCO, E & L IN- STRUMENTS, THE INTERPRING GROUP, KENT-MOORE INSTRUMENTS, PERSCI INC. GEORGE RISK INDUSTRIES, MID WEST SCIENTIFIC, OSBORNE AND ASSOCIATES. EX- PANDOR, QUAY CORP, MATRIX PUBLISHERS, CAMELOT PUBLISHING CO, HAYDEN BOOK CO, GAW ELECTRONICS, ENCLOSURE DYNAMICS AND SOROC TERMINALS will all be showing new products. Plan to attend ! OUTSTANDING COMPUTER HOBBYIST OF THE YEAR AWARD This is an annual award presented to a person who has given outstanding service to others in the personal computing field with no commercial mo- tives. Nominations are currently being accepted from individuals and clubs. For an interesting evening of family entertainment, plan to attend the Ice Capades which are in town the week of PC 77. LET'S KEEP THE PERSONAL IN PERSONAL COMPUTING! te \^< < Deal yourself in on the biggest personal computing show of the year! FREE! SEMINARS, FORUMS. TECHNICAL TALKS publisher of Malcolm Wright of ENIAC by Dr. John Mauchly, the co-inventor of ENIAC PROGRAMMING ENIAC by Mrs. John Mauchly SAM 76 by Claude Kagan of Western Electric Co., an interactive symbol system manipulations system which grows with the user. TELECOMMUNICATIONS FROM THE TERMINAL USERS VIEWPOINT by David L. Peters of Vadic Corp. INTRODUCING THE HEATHKIT COMPUTER PRODUCTS by Lou Frenzel of Heath Companv HOW MICROPROCESSORS ARE DESIGNED by Will Mathvs of MOS Technology THE FUTURE OF MICROS IN MEDICINE by Dick Moberg, Dept. of Neurosurgery. Jef- ferson Medical College, Philadelphia THE HUMAN FACTOR by Andrew Singer of ROM Magazine SHOULD MICROS BE USED FOR BUSINESS APPLICATIONS? by Frank J. Ponzio. Jr.. of Mini Computer Suppliers, Inc. ROBOTS by Tod Loofbourrow, author for Interface Age Magazine GETTING INTO THE MICRO COMPUTER BUSINESS by Robert S. Jones, Interface Age Magazine MUSIC FOR THE HOBBYIST, HARDWARE AND SOFTWARE by Solid State Music HAM RADIO APPLICATIONS by Dr. Robert Sliding of the Digital Group HANDICAPPED SYMPOSIUM by Dr. Robert Suding of the Digital Group HOME MANAGEMENT SYSTEMS by Dr. Robert Suding of the Digital Group FLOPPY DISK bv Herbert G. Waite of PerSci Inc. INTERFACING A HOME SELECTRIC by Charles Yates of Amateur Computer Group of New Jersey MOVING UP TO AMATEUR RADIO bv Chod Harris of the American Radio Relay League OPERATING THROUGH AMATEUR SATELLITES OSCAR 6 AND 7 by Gary Tater W3HUCof AMSAT THE PHASE III MICROPROCESSOR CONTROLLED AMATEUR SATELLITE by Tom Clarke WA3LND and Jan King W3GEY of AMSAT MICROPROCESSOR APPLICATIONS FOR RADIO AMATEURS bv Kasser G3ZCZ of AMSAT WHAT PEOPLE ARE NOT GOING TO DO WITH HOBBY COMPUTERS by Stephen Gray of Creative Computing APPLICATIONS OF MICROCOMPUTERS: THE MYTH AND THE REALITY by David Ahl of Creative Computing INTRODUCTION TO COMPUTERS THROUGH THE BASIC LANGUAGE by Eri Golem- bo of Computer Mart of New Jersey DYNAMIC DEBUGGING SYSTEM FOR THE 8<>80 CODE by Larry Stein and David Benevy of Computer Mart of New Jersey MICROPROCESSORS FOR THE HOBBY MARKET TODAY AND TOMORROW by Dr. Adam Osborne of Osborne and Associates GETTING STARTED WITH MICROCOMPUTER SOFTWARE by Dr. Christopher A. Titus, author of the Bugbooks COMPUTERS AND MUSIC by Carl Helmers of BYTE Magazine PRE-REGISTER! FILL OUT AND MAIL THE COUPON ON BACK PAGE I Personal Computing College In-depth information through seminars, lectures and workshop sessions covering the personal computer field. (MWllu *> iC \tf£, OS' B0»* not ***■£*£&* *& sa' sons \e9 p, m ^ "fSS- »?sr i*** U^ vo- .IWIPIIIIII.11 II ?0 LS«$5?£2L** ^ a ^;y^^v^^ at\ c Itac- ^^frt^ rc " >m y^ .■"most S » ev Penence tn > " J/VTFftn 10*' !mire a broad vm ^disadvantage* * hat te needed ^ £oP^ eS9 °: 9 ' a"dvanW* ^ Scroproces^ W „cesBO^ Thto -* 01 "* 9 vstem * ncU f Written a«d « e » to P m °!f« Requires an MlC ROW" Aer . crop roces^- WO^Setwosemtnarsbea 26 pn that these r „'J a V, v*lUg" USE?— - ^ ay , ^us. tc.no* „ VJe.,Ber^eV CA _ . d 'mos( 5()enc e tn > " J/VTFftn Pc|?^S^n^S TECHNICAL DES.GN LABS AND TRENTON S^WeGE An introduction to th, Bn , ™EuCOWNER. AUVANCED ASSEMBI \ I ,«,■,,„.„ F^TRA>';v man "" r ' Ke9S ™« ,r0 ' "' A "" M ' : ""' "^ An introduction to tlie Fortran i WORD PROCESSING WiTHifpS Foril, RAN IV for ,!„■ Z-im " """ Introduction to the u « 7™ J IfS?"™" MD F ««MArr E R J-M-nl procc Ming ^pabi^X^t'TDr^V^^ '» —*• ^sxrr " rs " n " *" ,h "' , " , Instruction in digiul logic circuits „, ■ u scriVu r, i . * imm.s oovenne the 4jk> tti i . senes. Codes, regiaters couni-ro ^ ' IL Hn$ 895 ea. RMG4-48K byte board @ S1 195 ea. RM64-64K byie board & S1495 ea. CGM77 computer graphics board S 375 ea. Subtotal California residents add 614% lax TOTAL Shipping and handling prepaid in continental United Stales NAME extensys ^■■■■■/corporation 592 Weddell Drive Sunnyvale, California 94086 Please check method of paym Check Enclosed BankAmericard No. - expiration date . Master Charge No. _ expiration date . ADDRESS- CITY PHONEUNCLUDE AREA CODE). J Circle 137 on inquiry card. I I I I I I I I I I I I I Continued from page 32 tape consists of a start bit, 8 data bits and a parity bit. Parity of each byte is auto- matically checked when a cassette program is loaded into memory. A light and warning tone tell the user immediately if a parity error occurs. This makes cassette volume and tone adjustments possible. Another light provides a visual indication of tape data. This lets the user manually position the tape when recording several programs on the same cassette. The last byte loaded into memory from a cassette is always displayed on the TV screen. The graphic video display consists of an array of spots on the TV screen. There are 64 spots in the horizontal direction. The number of spots in the vertical direction can be varied, under program control, from 32 to 128. The normal display is 64 spots wide by 32 spots high. This array of 2048 spots represents 256 bytes. If a bit is 1, the spot is white; if a bit is 0, the spot is black. Changing the states of the memory bits with a program creates patterns, pictures or numbers on the TV screen. It is possible to create moving patterns by shifting the bit patterns around using a program. Switching between different display maps by changing the contents of a single address register allows very quick display changes. This graphic display uses the RCA CDP1861 integrated circuit which was de- signed for use with the COSMAC micro- processor. It provides the lowest cost graphic video display currently available with any microcomputer. It is limited to fairly low resolution applications. Higher resolution requires larger refresh memory capacity and much more expensive circuits. In five years of experience I have found this resolu- tion adequate for large numbers of applica- tions. A very inexpensive color graphics add on is being planned for this display. Physically, the COSMAC VIP consists of a single 8.5 by 1 1 inch (21 .6 by 27.9 cm) printed circuit card that sits on rubber feet (see photo 1). The hexadecimal keyboard occupies the lower right hand corner of the card. The power pack plugs into the wall and is connected to the card with two wires. Three shielded cables are needed for connec- tion to the video monitor, the cassette re- corder mike input and the earphone output jack. These cables are readily available at local electronics outlets. Assembly time for a COSMAC VIP kit is two to three hours. It involves soldering the components into the card. No individual wiring is required, other than the above external connections. The assembly instruc- tions and printed circuit card were designed with the experienced kit builder in mind. If you have never built a kit you would be better off finding a friend with a sharp eye, steady hand and fine point soldering iron to help you out. Assembled versions will be available and a plastic cover for the card is planned. The printed circuit card can also be mounted in your own box with the key- board, single operating switch and three LEDs remounted on the surface of the box. Only 19 integrated circuits are used in the 2 K byte standard system. A single +5 VDC supply comes with the kit and powers the computer. Only 350 mA, average current, is required with most of the current used by the NMOS programmable memory. The CDP1802 COSMAC microprocessor is the key to the low power and relatively few integrated circuits required for a system of this type. System Expansion The COSMAC VIP was designed as a com- plete, stand alone, graphic home computer. Hardware hackers will, of course, not be satisfied with the standard system and will want to add a variety of gadgets of their own. Expansion capability was therefore designed into the system. First, you can increase memory to 4 K bytes by just adding four ICs to the printed circuit card. This permits more sophisticated programs for a system of this class. A comprehensive, 44 line interface is provided that can be used to add almost anything to the system including up to 32 K bytes of programmable memory. This interface provides all the COSMAC microprocessor signals. A fair amount of technical skill is, of course, required by hackers who actually use these lines. For novices who want to add existing IO devices such as relays, music synthesizers, printers, or an ASCII keyboard, an easy to use parallel IO port option is provided. Adding four readily available ICs to the printed circuit card provides an 8 bit output port and an 8 bit input port plus hand- shaking signals on 22 interface pads. A standard 22 pin card socket can be used for connecting external devices to these ports. The output lines can drive two TTL loads. The input lines are high impedance, 22 K ohms or more. Software and Documentation Two manuals are provided with the COSMAC VIP system. The COSMAC microprocessor user manual is for those who want to get involved with the details of machine language programming. The COSMAC VIP manual provides all the in- formation required to assemble, run, pro- gram and troubleshoot the system. Every 94 THE LATEST IN TAPE SYSTEMS MODEL CC-8 - $175.00 2SIO (R) CONTROLLER MODEL 3M3A - $220.00 $190.00 ($160.00 Kit) 4800 BAUD CASSETTE RECORDER An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Error rate 10.8 a t 4800 BAUD. Can be used from 110 to 4800 BAUD into a UART or "Bit Banger PIA" - no clocking required. This is not an audio recorder. It takes RS232 or TTL signals from the terminal or computer and gives back the same signals. No audio interface is used. Motor start/stop is manual or through TTL or RS232 signals. Tape speed is 3.2"/second nominal; 1.6"/sec. optional. 110 volt, 60 Hz, 5 watts. (220 Volts on special order). Can use high quality audio cassettes (Philips Type) or certified data cassettes. Can be used in remote locations from a 12 Volt battery. Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PROGRAM RELOADING and DATA STORAGE. Especially recommended for 6800 systems, 6502 systems, 1800 systems and beginners with the 8080 systems. Manual control except for motor start/stop. 6800 or 8080 software for file or record searching available on request with order. Used by major computer manufacturers, Bell Telephone and U.S. Government for program reloading and field servicing. AVAILABILITY - Off the shelf. 50 KILOBAUD CARTRIDGE RECORDER This is a self clocking (1/1) high speed recorder. Loads BASIC in under 2.0 seconds. Recording is done at 19.2 Kilobaud. Playback at 30 Kilobaud. File or Record searching is done at 50 Kilobaud and loading is automatic. Worst case access time about 2 minutes for up to 2 megabytes on the 3 (VI Data Cartridge. Tape speed 10'7sec. on record, up to 30'7sec. on playback. Records one clock track and one data track on each pass (2 passes). Recording is NRZ unencoded from RS232 or TTL signals. This recorder requires one Parallel port for motor control, and one serial port for data and clock. (Cannot be used with UART's or UART boards such as the 3P+S). Used with USART's, ACIA's or other 1/1 clocking I/O devices under software control only. No manual controls. Software for 8080 and 6800 available. Power supply is built in, 110V, 60 Hz. 220 V, 50 Hz for export. AVAILABILITY -90 Days PROVIDES MONITOR AND TAPE SOFTWARE in ROM TERMINAL and TAPE PORTS on SAME BOARD CONTROLS ONE or TWO TAPE UNITS (CC-8 or 3M3A) This is a complete 8080, 8085, or Z80 system controller. It provides the terminal I/O (RS232, 20 mA, or TTL) and the data cartridge I/O, plus the motor controlling parallel I/O latches. Two kilobytes of on board ROM provide turn on and go control of your Altair or Imsai. NO MORE BOOTSTRAPPING. Loads and Dumps memory in hex on the terminal, formats tape. cartridge files, has word processing and paper tape routines. Best of all, it has the search routines to locate files and records by means of six, five, and four letter strings. Just type in the file name and the recorder and software do the rest. Can be used in the BiSync (IBM), BiPhase (Phase encoded) or NRZ modes with suitable recorders and interfaces. This is Revision 7 of this controller. This version features 2708 type EPROM's so that you can write your own software or relocate it as desired. One 2708 preprogrammed is supplied with the board. A socket is available for the second ROM allowing up to a full 2K of monitor programs. Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clock from bus. Cannot be use; with audio cassettes without an interface. Cassette or cartridge inputs are RS232 level. AVAILABILITY -Off the shelf. OVERSEAS: Export Version 220 volt 50 hz. Write factory or: Megatron-Datameg, 8011 Putzbrunn, Munchen, Germany; Nippon Automation 5-16-7 Shiba, Minato-Ku, Tokyo. Japan; Hobbydata, FACK 20012, Malmo, Sweden; G. Ashbee. 172 Ifield Road, London SW 10-9ag: Trintronics, Ltd., 186 Queen Street W., Toronto, Ontario, Canada; EBASA. Enrique Barges 17, Barcelona 14, Spain; ARIES, 7, rue Saint Phillipe clu Roulc, 75008 Paris; Microlem 20131, Milano, Italy; Eagle Electric, Capetown, S. Africa. For U.P.S. delivery, add S3. 00 Overseas and air shipments charges collect. N.J. Residents add 5% Sales Tax. WRITE or CALL for further information. Phone Orders on Master Charge and BankAmericard accepted. Canadian Distributor: Trintronics Limited 186 Queen Street West Toronto, Canada M5V 1Z1 Tel: (416) 598-0262 NATIONAL MULTIPLEX CORPORATION 3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 Circle 129 on inquiry card. program provided in this manual can be run on the standard 2 K byte memory system. Detailed, drafted logic diagrams are provided and a section of the manual is devoted to troubleshooting techniques. The most important feature of the manual is the number of ready to use pro- gram listings provided. I am one of those people who find it hard to understand anything unless I can see some examples. I suspect that a lot of people are in the same boat but don't like to admit it. For this reason, plenty of actual programs are pro- vided. You can enter these programs using the hexadecimal keyboard and record your own cassette library. These programs were developed and debugged using the COSMAC VIP system itself to thoroughly test the operating system. Most of the programs were written in the interpretive language provided with the COSMAC VIP system. Several test programs are provided to help you identify and analyze hardware problems should they occur. A short test program that can be loaded from the hexadecimal key- board allows recording of a test cassette for analyzing tape problems. A special memory test program is provided that will detect most types of memory bit failures and will inform you which circuit to replace. 20 video game programs are provided. These games include target shooting, number guessing, picture or pattern generation, shooting stars, etc. Let's be honest, a pri- mary application for home computers is games. There is nothing to be ashamed of if that's all you do with your computer. Chess, Go, bridge, tennis and baseball players do not constantly apologize for playing games. The sales of commercial games and the newer video games show that games fill a real need. Many people spend most of their spare time watching people getting paid to play games on TV. Games are fun, educa- tional and satisfy basic human needs. The computer is a super toy. Why not relax and enjoy it? The COSMAC VIP game set per- mits the whole family to enjoy it with you. Starting with games may even develop latent programming interests that solving equations won't. Designing Programs This is where the frustration starts for many beginners. A number of high level languages have been developed to make computers easier to program. These are invariably English language oriented. This is nice in theory but uses up a lot of memory in practice. The more popular languages are also aimed at math and data processing applications rather than control, games and video graphics. A unique numerically oriented interpretive language is provided with the COSMAC VIP. This language looks a lot like machine language. It provides 31 elementary instruc- tions. Each instruction is two bytes or four hexadecimal digits. Single instructions per- mit generating a random byte, reading in a hexadecimal keyboard digit, displaying a pattern on the TV screen, sounding a tone, incrementing a variable, setting or testing a real time clock, etc. Sixteen 1 byte var- iables are provided. Subroutine nesting and machine language inserts are permitted. The interpreter for this language only occupies 512 bytes of programmable mem- ory. Programs written in this language are extremely compact. A programmed video kaleidoscope requires less than 64 instruc- tions. A rocket launching space ship inter- cept video game only requires 104 instruc- tions including on screen decimal scoring. It is possible to play tic-tac-toe against the computer using a 235 instruction pro- gram that includes random mistakes by the computer. There is space for programs containing up to 592 instructions in the standard 2 K byte system. I've been using this type of hexadecimal interpretive language programming for a number of years. It has been learned and used by children, engineers and programmers with no difficulty. An occasional profes- sional programmer may grumble about the lack of self-documentation and the need for patches, but the money that these features cost isn't coming out of his pocket. New- comers to computers might even find this COSMAC VIP language somewhat easier to understand than conventional high level languages. This is particularly true if they come from a hardware background. It is certainly cheaper to implement this type of interpretive language. Ease of understanding is difficult to measure since everyone is different. What's easy for one person may be difficult for another. Newcomers may welcome a programming approach that simplifies programming without straining their memory budgets. The home computer field is still young enough to tolerate ex- perimenting with a variety of languages. Some home computer users will want to get involved with machine language program- ming. They may be interested in developing their own languages or learning micro- processors at the detail level to enhance their careers. The COSMAC VIP can be directly programmed in machine code from the hexa- decimal keyboard, and machine language programs can be saved on cassettes. The operating system permits examination of the 96 processor's registers to facilitate debugging machine code programs. The external inter- face permits substituting a user's read only memory based operating system for the standard one, if ever required. Summary COSMAC VIP is a complete computer on one printed circuit card. It is oriented toward control and video graphics. In price and performance it fits in between low priced machine language trainers and more expensive high level language oriented systems. It is ideally suited to personal use at home and educational use in schools. COSMAC VIP is being made available by RCA. It is the result of five years of develop- ment effort in my laboratory which was aimed at producing a cost effective hobby computer. A low level interpretive pro- gramming language, test programs and 20 video game programs are provided with COSMAC VIP as it is coming to market for the first time. Assembled and covered up versions are planned. Add ons such as color graphics are being developed. Family fun, low cost, and flexability were primary design goals, which I believe we've accom- plished with this product." Circle 130 on inquiry card. MULLEN COMPUTER R QAPnQ BOX 6214, HAYWARD, CA 94545 ' CAVi a^ i eBBIl ISOLATOR CONTROL BOARD $117 2 8 fast reed relays respond to an 8 bit word: Feed the relay associated with its bit a " 1 " and it closes, give it a "0" and it opens. Also, 8 opto-isolators accept an 8 bit word from the outside world and send it to your com- puter for handshaking or further control purposes. Especially suited for model railroad, burglar alarm, audio switching, ham radio, music synthesizer, and auto- mated display applications, this board goes wherever you need a general purpose 1/0 switching gizmo. > to EXTENDER 2 BOARD 2 W/ LOGIC Z PROBE $35 < Whether for troubleshooting or analysis at some point you'll need an extender board. Ours offers a built-in logic probe, special edge connector that allows clip lead probing, jumper links in all supply lines, a non-skid probe. . . plus good instructions and a realistic price. Circle 131 on inquiry card. Sbj. Boards are kit form only. Cal res add *4TIBLE • AVAILABLE BY 3 8 I tax. 2" No bells or whistles. ..just performance, a warranty and a low price. ■ ■ ■■■■■■: :-:■-. <>l •Lr^Mii ■ttfl WW fllMTjBhiWTIl MM tsa HBI 1 * miss MHt^sp in i>wr tsa tsa W*WMHPtBHW U M&9 ■£»$Wi^j3 M££lW&9 ESEE, EEEE, B1EE, II I For $107.00 take your choice; the 4K RAM board or the alpha video board. For $137.00 the video graphic board can't be matched. (8K RAM and much more on the way.) These are not kits, but completely assembled, burned-in, tested boards with a 1 year warranty. No soldering, no messing, no chance of mis-connections . . . just plug 'em in and you're ready to go. The 4K RAM has the same features and speed as what you're used to (500 nsec, no wait states) but with a couple of extras you might not expect. Like a mechanical write protect switch that gives you positive memory protection. And Visaddress", an easily accessible switch on top of the board for easy to read address selection. The alpha video board offers Visaddress address selec- tion and displays 128 ASCII characters: both upper and lower case. A standard 16 line by 32 character format with character selectable video reverse and socketed ROM are standard features. (Character generator ROM available with standard graphics characters. Optional Greek or ASCII control characters available.) And our video graphic board gives you an exceptionally easy approach to computer animated dynamic displays. Our matrix approach allows direct addressing of each dot in an 128 by 96 array, simplifying dynamic movement. And unlike DMA displays, our on-board RAM allows your CPU card to do other work during display time and with no dynamic RAM problems. And like our other boards, it has Visaddress address selection. Quality, assembled boards at less than kit prices. But what else would you expect from a company whose prime product is electronic test instrumentation and microproc- essing components? Order direct, by check, BankAmericard or Master Charge (Add $1.50 shipping, credit customers give us all the card numbers, please and Ohio residents add 4 1 /2% sales tax) or contact us for more information. Kent-Moore Instrument Company, P.O. Box 507, Industrial Ave., Pioneer, Ohio 43554. (419) 737-2352. Kent-Moore INSTRUMENT COMPANY Personal Computing Expo will come to New York! PCE PERSOINAL COMPUTING EXPO NEW YORK COLISEUM, OCTOBER 28, 29, 10, 1977 r It's a brand new show (in the world's biggest economic center) specifically for manufacturers, buyers and those providing services to the personal computing enthusiast. For the first time, this booming field wilt have a New York Coliseum showcase. It is planned as the largest public show of its type and will attract at- tendance from the huge population areas of Boston, Washington, Philadelphia and Baltimore. New York's is the world's communications focal point, the one place that will put personal computing in a significant spotlight. New York is surrounded in depth by people who work in the computer field, by com- puter learning centers, universities, personal com- puting clubs and thousands of others whose lives are affected by computers. More than 100,000 paid subscribers of BYTE magazine will be urged to view the exciting exhibits and to at- tend the BYTE-sponsored lectures. Circle the dates: October 28, 29, 30 — and make your plans now to be there when Personal Computing Expo comes to New York! // Personal Computing: An idea whose time has come! it* Tutorials by the IEEE Computer Society, Mid- Eastern Area Personal Computing Expo is also joined by the In- stitute of Electrical and Electronics Engineers Com- puter Society, Mid-Eastern Area Committee, whose experienced staff is presenting six day-long tutorials at a modest charge. If inconvenient for you to attend a tutorial during the show, simply sign up for follow-up tutorials on weekends after the show. Whereas the lectures will provide you with in- formation, the tutorials will teach important skills enabling you to use your own computer at home or at work. TUITION: The tuition fee for the tutorial program in- cludes a one-day admission to the Personal Computing Expo. Students (with ID) IEEE Members Non-Members One Two Three Tutorial Tutorials Tutorials $30 $50 $75 $40 $70 $100 $50 $90 $125 REGISTRATION: In order to provide an interactive, learning environ- ment between the participants and the lecturers, the number of registrants is limited. Registration is accepted on a first-come, first served basis. Early registration is therefore suggested. Cancellations received before September 15, 1977 will receive a full refund. To register, make your check payable to the IEEE COMPUTER SOCIETY, and mail to: Daniel R. McGlynn, Ph.D. Tutorial Program Chairman IEEE Computer Society 329 - 84th Street Brooklyn, N.Y.1T209 FOR FURTHER INFORMATION: on the technical content of the tutorials, technical background suggested to derive maximum benefit from the program, or information on the IEEE Com- puter Society, call Cary Ringel Chapter Chairman IEEE Computer Society (212) 460-4600 TIME AND LOCATION: The tutorials will be held from 9 AM to 4 PM each day in the New York Coliseum, at a location to be announced and posted. Participation in the tutorials also includes a one-day admission to the exhibition area and other lecture programs. EXPO TICKETS: Will be sent to tutorial registrants about three or four weeks prior to the show. Tuition includes hand-out material, in- cluding text and/or hand-out materials. Participants will also receive a certificate of participation. CITE DAILY TUTORIALS AND SPONSORED LECTURES Exciting lectures sponsored by Personal Computing Expo is endorsed by BYTE magazine, whose staff has contacted prominent speakers for an exciting series of lectures. Visitors will be able to attend these meetings free of charge. The lectures will not conflict with each other eliminating the worrysome choice among several equally important topics. In addition, they will be repeated on the next day to give you a second chance if you missed a topic. Lectures are typically 30 minutes, often with demonstrations and an additional 15 minutes for questions. Portia Isaacson Ph.D. . . . Saturday 11 AM and Sunday 12 Noon Co-owner of the Micro Store, a personal computer store, in Richardson Texas actively engaged for 12 years in the computing field in industry and at universities. Member of the ACM and IEEE, and chairman of the 1977 National Computer Conference. Author of many articles in professional journals and magazines. Received a Ph.D. in Computer Science from the Southern Methodist University. Personal Computing: An Idea Whose Time Has Come A review of what has happened so far in the personal computing field, and an outlook into future developments, including those in the computer assisted home. Slide demonstration. Sol Libes . . . Friday 6 PM and Saturday 10 AM President of the Amateur Computer Group of New Jersey Teacher of electronics and computer programming at a community college Author of 10 books (working on the 1 1th) and several hundred magazine articles in electronics and com- puting Received an award for "The Outstanding Amateur Computer Hobbyist of 1976" in Atlantic City by Personal Computing 1976 show, and BYTE. How to Get Started A discussion of typical home computer systems and their essential hardware and software components. John H. Dilks III . . . Saturday 1 PM and Sunday 2 PM President of Personal Computing Inc. and tradefair director of the Personal Computing shows in Atlantic City in 1976 and 1977. Experience with various computer systems since 1962. Employed by Western Electric Co. Inc. , division of the Bell System. Member of the Amateur Computer Group of New Jersey and of the Philadelphia Area Computer Society. Teaches microcomputer courses in an adult evening program at a vocational school. Innovative and Unusual Computer Applications for the Home. Discussion of "far-out" applications of microcomputers and electronic technology for home use, such as a child locator and warning device, a home security system, etc. Slide demonstration. Robert S. Jones . . . Friday 7 PM and Saturday 2 PM Publisher of Interface Age Magazine Prior experience in sales and marketing for the semiconductor industry, including Intel, National Semiconductor and Analog Devices Inc. Personal Computing for the Business Man Evaluating business applications for micro computers, including slides showing selected applications. Louis E. Frenzel . . . Saturday 3 PM and Sunday 3 PM Director of Computer Products at Heath Company, involved in the planning of new computer products. Prior to Heath, with McGraw Hill in product planning and design of educational electronic kits. Prior experience including computer engineering for eight years Author of several books, home study courses and numerous magazine articles in electronics and com- puters. Received a BS in electronics from the University of Houston and a MEd from the University of Maryland How to Build Personal Computer Kits Tips for successful kit construction. Benefits of kit products for the personal computer user. Including slides showing selected computer kits. Carl Helmers . . . Saturday 4 PM and Sunday 4 PM Editor-in-Chief and co-founder of BYTE magazine. Obtained computing experience as a personal way to accomplish artistic and technological goals in music. Graduated in 1970 with a BS in Physics from the University of Rochester, NY. Worked for several years at Intermetrics, Inc. in Cambridge, Massachusetts on the NASA Space Shuttle Project. Prior to working with BYTE, publication of a small computer newsletter on a part-time basis. ^ r Computers and Music How to create music with computers. Problems of performing electronic music, music under computer program control and computer music in conjunction with traditional instruments. Illustrations and ex- amples from personal experience. Jack L. Davies . . . Friday 8 PM and Saturday 5 PM President of Pan Atlantic Computer Systems GmbH, a distributor of various micro computer systems in Europe. Extensive experience in using minicomputers and microcomputers in the US Military Schools in Europe. Designed and developed numerous games and educational programs for students in these schools. Microcomputers in Education Discussion of the many possibilities of using microcomputer systems in schools. Effect of personal com- puters on students. David Fylstra . . . Saturday 6 PM and Sunday 5 PM Member of the research staff of the Telecommunications Sciences Center at Stanford Research Institute for more than two years. Specialized in microcomputer software and computer simulation of speech pro- cessing systems. Graduated in 1974 with a BA in English and Psychology, Stanford University, Phi Beta Kappa. Active in the research on communication systems and devices for the deaf. Speech Analysis and Synthesis for the Amateur Using the personal computer as a device to analyze the acoustical foundations of speech and to formulate rules for the control of the speech synthesizer. Max Mathews Ph.D. . . . Friday 9 PM and Saturday 7 PM Director of Acoustical and Behavioral Research, Bell Labs Author of The Technology of Computer Music, and numerous articles. Scientific Advisor to the Institute for Research and Coordination of Acoustics and Music (IRCAM) Dr. Mathews is often regarded as the "Father of Computer Music" Pure Digital and Real Time Music Synthesis The use of the digital computer as a musical instrument with which composers and performers create and play music. Slide and tape demonstration. Carl L. Holder . . . Saturday 8 AM and Sunday 6 PM Director of Product Management, Planning and Communications at Information Terminals Corp. for five years. Prior experience, including Memorex Corp., in the area of magnetic media development and testing. Present and Future Storage Devices Survey and discussion of current devices and media, including latest technological developments like the charge coupled devices and magnetic bubble memories. Costs, advantages and disadvantages of these devices for the personal computer user. Accompanied by slides. DAILY TUTORIALS There will be two tutorials offered each day, one aimed at those participants who have little or no experience with microprocessors, and the other for those already experienced ■with microprocessor systems. BASIC COURSES 1. Development of Microcomputer Systems for Business Use Sy Ratner, Citibank, N.A. — system design concepts — economic efficacy of microcomputers versus large centralized computer systems — distributed processing definitions — advantages and problem areas — network design and architecture — data communications aspects — case study: design of a stand-alone workstation for data en- try and retrieval 2. Development of Microcomputer Systems for Home Use Cary Ringel, Con Edison — survey of simple microcomputer control systems for home use — selection of hardware: IC's, boards, kits, development systems — programming and software aids — interfacing: A/D and D/A conversion — examples: design of a home control system; microcomputers for a music synthesizer; computer TV games. — case study: use of the Motorola 6800 in design of a microcom- puter system 3. Survey and Comparison of Microprocessors Donald Lewi's, Standard Microsystems Inc. and other speakers — definitions and distinctions between ALU-chips, controllers, microprocessors, microcomputers — current applications — microprocessor architectures (bit-slice, 4-bit, 8-bit, 16-bit. minicomputer- type) — vendor survey — performance evaluation and criteria for selection INTERMEDIATE/ADVANCED COURSES 4. Microprocessor Interfacing Donald Lewis, Standard Microsystems Inc. — interface components (peripheral interface chips, UARTS, etc.) — interface standards (IEEE 488, RE232C, S-100. etc.) — interfacing to keyboards — interfacing to casette and floppy disk drives — interfacing to display devices — case study: how to design a CRT terminal 5. Microprocessor Programming and Software Donald Lewis, Standard Microsystems Inc. — software design: flow-charting, setting breakpoints, documentation, etc. — assembly language for the Intel 8080, 8085, Z-80. Motorola 6800 — instruction types and addressing techniques — use of the stack — interrupt handling and direct memory access (DMA) — software development aids — high level languages for microcomputers 6. Technology Analysis and Forecast of Future Microprocessor Structures Daniel R. McGlynn, U.S. Philips Corp. and Will Mathys, MOS Technology Inc. — emergence of specialized computational elements (SCE) ■ — architectural evolution (stack processors, reconfigurable ar- chitectures, multi-level logic) — resource management techniques — software evolution (nano-programming, extensible instruc- tion sets, structured programming modules, very-high-level languages) — evolution of semiconductor technology of microprocessors — microprocessor architecture at the chip level — case studies: design of MOS Technology's new 8-bit and 16-bit processors J Personal Computing Expo to be produced by H.A. Bruno & Associates H.A. Bruno & Associates, Inc., has been prominent in the exposition and promotion fields since 1923. Highly skilled in the production and promotion of consumer and trade shows, the company currently promotes the American Energy Expo, the National Boat Show, Auto Expo/New York. Promotion assistance also is current- ly rendered to the National Computer Conference and the Triennial IFIPS Congress in Toronto. The show producer has promoted successful shows in the New York Coliseum every year since the building opened in 1957. Staff personnel are thoroughly familiar with the building, its services, management and labor. Interesting, educational exhibits of Personal Micro Computers The lectures and tutorials are not just theory! You will be able to see a multitude of micro computers. Try out various demonstrations: fascinating games, even in color; small business applications; computer produced speech; music; color graphics; and many more. Micro computers are not only small and portable, also you will need only a "micro budget" to be able to take them home. Show Hours and Admission Personal Computing Expo hours are as follows: Friday, Oct. 28 — Noon to 10 p.m. Sat. Oct. 29 — 10a.m. to 10p.m. Sunday, Oct. 30 — Noon to 7 p.m. General Admission: $5.00 (includes free BYTE lec- tures) per day. Two-day Tickets: $9.00 (advance sale only) Three-day tickets: $13.00 (advance sale only) General Information You may find it advantageous to purchase two or three-day admission tickets in advance. These are available by mail only, no later than October 10, 1 977. Use coupon below. Group rates (10 or more persons) qualify for $1.00 off regular prices. Arrangements must be made by mail prior to October 10, 1977. Special arrangements have been made if you desire to stay overnight. Our headquarters hotel, the Barbizon-Plaza, is located on Central Park South, two blocks from Columbus Circle. Single rooms available at $34.00 per night; $40.00 double, plus tax. There's a weekend plan: $22.95 daily, plus tax per person, double occupancy . . includes breakfast (brunch on Sunday) and meal gratuities. Children under 14 in same room with parents, free. For hotel reservations and information, call toll free (800) 223-5493. From New York State call (800) 223-5963. For those traveling to New York by air, American Airlines offers a convenient service through ar- rangement with Personal Computing Expo. For in- formation, call toll free (800) 433-1790. In Texas the number is (800) 792-1150. From the West Coast, round trip fare via American is only $227.00. 20,000 persons are expected to attend and view the more than 200 exhibits by personal computer manufacturers and retailers. Personal Computing Expo will occupy the 4th floor of the New York Coliseum. It is located on 59th Street and Columbus Circle — the geographical center of New York City. Garage parking in the building is available. For answers to any questions pertaining to your at- tendance at Personal Computing Expo, contact the Show Manager, Ralph lanuzzi, at Area Code 212/753-4920. Advance sale of tickets available . . . Three days $ 13 Two days $ 9 . . . General Admission $ 5 MAIL THIS CONVENIENT ORDER FORM NOW! Personal Computing Expo admission is $5.00 per day. Advance reservation eliminates waiting in line. Order advance tickets with this coupon. Admission ticket includes access to exhibits, lectures and tutorials. Please send me advance registration tickets for three days, Oc- tober 28-29-30. Total cost $13.00 per person. Please send me . advance tickets for two days, October and October . Cost is $9.00 per person. Please send me advance tickets for one day, October Cost is $5.00 per person. Make all checks payable to PERSONAL COMPUTING EXPO, and mail to: Personal Computing Expo, 78 East 56th Street, New York, N.Y. 10022. Name Amount enclosed $ Address City .State. -Zip. Beck Reviews A Note About Prices in This and Other Book Reviews Readers should be a- ware that publisher's prices are subject to change with- out notice. While we check the accuracy of prices at the time book review copy is prepared, occasionally prices may have changed by the time subscribers re- ceive their B YTEs. Expanding Your Computer Library What do you do with your system? Where is all the applications software? These are questions frequently posed by people who are trying to find out about small com- puters. Aside from games, which are a challenge to write as well as play, applica- tions software seems somewhat scarce. In this article, I recommend some books that can introduce you to the world of computer applications. Most of the books discussed below contain program listings in BASIC or FORTRAN. Others do not, but are useful for the wealth of ideas or methods pre- sented. At the head of my list is a remarkable book, Scientific and Engineering Problem- Solving with the Computer, by William Ralph Bennett Jr (Prentice-Hall, NJ, 1976, hardcover, $17.95). Based on a computer course which Dr Bennett taught at Yale, the book introduces you to BASIC pro- gramming, then rapidly branches out to explore many unusual, but highly fascinating problems in various areas. Chapter headings include "Plotting and Graphic Display," "Dynamics," "Random Processes," "Wave Motion and Fourier Series," "Electronics •and Communication," and "Language" (a singularly intriguing subject; ciphers, random text generation, and computer identification of authors are some chapter subheadings). Program examples introduce you to com- puter applications in these areas, and there are do-it-yourself problems to solve. Refer- ences are given at the end of each chapter to facilitate further research. A reasonable knowledge of mathematics, such as college level calculus, is useful, but certainly not necessary to enjoy this text. Dr Bennett's writing style is refreshingly informal, and quite humorous in places. A word of warn- ing: You will be extremely frustrated if you buy this text and do not have a machine on which to experiment. Numerical methods are the mainstay of programming. Unlike analytical methods, which yield answers in terms of symbols or equations (the way you did things in algebra, trigonometry, etc), numerical methods are computer oriented, and yield digital answers. Typical numerical algorithms (a prescribed step-by-step way of carrying out calcula- tions) are used to approximate functions (trig, log, etc), solve equations, find areas and volumes (integration), or the inverse, rates of change (differentiation), solve differ- ential equations, manipulate matrices, and numerous other procedures. Though Bennett describes some numeri- cal methods, there are more detailed books on the subject. Two of the best I have encountered are Numerical Methods for Scientists and Engineers, by Richard W Hamming (McGraw-Hill, New York, 1962, hardcover, $18.50) and Numerical Methods for Digital Computers, Volumes I and 2, by Anthony Ralston and Herbert S Wilf (Wiley, New York, Volume 1, 1960; Volume 2, 1967, $17.25 and $19.25 respectively). Both of these cover algorithms for numerical procedures mentioned above, and consider- ably more. Hamming's book is a text, with descriptive chapters on each major subject. There are no program listings, but the algorithms are not terribly difficult to trans- late into a computer acceptable form. The book can be used for self-instruction, and a knowledge of calculus is helpful. Ralston and Wilf's books are more reference- oriented. It is easy to find the algorithm for your particular need. The first (earlier) volume does not contain specific program listings, though flowcharts are abundant. The second volume does have listings, mostly in FORTRAN and ALGOL. This volume also includes an introduction to programming in both FORTRAN and ALGOL, though it is somewhat out of date. Ralston and Wilf's volumes are more useful once you have some experience with numeri- cal programming. A very fine text in numerical methods is Applied Numerical Methods, by Brice Carnahan, H A Luther and James O Wilkes 102 Talk to your computer for $ 299 with SpeechLaB. Use SpeechLab to directly control any S-100 Bus Com- puter such as Sol, IMS AI, Altair and so on. SpeechLab can teach you almost as much as the Bell Laboratories know about voice recognition, voice control and computer input. SpeechLab digitizes and extracts data from speech wave form and applies pattern matching techniques to recog- nize the vocal input. Response is real time. The system features 64 bytes of storage per spoken word and can handle up to a 64 word vocabulary. And recognition after very little practice is 95 percent or better. $299" assembled and tested When we talk price every- body's skeptical. And why not? We give you a complete hardware/software system, a 275 page laboratory manual, 95 page hardware manual and high fidelity microphone. The lab manual includes 35 graded experiments with over 100 tables and graphs. In fact, it's the only introductory volume on speech recognition currently available. Software includes SpeechBasic Basic program- ming language in source and * Available in kit form for slightly less. paper tape, assembly language speech recognition program in source and paper tape, hard- ware self-test program in source and paper tape. SpeechBasic plot, correlation, recognition and advanced recognition programs are offered in source. Hard to believe, you bet. True? A Los Angeles customer says, "I love your kit!!! I have 40 boards and 2 IMSAI's and your kit was the best documented of them all. I love the way you integrated the software and hardware to- gether. I love your lab manual!' We loved those comments. They tell the story better than we ever could. The LA cus- tomer did ask who the founders of the firm were so he could relate better. They're a couple of gifted young engineers who got tired of the big firm, big tech- nology trip and decided to take a chance with a better idea. You can't get better quality You can't get more performance Sure, more complex, higher price equipment is avail- able for about 50 times more money. It won't do much more than you can do with Speech- Lab. And the quality and state-of-the-art engineering can't be any better. We use CMOS design for low power and ultimate reliability. See SpeechLab at your nearby computer store Selected computer stores have SpeechLab on display. Visit your nearest. If he doesn't have it, ask him to contact us or simply write us directly. Heuristics, Inc., Box B, 900 N. San Antonio Road Los Altos, CA 94022, Phone (415 ) 948-2542 □ Send me SpeechLab. I enclose $299. California residents add sales tax. D Send me more information. Name_ Street. City ~l State_ Zip_ Heuristics INC. Circle 132 on inquiry card. (Wiley, New York, 1969, hardcover, $21.95). This book uses solved and unsolved problems to illustrate the major concepts of numerical problem solving. Numerous useful program listings are given in FORTRAN, along with sample computer runs. Like Hamming's book, this is a text, but is less general in scope. The programs, however, make it most attractive, as it is sometimes easier to understand an algorithm when pre- sented in coded form. The problems chosen as illustrations are engineering oriented. For example, the book uses radiant interchange between plates, displacement of a cam- follower, flow in a pipe network, member forces in a plane truss, and transient behav- ior in a resonant circuit. The programs are organized as subroutines which you can easi- ly use for other purposes. Graphical presentation of data is dis- cussed in Bennett and Carnahan et al, with some program examples. For those of you with some sort of computer graphics facility, or an interest in graphics, Mathematical Elements for Computer Graphics, by David F Rogers and J Alan Adams (McGraw-Hill, New York, 1976, paperback, $9.95) pro- vides an excellent software "how-to" (unless you have a system with hardware graphics functions). The book has chapters for each major graphic function: rotate, translate, reflect, project, perspective and stereo view. A major bonus is a complete set of program listings for use in any BASIC that has true subroutine call capability (like FORTRAN). They can easily be rewritten to accommo- date other dialects of BASIC. The book is an excellent reference and text. Some knowl- edge of analytic geometry and trigonometry is helpful. While Carnahan et al briefly examine chemical engineering, a more thorough book on programming in chemistry is FORTRAN IV in Chemistry, by G Beech (Wiley, New York, 1975, hardcover, $23.50). In addition to programs for simulation of lab problems on the college levei, there is much material on theoretical chemistry (quantum and classical mechanics), as well as practical lab problems. These problems are comple- mented by FORTRAN listings and sample runs. This is a specific text, and if your interest is in chemistry, you might easily find a computer application based on the material in this book. Topics include: numerical methods, kinetic and thermal problems, spectrometry, atomic and molecu- lar orbital theory, and data acquisition in chemistry. Familiarity with the noncom- puter approaches to chemistry problems and a knowledge of FORTRAN are useful in reading this book. Bennett, Carnahan et al, and Beech have chapters devoted to statistics, an area in which the computer has proved of inesti- mable value. Market analysis, reliability testing, election results projections, and even scholastic testing would be nearly impossible without the computer. The basic programs are relatively easy to write, but the more advanced techniques, including analysis of variance and factor analysis, are considerably more complex. Two books serve as excellent guides to statistics by computer. Biometry, the Prin- ciples & Practice of Statistics in Biological Research, by Robert R Sokal and F James Rohlf (W H Freeman, 1969, hardcover, $18.50) is a textbook of statistical method- ology. It is well written and clear, and as an added feature includes a complete library of statistics programs in FORTRAN. These are all subroutines which you can assemble to perform the task at hand. The book is oriented to biological research, but the methods are easily adapted to other situations. FORTRAN Programming for the Beha- vioral Sciences, by Donald J Veldman (Holt, Rinehart and Winston, New York, 1967, paperback, $5.98) is not as thorough as Sokal and Rohlf, but is more concise. It has a chapter devoted to learning FORTRAN, and a set of statistics programs in FORTRAN. These two books assume a knowledge of mathematics through ele- mentary calculus, but the mathematical dif- ficulty varies with the particular topic. These texts have served me well, and I have even been able to earn some extra income by doing statistical analysis on research data. Believe it or not, there is a large number of people who still do statistical calculations on nonprogrammable calculators. A book related to my field of endeavor is Computer Techniques in Biomedicine and Medicine, edited by Enoch Haga (Auerbach, Philadelphia, 1973, hardcover, $24.95). This collection of articles is divided into two major parts: simulation and modeling, and data acquisition and management. The ar- ticles vary in complexity and specificity. Topics include simulation with applications in cardiovascular and pharmacologic research, database accumulation, image processing, and the role and potential of minicomputers in medicine. Some topics contain sample pro- gram listings and flow diagrams. Other top- ics, especially those on data base management, are quite general, but applications would be highly dependent on the particular data base. The book serves as a good starting point for exploring the rapidly growing field of bio- medical computing. 104 Circle 133 on inquiry card This has been a brief introduction to selected books on applications programming. Because my involvement in computing is oriented to scientific applications, the books I've covered here are mostly science and engineering tomes. The amount of FORTRAN usage in these books is also large, but it has been my personal experience that FORTRAN and BASIC can be directly translated, if attention is paid to proper language rules. An elementary text on FORTRAN is always handy to have as a reference for syntax. If you know BASIC, FORTRAN is not at all difficult to learn. The books mentioned are not inexpen- sive, but they serve as good investments if they help you solve a problem, or pose a problem you become interested in solving. I would encourage you to examine these books, if you can, before you buy them. A well stocked college science or engineering library should have many of them available. This review might also serve to encourage you to write about your favorite computer books." Steven C Horii MD 40 Waterside Plaza, 15F New York NY 10010 PCC'S Reference Book of Personal and Home Computing Ever try to find the addresses of some manufacturers of, say, tape cassette or floppy disk interfaces for micros? Frustrat- ing, isn't it? Well PCC has done something about it. This book lists hundreds of companies and stores selling hardware, software, and services. Survey articles on software, hardware, kits, applications and the future for the experienced and the not-so-experienced user of micros. Also included in this edi- tion are bibliographies for further reference, book reviews, and an index of the articles from the major hobbyist maga- zines. All for the low price of $4.95, plus 50 cents postage. Available through: BITS, Inc. 70 Main Street Peterborough l\IH 03458 Master Charge and BankAmericard Welcome. In unusual cases, processing may exceed 30 days. PROM: Space for 2K bytes, 1702A. Store bootstrap loaders and monitors. RAM: 1K bytes, 2102LIPC, 450 ns, low power. NO NEED TO RELOCATE STACK WHEN ADDING MEMORY. CIRCUITRY: Replaces memory write logic on ALTAIR™ and Imsai front panels. REGULATORS: Two regulators. No need for regulated power supply. JUMP-ON-RESET: PROM program execu- tion starts at any location in memory without interfering with programs in any other por- tion of memory. S-100 BUS; +8 and -16 VDC; P/C BOARD SOLDER MASKED BOTH SIDES WITH PLATED THROUGH HOLES; ALL SOCKETS INCLUDED. OPTIONAL FIRMWARE: 512 byte monitor for use with Tarbell tape interface on 2, 1702A PROMs. PROM/RAM KIT WITHOUT PROMS $89 + OPTION A-SIORev. 1 or3P+ S $129 + OPTION B-2SIO(MITS) $129 + OPTION C-SIO 2 (IMSAI) $129 + OPTION D- Poly Video Interface $159 (Includes Video Driver) California residents please add 6% tax. MMEDIATE DELIVERY FROM FACTORY OR YOUR LOCAL COMPUTER STORE T.M. £03 G3APHC inc. ELD ROAD, SUITE F • WESTLAKE VILLAGE, CA 91361 • (805) 497-0733 105 Circle 134 on inquiry card. Continued from page 17 ation returns the result 15. This dual use of a symbol, like the concept of valence applied to functions, may seem strange and even confusing upon first encounter. Familiarity soon reveals that adoption of this procedure is a source of considerable economy in the language. There are only a few operators in APL so far, but they impart great power to the language. Implementation of new opera- tors will likely highlight subsequent develop- ment of this exciting language. Some insight into the evolution of APL has been provided by the innovator of that language, Kenneth Iverson, and his collabo- rators. When the history of its development is widely appreciated, APL will be seen as one of the great intellectual achievements of this century. Iverson is a mathematician who is keenly aware of inconsistencies that have long plagued his discipline and is eager to avoid those blemishes in APL. Nevertheless, the distinction drawn here between function and operator was not made in the earliest versions of the language. Only after opera- tors were recognized as "composite func- tions" did the matter receive the attention that brought it into line with the generality that is a basic theme of the language. Arnold certainly is not alone in using the older terminology. He cites a widely used textbook that deals rather lamely with this point. A more recent textbook on the lan- guage (one author a mathematician and prominent user of APL) uses the terms function and operator interchangeably and appears determined to promote the con- fusion that originators of the language have been at pains to dispel. BIBLIOGRAPHY 1. Falkoff, A D and K E Iverson, "The Design of APL," IBM J Res Develop 17:324-334, 1973. 2. Forsythe, G, "What to Do Until the Com- puter Scientist Comes," Amer Math Monthly 75:454^62, 1968. 3. Iverson, K E, "APL in Exposition," Tech Rept 320-3010 IBM Philadelphia Scientific Center, 1972. A section of this excellent little volume entitled "The Computer: A Device for the Automatic Execution of Algorithms" is particularly appropriate to your journal and should be reprinted if at all possible. An anonymous contributor to Scientific Research (1969) posed two interesting questions: "To what extent are scientists beginning to use programming languages to describe or model their problems in pref- erence to normal mathematics?" "Is it possible that researchers will some day automatically think in FORTRAN or BASIC instead of algebra or calculus?" Positive answers to those questions could scarcely have been framed then, even by enthusiastic users of those languages. If those enquiries now be made of APL, there can be little doubt of affirmative answers. As Forsythe (1968) pointed out, "The most valuable acquisitions in a scientific or technical education are the general-purpose mental tools that remain serviceable for a lifetime." APL certainly fits more com- fortably into that category than does any other language by which we now try to instruct computers. APL is sometimes referred to as Iverson's notation; hence it is appropriate to recall a remark attrib- uted to Bertrand Russell: "A good nota- tion has subtlety and suggestiveness which at times make it seem almost like a live teacher." That notion seems to have been crystallized in APL. Iverson will eventually be recognized as the teacher of the century. The story of APL includes a lesson that our overstressed society might do well to ponder, namely the importance of providing some shelter from expediency for the de- velopment of any significantly new idea. The small team initially involved in design and implementation of APL were not subject to strong duress to get their kite in the air. They did not have to settle for the com- promises by which committees have pro- duced such regrettable languages as say PL/I. Instead, they were able to indulge the luxury of Quaker consensus in reaching important decisions. Our greatest debt to earlier computer languages may well prove to be the lebensraum they provided for the development of APL. This remarkable lan- guage will undoubtedly undergo considerable further evolution, some of which will surely be influenced by its use with microcom- puters. It must be implemented throughout the computer world. Those involved with its development and implementation should consider its history very carefully. Our thanks to Mr Anthony for his com- ments about Mark Arnold's article and about the present and future status of APL. ■ 106 FREE YOURSELF FROM THE ONE BYTE WORLD. MOVE UP TO THE TWO BYTE TEXAS INSTRUMENTS TMS-9900 16-BIT MICROPROCESSOR — WITH OUR — "SUPER STARTER SYSTEM" — TEC-9900-SS. SHOWN ABOVE, FEATURES HARDWARE MULTIPLY AND DIVIDE. 69 MINI-COMPUTER INSTRUCTIONS, 7 ADDRESSING MODES, EXPANDABLE TO A FULL 65K BYTES; MONITOR, TMS 9900 CPU, RAM, P-ROM, E-PROM, PROGRAMMER ALL ON ONE P-C BOARD BASIC OPERATING SYSTEM AS LOW AS $299 UNASSEMBLED $399 ASSEMBLED AND TESTED EXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35, TO LEARN MORE . . JUST TEAR OFF A PIECE OF THIS AD. PIN TO YOUR LETTERHEAD & RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893 TO RECEIVE FREE INFO-PACKAGE. —DESIGN & TECH SUPPORT BY ROSSE CORP. Circle 1 1 3 on inquiry card. TECHNICO INCORPORATED 9130 Red Branch Rd. Columbia, Md. 21045 301-596-4100 THE TECHNOLOGY LEADER IN ELECTRONICS DISTRIBUTION Why People Get Hooked on APL Allen Atwood III Rm 2-501 472 Memorial Dr Cambridge MA 02139 The first question one must ask when thinking about the implementa- tion of a new language is whether or not the lan- guage is capable of solving the problems commonly solved on that machine. APL, A Programming Language, is one of the most powerful interactive languages in use today. Its rich set of operators is ori- ented toward operating on groups of data with the same freedom that other languages operate on single data items. These op- erators give the language the breadth to han- dle an amazingly wide range of computing problems. This article explores APL's ap- plicability to personal computing, and looks at some of the ways that APL can be prac- tically implemented on the small system. Particular attention is given to the problem of storage management. References in the article to the internal workings of an APL interpreter for a microcomputer pertain to the APL interpreter currently under development by the Microsoft Company for use with the Intel 8080 chip. This interpreter (being implemented as this is written) will include a significant subset of APL, designed to contain most of the features available on large APL systems, except for those parts of the language which pertain to a multiuser environment. The first question one must ask when thinking about the implementation of a new language on a machine is whether or not the language is capable of solving the prob- lems commonly solved on that machine. With APL, the answer is a qualified yes. Since the language is interpretive, it will never be as fast or as efficient as assembly language or a true compiler; one would not want to refresh a display from memory using APL. On the other hand, APL is a far less cumbersome programming language than assembly language. Clearly then, APL can be used to solve the problems (and play the games) that are presently implemented with BASIC, an area where APL excels. As an interactive system, like BASIC, APL is easy to program with and debug, and it is also considerably faster than BASIC. The heart of APL's speed lies in the ability to express highly complicated algo- rithms with a few keystrokes. This gives the language a double advantage over BASIC. Part of the speed improvement will come about simply because APL programs are shorter than their BASIC counterparts. The interpreter wastes less time analyzing the program and spends more time manipulat- ing the data. The other, more subtle, speed advantage lies in the speed of the functional subroutines that are built directly into APL. As an example, consider this BASIC routine which calculates the average of the data items in the N element array A: 1000 s«o 1010 FOR 1=1 TO N 1020 S»S+A(I> 1030 NEXT I 1040 S»S/N The routine exits with S being equal to the average of the N items in the array. Now compare that with an APL routine that per- forms the same function: SH+/A)*pA Notice that the entire loop, lines 1010 thru 1030, is reduced to the expression +/. Thus BASIC, while summing up the array elements, must go through great convolu- tions to achieve the desired result, including performing the subscript calculation A(l) N times and storing the temporaries S and I in memory each pass through the loop. This involves considerable overhead, including looking up S in the symbol table every time through the loop, skipping over any remark statements left inside the loop, calling the formula evaluator to analyze the LET state- ment in line 1020 each time through the loop, etc. The BASIC routine is also fairly cumbersome to use as a subroutine, because one must be sure that the loop variable I is not confused with some important piece of data (with the same name) in the calling program. 108 APL, on the other hand, does the entire calculation in a very fast loop internal to the interpreter, keeping the sum in a special memory location (or possibly an 8080 re- gister, depending on the magnitude of the temporary). Not counting the time spent lexically analyzing the line, one would be hard pressed to write an assembly language program that performs the summation faster than APL does. The time overhead of ana- lyzing the line, while measurable, is a fairly insignificant percentage of the total time spent, both because it is only done once, and because the line is only nine characters long. APL also relieves the programmer of the possible variable conflict between the loop variable I, and another use of I in some other part of the program, since it does not use a named variable as a temporary. APL's operators can be used in combina- tion to perform considerably less trivial tasks than averaging an array. Consider the following APL function called SORT. This function sorts an array of alphanumeric strings into an order specified by another string called an "alphabet" string. SORT takes two arguments: the string array to be sorted, and the alphabet to be used during the sort. As an example, wc first assign the siring ABCDEFGHIJKLMNOPQRSTUVW XYZ to the variable ALPHABET. The request: ALPHABET SORT FOO would then cause APL to type the string array FOO sorted into normal alphabetical order. Other common permutations are easy to achieve; one could use the reverse operator (0) to gel reverse alphabetical order. In this case, the proper APL incan- tation would be: (0 ALPHABET) SORT FOO Well, what does it take to write this magical SORT in APL? The function sort is de- fined as follows: VR+-ALPHA SORT LIST;TEMP [ 1 ] TEMPH pLLSTH ALPHA*- ' ' , ALPHA) \L1ST) [2] [ 2 ] LIST<-LIST [ k LIST [ ; TEMPI ; ] [ 3 ] +2 x 1 *TEMP<-TEMP- 1 [>] H+-ALPHA LLIST1V In the first line (often called the function header) the function is declared as having two arguments which are assigned the values ALPHA and LIST during the execution of the function. TEMP is declared as a tempo- rary variable, used only inside the function, and R is declared as the value variable of the function. Thus when the function is exited the value returned will be the value of R. All four of these variables are local to the function; that is, they will be cleared. Thus any space they use will be reclaimed upon exiting the function. Also, if there were any variables with these names already in exis- tence, the old values are pushed onto the 8080 stack to be restored on exit from the function. (Actually, a pointer to the old value is pushed onto the stack, not the value itself.) This guarantees that there will be no conflicts between the function and the en- vironment from which it is called. Consider the deepest level of nested parentheses in line 1: The variable ALPHA has a string composed of one space cate- nated in front of it. This new string is first reassigned to ALPHA, and then used as the left argument of dyadic iota, with the right argument being the array (LIST) that we want to sort. This function returns a numer- ic array having the same number of rows and columns as LIST, and whose every character is replaced by the index of the matching character in ALPHA. A space would thus become a 1, because the first character of ALPHA is a space. This new numeric array is assigned to LIST, and then the shape function p (the greek letter rho), is applied to it. This returns a two clement vector whose first clement is the number of rows in LIST, and whose second element is the number of columns. The second element of the vector is selected by the indexing brack- ets, and is assigned to TEMP. TEMP thus points to the last column of LIST. Lines 2 and 3 perform the actual sort. In line 2, the entire column pointed to by TEMP is extracted by the expression LIST |; TEMP], and sorted to produce a vector of indices used to index LIST again. This has the net effect of sorting LIST based upon the column pointed to by TEMP. In line 3, TEMP is decremented and its value tested. If TEMP is nonzero (indicating that the array has not been sorted on every column), control is transferred back to line 3 for another pass. If TEMP is equal to zero, then the interpreter proceeds to line 4 where LIST is used to index ALPHA and produce a character array sorted in the proper order. When the end of the function is reached, the old values of ALPHA, LIST, TEMP and R arc restored, and the last value assigned to the sorted alphanumeric array R is returned. Because the bulk of the sort is done by the grade up and index bracket operators, the algorithm is fairly fast. It is also quite short, being less than 120 characters. When compared with a BASIC routine that per- forms a similar function (see listing 1), the APL routine seems quite short indeed. The APL tends to use large quantities of memory, reflecting its IBM/360 origins. The cause of this weakness is unfortunately also the cause of its strength: its ability to operate on groups of data. 109 100 FOB Xl-1 TO M-l FOR XS-xl-M TO N X-l EOO IF INSTR.X.l>>-INSTR> THEM IF X-LEN(XS(X1>> THEN NEXT X2.X1 ELSE X-X»l GOTO 200 ELSE IF INSTRCAS»MID$.X.I>»INSTR.X.1>> THEN SVAP xi.xscxe> NEXT X2.XI ELSE NEXT X2.X1 Listing I : A BASIC string sort. This routine is designed to take a string of characters and arrange them in alphabetical order. Compared with the corre- sponding A PL string sort (see article) this routine will typically take longer to execute and is more cumbersome to write. One of the drawbacks of A PL, however, is that it invariably takes more memory space than other high level language interpreters. BASIC sort, incidentally, is written in Altair extended BASIC; in standard BASIC it would be longer yet. This routine also demonstrates one of APL's losing features: its memory ineffi- ciency. APL tends to use memory in large quantities, reflecting its origins on the IBM/360. The cause of this weakness is unfortunately also the source of APL's strength: its ability to operate on groups of data. Instead of having single numeric temporaries inside a formula, as BASIC might, APL often designates entire arrays as temporaries. (Although BASIC can gen- erate large character temporaries during string operations, they are limited to 255 bytes in implementations such as Micro- soft's Altair BASIC.) These temporaries can consume significant amounts of mem- ory, especially if they are numeric. APL requires at least 16 decimal digits of pre- cision in its numbers, which in turn re- quire eight bytes of storage per number. The problem is aggravated by the size of the interpreter itself, which we expect will occupy around 24 K bytes if all the features of the language are implemented. Clearly, if APL is to become popular as a language among personal computer users, some way must be found to implement a practical APL interpreter on a small system. The simplest way to solve the problem is to streamline the language, eliminating features until the interpreter will take up no more than 8 K bytes or so. One could limit the size of floating point data to four bytes rather than eight. Limiting arrays to one dimension, and thus eliminating most of the operators designed to operate on multidi- mentional arrays, would be a big saving. Eliminating the composite operators (except for the most important one, reduction) would save a lot of storage in the inter- preter. Once this point is reached, it would prob- ably be better to forget about APL entirely and go back to BASIC, because all that re- mains is a simple desk calculator style lan- The heart of APL's speed lies in its ability to ex- press highly complicated algorithms with a few keystrokes. guage with a strange character set and a peculiar order of evaluation. The heart of the language is its ability to manipulate arrays, and when this feature disappears the language loses much of its usefulness. It might seem more reasonable to elim- inate only those operators, like matrix inner and outer products, which appear to be useful only to mathematicians; but as one becomes more familiar with APL, these functions become increasingly more useful in everyday applications. Matrix inner pro- duct, for example, is one of the most power- ful tools in the language for extracting information from a stored array. Using matrix inner product, the entire APL sorting function can be reduced to only one line of code: VR+ALPHA S0RT1 LIST [ 1 ] R+LIST [ 4( ( ' ■ , ALPHA ) \LIST)+.x0((pALPHA)+l)* 1 +\(pLIST) [2] ; ] This algorithm (from Gillman and Rose, APL 360: An Interactive Approach, John Wiley and Sons, New York, 1970) performs only one numeric sort, as opposed to SORT, which performs a numeric sort for each col- umn of the array. Although this code is fairly obscure (especially to a person used to BASIC or FORTRAN), one becomes more comfortable with this sort of coding through time. I feel that the efforts of an implementor of an 8080 APL interpreter should be di- rected toward writing a full set of APL that is reasonably memory efficient. This is not as hard as it seems: There are a few features that can be built into the interpreter which can reduce the memory requirements of an APL function down to a reasonable level. The first problem to solve is the number of bits of resolution needed for accurate data representation. If a person is doing floating point calculations, he or she should have a full 16 digits of precision available (ie: eight bytes of information per numeric value). On the other hand, it is quite ex- travagant to use 64 bits for storing Boolean or character data. Also, operations on inte- ger data (such as loop variables, counters, etc) should be carried out using a small, reasonably fast integer format, rather than a slow floating point format. For example, in Microsoft's upcoming APL interpreter, we have chosen to store data in four different formats: 1 byte un- signed integer, 2 and 4 byte signed integer, and 8 byte floating point. These types arc transparent to the user, and any necessary 110 AUERBACH Publishers, exclusive distributor for INFOTECH INTERNATIONAL introduces the COMPUTER STATE OF THE ART REPORTS 1977 Series a unique blend of theory and practice in computing Computer professional . . . Keeping up-to-date and in touch with your ever-changing technology is as close as the COMPUTER STATE OF THE ART REPORTS from INFOTECH INTERNATIONAL. These unique publications are: • Complete in-depth surveys of all current, critical and dynamic areas of computing • Capable of influencing the nature and direction of computing throughout the next decade • Seminal works in their own fields Drawing on the finest and most erudite sources in the world, each INFOTECH Report is a comprehensive, analytical study of the most current and critical technical information in the data processing field today. The new 1977 Series covers . . . 33. Minicomputer Systems 34. Software Engineering Techniques 35. Microprocessors 36. On-Line Data Bases 37. Software Reliability 38. Future Systems 39. Distributed Processing 40. Performance Modeling and Prediction Emanating from international conferences on advanced computer technology, each Report includes . . . A unique method of Analysis — a distillation and synthesis drawn from formal presentations and question and answer sessions of in-depth seminars. Invited Papers — especially commissioned from worldwide leading experts in their fields — which have been selected to give comprehensive coverage to each Report's area of expertise. Bibliography and Indexes. Published in one calendar year, these eight information-filled Reports are just $1295 . . . individual Reports are $215 each. Also available at these prices are the 1974/5 Series and the 1976 Series. AUERBACH Publishers Inc., a leading source of data processing and data communications material and information, is proud to make these Reports available to you, and urge you to join most major computing organizations worldwide who are taking advantage of the valuable information service. Save money and time and stay right up-to-date with INFOTECH INTERNATIONAL'S COMPUTER STATE OF THE ART REPORTS. To order your Reports or receive your free 28 page catalogue . . . fill out this coupon and mail to . . . AUERBACH ® AUERBACH Publishers Inc. 6560 North Park Drive Pennsauken. N.J. 08109 INFOTECH COMPUTER STATE OF THE ART REPORTS ORDER FORM Name/Title Company Address City State Zip Phone (Area Code) Aulhonzmg Signature □ Send me the 1977 Series at $1295. □ Send me the following Individual Reports at $215: □ Please send my tree 28 page catalogue about INFOTECH State of the Art Reports. Check Enclosed: P.O. Number: . Make Checks Payable to: AUERBACH Publishers Inc. Do you currently subscribe to any AUERBACH services? □ □ W*SL Yes No ^■wJs\ AUERBACH Publishers Inc., 6560 North Park Drive, AUERBACH Pennsauken. NJ, 08109. B/777 Circle 136 on inquiry card you can get llTIs conversions between types are performed automatically. If one adds two arrays, for example, there is no need to worry about the best format for the arrays or for the result. This multiformat scheme will also tend to increase the speed of the interpreter, since operations between integers are much faster than operations between floating numbers. For this multiformat scheme to be effec- tive, the interpreter must be as stingy as possible in converting to a larger format when deciding on the size of the result of a calculation. If two arrays are being multiplied, for example, the interpreter will assume that the size of the resulting array will be the same as that of the larger operand. Only when this assumption fails (ie: when the product of two elements of the arrays overflows the result type) does the interpreter increase the size of the result. As careful as the interpreter is, occa- sionally a variable is stored in an overly large format. This can happen if the square root is taken of an array whose elements are all perfect squares, for example. To solve this problem the interpreter scans all data during terminal input waits and converts each one to the smallest format that can hold it. Another storage saver that can be built into an interpreter is a careful examination of each statement to eliminate unneeded temporaries. For example, consider this APL statement: The simplest way to operate on this state- ment would be to make copies of both X and Y, multiply them, and then store the result in a new location pointed to by Z. While this is an acceptable way of handling scalars, it is wasteful to the extreme if X and Y are large arrays. This statement should use only enough memory to hold the result and the two operands. No tem- poraries are necessary. Accomplishing this is not difficult when the interpreter knows how large the result will be; it is a more diffi- cult problem when the type of the result is uncertain. If both X and Y are stored in a 1 byte format, for example, Z might require either one or two bytes per value depending on the contents of X and Y. Since the final size of the result cannot be determined until the last elements of the arrays are multiplied together, it might seem necessary to go back and start again using a 2 byte multiply routine!. A more sane solution, though, is to go back and convert all previous results from 1 byte to 2 byte format, and then continue from 112 Circle 138 on inquiry card. the point of overflow using 2 byte multiply. Since upward type conversion is very fast, the overhead oh overflow will be small. Two other ways of saving storage are worth mentioning: data sharing between variables, and the overwriting of temporary results. Data sharing, the more difficult of two to implement, is a method of saving storage by keeping as few copies as possible of any one set of data. For example, if A is an array, then the statement B *- A should not copy any data: B and A should point to the same array in memory. The sharing will continue until either A or B is modified, at which point the interpreter is forced to make an extra copy of the data. Although this example is rather contrived, the tech- nique can be of great value when calling functions. Only rarely does a function modify its arguments (SORT being a notable exception), so there is little point in making unnecessary extra copies of them. Data shar- ing has the additional advantage of requiring very little overhead, just one byte per data structure counting the number of variables pointing toward it. The technique of overwriting previous results can also be a big scratch memory saver. Consider this APL statement: B ■*■ r 1 + A Let us assume that A is an array stored in floating point format. Working from right to left, the interpreter adds 1 to A, then takes the reciprocal of that result and assigns it to B. At first glance it might seem that this statement requires two temporaries: a place to store 1 + A, and a place to store the recip- rocal of 1 + A. The interpreter can avoid creating the second of these temporaries by writing the result of the reciprocal operator over the 1 + A temporary. The only remain- ing problem is finding a quick way to dis- tinguish between a "true" array, pointed to by a named variable, and a temporary array. The solution is to look at the reference count of the array: If it is zero, then no vari- able is pointing toward it and it can be safely destroyed. No matter how careful a programmer is, or how many tricks he or she builds into an interpreter, there is no way of avoiding the fact that implementing a powerful language like APL on a small computer will take a lot of memory, certainly more than a BASIC interpreter. As I consider all of APL's useful features (and the plummeting of memory prices), I feel sure that APL will become one of the most popular languages among small system enthusiasts. APL programs are short and easy to understand once you are familiar with the Greek character set." IBM SELECTRIC TYPEWRITER INPUT OUTPUT CONVERSION KIT Easy to install on any IBM Selectric I and II, providing quality hard copy output for all microprocessor devices. PRICE .... $395 6DITYPER SYSTEMS CORPORATION A SUBSIDIARY OF TYCOM CORPORATION 26 Just Road, Fairfield. New Jersey 07006 [201)227-4141 The @ fabulous Phi-Deck family of 5 cassette transports Una&lylUU in quantities of 10 Featuring: ■ Die-cast frames • Remote controllable • Precise, fast head engage/disengage • Quick braking • Search FF/rewind 120 ips • Speed ranges from .4 to 20 ips Electronic packages and mag heads for most applications For application in: 1. Micro processing 2. Data recording/logging/storage 3. Programming 4. Instrumentation 5. Industrial Control 6. RS-232 Data storage 7. Security/automatic warning systems 8. Test applications 9. Audio visual/education 10. Telephone interconnect 11. Hi-Fi 12. Point of sale a Clnplel Incorporated b 4605 N. Stiles P.O. Box 18209 ■ Oklahoma City, Oklahoma 73118 (405) 521-9000 □ I am interested in application no □ Have Representative call □ Send application notes Name Title Company Name Address City I Phone Number State Zip. 113 Circle 139 on inquiry card. An 8 Digit Hexadecimal Readout R R Burns 17502 Teachers Av Irvine CA 92714 Table 7 .' The truth table of the read only memory that is used for the display. With this table it is pos- sible to have a separate, dis tinguish able ch arac ter for each of the hexadeci- mal digits. While working or playing with a micro- processor the logic state of many lines must be studied simultaneously in order to under- stand and debug the system. Typically, 16 address lines, eight data lines and possibly some IO lines are of interest. Each line can be individually checked with a meter or oscilloscope, but it is much more convenient Hexadecimal Decoder b a f g e d c segment Address 7654321 bit 00 1110 111 l_ 01 10 1 I ' I 02 110 1110 C 03 110 10 11 1 — l _l 04 10 110 1 l_l 1 05 1110 11 r Zl 06 111111 r 07 110 1 i 08 1111111 i — i 09 11110 1 C| 0A 111110 1 'n i i 0B 11111 i_i OC 110 110 r 0D 10 1111 ■d 0E 111110 a OF 11110 F 10 All zeros blank to 1F to measure the states of the lines in parallel. Most microprocessor front panels have many LED indicators to simultaneously read out the address and data lines. Since microprocessors are byte oriented machines, hexadecimal digits are often used when writing code. After countless mistakes decoding data and address lines, I knew I needed an automatic method to translate the many ones and zeros to hexadecimal. The 16 hexadecimal digits to 9 and A to F can be displayed in a directly readable format using a 7 segment readout. A check of the data sheets for the common TTL binary coded decimal to 7 segment decoders, such as the 7447, showed none display the letters for inputs greater than nine. Although the dis- play may be unique for each input, a directly readable digit is required or the system is not much of an improvement over individual lamps. A simple solution is to build a custom decoder by burning part of an 8 bit by 32 word bipolar programmable read only mem- ory. The hexadecimal digit to be displayed provides four of the five address bits that determine the decoder's output. Seven of the eight output bits are used to turn on or off the appropriate segments of an LED readout. Table 1 shows the truth table for the decoder. It can be programmed using methods such as those described on page 66 of the November 1975 BYTE or by the distributor at the time of purchase. The fifth input, highest order bit, is grounded since only half of the read only memory is needed to hold the hexadecimal 7 segment code. The eighth output bit is also unused. It could be used to light the decimal point during display of input values greater than nine to emphasize the hexadecimal nature of 114 fs L< DO Dl Y D2 ICI 74LSI5I D3 04 A D5 8 06 C D7 ^r n /77 B ROI C R02 D IC 6 7493A DO Dl Y D2 IC 2 D3 D4 74LSI5I D5 D6 D7 M r< DO Dl Y D2 IC 3 __ 74LSI5I D3 D4 A D5 B D6 C D7 M 22 m Gl G2 IC 7 74154 (ALTERNATE CIRCUIT: 7442) the readout. Since only minimal confusion is present (b could be read as 6), this was not felt to be necessary. The circuit diagram is shown in figure 1. Since programmable read only memories are relatively expensive, the display is multi- plexed to reduce cost. This also results in a power savings. A 555 timer oscillates at about 1000 Hz and drives a 7493 which is used as a 3 bit counter. Its output address determines which input digit is to be dis- played by selecting the correct output from each of the 74LS151 multiplexers and also sets a 74154 decoder to drive the corre- sponding readout digit. Each 74LS151 multiplexes one bit of the eight different input digits. Low power or low power Schottky should be used to minimize line ■oi 02 -er DO Dl D2 £4 74LSI5I D3 D4 05 D6 D7 1 POWER WIRING TABLE m AO Dl Al D2 A2 D3 82S23 PROGRAMMED PER TABLE I IC DEVICE + 5V GND 1 74LSI5I 16 8 2 74LSI5I 16 8 3 74LSI5I 16 8 4 74LSI5I 16 8 5 555 8 1 6 7493A 5 10 7 74154 24 12 8 82S23 16 8 rh 2N3906 loading of the device under test. The four bits to be decoded, the outputs from the multiplexers, address the 82S23 decoder as discussed above. Common cathode 7 seg- ment LED readouts are interfaced to the decoder outputs and to the 74154 outputs using PNP and NPN transistor drivers. The component layout is not critical and the construction technique will depend on the use intended. The unit could be built as a dedicated front panel; however, since I feel that a microprocessor should be brought up with a monitor system that enables the system video display or teleprinter to serve as the front panel, 1 built the readout to be a stand alone tester. The timer circuit, transistor and resistor networks, and the output leads from the Figure I: This is the sche- matic diagram for the 8 digit hexadecimal readout. The output for the display is multiplexed to save on the cost of the relatively expensive read only mem- ory. All resistors are .25 W and are measured in ohms. 115 How to Make a Display Printed Circuit . . . The pattern below shows the typical foils for two positions of hexadecimal display fabricated at home with printed circuit techniques. This double sided board can be made by first laying out all the holes for all the displays. (A template made by marking a section of "P" pattern Vectorboard can be used to guarantee the same pattern at each position.) Then using the template or hole locations marked without the template, the set of six holes for each position is drilled with a small (eg: #60) drill. After thoroughly cleaning the board, the pattern is laid out using printed circuit resist tape, a resist pen such as the San ford's "Sharpie" marking pen available at stationery stores, or a resist paint. Both sides of the board receive this hand crafted pattern for as many positions as you care to wire up. When mounting the LED readouts, the b, c and cathode pins are bent outward to make contact with the pads on the top of the board. Due to the difficulty of removing the LED readouts after installation, testing the devices prior to soldering is a highly recommended procedure. In this figure, the patterns for only two readout sections are illustrated; the hole and circuit pattern is repeated for each additional one required. The segments are lettered near the printed circuit paths which connect them. Both patterns are viewed from the top foil looking into the printed circuit board. (TOP) ■ es: immzM-m a &b g 1 . . . ... . . m 4. .. Q : d£ -4 COMMON CATHODE CONNECTIONS. -BOTTOM FOILS - 74154 and 82S23, as well as voltage and ground, were etched on a printed circuit board. The rest of the circuit was wire- wrapped. Two 16 pin dual in line package sockets were used for the input connectors. Eight Fairchild FND-70 7 segment LED displays were mounted on a separate board in four groups of two to represent four bytes. The segments are wired in parallel. These readouts do not plug into a dual in line package socket and must be either point to point wired, or a printed circuit board must be made. The readout is simply used by connecting it to the lines of interest. The data on the lines must be stepped slowly enough to enable the data to be read. For cases where this is not possible the data could be latched on command by a strobe that selects the time of interest and then read out at leisure. Besides serving as a temporary front panel during the period when a new microproc- essor system is being brought up, the read- out is useful for later use to monitor 10 lines during program debugging sessions. It is also a very useful tool for general testing and breadboard development when several lines must be monitored. Example uses include deciphering read only memories made long ago, but left unlabeled, checking out surplus integrated circuits such as comparators, de- coders, adders, etc. It can be attached to the switches of a manual read only memory programmer to give insurance that the switches have been properly set. From my experience, it is well worth the few hours and few dollars to get together a hexadecimal readout. You will soon find it is one of the handiest tools on your bench." INTERNATIONAL DATA SYSTEMS, INC. 400 North Washington Street, Suite 200 Falls Church, Virginia 22046 USA Telephone (703) 536-7373 S100 Bus Cards (ALTAIR/IMSAI Compatible) 88-SPM Clock Module USES 88-UFC Frequency Counter Module 88-MODEM Originate/Answer MODEM GENERAL PURPOSE PERIPHERALS MCTK TSM DAC8 Morse Code Trainer/Keyer Temperature Sensing Module Eight Bit Digital to Analog Converter Your computer keeps time ol day regardless ol what program it is executing. Applications include event logging, data entry, ham radio, etc. Provision for battery backup is included Measure frequencies up to 600 MHz or period with 1/10 microsecond resolu- tion. Computer can monitor four separate inputs under software control. Use your computer to call other computer systems such as large timesharing systems. Also allows other computer terminals to "dial-up" your computer. Auto-dialer is included so your computer can call other computers under soft- ware control. Operates at 110. 134.5. 150, 300. and 600 band. Hard/Software package which allows your computer to teach Morse Code, key your transmitter, and send prestored messages. Uses "NEW CODE METHOD" for training. Use it to measure inside and/or outside temperature for computerized climate control systems, etc. Requires one eight bit TTL level latched parallel output port. Use it to produce computer music or to drive voltage controlled devices. KIT PRICE $96.00 $179.00 $245.00 $29.00 $24.00 $19.00 Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call for detailed product brochures. Circle 135 on inquiry card. 116 You should subscribe to creative Gorapatiigg today! Here's why — I. 4. 5. 7. Creative Computing will help you decide which computer is best for you. Creative's no-nonsense equipment profiles arm you with the facts before you talk to the vendor or dealer. Whether you're interested in a microcomputer kit, a mini, terminal, or programmable calculator, you'll find the evaluative information you need in Creative. Indeed, one wise hardware decision could save you the cost of a lifetime subscription! Creative Computing discusses computer applications in non- technical, understandable language. Business people who want to know what's going on in the EDP department, students who want to learn about microprocessors, hobbyists looking to make good use of home computers, or anyone concerned about the effect of the computer on society will find these and many, many more mind-expanding topics covered on the pages o) Creative Creative Computing covers com- puter education in depth. After all. that's where we got our start and so we continue to present four or five major learning activities every issue If you're a teacher Cieative will save you hours of preparation time II you re a student, you'll be way ahead of your class with Creative. And if you've already graduated you can bone up on what you missed Creative Computing carries out- standing fiction every issue. One of the best ways of exploring future scenarios of computer usage is through fiction, so Creative seeks out material from the best authors — Isaac Asimov. Fredenk Pohl, Arthur C. Clarke to name just a few. as well as many others who are destined to be the best of the next generation Creative Computings book reviews are honest and timely. We're not owned by a big book publisher to whom we owe loyalty, nor do we depend upon advertising for our revenue. Hence, not onlydoour reviews pull no punches, but we also rank order similar books (like all 34 books on the BASIC language which we reviewed last year). Creative reviews virtually every computer book of interest to educators, hobbyists. and general laypeople. even including vendor manuals and government pamphlets An extensive resource section will save you time and money. Every issue of Creative carries 40 or more short resource reviews evaluating periodicals, booklets, hardware, terminals, couplers, peripherals, software packages, organizations, dealers, and much more Every entry has a brief description, evaluation, and the name, address, and phone number of the vendor You'll save valuable time seeking out this information, much of which you'd possibly never come across. Creative Computing will provide hours of mind-expanding enter- tainment, even if you don't have a computer. Creative Computing carries 10or !2pagesof games and puzzles every issue. Most of the puzzles don't need a computer or calculator to solve; some do Naturally, the 4 or 5 new computer games (in Basic. Fortran, and APL) in every issue require access to a computer. Creative Computing gives you things to actually do with a com- puter. Home computer kit. mini, timesharing terminal — whatever your access to computer power, Creative provides thoroughly documented programs with complete listings and sample runs that you can use with minimum effort. Games, simulations. CAI, computer art — whether education or recreation is your bag. you'll find programs which you can use in Creative. A no-compromise policy of editorial excellence means every issue is of value to you. We firmly intend to be around a long time and we believe the way to do that is to publish only material of the very highest quality. We believe our readers are among the most astute, intelligent, and active people in the world. You can't afford to waste time reading imprecise, opinionated, or wordy articles and you won't find any in Creative. The price is right — only $21 for 3 years. That same S21 will buy you a pair of Star Trek walkie talkies, six direct dialed 10 minute calls between New York and Boston, 3 tankfulls of gas, or 10 cocktails at a Hilton hotel Wouldn't you rather have 18 issues of Creative Computing each containing over 85 pages of solid editorial material (including advertismq, over 100 pages per issue) Count the editorial pages in any other hobbyist or special interest magazine and compare it to Creative. Any other. 1 year subscription S8. Lifetime S300. NO RISK GUARANTEE You may cancel your subscription at any time for any reason and we will refund the balance without question _ ,,, ... _ ... . David H. Ahl. Publisher , FOR FASTER RESPONSE 800-631-8112 (In NJ, call 201-540-0445) SUBSCRIPTION ORDER FORM Type Term Individual 1-Year 3-Year Lifetime USA D $ 8 D 21 D 300 Foreign D S 11 D 30 D 400 Institutional 1-Year 3-Year D 15 □ 40 D □ 15 40 a New □ Renewal □ Cash, check, or M.O. enclo: ed nencard Card Nc Charge Expirati u Maste on date _ ! u Please bill me ($1,00 billing fee will be added) Name City State Zip Send to: Creative Computing, P.O. Box 789-M. Mo Attn: Darcy ristown. NJ 07960 *o«" e*** top values, professionalism Computerland stores are exciting, enjoyable places to visit. From the striking decor to the fun and challenge of the ComputerlandiM Game room, you'll find Computerland stores a completely new shopping experience. You can count on Computerland stores for total professional support whether your needs are those of a computer hobbiest, education, science or business user. The skilled, management- trained staff offers knowledgeable service, expert maintenance, and software guidance. breadth of products At Computerland stores the emphasis is on quality products. Major brands like Apple Computer, Cromemco, DEC, Diablo, IMSAI, Lear Siegler, Polymorphic Systems, TDL and Vector Graphic to name a few. Every store is completely stocked with tools, books and a broad range of accessories. beginners welcomed Do you want to get started with microcomputers? Are you seeking expert guidance on computers, peripherals, software? The place to visit is your nearest Computerland. now open: • 2 DeHart Street Morristown, NJ 07960 (201)539-4077 • 6840 La Cienega Blvd. Inglewood, CA 90302 (213)776-8080 • 813 B Lyndon Lane Louisville, KY 40222 (502) 425-8308 • 104 W. First Street Tustin, CA 92680 (714) 544-0542 • 24001 Via Fabricante Mission Viejo, CA 92675 (714) 770-0131 • 22634 Foothill Blvd. Hayward, CA 94542 (415)538-8080 • 4233 Convoy Street San Diego, CA 92111 (714) 560-9912 • 50 East Rand Road Arlington Heights, IL 60004 (312) 255-6488 • 225 Elmira Road Ithaca, NY 14850 (607) 277-4888 • 16065 Frederick Road (Rt 355) Rockville, MD 20850 (301)948-7676 • 1612 Niagara Falls Blvd. Buffalo, NY 14150 (716) 836-6511 opening soon: • Thousand Oaks, CA • Park Ridge, IL • Houston, TX • Huntsville, AL • Franchise Opportunities available — Contact: Ed Faber, President Computerland Corp.TM (415) 895-9363. Circle 128 on inquiry card. DO IT BETTER With the language that is best suited for your application: Business programming in COBOL, Scientific and Engineering in FORTRAN IV, Educational in BASIC, and Systems Implementation in our MACRO ASSEMBLER. With hardware that will grow with your application, and protect your software in- vestment. '..»;'. DO IT FASTER With extensive support and utility programs to speed development of your applica- tions software. These include a Diskette Operating System, Relocatable Linking Loader, Load Module Library Editor, Symbolic Debugger, and Text Editors. With a 16 bit processor that includes hardware multiply and divide, real-time clock, and peripherals like single or dual diskette subsystems with integral DMA con- troller. DO IT WITH A MicroNOVA I ■ i ■ ■H HI _-< U If you are serious about computing, call or write today. BPI Inc.. 2205 East Broadway. Suite 6. Tucson. Arizona 85719 (602) 326-6975 Qt) NOVA is a registered trademark ol Dala General Corporation, Southboro, Mas"- 1 ^ !■* "• Look What You Can Do... ...with an Edge as a Cue Ralph Tenny POB 545 Richardson TX 75080 There are hundreds of digital integrated circuit functions, some highly specialized and others perfectly general. So long as simple digital functions are involved, logic cookbooks, truth tables and functional de- scriptions explain what various integrated circuits do and show how to apply "standard" solutions to problems. But it is often possible to combine integrated circuits and other components to provide clever solutions to various problems, taking advan- tage of the characteristics of the integrated circuits. In this article, we concentrate upon several different ways to generate pulses or time delays on cue, using analog, asynchro- nous and synchronous (clocked) digital methods. input r> OUTPUT LINEAR AMPLIFIER TIME Figure 1: Comparison of the Schmitt Trigger and Linear Amplifier. The simple linear amplifier generates an output voltage which is a fixed multiple of the input voltage. The graph at the left shows what happens to a simple input waveform as amplified with a gain greater than unity. The Schmitt trigger, in contrast, has two threshold levels, VI on the rising side and V2 on the falling side of the input waveform. The output changes from a high logic level to a low logic level when the VI threshold is crossed, and returns to the high logic level when the V2 threshold is crossed in the opposite direction. In this example a 7414 circuit is used, which is an inverting Schmitt trigger. Exploring the Schmitt Trigger Schmitt trigger integrated circuits are available in both the TTL and CMOS logic families, and share a common characteristic: A property called hysteresis has been incor- porated in the circuitry between input and output, which leads to a useful time delay effect with signals that are slowly varying compared to logic speeds. This action can be illustrated by comparing a linear amplifier's response with the response of a Schmitt trigger. Figure 1a shows how the linear amplifier responds to an input waveform: It simply amplifies the signal but otherwise makes a faithful copy. In figure lb, the response of the Schmitt trigger to the same type of input waveform is illustrated. Note how the Schmitt trigger output makes no change until the input crosses a threshold VI, then makes no further change until the input voltage has dropped to a lower thres- hold, V2. The hysteresis property of the Schmitt trigger is this difference between the rising (VI) and falling (V2) change thres- holds. The use of this hysteresis to reduce noise on a signal is illustrated graphically in figure 2. The analog input signal in figure 2 would cause problems if applied to a TTL gate input. By simply taking advantage of the hysteresis levels V1 and V2 using a Schmitt trigger, the input signal is trans- formed into a much more usable signal with clean (ie: the typical 10 ns) transitions. Because the Schmitt trigger's hysteresis rejects noise so readily and has a rapid response once the threshold has been crossed, it is often used to accept slow waveforms for input to normal logic cir- 120 INPUT (ANALOG) OUTPUT T> OUTPUT (DIGITAL OR I LEVEL) ^~v i xvi /! W ~l\ / i V / > i 1 F/#we 2: One of //? •• POWER ON RESET ••SYSTEM ENABLE I — vw 1 1- spst m PUSHBUTTON 7414 KEYSTROKE DURATION + 5 SUPPLY BUS AT TURN ON TIME DIFFERENTIATED SPIKE AT C2-RI JUNCTION VI THRESHOLD OF SCHMITT TRIGGERS CHARGING CURVE OF C2 V2 THRESHOLD OF SCHMITT TRIGGERS (FOLLOWS POWER SUPPLY UP) + 5 RS fy _vw SPST PUSHBUTTON 1 7414 TL KEYSTROKE DURATION Figure 5: Using the time delay properties of a Schmitt trigger with an RC network leads to this technique to produce a power on reset signal. A master system enable (a low state) is delayed by the RC time constant of C2 being charged by R2 after the power is turned on. During the time that normal system action is disabled, the power on reset pulse is created by the positive edge trigger of the upper Schmitt circuit. The RC constants are chosen so that the system enable falling edge follows the rising edge of the power on reset by a good margin. Figure 6: The time delay properties of a Schmitt trigger and RC networks can be used to debounce switches. The common approach is to use a flip flop such as the circuit at (a). However, by using a Schmitt circuit, it is possible to get away with an SPST switch instead of the SPDT switch required for the flip flop technique. Two versions of SPST switch debouncing are shown at (b) and (c). 7414 II TJ^O- rh OUTPUT n_n_n_n" gatet ouTpT7Ln_n_n_r b Figure 7: An inverting Schmitt trigger can be used as an oscillator by feeding its output back to its input with an RC net- work as shown at (a). If a Schmitt trigger NAND gate is used instead of the inverter form, the extra input can be used to gate the oscillator on or off. 122 One of the most troublesome real world logic interface problems is switch de- bouncing. Any switch contact bounces, a little or a lot depending upon many factors. A typical way of debouncing a switch is to use two NAND (or NOR) gates in a set-reset flip flop circuit as shown in figure 6a. However, this circuit requires a single pole, double throw switch. The circuits of figures 6b and 6c show how the Schmitt trigger gate can be used to generate a debounced TTL signal from an SPST switch by using RC components to generate a time delay which is longer than the typical bounce interval for the contacts. One other place the Schmitt trigger shines is in the digital oscillator as shown in figure 7a. Besides the 7414 hex inverter package, Schmitt triggers come in several other packages including a quad NAND package called the 74132. As an oscillator, the 741 32's gating action can be used to gate the oscillator on or off using the second input as shown in figure 7b. (Note that any of the previous illustrations can be imple- mented with the 741 32 or other gates in the 7400 series of parts with Schmitt trigger inputs.) For those who may not have the appro- priate logic handbooks, let's note that the two Schmitt trigger integrated circuits men- tioned above are functionally identical to their normal TTL counterparts, with the exception of the Schmitt input property. In figure 8, these pinouts are reproduced for reference purposes. If you need a spare inverter or NAND gate, the Schmitt trigger property of any extra active sections can be ignored without side effects in most cases. VCC 48 JA 4Y 3B 3A 3Y 14 3 ] [ 12 11 _ 10 _ 9 _ 8 ~^p) ~^P) 1A 1B 1Y 2A 2B 2Y GND SN7414 SN74132 Figure 8: Some Pinouts for Review. This illustration shows the pinouts of the 7414 and 74132 Schmitt trigger packages. Note that these pinouts correspond exactly to the pinouts of the 7404 and 7400 respectively. The only difference between the standard inverter and NAND gates and the Schmitt trigger forms is the fact that the inputs have the Schmitt trigger property. These figures reproduced from pages 5-9 and 5-3 7 of the TTL Data Book for Design Engineers (available through BITS). The Schmitt trigger aspect of these gates is thus a useful bonus. Every digital kluge board will most likely require at least one Schmitt trigger integrated circuit on it for those unexpected noise and timing problems which crop up sooner or later. One other item should be noted about the TTL Schmitt triggers: Pull down resistors and feedback resistors (see the examples in the figures) should not be larger than 390 ohms. Pull up resistors can range up to about 2.2 k ohms. A Schmitt trigger can be made using positive feedback around an AND gate. 7414 tl >o — OUTPUT AP At Figure 9: If the Schmitt trigger property is needed in an existing circuit, an AND gate can often be modified as a temporary expedient. The circuit at (a) shows a 7408 AND section used as the equivalent of the Schmitt trigger in figure lb. The circuit at (b) shows the equivalent of the positive edge connector in figure 3a. v CAP VI THRESHOLD Figure 10: If the input network of the Schmitt trigger is hooked up as an integra- tor, charging the capacitor, the pulse edge out of the Schmitt circuit will be delayed. In this case, the negative edge of the 7414 output is a delayed and inverted copy of the positive edge input. 123 / TJ^O- OUTPUT m Figure II: If a delay network such as that in figure 10 is presented with a string of short pulses, there will be a certain minimum length input which will be recognized as a transition on the output. If the pulse is not long enough to charge the capacitor to the threshold level through the resistor, then there will be no change at the output. Thus the Schmitt trigger with an RC network can be used to discriminate against short pulses. Figure 9a shows the 7408 used as the basic Schmitt trigger in a circuit analogous to figure lb. Figure 9b shows the 7408 sub- stituting for the 7414 in a circuit like figure 3a. In both cases, except for the fact that the output is not inverted by the 7408, the effect is the same. Note that the unused input of the AND gate is tied to +5 V to enable the gate. Make the feedback resistor about 10 times the pull down or pull up resistor for best results. Use your own imagination to design all the previous func- tions (with the exception of the oscillator) using positive feedback and AND gates instead of Schmitt trigger circuits. By reversing the resistor and capacitor at the inputs, a Schmitt trigger will delay a signal or discriminate against narrow pulses. Figure 10 shows the delay function, and figure 1 1 shows how narrow pulses (or noise glitches) can be filtered out of a pulse string. Using Gate Propagation Delays When gates are as cheap as they are, it is sometimes more appropriate to solve pro- blems without resistors and capacitors. For example, the edge detector can be made using gate propagation delays instead of the RC time delays of a Schmitt trigger. Figure 12 shows such an edge detector. For those who may not be familiar with the principle, another common name for this circuit is a "delay oneshot." The delay oneshot works this way (referencing figure 12): The input is initially low, which forces the output high. With three inver- sions, point C will be initially high. When the input goes high, the output will go low (after one gate delay) since point C is still high. Three gate delays after the edge, point C will go low forcing the output high again after one gate delay. A similar process takes place for the NOR gate version of figure 12b. The timing diagrams of figure 12 show how the gate delays lead to the pulse effect. The name delay oneshot comes from the fact that an integrated circuit's output does not change instantaneously with its input; rather there is a finite propagation delay shown as AT in figure 12. Therefore point C goes low three propagation delays after the input went high, and the output will then be low (for figure 12a) for a short time of about 25 to 35 ns with standard TTL parts. The exact time depends upon the particular integrated circuit, its current temperature, and other physical parameters. In many applications, the exact pulse width is not important; for it is wide enough to trigger clock and edge sensitive inputs of other TTL devices such as flip flops and counters. While figure 1 2a shows a positive edge detector, using a NOR instead of a NAND as in figure 1 2b yields the negative edge detector. The circuit of figure 12c completes the picture by using an exclusive OR gate to detect both edges of the input waveform. This exclusive OR circuit is also known as a frequency doubler since it produces two pulses in each period of the input waveform. Digitally Controled Delays Is a longer pulse needed? Do you need a pulse with a programmable length? Is a special synchronous timing relationship needed? If the answer to any of these questions is yes, then use of clocked digital delay generation methods is a useful ap- proach. Figure 13 shows a combination synchro- nizer and delay generation circuit which uses a shift register. The input waveform falling edge can have any timing relationship with respect to the clock signal to the shift register. In the illustration, its change is shown occuring approximately in the middle of one phase of the clock cycle. Whenever it changes, the next active edge of the clock (marked by an upward arrow) will read the input data into the first stage of the shift register. Then seven clock periods later, the output stage of the shift register will change, since the 74164 used in this example has a total of eight stages. By using the NAND gate shown along with the inverter, the time during which the Q|_| and Q A outputs of the shift register disagree is detected to form the 124 pulsed output waveform shown in the timing diagram. Note that, assuming a I MHz clock, the width of the pulse generated by this circuit will be exactly 7 us. The relative timing of the input change and the first clocked transition of the shift register deter- mine the exact starting time of the pulse. By adding other NAND gates tied to different shift register outputs, it is possible to produce several different but synchronized pulses for the same input edge. Also, since the change information is passed from stage to stage by the clock, the output of any stage will have a change edge which is synchronized to the clock. The example of figure 13 uses a 74164 shift register; the same principle can be used with shorter or longer shift registers. Note also that to obtain a complete 7 us pulse, the input must remain low for at least 8 us (worst case relative timing). How about a oneshot with a program- mable pulse width? Figure 1 3 shows how the combination of a presettable counter with a latch gives a programmable oneshot. It operates this way: assume that no negative going input pulses have reached the circuit lately. The normal operation of the counter is to continuously count through 16 slates, giving a borrow output (called the "end pulse" in the diagrams) whenever state is reached. Thus after power is turned on, within 16 clock cycles the RS latch will have been reset such that the output line of the circuit is low. Now suppose an input pulse of arbitrary duration reaches the circuit. This pulse forces the digital pattern on the four input lines (noted C3 to CO corresponding to their binary weights) to be loaded into the counter. During the load pulse, which need not be synchronous with the clock, the counter is inhibited from counting and the RS latch is set so that the output is high. As^ soon as the load pulse ends, the counter can again count down, from the loaded state of Figure 12: Making use of the finite (typically about 10 ns) gate delays of logic circuits, it is possible to make edge detectors with- out any analog com- ponents such as resistors or capacitors; (a) is a posi- tive edge detector, (b) is a negative edge detector, and (c) is a frequency doubler, which detects both edges of a repetive logic waveform. 3 in the example. Eventually the counter reaches zero having exhausted the pro- grammed count. This causes the borrow pulse to be emitted, resetting the latch again, thus ending the generated pulse. The net length of the pulse generated is equal to the length of the input pulse plus the delay between the end of the input pulse and the end of state 3, plus 2.5 clock periods. If the input pulse is restricted to a short width (a) "t> -H>-s->>^ •OUTPUT INPUT POINT A POINT B ATI AT AT PULSE WIDTH=3 AT AT 1 AT= PROPAGATION DELAY (ASSUMED IDENTICAL HERE) (b) INPUT H>-M>-H>- sJr ^ 7404 INPUT POINT A POINT B POINT C H OUT PUT AT At PULSE W AT At! at = propagation delay (c) INPUT (ASSUMED IDENTICAL HERE) 7486 I P^ 7404 ] INPUT r i POINT A 1 POINTB 1 1 i i i POINT C i i OUTPUT 1 AT ! 'At J 1 II AT AT AT AT AT At' AT'AT AT At! AT = PROPAGATION DELAY (ASSUMED IDENTICAL HERE) 125 Figure 13: Use of digital circuits with clocked tran- sitions enables delays, edge detection and other func- tions to be done with outputs synchronized to the clock. For example, this 8 bit shift register is used to obtain a pulse width of exactly seven clock periods, synchro- nized to the clock. If the input pulse is longer than the seven clock periods plus one clock period for relative timing slop, this circuit produces a digital negative edge trigger. CLOCK CLOCK SHIFTOUT OUTPUT ftu- QA QB QC OD QE QF OG A SHIFT 74,64 REG ' STER B QH CLEAR li SHIFTOUT + 5 6 AT '<* 7iT S' CLOCK ATS= SYNCHRONIZATION DELAY, FROM INPUT CHANGE TO FIRST RISING CLOCK EDGE. 7400 Figure 14: A program- mable delay generator. This circuit generates a de- lay which is set by the inputs of the counter and the width of the trigger pulse at the input. The end of the pulse is synch- ronized with the clock, but the start of the pulse is synchronized to the input. I \- — (FOR THE C3 C2 CI CO TIMING EXAMPLE) a o Q < L> ■RS LATCH 7400 <3=r LOAD D C B A 74193 BORROW DOWN UP CLEAR END PULSE END PULSE u such as might be generated by the circuit of figure 12a, then the programmable delay is determined by the count entered but with an uncertainty of one clock period due to the possible variations in timing of the input pulse relative to the clock. This same circuit can be extended to arbitrary pulse widths by cascading the 4 bit counters. With a 1 MHz clock, for example, four 74193s could be used to programmably time periods of up to 65,535.5 ms. Hopefully your imagination has been jogged a little by the discussion of these edge related phenomena. A number of circuits which treat edge related phenomena were made by using the characteristics of some integrated circuits and a little imagination. These particular techniques may not be immediately useful; but when you need one of the functions described, they will come in handy. In your spare time, remember to study the various integrated circuits, not just the cookbook applications, but any imagina- tive extensions you can dream up." 126 ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED ONLY BY THE SIZE OF THE DISC MERGING FILES REQUIRES NO EXTRA DISC SPACE NO WAITING FOR THE DISC TO RE-PACK LONGER DISC LIFE -MORE EVEN DISC WEAR Our Basic Floppy Disc System (BFD-68) must, in all mod- esty be called superb. It comes completely assembled with a disc controller that is plug compatible with the SWTPC 6800. In fact all our products use the 6800 standard SS-50 (Smoke Signal 50) bus used by SWTPC. The cabinet and power supply are capable of handling up to 3 Shugart Mini-Floppy Drives. One drive is included in the price of the BFD-68 and others may be added easily at any time. Or you may save money by ordering the dual-drive BFD-68-2 or triple drive BFD-68-3 (pic- tured). Price: BFD-68 $795, BFD-68-2 $1169, BFD-68-3 $1539, SA-400 Drive $390. The BFD-68 includes our Disc Operating System Software. Our software provides for a soft-sectored disc format consist- ing of 128 bytes per sector, 18 sectors per track and 35 tracks per disc. The software provides direct commands to name and rename files, transfer memory to disc and disc to memory and to automatically jump to the starting location of any program loaded from disc to memory. The direct command names are: RUN, GET, GETHEX, CLOSE, SAVE, DELETE, APPEND, RE- NAME, COPY, LIST, FIND, LINK and PRINT. In addition, the Disc File Management subroutines are available to create files under your program control. A bootstrap PROM is included on the controller board to ini- tiate the Disc Operating System which loads into a 4K memory board located at 7000 or optionally at D000. Thus, you can be up and running from a cold start in just a few seconds. SUPER SOFTWARE Free patches are provided for SWTPC BASIC version 2.0 and Co-Resident Editor/ Assembler. These patches allow the SAVE and LOAD commands to work with the disc or the cassette at your option. SUPER EDITOR: Smoke Signal Broadcasting now has its own editor. It is a content oriented editor with string search and block move capability. Changes may be made by referring either to line number or string content or a combination of references. Naturally, it is designed for file transfers to and from the BFD-68. Price: SE-1 $29 on diskette. ALLOUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY ASSEMBLED. SUPER ASSEMBLER: Inputs source code from file on the BFD-68 disc system and outputs object code to disc file. As- sembly listings include alphabetized and tabulated symbol table. Price: SA-1 $29 on diskette. Complete source listing included for both editor and assem- bler. Order both for $53 and save $5. SMARTBUG — A CURE FOR MIKBUGITIS: A super smart Motorola-Mikbug replacement that preserves almost all Mik- bug entry locations so your present programs will run without modification. Uses ACIA instead of PIA and includes many additional features including a software single-step trace com- mand. A SMARTBUG listing is included and object code is provided on a 2708 free with each P-38 series board pur- chased. Source listing available separately for $19.50. NEED A FULL SIZE FLOPPY? Our P-38-FF is a plug-in inter- face card to the ICOM Frugal Floppy™. It includes all the fea- tures of the P-38-1 plus one 2708 EPROM containing the ICOM bootstrap software. Just plug the P-38-FF into your SWTPC 6800 and your ICOM into the P-38-FF and you're ready to use the Frugal Floppy and ICOM's 6800 software package. Price $299. Our P-38 is an 8K EPROM board containing room for 8 2708's. Or, you may use it to hold up to 7 2708's plus your Motorola Mikbug or Minibug II ROM. The P-38 addressing is switch selectable to any 8K location. Price $179. The P-38-1 contains all the features of the P-38 plus an inter- face to the Oliver Paper Tape Reader and our EPROM Pro- grammer. Price $229. The PS-1 Power Supply Kit provides plus and minus 16 volts required for the P-38 series boards. Also, it allows a wiring modification to be made to the 8 volt supply that will increase its output by one volt. Price $24.95. Our M-16-A is a 16K single power supply STATIC RAM mem- ory system. The M-16-A is fully buffered and requires only half the power of a similar size system using low-power 2102's. With the M-16-A, you can expand your system to 48K and still have room left for one of our EPROM boards. The M-16-A is switch selectable to any 4K starting address and hardware write protect is included. Quick delivery. Price $595. BANKAMERICARD, VISA AND MASTER CHARGE WELCOME. P.O. Box 2017, Hollywood, CA 90028* (213) 462-5652 Circle 142 on inquiry card. The Best of BYTE, Volume 1 Send now to: BYTE Interface Technical Services, Inc. 70 Main St Peterborough NH 03458 The volume we have all been waiting for! The answer to those unavailable early issues of BYTE. Best of BYTE, edited by Carl Helmers Jr and David Ahl. This 384 page book is packed with a majority of material from the first 12 issues. Included are 146 pages devoted to "Hardware" and how-to articles ranging from TV displays to joysticks to cassette interfaces, along with a section devoted to kit building which describes seven major kits. "Software and Applications" is the other side of the coin: on-line debuggers to games to a complete small business accounting system is included in this 125 page section. A section on "Theory" examines the how and why behind the circuits and programs. "Opinion" closes the book with a look ahead, as to where this new hobby is heading. It is now available through BITS Inc for only $1 1.95 and 50 cents postage. Name Address City State ^ip_ The Best of BYTE, Volume 1 D Check enclosed O Bill MC # □ Bill BA # Price of Book $ Postage, 50 cents $ Total $ Exp. Date Exp. Date Signature In unusual cases, processing may exceed 30 days. You may photocopy this page if you wish to leave your BYTE intact. All orders must be prepaid. 'J PAPERBYTES Design and Implementation of a Tiny Assembler 6800 — Microprocessor Self Assembler $7 1 n f JLi JLl JJ A 1 JUO Tiny Assembler 6800 Design and Implementation of a Microprocessor Self Assembler by Jack Emmerichs Send today to: BYTE Interface Technical Services, Inc. 70 Main St Peterborough NH 03458 Dealer inquiries invited AH orders must be prepaid. Originally described in the April and May 1977 BYTE, PAPERBYTES is now offering Jack Emmerichs' Tiny Assembler 6800. This book contains the complete Tiny Assem- bler source listing plus object code in cross assembly format (space restrictions prevented printing of this material in BYTE). A bar code version of Tiny Assembler is included for convenience, as well as reprints of Jack's two articles and additional user manual mate- rials. Tiny Assembler will run on any machine with Ml KBUG and 4K of memory starting at address 0000, and is an excellent tool for the interactive development of functional blocks for a large structured program. Add it to your 6800 system and you'll have a valuable programming aid which can free you from the drudgery of machine language. The best part is the price: only $7. Order yours today! Name Address City State -ZJE. PAPERBYTES Tiny Assembler 6800 n Check enclosed □ Bill MC # □ Bill BA # Price of Book I Postage, 35 cents I Total : Exp. Date Exp. Date Signature In unusual cases, processing may exceed 30 days. You may photocopy this page if you wish to leave your BYTE intact. No. 700 Circle 121 on inquiry card. 128 eVTE's Gits Getting Back to BASIC If .it first you don't succeed, try reentering your program! That was the order of the day at America's first large scale collegiate BASIC contest held at Taylor University, Upland IN, on April 23 1977. Taylor hosted teams from almost SO midwestern colleges during a four hour struggle to solve five problems using Taylor's DEC 11/40 timesharing system. Taylor's team came in first with DcPauw University, Greencastle IN, a close second. Additional competitions are planned for next spring throughout the country, all to be hosted by Taylor. Interested teams should contact Professor R Waldo Roth, Chairman of the Computer Science Department, Taylor University, Upland IN 46989." Trenton Computer Festival On the last weekend in April the Second Trenton Computer Festival was held at Trenton State College in Trenton NJ. The festival consisted of approxi- mately 30 exhibitors, a large flea market, and a large number of technical talks which covered such varied subjects as robots, computer music, games and applications. Several door prizes were given away; among these was a lifetime subscription to BYTE. The exuberant winner of this prize was Mel Richman o: Philadelphia PA. Mel has homebrewed a 6502-based microprocessor on OSI boards. One of Mel's uses for his system is Morse Code transmission. The system is capable of sending Morse Code at four different speeds while displaying the characters being sent on a video screen." An Intensive Short Course on Personal Computers and Microcomputer-Based Business Systems The Evening Division and Depart- ment of Mathematics and Computer Science of St John's University, Jamaica NY, has announced a series of intensive short courses on low cost personal computing. Each course is designed to provide an understanding and a well rounded body of information on suc- cessful implementation and use of small computer systems. It reviews the state of the art in current microcom- puter technology including both hard- ware and software design as well as numerous applications of personal com- puting in education, recreation, business, etc. No computer expertise is required. Any individual who has a common sense understanding of computers can actively benefit from the course. The course will meet every Tuesday from 6 to 8 PM, from September 27 through October 18, and it costs $20. For further information contact Dean Patrick Basilice, Evening Division, St John's University, Jamaica NY 11439." Attention Computer Store Owners VVRC Smith Publishing Company will begin a new tabloid business paper to be known as Computer Retailing. A com- plete prototype was mailed to pro- spective subscribers in April 1977, with the first actual issue scheduled for July. The publication will reach retail stores selling microcomputers to indi- viduals for personal use and for use in small business. Some 300 such stores exist today. This number is expected to rapidly escalate as miniaturization and cost reductions bring computers within the reach of the average person. Contact Walter Mitchell |r, WRC Smith Publish- ing Company, 1760 Peachlrce Rd NW, Atlanta GA 30357." A New Toronto Store A retail microcomputer store, Com- puter Mart, has opened at 1543 Bayview Av, Toronto, Ontario CANADA MIK 4K4. The store will feature computers for business and personal use. Systems will be available in assembled and kit form including spare parts and peripheral devices. The store will be stocked with tools and books, and demo systems will be up and running. Computer Mart will provide engineers and hobbyists the opportunity of pulling their own systems together and will also offer in- expensive computing for small business." $699 builds Equinox 100™ THE FRONTRUNNER* Equinox 100™is the 8080 CPU/S-100 Bus computer kit that's years in front of Altair* and IMSAI in design, function and front- panel programming capability. Equinox 100 is easier to build, easier to program, easier to expand in the future and complete- ly debugged right now. After all, it's from Parasitic Engineering, the leading supplier of debugging kits for the Altair* 8800. Be- fore you invest in any micro-processor kit, discover the new Equinox 100™ At $699, it's clearly The Frontrunner. Write for free specs to Parasitic Engineering, P.O. Box 6314, Albany, CA 94706. ' The Frontrunner from Parasitic Engineering!) *A trademark of MITS Inc. 129 Circle 150 on inquiry card. Processing Logical Expressions (Or, how an ingenious extension of the Bauer-Samelson Algorithm allows us to compile efficient code for expressions involving "and," "or," "not" and relations among operands.) W Douglas Maurer University Library Rm 634 George Washington University Washington DC 20052 Editor's Note: The first two articles by Dr Maurer appeared in BYTE's Feb- ruary and March 1976 issues. This article repre- sents an extension of con- cepts presented in those articles, which are avail- able in reprint form in the book Best of BYTE, Volume 1. In a previous two part article, "Processing Algebraic Expressions," we presented the Bauer-Samelson algorithm and applied it to expressions involving the arithmetic opera- tors and parentheses. Here we shall extend these ideas further and show how code can be generated in cases where relational oper- ators ("greater than," "greater than or equal," and so on) and logical operators ("and," "or," "not" and so on) may be present. Consider an IF statement (as in FORTRAN) such as: IF (A-B.NE. C*D) GO TO 87 If we are compiling code for statements, the code we want to compile in this case, assuming we have a single register machine, would be: 1 . Load A. 2. Subtract B. 3. Store in TEMP. 4. Load C. 5. Multiply by D. 6. Compare with TEMP. 7. On inequality, go to statement 87. These last two steps are subject to a certain amount of variation depending on details of the computer involved. On machines with a condition code register (e.g., an 8080 or 6800), the steps will be as above. The comparison will set the condition code register, and the specific reference to the relation (.NE. in this case) that we are interested in is made only in step 7. On machines without a condition code register, but with a set of skip instructions, step 6 will be "skip the next instruction if the given register and TEMP are equal" and step 7 will be simply "jump to statement 87." If there are no skip instructions of this kind, then step 6 will be "subtract TEMP" and step 7 will be "if nonzero, jump to statement 87." In any case, we can represent these two steps by a single function, "if unequal to TEMP, go to statement 87." This function will always require two steps, as long as there can only be one address in each instruction, because we have to make reference to two addresses here, namely the address of TEMP and the address of statement 87. Let us now consider the expression: A-B .NE. C*D as a logical expression. This means that it may include operators (such as .NE.) in addition to the standard arithmetic opera- tors. It also means that it has the value "true" (if A— B is unequal to C*D) or "false" (otherwise). We would like to process this logical expression according to the Bauer- Samelson algorithm in order to generate code like that shown above. In the remain- der of this article we will show how to do this. What Precedence for Relational Operators? Let us first consider precedence of opera- tors. Recall that in typical algebraic expres- sion processing, multiplication is defined as having a higher precedence than addition. 130 This means that in an expression such as: W*X+Y*Z we perform the multiplications first (W*X and Y*Z) before adding together the results. Because logical operations are defined as comparisons of values (e.g., the results of arithmetic operations) we must evaluate our arithmetic expressions first. Thus, it should be clear that any arithmetic operator (+,—,*, /) has higher precedence than any relational operator (.EQ., .NE., and so on). Thus in our expression: A-B.NE.C*D we have to perform the subtraction (A--B) and the multiplication (C*D) before com- paring the results to see whether they are unequal. There will never be any need to compare one relational operator with another with respect to precedence, and we can assume [hat all six relational operators (.EQ., .NE., .GT., .GE., .LT. and .LE.) have the same precedence. This allows us to start the process of generating code for our example expression. We recall that, in the Bauer-Samelson algorithm, we have two stacks, one for operands and one for opera- tors (see figure 1). The process in this case proceeds as follows: 1 . The A goes on the operand stack. 2. The minus sign goes on the operator stack. 3. The B goes on the operand stack. 4. Now we come to the .NE. which we cannot put on the operator stack because, as we mentioned before, the minus sign has higher precedence. Therefore, we must take the minus sign off the operator stack; take its operands, A and B, off the operand stack; perform the operation, which in this case means generating the code for "load A" and "subtract B"; and put the result back on the operand stack. In this case the result is simply the name of the register where the answer (A— B) was left. Let us call this register AC. 5. Now we can put .NE. on the operator stack, since the operator stack is empty. 6. The C goes on the operand stack. 7. The * goes on the operator stack, since it has higher precedence than the .NE. operator. 8. The D goes on the operand stack. 9. Now we come to the end of the expression. First we must treat the * opera- tor (at the top of the operator stack). We take it off the operator stack; take its two operands (C and D) off the operand stack; and perform the operation, which in this case means generating the code for "load C" (equation ) VARIABLE OPERATOR Figure I .' A simple diagram of the stack data constructs of the Bauer- Samelson algorithm. Take an equation and analyze it from left to right putting variables or constants in the operand stack and operators in the operator stack. With each additional item added to the stacks, the previous one is shifted down. Special attention must be paid to the operator stack because the operators must be stacked in descending precedence order. If an operator of lower precedence than the previous one is loaded into the operator stack, it will be saved, while the higher precedence operator and its corresponding operands are processed out of the stack. The newly computed value will be put into the operand stack, and the lower precedence operator will now be loaded into the operator stack. The process then continues on. When the end of the expression is reached, a cleanup process of unstacking operators and operands continues until both stacks are empty. This algorithm can be used in a compiler to generate machine code, or in an interpreter to control actual evaluations of expressions. and "multiply by D." In doing this, we will note (if wc have a single register computer) that the register AC will be overwritten. Therefore, wc will have to generate "store in TEMP" and put TEMP on the operand stack where AC was. Finally, we put the result back on the operand stack. This time the result is the register where C*D is kept. Let us assume that this is again AC (although the method would work just as easily if it were some other register); then this is put back on the operand stack. 10. Finally, we come to the .NE. opera- tor. Its two operands arc AC and TEMP. Since we arc only processing the expression A- B .NE. C*D, and not the whole statement in which it is contained, wc don't know where to jump yet (in this case it is to statement number 87). Let us, therefore, generate code which will jump to a label called TRUE if the condition is satisfied, and to a label called FALSE if it is not. Later on, 131 Figure 2a: The basic block diagram that will be used to represent the different logical operators; "alpha" and "beta" represen t generated code whereby either a true or false state is possible, depending on whether or not the con- dition in question is satis- fied. Arrows in this dia- gram indicate branches which might be taken. Figure 2b: Generating code for "alpha or beta. " If the first state is not true then the second state must be checked: ALPHA BETA •• FALSE Result Alpha Beta Branch False or True — —TRUE False or False — FALSE True or True* -TRUE True or False* — TRUE 'State need not be checked. ALPHA BETA -►TRUE ► (FALSE) these can be patched up: TRUE can be changed to statement number 87, and FALSE can be changed to be the next statement after the IF statement. So, in this case, depending on the computer we arc doing this on, we would generate: "compare with TEMP; if unequal, go to TRUE; go to FALSE" or "if equal to TEMP, skip the next instruction; go to TRUE; go to FALSE" or "subtract TEMP; if nonzero, go to TRUE; go to FALSE." We notice immediately that, no matter which of these options we take, the last instruction we generate is "go to FALSE," and this is unnecessary, because FALSE corresponds to the next instruction follow- ing the IF statement. In this case the final "go to FALSE" can simply be thrown away; however, in a more complex case we might actually need the "go to FALSE." So for the moment, let's assume that it is always generated. Logical Operators We now pass to a consideration of the logical operators "and," "or," and so on. Just as before, we start by considering questions of precedence. Suppose we have a statement such as: IF (A-B ,GT. C*D .OR. E/F .LT. G+H) GO TO 87 It is. now clear that we have three levels of precedence. That is: 1 . First we perform the arithmetic opera- tions: A-B,C*D, E/F, and G+H. 2. Then we look at the relational opera- tors (.GT. and .LT. in this case) and form the expressions A-B .GT. C*D and E/F .LT. G+H. 3. Finally, we look at the logical opera- tor (.OR.). From this it should be clear that, just as arithmetic operators have higher precedence than relational ones, relational operators have higher precedence than logical ones. Suppose that we have more than one logical operator. For example, suppose we have a statement: IF (A.LT.B .OR. C.EQ.D .AND. E.GT.F) GO TO 84 Do we consider the .AND. first? Or do wc look at the operators from left to right, which would mean considering the .OR. first? The answer to this question is not a natural result of the way wc define logical operations in the same way that it is for the arithmetic operations such as + or *. In algebra and arithmetic, when wc look at W*X+Y*Z, we know that by the ordinary rules of algebra the multiplications arc per- formed first. But, there are no "ordinary rules of algebra" for logical expressions. The only clue wc have is that "or" and "and" are often called logical sum and logical pro- duct, respectively, and are sometimes even denoted by + and * in mathematical logic. This would suggest that the "and," or the logical product, be performed first; in fact, this is the rule that is generally adopted. The logical operator "not," when it is allowed, has higher precedence than "and" and "or," while "implies," when it is allowed, gen- erally has lower precedence. In order to see how to generate object code when "or" is present, let us look at fig- ures 2a and b. In accordance with what we have just discussed, the code we are trying to generate for an expression of the form "alpha or beta" will have various jumps to TRUE and FALSE. We do not care how many jumps there are, and in a complex case there may be quite a few of these. Wc assume, however, that wc have already generated code for "alpha" and also code for "beta," and that at this point we only wish to take care of the "or" operator. The code for "alpha" comes first, followed by the code for "beta"; and the code for "alpha" 132 will have its own jumps to TRUE and FALSE, as will the code for "beta." This means that there are four possibilities: 1. A jump to TRUE from "alpha." If "alpha" is true, then clearly "alpha or beta" is true. So this can remain a jump to TRUE. 2. A jump to FALSE from "alpha." If "alpha" is false, we still have to check "beta." So this is changed into a jump to the start of the coding for "beta." 3. A jump to TRUE from "beta." If "beta" is true, then again "alpha or beta" is true, so this can remain a jump to TRUE. 4. A jump to FALSE from "beta." We don't check "beta" unless "alpha" is false, and we now know that both "alpha" and "beta" are false, so that "alpha or beta" is also false. So this can remain a jump to FALSE. From this we can sec that the only jumps we have to change (i.e., patch) arc jumps to FALSE from "alpha." Each one of these must be changed from a jump to FALSE to a jump to the start of the coding for "beta" (see figure 2b). We have shown only one jump in the figure; but, if there is more than one such jump, all of them must be changed. Now let us look at "and" (sec figure 3). The setup is exactly the same as before; we still have four possibilities; but the rules are a bit different. Taking the four possibilities one by one, we consider: 1. A jump to TRUE from "alpha." If "alpha" is true, we still have to check "beta." So this is changed into a jump to the start of the coding for "beta." 2. A jump to FALSE from "alpha." If "alpha" is false, then "alpha and beta" is false. So this can remain a jump to FALSE. 3. A jump to TRUE from "beta." By this lime we know that "alpha" is true, and if "beta" is also true, then "alpha and beta" is true. So this can remain a jump to TRUE. 4. A jump to FALSE from "beta." If "beta" is false, then again "alpha and beta" is false, so this remains a jump to FALSE. Thus, it is only the jumps to TRUE from "alpha" (rather than the jumps to FALSE) which have to be changed to go to the start of the coding for "beta," as in figure 3. In all cases of this kind, the coding for "beta" will immediately follow the coding for "alpha." If A is the start of "alpha" and B is the start of "beta," we only need to look through from A to B-l in order to find jumps to FALSE (or, respectively, jumps to TRUE) that have to be changed to be jumps to B. The start of each section of generated code for an expression is what goes on the operand stack to represent that expression. ALPHA BETA ( TRUE ) FALSE Figure 3: Generating code for "alpha and beta." With the "and" logical operator, both states must always be checked. If either state is false, the condition isn't satisfied and thus the end state is false. TRUE Condition Result Alpha Beta Branch True and True TRUE False and True* FALSE True and False FALSE False and False FALSE 'State need not be checked. FALSE ALPHA SUBEXPRESSION If C t 1 TRUE FALSE TRUE FALSE _ "NOT" ALPHA SUBEXPRESSION If (NOT C) ilfWET - FALSE iEA-fcSE") TRUE TRUE I (LAST STEPS TO BE GENERATED) A variable CREL (current relation) is kept at all times to indicate the start of the section of code generated for the current relation (e.g., A.LT.B). When we finish generating code for a relation, CREL goes on the oper- and stack, and the current position in the generated code, plus one, becomes the new value of CREL. At the beginning, CREL is initialized to indicate the start of all gen- erated code. Let us now look at "not alpha" (see figure 4). This seems easy: All the jumps to TRUE become jumps to FALSE, and vice versa. There is one exception, however. For any logical expression or subexpression, the generated code will end with something of the form "if C then go to TRUE; go to FALSE," which we shall abbreviate as "if C then DECIDE." This is clearly true of the code for relations, and it remains true when blocks "alpha" and "beta" arc combined by means of "and" or "or," because "beta" will not be patched up. When wc use "not," however, it would seem that "if C then go to Figure 4: Another logical operator is the "not alpha." It can be thought of as the inverse of an alpha, true is false and false is true. Fhere is also a modification on the sub- expression as explained in the text. 133 ALPHA BETA FALSE DECIDE ALPHA If C BETA TRUE (JlEetOE") Figure 5: Optimized code for "alpha or beta. " The subexpression "if C then go to TRUE; go to FALSE" can be simplified to "if C then DECIDE"; decide whether the code satisfies the situation in question or not. But, if the first state of the "or" operator isn't satisfied, then "go to FALSE" in the subexpression must be changed to "go to beta" which is the next step in the procedure. In the opti- mized form, the "go to FALSE" has been deleted and the subexpression has been simplified to "if C then go to TRUE. " Figure 6: The steps in- volved in evaluating the FOR TRAN expression: IF (A.LT.B .OR. C+D.EQ.E .AND. .NOT. FGTG*H) GO TO 87 as compiled using the Bauer-Samelson algorithm. TRUE; go to FALSE" would be changed to read "if C then go to FALSE; go to TRUE." Instead, we will change it to read "if (not C) then go to TRUE; go to FALSE" (or "if (not C) then DECIDE"), so that the above mentioned property of generated code will be preserved. All other jumps to TRUE are changed to FALSE, and vice versa, when we produce "not alpha" from "alpha." This property of generated code— namely, the fact that it always ends with "if C, then DECIDE"— may be used to "optimize out" the last generated instruction for any sub- expression. In generating code for "alpha or beta," the last "go to FALSE" in the sub- expression of "alpha" must be changed to "go to the start of beta"; but this is the very next instruction, so that "go to FALSE" may simply be thrown away. Thus "if C then DECIDE" is changed, in this case, to "if C then go to TRUE" (see figure 5). In generating code for "alpha and beta," we can think of "if C then DECIDE" in the subexpression of "alpha" as if it were "if (not C) then go to FALSE; go to TRUE." This time "go to TRUE" must be patched so that it goes to the very next instruction, and it may likewise be thrown away. Therefore, "if C then DECIDE" may be changed in this case to "if (not C) then go to FALSE." 1. Load A. 2. Compare with B. 3. If less than B, DECIDE. 4. Load C. 5. Add D. 6. Compare with E. 7. If unequal to E, DECIDE. 8. Load G. 9. Multiply by H. 10. Compare with F. 11. If greater than or equal to F, DECIDE. 12. Continue with next instruction. We illustrate all these notions by genera- ting code for: IF (A.LT.B .OR. C+D.EQ.E .AND. .NOT. F.GT.G*H) GO TO 87 The generated code is given in figure 6; it is generated as follows: 1. CREL is initialized to indicate step I. 2. A goes on the operand stack. 3. .LT. goes on the operator stack. 4. B goes on the operand stack. 5. .OR. has lower precedence than .LT., so we cannot put .OR. on the operator stack yet. We remove .LT. from the operator stack, and we remove its two operands, A and B, from the operand stack. We generate code for A.LT.B, namely "Load A; compare with B; if less than B, DECIDE," and put the result back on the operand stack. This result is the current value of CREL, namely "step I," and CREL is reset to "step 4" since three steps have been generated so far. 6. Now we can put .OR. on the operator stack, since that stack is empty. 7. C goes on the operand stack. 8. + goes on the operator stack, since it has higher precedence than the .OR. operator. 9. D goes on the operand stack. 10. We cannot put .EQ. on the operator stack, because it has lower precedence than +. We take + off the operator slack, and its two operands, C and D, off the operand stack. We generate code for C+D, namely "load C; add D," and put the result, AC, back on the operand stack. 11. Now we can put .EQ. on the opera- tor stack because it has higher precedence than .OR., which is at the top of that stack. 12. E goes on the operand stack. 13. We cannot put .AND. on the opera- tor stack, because .EQ. has higher pre- cedence. So we take .EQ. off the operator stack, and its arguments, namely AC and E, off the operand stack. The code we generate to compare AC with E is simply "compare with E; if equal to E, DECIDE." CREL, namely "step 4," goes on the operand stack, and since we have generated four steps since then, the next step would be number 8; so "step 8" becomes the new value of CREL. 14. Now we can put .AND. on the operator stack, because its precedence is higher than that of the .OR. operator. 15. .NOT. goes on the operator stack, since .AND. has lower precedence. I 6. F goes on the operand slack. 1 7. .GT. goes on the operator stack, since .NOT. has lower precedence. 18. G goes on the operand stack. 1 9. * goes on the operator stack, since .GT. has lower precedence. The operator 134 stack now contains: .OR. (at the bottom); .AND., .NOT., .GT., and *. 20. H goes on the operand stack, which now contains "step 1," "step 4," F, G and H. We are now at the end of the expression. 21 . First we treat the *. We take it off the operator stack; we take its two operands, G and H, off the operand stack; we generate code for G*H, namely "load G; multiply by H"; and we put the result, namely AC, back on the operand stack. 22. Now we treat the .GT. operator. Its two operands are F and AC, not AC and F. The result is the same as if .LT. were the operator and AC and F were the operands. (If F is greater than AC, then AC is less than F, not less than or equal.) We generate "compare with F; if less than F, DECIDE" and put CREL, namely "step 8," on the operand stack. As before, we have generated four new steps, so that "step 12" becomes the new value of CREL. Note that we have now generated all the steps of the compiled code shown in figure 6. The operand stack now contains "step 1," "step 4," and "step 8." 23. The next operator to be treated is the .NOT. operator. Its operand is "step 8," and "step 12" is the current value of CREL. This means that steps 8 through 1 1 have to be checked. In these steps, there are no jumps to TRUE or to FALSE (if there were, then TRUE would be changed to FALSE in these steps, and vice versa), but there is a reference to DECIDE in step II. This step therefore becomes "if greater than or equal to F, DECIDE" and "step 8" remains on the operand stack. 24. Now we treat the .AND. operator. Its two operands are "step 4" (alpha) and "step 8" (beta), which means that we have to check from step 4 to step 7. Again there arc no jumps to TRUE or FALSE. (A jump to TRUE would have to be changed, here, to a jump to step 8.) But there is a reference to DECIDE in step 7, which is changed to "if unequal to E, go to FALSE," and "step 4" goes back on the operand stack, since this is the beginning of the code for "alpha and beta." 25. The last operator to be treated is the .OR. operator. Its two operands arc "step 1 " (alpha) and "step 4" (beta), which means that we have to check from step I through step 3. If there were any jumps to FALSE in this range, they would have to be changed to "jump to step 4" (see figure 5). But, just as before, there are none of these; there is only the reference to DECIDE in step 3, and, again by figure 4, this is changed to "if less than B, goto TRUE." 26. Finally, we read the "GO TO 87," so that TRUE becomes statement number 87. Comments on Notation In this article, the logical and relational operators are shown using a FORTRAN IV convention, as follows. They are used to define conditions with relational operations, then combine them with logical operations. Logical Operators: A new condition is eval- uated using other conditions X and Y. .NOT. X Logical inverse of condition X. X .AND. Y Logical product of results of conditions X and Y (XAY). X . OR. Y Logical sum of conditions Xand Y(XVY). Relational Operators: A condition is eval- uated using operands which can be com- pared, such as integers for other representa- tions of numbers), strings, etc. A .GT. B True if A is greater than B. A .GE.B True if A is greater than or equal to B. A .LT. B True if A is less than B. A .LE. B True if A is less than or equal to B. A . EQ. B True if A is equal to B. A .NE. B True if A is not equal to B. Note that the meaning of the comparisons depends upon the type of data involved, and that compiled code for each kind of test must reflect the comparison of identical types of data. Thus, A and B should both be integers in a simple compiler or interpreter (such as Tiny BASIC), and both should be of consistent integer or floating point (REAL) type in a FORTRAN compiler or inter- preter, etc. The meaning of string com- parisons for value (other than equality) can be defined. There are now two jumps to TRUE (in steps 3 and II), and these must be changed to refer to statement number 87; there is one jump to FALSE (in step 7), and this must be changed to refer to the next step after the generated code, namely step 12. This com- pletes the process of generating code for this statement. As a final note, wc may consider the "implies" operator of symbolic logic. The construction "alpha implies beta" is equiv- alent to "(not alpha) or beta." Thus "im- plies" may be put on the operator stack, just like any of our other operators. It is treated in the same way as "or" (sec figures 2 and 5), except that FALSE and TRUE are interchanged in "alpha" just beforehand (see figure 4)." 135 Teach your System to type with a TYPEAWAY Selectric I/O Writer interface Interface any Selectric I/O Writer to S-100 computers with a TYPE- AWAY Selectric I/O Writer Inter- face. TYPEAWAY is compatible with any model 731 or 735 I/O Writer, including versions with correspon- dence or BCD coding, 24 or 48 volt solonoids, and common anode or common cathode diodes. TYPE- AWAY is a complete package of everything needed to interface any model 731 or 735 I/O writer to an S-100 computer, including; * S-100 compatible PC board with solonoid drivers, input ports, and PROM memory. * Complete cables and connectors * Power supply for 24 or 48 volt systems. Optional word processing software is also available. Add professional, economical hard copy to your S-100 system with an IBM Selectric I/O Writer and a TYPEAWAY interface. Prices Kit $225 Assembled 325 Documentation 25 Call toll-free anytime to place credit card orders: 800/648 5311 MICROMATION INCORPORATED 524 UNION STREET SAN FRANCISCO, CA. 94133 415/398-0289 Circle 143 on inquiry card. Continued from page 12 attention to a few misconceptions. Referring to Prof Isaacson's article in February 1977 BYTE, I'll agree that Hie time of personal computing Is coming, but it hasn't got here quite yet! She may think that $1000 is cheap, and it is to some, but not for the vast majority of students and others. This is my main sticking point: too many writers assume one has $1000 to $2000 to blow on a system. Surprise! A lot of people don't! Professor Isaacson may think $1000 is nothing, but to me it is! Pardon me if I am old fashioned, but . I like to get the most for my money! I'd like to see more articles like the one on calculator interface, and Sucling's article on TV typewriters. But why limit this to peripherals? Why not a homebrew computer that can be expanded and use BASIC? There are plenty of guys like me who enjoy "rolling your own." Not to mention, it's cheaper! Edgar N Cohen 3228 Smith Av Baltimore MD 21208 Homebrewing is definitely a learning experience, but hardly recommended as an economic alternative. The cost of individual parts may look small, but any realistic computer uses a very large num- ber of the little bugs and inordinate amounts of time getting it up and run- ning. The reasons for homebrewing are most likely psychic: the intimate knowl- edge and the chance to "do it right" by some arcane standards of system design only known to the builder of the system. MICROCOMPUTER CORRESPONDENCE COURSES NEEDED . . . I am trying to locate a formal course of instruction in microcomputer technol- ogy. I have considerable experience in third generation computer systems (maintenance, operations and program- ming at all levels). I also have worked with programmable calculators a great deal. Now my goal for both personal and professional interests seems to lie within the micro/mini computer range. Unfortunately, my financial resources are somewhat limited, and the course of study must be limited to spare time with no restrictions on movement. The an- swer would be a correspondence course, preferrably VA approved. If possible, I would like a course with kit construction as part of the curriculum. Not only would I then benefit by practical application of the knowledge being taught, but would retain the system for continued train- ing and satisfaction, in addition to possibly being able to have some of the costs borne by the government. This would make it possible for me to con- tinue my education in a manner that is currently beyond my means. 136 If you know of such a course, or might be influential in organizing such a course, then I would appreciate your help and influence. Donald R Darden 519 Corday St, Lot 3 Pensacola FL 32503 Perhaps publishing your letter will have the influence you seek. LAMENTS 1 lament your loss of linkage on the 8008 update in April 1977 BYTE. The laborious data dependent search was eventually successful. Thus forced to acknowledge the anecdotal nature of this issue caused my correlator to flash Readers' Digest in red letters. Back to basics and I'll continue to sing your praise. Frank Evans CorvallisOR 97330 BEWARE OF PUNS William Stock, in his letter ("What's New?", April 1977 BYTE), mentioned the sloppy disk, which was first intro- duced by our company in late 1976, as though he had never heard of it, not to mention our company. The unfortunate fact that many others are in the same position prompted this letter (which I am trying to key in slowly, as I know many "compuniks" are used to 110 baud and therefore cannot read very fast). MNewmonics is currently based in Lawrence KS. The company made its start by marketing a small micropro- cessor, introduced soon after the popular 3000 series came out. By coincidence, our model is the MN1500, a I bit (not bit slice, but truly 1 bit) machine with two powerful instructions: = NOP; 1 = HALT/CRASH. Although the actual fabrication is proprietary, I can say that it is a combination ol the p-type and n-lype bipolar (PPP, NNN) TTL components noted in William's letter. The device is capable of such extremely fast operation that we have developed a special dovetailed clock for it, which allows four states per cycle. I won't divulge its secret, but it uses an in-house NLL (noise locked loop). We, loo, have a WOM (write only memory), in 19 and 23 pin DIP formats. These are nicely complemented by our 64 K*1 static RNMs (read never memo- ries), though some enterprising soul will probably soon discover that the same thing can be done with a 7404. Next, we have a RAM which covers several speed and power ranges. As we are a small company, we couldn't afford to support three chips differing only in speed, so we put the high, medium and low speed devices all in one package, and control them with an automatic gear shift, an industry first! The latest cheap, excuse me, chip, which we developed locally was our MK*N RMM (read maybe memory). Also, my (barely) capable VP, Mr John C Nunley, has recently closed a deal making us the sole supplier of a new thin-film technol- ogy memory device. At one point, he was so worried about the deal that we have dubbed the ultra thin film (10**-8 cm) chip the ANGST-ROM. We are currently trying to get our corner on the market with the product William mentioned, something we feel is a breakthrough for the microcomputer industry: the sloppy diskette. In passing, our prototype was made from a square piece of coated mylar housed in a cir- cular sheath, which when placed in our drive sat motionless. Rather than the motor turning the diskette and a small flywheel, the entire drive began rotat- ing with a negative frequency (another application of our dovetailed clock). The mangled test rack and the plaster patch in the wall are testimony to the fact that the idea was indeed a breakthrough! Also, we have in the works a device which was suggested to us by one of our company insultants, Mr Craig Paul. The new device will be a yet smaller version of the increasingly popular diskettes. As we intend it to be used with the upcoming "baby" (pico) processors, we have tentatively named it the "Bassinette Drive." Glen E Monaghan President MNewmonics Lawrence KS 66044 GEM/pdp-15 MORE COMMENTS ON AUDIOTAPE PROBLEMS Having read your reply to the letter by Warren Bell in the April 1977 issue I feel the problem should be clarified so that computer people out there don't start tearing into their cassette recorders needlessly. As I interpret Mr Bell's problem, it is unrelated to the phase of the tape recorder output, and reversing the output jack leads as you suggest won't help. The cassette recorder inter- face I've built which is on a IO card in- side my SWTPC 6800 is similar to the AC30 that Mr Bell mentioned. The incompatability he experienced sounds like the problem I had with a prototype of my board. The SWTPC AC30 has 2400 Hz as the frequency that is re- corded when there is no data coming out of the serial IO. I suspect that his inter- lace rests at the lower frequency of 1200 Hz. My first board had the same problem. I could record and play my own tapes but it took several hours to find out why I could not read the BASIC I bought from SWTPC. As Mr Bell observed, you must invert the data before it is modulated to invert the frequency. My interface doesn't care if I invert the cassette output since it is frequency dependent, not phase dependent. 1 might add my objection to the Kansas City interface using the upper frequency as the resting point. As the cassette starts up on unmodulated 2400 Hz it must pass through the lower frequency to get up speed. I would have thought the lower frequency would be used so the interface would not put out a burst of garbage data each time it starts up. My software must ignore any data for about a second as the cassette gets up speed. Leo Taylor 18 Ridge Ct W, AptC21 West Haven CT 06516 The phase inversion fix, if needed, is done with patch cords, not inside recorders! ANOTHER COMMENT ON DEFINING THE BYTE Not only does the quotation from Donald E Knuth published in the Let- ters column of April 1977 BYTE not address the question of the origin of the word "byte," it is not even intended to be a general definition. Professor Knuth was describing the basic unit of information on a particular computer, the MIX 1009. The passage quoted is taken from Knuth's The Art of Com- puter Programming, Volume I. There Knuth describes the mythical MIX computer, the machine language of which is used to illustrate the algo- rithms in the book: MIX has a peculiar property in that it is both binary and decimal at the same time. The programmer doesn't actually know whether he is programming a machine with base 2 or base 10 arithmetic. This is done so that algorithms written in MIX can be used on either type of ma- chine with little change; and so that MIX can be easily simulated on either type of machine. An algorithm in MIX should work properly regardless of how big a byte is. For those who may be looking for a general definition of "byte" I pro- pose the following: A byte is the smal- lest directly addressable area of a com- puter's storage; if the smallest such area is the same size as the accumulator (or a general register) then it is more properly called a word. Thus, an IBM 360 has an 8 bit byte size (smallest addressable storage loca- tion) and a 32 bit word (size of a general register). Operating under the above definition, each storage location of an 8 bit microcomputer would more pro- perly be called a word than a byte. Bob Brown Chief of Computer Systems Medical Association of Georgia 938 PeachtreeSt NE Atlanta GA 30309a 137 NEW- REVOLITTIONARY TOO L WRAPS INSULATED WIRE FOUR TIMES FASTER NO Prestripping NO Precutting Spool Fed Wire Users say: "Your P1 80 tool really does just what you said it would-We're very satisfied" "We're shifting nearly all our wrapping over to Slit-N-Wrap." .." The spooled wire passes thru the tool past a slitting edge next to the wrap post. A narrow longitudinal cut is made in the insulation where - it passes the square post corner. Trie bared copper is indented by the sharp edge, (7 turns equal 28 contacts.) Insulation is slit where wrapped, but riot between terminal posts when fed straight outqf the tool. Model P180 with two 100' spools of 28 gage wire . S24.5Q Battery power«d Model P160-4T includes charger and wire S75.00 """ ""odel P160-4TI S8OJ30 view of unwrapped wire end .025 sq. post^_-~- t/ prrptriMir r ELECTRONIC COMPANY 12460 Gladstone Avenue Sylmar, CA 91342 If unavailable locally, factory order. Add $2.00 shipping and handling charge. California residents n ,- . add 6% sales tax. MSBS)' Parker Rolls into Microprocessor Games Market What's New? A New Computer Package from Polymorphic Systems The POLY 88 System Sixteen com- puter system has been announced by Polymorphic Systems, 460 Ward Dr, Santa Barbara CA 93111. The unit is a 16 K system featuring a high speed video display and alphanumeric key- board. Cassette tapes are used for permanent program storage; a verify feature is included to insure correct loading of programs. A BASIC package is included which features formatting options and string manipulation. A pro- gram library is available to POLY 88 users. The price for the system as shown is $2250, assembled. ■ Circle 604 on inquiry card. Make the HAL Connection > 8080A MPU > 1K Monitor/Debug Software in 2708 EPROM or 2-3624 PROMs • On board space for: 4K ROM (2708), 2K RAM (2102A-4) ' TTY Current Loop or RS-232C serial I/O (8251) • 24 lines of Parallel I/O (8255) • Hardware "front panel" on board • Optional Accessories: 1 CRT Terminal Board, BASIC in I EPROM, Audio Cassette Interface, 7K RAM Expansion Board/ EPPOM Programmer, Power Supply. MCEM-8080 from$375 (2-3624 ROM/1K RAM) or$445 as shown (2708 EPROM/2K RAM) and solve your lab or OEM computer problems 1. Connect to the 24 lines of Parallel I/O and ASCII or Baudot Serial I/O. 2. Connect to processor bus to add mem- ory expansion board/EPROM program- mer, I/O devices, or our unique CRT Terminal Board. 3. Connect to our power supply or use your own. Lab users and OEM's alike will find solu- tions to their computer problems with the MCEM-8080 computer. All essential com- puter system elements are incorporated in this fully assembled, tested single-board computer. Some unexpected features of the HAL MCEM-8080 are: hardware "front panel" which allows setting a breakpoint and manual control of the computer; 1K ROM Monitor/Debug Software (with user callable, Intel compatible I/O routines) which greatly simplifies program develop- ment; Parallel and Serial l/Oon the board; and very reasonable prices. M Call or write for further information on the HAL Connection. You'll be glad you did! HAL COMMUNICATIONS CORP. Box 365B 807 E. Green Street, Urbana, III. 61801 Telephone (217)367-7373 Board game fans take note! Parker Brothers has announced a micropro- cessor-based board game called CODE NAME: SECTOR, a submarine pursuit game in which players compete with one another and with the computer as it moves an invisible submarine through 4800 possible positions under the sea. Parker Brothers expects that the price of this new product will probably be in the $30 to $45 range at department stores and other retail outlets this sum- mer and fall. Significantly, there is no video screen involved with the game: a calculator-like module is used for both input and output, and apparently the entire game algorithm is built into read only memory parts with occasional inputs from players, through switches. For new players of the game, a unique "teach" mode is designed to give instruc- tion regarding rules and operation. For more information, write Parker Brothers, Salem MA 01970." Circle 605 on inquiry card. A New Servocontrolled Cassette Transport A new, patented, servodriven digital cassette recorder has been announced by Memodyne Corporation, 385 Elliot St, Newton Upper Falls MA 02164. The Model 764 consists of a tape trans- port attached to a card cage which con- tains the servocontrol electronics plus a read-while-write electronics card. Data can be recorded at up to 32 K bytes per second, and the transport search speed (forward or reverse) is 100 inches (254 cm) per second. (Thus a 300 foot 138 cassette has a maximum access time of 36 seconds. At 1600 flux changes per inch a standard cassette holds about 5 million bits, or about 1/2 million bytes. High quality certified digital cassettes should be used with this type of data density.) Start-stop settling time is 200 ms. The Model 764 is priced at under $500 in OEM quantities. Single unit prices were not listed on the data sheet we received. Contact Memodyne for more information." Circle 606 on inquiry card. An APL-Compatible DECwriter "paper out visibility and new terminal duplex and Digital Equipment Corporation has announced a new 1200 bps keyboard terminal called the LS120 DECwriter III, designed for interactive communication with a computer or as a unit in a data, or message, communication network, features of the DECwriter III include an 180 cps print rate, a 1 K character buffer E1A interface, an automatic switch, last character self-test capability. The is compatible with full half duplex protocols. Optional features include an APL alternate character set, a compressed font and a 300 bps acoustic coupler. Price is $2270 in quantities of 100, with deliveries to begin this summer. Contact Digital Equipment Corporation, Digital Components Division, 1 Iron Way, Marlborough MA 01752." Circle 608 on inquiry card. A New Terminal Kit from SwTPC The Southwest Technical Products Corporation CT-64 Terminal System kit, along with the optional CT-VM video monitor, form a complete stand alone terminal system compatible with a variety of modems and ASCII computer systems. The kit features 16 lines of 32 or 64 characters per line, scrolling or page mode operation, upper and lower case characters, reversed character print- ing, control character printing, cursor control and complete control character decoding. The unit is available as a kit only A Successor to the Teletype Model 33 Teletype Corporation, 5555 Touhy Av, Skokie IL 60076, has announced a for $325. The price includes power sup- ply, keyboard, serial interface, beeper, assembly instructions, chassis and cover. The optional CT-VM video monitor, sold assembled, requires the CT-64's power supply and sells for $175. Con- tact Southwest Technical Products Cor- poration, 219 W Rhapsody, San Antonio TX 78216." new under $1000 Model 43 matrix teleprinter offering 30 character per second throughput, upper or lower case printing, and 132 column format cap- ability on 11 inch wide fanfold paper. It features a 9 wire impact printhead mechanism. MOS technology is used throughout. The desk top terminal, which weighs approximately 30 pounds, is designed to be portable. Quiet opera- tion makes it suitable for a variety of office environments. The 43 teleprinter is designed for interactive timesharing, data inquiry and response applications, and is interchangable with the Teletype Model 33 terminal. It is available with an EIA or 20 mA current loop interface and is designed for use on the switched net- Circle 609 on inquiry card. .1 Nothing fancy. Just more hard core information. Fewer ads and a lot more articles for every level of experience. Computer Notes. Published in Albuquerque by MITS, Inc., the Altair 1M people. /■computer ' notes 2450 Alamo S.E. Albuquerque, New Mexico 87106 B 8 Please send me a 1 year subscription to Computer Notes. $5.00 per year in U.S. $20. OO per year overseas. NAME: ADDRESS:- CITY: . STATE: .ZIP_ COMPANY/ORGANIZATION D Check Enclosed Mc Qr BAC/Visa # _ D Master Charge □ BankAmericard/Visa Signature Circle 146 on inquiry card. 139 work and point-to-point private line facilities. The terminal includes operator controls for 10 or 30 characters per second, half or full duplex operation, parity checking and printer test. The terminal is comprised of five major pluggable components and features built- in self-diagnostics for troubleshooting. For further information call Tom Race (312) 982-3134." A sample of Teletype Model 43 listings: Vector Announces New Enclosures Tele type Co rporatibn 5555 Tol hy Avenue Skok u, 111 . 60076 Circle 610 on inquiry card. Circular Reasoning ^ v»V J* ■: ^XJH HEXADAISYTM is a new device which calculates the offset for relative addressing as used by the 6800, Z-80, 6502, SC/MP and F-8 microprocessors, adds and subtracts hexadecimal numbers, calculates 2's complements and con- verts decimal to hexadecimal numbers and back. All results within the range of to 255 (decimal) can be read directly, while larger numbers are calculated two VECTOR-PAK, a new line of en- closures from Vector Electronic Com- pany Inc, 12460 Gladstone Av, Sylmar CA 91342, is designed to house labora- tory equipment, instruments, develop- ment systems and computers. Internal structures such as optional card guides, brackets and straps permit installation of cards, modules and electronic com- ponents. The units are available in 17 sizes and ten colors. They are de- signed for the experimenter with a custom personal computer system, who wants a professional looking enclosure. Prices range from $65 to $95 without internal structures. Prices with the in- ternal structures range from $125 to $185. Custom unit prices on request. Delivery is stock to four weeks." Circle 613 on inquiry card. hexadecimal digits at a time. The device is made from plastic in the form of a circular "slide rule" with waterproof printing. Available for $3.95 postpaid, with instructions, from E & L Pfeiffer Computer Products, Box 2624,Sepulveda CA 91343, or from local computer stores." Circle 61 2 on inquiry card. A New Microcomputer High Level Language Compiler PennMicro announces the develop- ment of a true, code emitting compiler for Intel microcomputer systems: the SLAM compiler. SLAM (Symbolic Lan- guage Adapted for Microcomputers) is a high level language which uses signed 16 bit decimal integers and simple English-like statements to program micro- computers without any need to learn assembly or machine language. SLAM is said to feature a variety of conditional and subroutine commands, plus signed decimal numbers, simplified print com- mands, symbolic variables, and English- like program statements. The compiler is source code com- patible with the previously announced SLAM interpreter. This concept allows programs to be created, modified and debugged using the interactive nature of the interpreter, then translated into hexadecimal 8080 object code in Intel standard format when the user's pro- gram design has stabilized. The com- piler provides for parameter linkage conforming to Intel conventions, absolute memory pointers and machine language subroutine calls. SLAM occupies less than 8 K of RAM. Versions are available for the Intellec 8/Mod 80, MDS-800, or SBC80 systems. The compiler and inter- preter are available on paper tape in Intel standard hexadecimal format. In- instruction manuals are supplied with each. Price for either product is $99; both are available as a package for $175. Delivery is stock to two weeks. Customers should specify MDS, Intellec 8, or SBC system-type, and available user programmable memory (RAM) size. For more information, contact Penn- Micro, POB 5073, Lancaster PA 1 7604." Circle 614 on inquiry card. MULTIPLE DATA RATE INTERFACING FOR YOUR CASSETTE AND RS-232 TERMINAL the CI-812 The Only S-100 Interface You May Ever Need On one card, you get dependable "KC- standard "/biphase encoded cassette inter- facing at 30, 60, 120, or 240 bytes per second, and full-duplex RS-232 data ex- change at 300- to 9600-baud. Kit, includ- ing instruction manual, only $89.95*. PERCOM DATA COMPANY, INC. 4021 WJNDSOR- GARLAND. TEXAS 75042 (214) 276-1968 *Assembled and tested, $119.95. Add 5% for shipping. Texas resi- dents add 5% sales tax. BAC/MC available. PerCom 'peripherals for personal computing' 140 Building a better computer wasn't easy. But we did it. Introducing the MSI 6800 Computer System When we set out to build the new MSI 6800 Com- puter System, we knew we had our work cut out for us. It had to be at least as good as the now famous MSI FD-8 Floppy Disk Memory System which is also pictured below. So, the first thing we did was analyze all the problems and drawbacks we had encountered with other 6800 systems, and then put our engineers to work on solutions. The objective: Build a better computer. We started with power supply. We had big ideas, so we used a hefty 18 amp pow- er supply. You can run full memory and several peripher- als without the worry of run- ning out of juice. We also put it in the front of the cabinet so it's out of the way. The next step was the CPU Board. A separate baud rate generator with strap- pable clock outputs allows any combination of baud rates up to 9600. A separate strappable system clock is available and allows CPU speeds of up to 2 MHz. The new MSI monitor is MIK- BUG software compatible, so you will never have a prob- lem with programs. Addi- tional PROM sockets are available for your own spe- cial routines and to expand the monitor. The CPU also contains a single step capa- bility for debugging software. To complete the system, we used an MSI 8K Memory Board which employs low power 2102 RAM memory chips and is configured to allow battery back-up power capability. A DIP switch unit allows quick selection of a starting address of the board at any 8K increment of memory. If you're one of those people who understands the technical stuff, by now you'll agree the MSI 6800 is a better computer. If you're one who does not un- derstand it yet, you'll be more interested in what the system can do . . . play games, con- duct research and educa- tional projects, control lab instruments, business appli- cations, or just about any- thing else you might dream up that a microcomputer can do. The point is . . . the MSI 6800 will do it better. The MSI 6800 Computer System is available in either kit form or wired and tested. Either way, you get a cabinet, power supply, CPU board, Mother board, Interface board, Memory board, docu- mentation, instructions, sche- matics, and a programming manual. Everything you need. There is more to say about the MSI 6800 than space permits. We suggest you send for more informa- tion which includes our free catalog of microcomputer products. When we got to the Mother Board, we really made progress. It has 14 slots to give you plenty of room to expand your system to full memory capabil- ity, and is compatible with SS-50 bus architecture. Heavy duty bus lines are low impedance, low noise, and provide trouble-free operation. With all this power and potential, the interface had to be something special. So instead of an inter- face address in the middle of memory, we put it at the top . . . which gives you a full 56K of continuous memory. Interfaces are strappable so they may be placed at any address. An interface adapter board is compatible with all existing SS-50 circuit boards and interface cards. All MSI interface cards communicate with the rear panel via a short ribbon cable which ter- minates with a DB-25 connector. All baud rate selec- tion and other strappable options are brought to the connector so they may be automatically selected by whatever plug is inserted into the appropriate inter- face connector. Straps may also be installed on the circuit board. Building a better computer was not easy. Becom- ing the number one seller will be. See the MSI 6800 Computer System at Personal Computing '77 - Atlantic City. THicUveAt Scientific i )K4t*U*HeHt& 220 West Cedar • Olathe, Kansas 66061 913/764-3273 • TWX 910 749 6403 (MSI OLAT) aDDDnnnDDDDDnDDDannnnnDn D □ D NAME. Midwest Scientific Instruments 220 W. Cedar, Olathe, Kansas 66061 □ D D □ □ D ADDRESS CITY STATE ZIP. 0010877 Circle 147 on inquiry card. Simple Algorithms for Calculating Elementary Functions John Rheinstein 10 Gould Rd Lexington MA 02173 ( START 1 Y = 1 i - o no no 6. = R-l 1 a. = argtan(6.J Vi - A i-*j ^ A i+ ,<0?^ X R1 " Y i + 1 ■ *i + 6 i Y i Y t -8.X| A i " A i + 1 +Q j j =1 + 1 ^ j > n ax ? 1 an(A 1 = o X Y " ( STOP ) Figure I: Flowcharted algorithm for calculating the tangent of A. It is prefer- able that the value of A be in the first circle, 0° l\ flax ? * Y o = 1 Z « i - 1 no no 6. - R~' a. = tanh - (6.) V1 = x i- 5 i Y i ^ Vi <0? J^ y*yes Y i + 1 " Z i + 1 " y. -6.x. 1 1 1 1. +0. 1 1 x i " x i+i +6 j Y i i - J + 1 ' j > n flax ? ^> c Figure 3. Flowchart for calculating the arctangent of X. For this algorithm to work accurately, X should be a positive number. 3 Figure 4: Flowcharted al- gorithm for calculating the inverse hyperbolic tangent of X. The value of X must be between and 7. 144 When calculating logarithms, prescaling should be carried out so that only the man- tissa is calculated. Given the arctangent, the arcsine and arccosine may be calculated from arcsin x = arctan Listing 1 : A BASIC program for determining the tangent or arctangent of an angle. The program was written using the flowcharts of figures I and 3. The sample run glues a demonstration of the accuracy attained with these algor- ithms. arccos(x) = arctan ( If the argument of the arccosine is nega- tive, 180° should be added to the result obtained from the above equation. Given the inverse hyperbolic tangent, or logarithm, the inverse hyperbolic sine and cosine may be found. sinh '(x) = log e ( x + 7(1 + x 2 ) cosh-1 (x) = log e (x +vfx 2 -1) ) Basic Program A listing of a BASIC program which uses these algorithms to calculate the tangent and arctangent is shown in listing 1 to indicate the manner in which these algorithms can be used. The program was written in MaxiBASIC for the Digital Group Z-80 system but it should run on almost any BASIC with only minor modifications, if any. This program operates in radix 10 (R = 10). I also tested a version in radix 2 (R = 2) changing only statements 10 and 20 and the DATA statements. This program will operate well in BASIC as listed, but the real power of the algo- rithms can best be obtained if a machine language version is utilized. The multiplica- tion indicated in statements 220, 230, 380 and 400 consume much of the' time. In a machine language version these may be replaced by shift operations which take con- siderably less time. Comments These algorithms could easily be used to augment the set of available functions written in BASIC as subroutines or they could be added as machine language sub- routines for high speed operation. The accur- acy can be made quite high. For the sample program seven significant digits will be ob- tained. I do not know whether Hewlett-Packard uses algorithms similar to these for all of the functions described. Walther reports that Hewlett-Packard did construct a hardware floating point processor of a generalized version of these algorithms, and reports excellent performance." 5 6 10 20 30 35 40 45 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 999 REM** PROGRAM TO CALCULATE TAN OR ARCTAN OF REM AN ANGLE (IN DEGREES) LETR = 10 LET M = 8 FOR J = TO M REM** D(J) = DELTA SUB J LET D(J) = Rt(-J) REM** AKJ) = ALPHA SUB J READ AKJ) NEXT J PRINT "DO YOU WANT TAN (ENTER 1) OR ARCTAN (ENTER 0)' INPUT B IF B - 1 THEN 120 IF B = 0THEN 300 GOTO 70 PRINT "INPUT A(0)"; INPUT A LET W = A LET X = LET Y = 1 FOR J = TO M LET A = A -AKJ) IF A <0THEN 250 LET X1 = X LET Y1 = Y LET Y = Y1 - D(J)*X1 LETX = X1 + D(J)*Y1 GOTO 180 LET A = A + AKJ) NEXT J LETT = X/Y PRINT "TAN(";W;") = ";T GOTO 70 PRINT "INPUT X(0)>0"; INPUT X LET W = X LET Y= 1 LET Z = FOR J = 0TO M LET X1 =X LET Y1 = Y LET X = X1 - D(J)*Y1 IF X < THEN 430 LET Y = Y1 +D(J)*X1 LETZ = Z + AKJ) GOTO 360 LET X = X1 NEXT J PRINT "ARCTAN(";W;") = ";Z GOTO 70 DATA 45, 5.7105931 , 5.729387E-1 , 5.729576E-2, 5.7295779E-3 DATA 5.729578E-4, 5.729578E-5, 5.729578E-6, 5.729578E-7 END Sample Runs: DO YOU WANT TAN (ENTER1) OR ARCTAN (ENTER 0)? 1 INPUT A(0)? 26.3 TAN (26.3) = .49423074 DO YOU WANT TAN (ENTER1) OR ARCTAN (ENTER 0)? INPUT X(0) > 0? .49423074 TAN( .49423074) = 26.300001 ARCTAN (.49423074) = 26.300001 1. Jack E Voider, "The CORDIC Trigonometric Computing Technique," IRE Transactions on Electronic Computers, September 1959, page 330. 2. J S Walther, "A Unified Algorithm for Ele- mentary Functions," Proceeding, Spring Joint Computer Conference, 1971, page 379. 145 Problems for Computer Solution by Steve Rogowski, Teacher Edition. A collec- tion of mathematical problems designed to stimulate thought and encourage research by students towards the goal of a final solution. The subjects range from arithmetic through calculus and on to problems that have yet to be resolved. An analysis of each problem provides ideas on logical approa- ches to a solution, and a sample program demonstrates one possible final solution. $9.95. Chemistry with a Computer by Paul A Cauchon. People are always looking for details of applications for the computer. It is one thing to say "gee whiz wouldn't it be nice if. . ." but such thoughts are but the stimulus to action. One result of a "gee whiz" idea is a series of educational and tutorial BASIC programs for use by teachers of chemistry, invented by Paul A Cauchon and published by Educomp Corporation. This book contains a collection of tutorial, simulation and problem generation pro- grams which can be employed to advantage by teachers in high schools or colleges wherever a BASIC facility is available. If you're a chemistry professor or teacher by trade, or just a hobbyist interested in chemistry, this book will prove to be an invaluable tutorial aid. $9.95. Take a Byte of APL APL— An Interactive Approach Second Edition, Revised, by Gilman and Rose. Here's an excellent way to introduce your- self to the APL language. APL is rapidly becoming one of the most popular high level languages in the computer field because of its clarity and conciseness. Gilman and Rose have extensively updated their popular book to include the latest information about the language and the various forms of it which are now in use. Since the examples are all carefully spelled out, APL— An Inter- active Approach is particularly recommen- ded for those who do not have access to an APL terminal. Answers to all problems are included. $11.95. The Underground Buying Guide, by Dennis A King. Here at last is a source book for all those hard to find suppliers! It's designed especially for computer hobbyists, experimenters, hams and CB'ers, and can tell you where to buy items like con- nectors, discrete components, electronic music supplies, instrumentation, analog to digital and digital to analog converters, and synthesizers. The list goes on to include Teletypes, speakers, microcomputer soft- ware, cassette units, floppy disks and many other items. It will be an invaluable addition to your reference library. $5.95. 1 The Underground Buying Guide for Hams. CBets. Experimenters and Computer Hobbyists. PCC'S Reference Book of Personal and Home Computing. Ever try to find the addresses of some manufacturers of, say, tape cassette or floppy disk interfaces for micros? Frustrating, isn't it? Well PCC has done something about it. This book lists hundreds of companies and stores selling hardware, software, and services. Survey articles on software, hardware, kits, appli- cations and the future for the experienced and the not-so-experienced user of micros. Also included in this edition are biblio- graphies for further reference, book reviews, and an index of the articles from the major hobbyist magazines. $4.95. Send to: Bits, Inc. 70 Main Street Peterborough NH 03458 Name Address Check Payment method: My check is enclosed Bill my MC No.. .Bill my BAC No.. . Exp. date . Exp. date . . books City State Zip Code Signature You may photocopy this page if you wish to leave your BYTE intact. Total for all books checked Postage, 50 cents per book for. Grand Total Prices shown are subject to change without notice. All orders must be prepaid. In unusual cases, processing may exceed 30 days. rcle 121 on inquiry card. 146 Circle 183 on inquiry card. Glubs and Newsletters Unofficial Cosmac Users' Newsletter We recently obtained firm evidence of a group of strange beings in a remote corner of New York State. Their latest communi- que read very much like this: There exist small groups of computer buffs who are not interested In buying a complete "off the shelf" computer system, or even a kit. These strange people would rather take a single micro- processor chip, study it, play with it and caress the documentation until they have learned about possible hardware options. These misfits in the world of printed circuit boards then dig out their wire wrap tools (which they use so that their wiring errors are only semiperma- nent) and have the audacity to build their first systems for less than the price of a good tape recorder. True, these systems are very limited, but they grow easily as cash and ideas become available, until they rival any of the ready-made systems at a fraction of the cost. One such group of people, who happen to have chosen the RCA CDP 1802 as the basic building block for their systems, exists in Western New York. Their interest in this chip was kindled by the Popular Electronics article on the Cosmac Elf. They have added hexadecimal keyboards, control systems, el-cheapo 6 digit displays and expanded memory to the tiny Elf. Some of these systems are capable of timing an egg, displaying the time of day, playing games and other vitally important things. All letters containing worthwhile, workable hardware or software ideas for the CDP 1802, and a stamped self- addressed envelope will entitle their authors to receive a free copy of the Unofficial Cosmac Users Newsletter. Future editions of this dubious techni- cal publication may or may not be avail- able, depending on response. Terry Wolfe, Cosmac Newsletter 3812 Orchard St Walworth NY 14568. The West Virginia Computer Society. . . . . .is off to a very fast start. Their first Ample Juice Constant voltage power supplies by Parasitic Engineering. Give your Altair, IMSAI or custom system the power it needs to keep your programs up and running through brown- outs and power fluctua- tions. The famous Parasitic Engincring Constant Voltage Power Supplies deliver full out- put wilh line voltages as 1210 10th St., Bel- low as 90 volts or as high as 140 volts. 12-amp kit designed for Altair 8800- (A), $90 postpaid. Uni- versal 20-amp kit, $200 postpaid. (Cal. res. add tax). 9 Thinker Toys keley, CA 94710 Sec ii at your local computer shop. Or place BAC/MC orders to 800-648-5311. MICROCOMPUTERS 19" RACK, S-100 BUS CARD CAGE I I I I I I I I I L RUGGED 20 SLOTS EXTRUDED CHANNELS ECT-100 CARD CAGE 8t BUS TERMINATION GROUND PLANE SOLDER MASK 12.25"Hx8"D OTHER BOARD ... .KIT $100 ECT-100-F with 20 CONNECTORS 81 GUIDES . . KIT $200 ECT-100-8080 CARD CAGE MICROCOMPUTER KIT $320 ECT-100-Z80 CARD CAGE MICROCOMPUTER . KIT $420 PS HEAVY DUTY 30A POWER SUPPLY KIT $100 10 SLOT TABLE TOP SYSTEMS 8080 or Z80 10 SLOT TABLE TOP MICROCOMPUTERS WRITE FOR SYSTEMS VARIATIONS & LOW PRICES if CPUs ' i , | - - , 8080 or Z80 Ii- BJfliiili NEEDNOFRONTPANEL . - 3>P-.R-.B:™:* ffij|JUMPON RESET CIRCUIT MOTHER BOARDS 10 SLOTS, 20 SLOTS or 21 SLOTS IPR0T0TYPING BOARD .$28 8K RAM KIT $295* I EXTENDER CARD $24 16K RAM KIT $555| ELECTRON CONTROL TECHNOLOGY P.O. BOX 6, UNION, NEW JERSEY 07083 (201) 686-8080 I I I I I I I I I J 147 Circle 151 on inquiry card. What's Cooking? - - - The Lancaster Series! ttii«i-~._ .14*. ACTIVE- FILTER cookbook • TV TYPEWRITER COOKBOOK TV Typewriter Cookbook by Don Lancaster. A complete guide to low cost television display of alphanumeric data, several chapters of which were published ahead of the book in early issues of BYTE magazine. $9.95. Active Filter Cookbook by Don Lan- caster. The chief chef of electronics Cook- books concocts another gourmet appetizer. Run to this book when you need to find a starting point for the design of a filter for use in an electronic application. $14.95. The TTL Cookbook by Don Lancas- ter. Start here with Don's tutorial explana- tions of what makes TTL logic design tick. 335 pages, $8.95. CMOS Cookbook. Don Lancaster has taken his highly successful TTL Cookbook formula and done it again. This bigger than ever (414 pages!) book tells you how to use CMOS, the exciting new power logic family. $9.95. Modern Operational Circuit Design by John L Smith. An absolutely essential intro- duction to the use and application of operational amplifier systems. The book contains both theoretical background infor- mation and practical circuit suggestions which can be used to advantage by the experimenter. $23.25 (hardbound). Linear IC Principles, Experiments, and Projects by Edward M Noll. From basic principles to complicated systems, from simple amplifier experiments to applications in radio, TV and control systems, this book can improve your knowledge of the way circuitry of the analog world really works. $8.95. LINEAR WNBHa.Ort«IUMS.Mf»Hrn rmtiMtm m wmMi n X 1 WUhi il ■ \ , ■ , ' 1 Practical Solid-State Circuit Design by Jerome E Oleksy. A self study course in the design of semiconductor circuits from the simple transistor to the complex operational amplifier. $5.95. Fundamentals and Applications of Digital Logic Circuits by Sol Libes. An invaluable tutorial background volume on digital logic, arithmetic, IO concepts and interfacing to analog devices; written by one of the founders of the Amateur Computer Group of NJ. This book acquaints the reader with much of the terminology and background concepts of digital hardware. $6.95. Send to: BITS, Inc. 70 Main Street Peterborough NH 03458 Name Check Payment method: My check is enclosed Bill my MC No. Bill my BAC No. Address Exp date 3. Total for all books checked $ Postage 50 cents per book for books $ Grand Total $ City State Zip Code Signature L You may photocopy this page if you wish to leave your BYTE intact. Prices shown are subject to change without notice. All orders must be prepaid. In unusual cases, processing may exceed 30 days. Circle 121 on inquiry card. 148 Circle 152 on inquiry card. meeting drew nearly 70 hobbyists. A news- letter is already off the press just a few weeks after their initial get together. New clubs naturally need active imagina- tive people to form a strong nucleus. So, West Virginians, here's a chance to get in on the ground floor of what could well be a successful venture. Computer oriented ham and CB people are more than welcome. Bill England is the man to contact at 167 Iroquois Trl, Ona WV 25545, (304) 736- 9794. Southern New England Computer Society SNECS is a well-established group serving Connecticut and Western Massachusetts. Meeting places vary but the Hartford area is most often chosen. For more information write Southern New England Computer Society, 267 Willow St, New Haven CT 06511, or call (203) 562-4739. The Eastern Iowa Computer Club Hobbyists may contact Samuel E Dillon, 1125 Washington Dr, Marion OH 52302, for information regarding the Eastern Iowa Computer Club. Amateur Computer Group of NJ ACGNJ continues to grow steadily in membership and ability to provide club services. Group purchase opportunities, workshops and a consistently improving newsletter are among this club's accomplish- ments. Included in the May issue of the ACGNJ News are a series on "Selectric Interfacing" by Charles Yates, a "6800 Disassembler" test program by T D Farns- worth, a "6800 Memory Test Program" by Brian Loofbourrow and an article on "Interfacing a Papertape Reader to the SwTPC 6800" by Michael P Burton. Write Amateur Computer Group of NJ, UCTI, 1776 Raritan Rd, Scotch Plains NJ 07076. Ventura County Computer Society Write POB 525, Port Hueneme CA 93041, for information about the Ventura County Computer Society. KIM Users' Notes — A Change of Address Eric Rehnke, Publisher of KIM Users' Notes has changed his address from 425 Meadow Ln, Seven Hills OH 44131 to 1330 Summitt Blvd, Broadview OH 44147. Japan Microcomputer Club RAMS' Memory Pages printed a letter from Koji Yada, a member of the Japan Microcomputer Club. Mr Yada says that the "We may have the surplus electronics you need!" Terminal/Keyboard With Schematics $250.00 • CRT Terminals •Assemblies Tape Drives S800.00 • Peripherals • Components Keyboards $40.00 to $60.00 (ASCII Encoded! Equipment Cabinets $45.00 to $60.00 (19" With Fan] Send for a free catalog or call Bill Blaney, toll free 800 258-1036 in NH 603-885-3705 \twl Come to our showroom IAIUFLDWIDE ELECTFumcsjnc. 10 Flagstone Drive, Hudson, New Hampshire 03051 149 Circle 153 on inquiry card. Washington D.C.'s Newest Computer Store Intelligent Business Machines, Inc. Cromemco, IMSAI, TDL, Administrator I, SEALS, DIP Chips, etc. Come see us at 938 Ellsworth Dr. Silver Spring, MD 20910 computer depot: ind 351 5 W. 70th Street Minneapolis MN 55435 612-338-2695 Upper Midwest Headquarters for PROCESSOR TECHNOLOGY, IMSAI, POLYMORPHIC SYSTEMS, DIGITAL GROUP, WAVE MATE, CROMEMCO, VECTOR GRAPHICS, TDL, SEALS, TARBELL, MICRO DESIGNS, NORTH STAR, NATIONAL SEMI- CONDUCTOR, FAIRCHILD SEMI- CONDUCTOR, MOSTEK, E & L INSTRUMENTS, SAMS, TAB, HAYDEN, WILEY, MC-GRAW HILL Catalog Free C40 Circle 154 on inquiry card. Circle 155 on inquiry card. T'S A GREAT BIG COMPUTER WORLD Tj But You Only Need *-THE COMPUTER CORNER 1 "**" •SOL - A New Dawn Is Here! -V<~ • IMSAI 8080 ~**~ •POLY -88 ~*~ »TDL Z-80 -*~ •Memories & I/O Boards -W- -H . •Computer Book Service pi •Magnetic Tapes & Disks -H_ • Full Line of Magazines H_ • Brain Games & Puzzles _K_ •Workshops & Club Information _ ~y~ Visit THE COMPUTER CORNER for ___ all your computer needs. Stop in and browse — you'll like our personal service, -pf - hi THE COMPUTER CORNER White Plains Mall - Upper Level W 200 Hamilton Avenue _^f- White Plains, New York 1 0601 -W~ Tel: (914) WHY -DATA Ample Parking 10-6 Daily & Saturday V , 10-9 Thursday \ ^W %j^TtTTTTTT^ Circle 156 on inquiry card. NOW HEAR THIS!! ALPHA DIGITAL SYSTEMS SELLS IMSAI KITS AND TOTAL IN- TEGRATED SYSTEMS ASSEMBLED. CHECKED-OUT, AND WARRANTED AT KIT PRICES. ALPHA I SPECIAL DOS SYSTEM DEAL i includes i • IMSAI hiiko Computer • 22 Slol Mother Bd. With Conn. • 16 K RAM • 90 K Disk (with Controller) » Selectric typewriter (with Controller) • DOS-BASIC Software ^ssemhlcd System Total 53995 t Less Selectric ) $2495 Select any kit or system of kits from the IMSAI price list, order from us and receive Ihe assembled unit for the same price If you don't have a price list, drop us a line and we will send you one Terms: Cash with Order Prices in elude freight ( NC Residents Add 4 D Sales Tax ) How can ALPHA DIGITAL SYSTEMS do all this',' Its simple. ALPHA DIGITAL WANTS TO HE YOUR COMPUTER COMPANY. ARC ALPHA DIGITAL SYSTEMS "" J RT. 4BOX171A BOONE, NC. 28607 (704) 264-7946 CANADIANS! Eliminate the Customs Hassles. Save Money and get Canadian Warranties on IMSAI and S-100 compatible products. IMSAI 8080 KIT $ 838.00 ASS. $1163.00 (Can. Duty & Fed. Tax Included). AUTHORIZED DEALER Send $1.00 for complete IMSAI Catalog. We will develop complete applica- tion systems. Contact us for further information. Rotundra Cybernetics i\ Box 1448, Calgary, Alta. T2P 2H9 Phone (403) 283-8076 SOFTWARE DEBUGGED READY-TO-RUN S pecial Pro gram Packag es ,,$19.95 loncia Reitdenlf add 4% Sales Tax SP 8080 (X EACH CASSETTE CONTAINS SIX PROGRAMS I PLEASE SPECIFYBYTE. BIPHASE. TARBELL I LISTING OF PROGRAMS INCLUDEO WITH CASSETTE COMPLETE SOURCE LISTINGS OF PROGRAMS $ 3.95 & up Slant Programming Cassettes Designed Especially For microcomputers $2.00 each ( Send For Catalog Of Our Programs. $1.00 fTlicro-Bube 5870 MIAMI LAKES DRIVE EAST MIAMI LAKES. FL 33014 1305) 822-6010 Circle 197 on inquiry card. Circle 158 on inquiry card. Circle 169 on inquiry card. of tkt* cU> -fV UsesS tff heatuk/j:: n°*) cod's ^$.T$fy*&- U Apr J *k lifted & Nv+t ^3veA, cf t>GSi\ DETROIT'S FIRST AND FINEST Trits Si ii| 1 1 :i Hari SUMMER SPECIALS Decwriter II — *1700.°° Lear Siegler ADM 3A — *829.°° FULL BUSINESS PACKAGES AVAILABLE ALL MAJOR BRANDS Call for Lowest Quotes (313) 576-0900 Monday thru Saturday: 10:30 to 7:30 1800W. 14Mile ■ Royal Oak, Ml 48073 Today's Most Complete Electronic Assembly Tools Catalog FREE from Contact East! • Over 5000 hand tools listed in 160 pages. • Off-the-shelf delivery. • Pricing shown for all items. • Easy to order by phone or mail- MASTER CHARGE accepted. • Circle reader service card for your FREE catalog. contact east, inc. 7 Cypress Drive, Burlington, MA 01803 , 617-272-5051 Circle 160 on inquiry card. Circle 161 on inquiry card. Circle 162 on inquiry card. club has grown to a membership of over 1000 since its formation last Fall. They would be glad to establish a newsletter ex- change. Anyone speak Japanese? Write Koji Yada, Manager, Computer Center, Electro- technical Laboratory, Tanashi Branch, 5-4-1 Mukodi-Machi, Tanashi-Shi, Tokyo JAPAN. Charlotte Computer Society The Charlotte Computer Society meets on the third Wednesday in Room 200, Benny Hall, at the University of NC at Charlotte. No address or phone number was given. The Computer Network of Kansas City Those hobbyists looking for club activity in the Kansas City area should get in touch with the Computer Network of Kansas City, 968 Kansas Av, Kansas City KN 66105. Rochester NY - RAMS There's something refreshing about Memory Pages, the publication of the Rochester Area Microcomputer Society. It's not a large or impressive newsletter by most standards, but the articles tend to be clear and intriguing. Hats off to a small club that does its work well. One new series that holds some promise is "How Not to Build a Microcomputer System" by Peter Helmers, a BYTE contributor. Here's a chance to cash in on an expert's mistakes. The series started recently and should run for some time. The address is RAMS, POB D, Rochester NY 14609. Permian Basin Group in Texas The Permian Basin Computer Group in the Midland and Odessa area of Texas is still meeting once a month. The Midland Group meets the second Monday of each month at 7:30 PM in the Student Union Building on the Midland College campus. The Odessa Group meets the second Saturday of each month at 1 PM in the Electronic Tech- nology Building, Room 203, on the Odessa College campus. For additional information write John Rabenaldt, POB 3912, Odessa TX 79760, or phone (915) 332-9151, 9 AM to 5 PM Monday thru Friday or (915) 697-4607, after 6 PM. Are You Looking for a Way to Give Your Club Greater Visibility? Just send a letter to Peter Travisano, BYTE Publications Inc, Peterborough NH 03458. If you put out a newsletter, send that along, too, or put us on your regular mailing list. ■ Circle 163 on inquiry card. M6800 HARDWARE/SOFTWARE • REAL TIME OPERATING SYSTEM RT/68 is mask-programmed on a 6830 ROM thai replaces the Mikbug* ROM in your SWTPC 6800, Motorola Evaluation Module, etc. It is a powerful real time, multiprogramming operating system with many versatile system functions. RT/68' can support up to 16 concurrent programs at 8 priority levels. MICROWARE has improved the Mikbug* functions, added four more (Dump, Exec, Svs, Bkpt) and made tape load and punch program-usable. RT/68' is software and hardware com- patible with Mikbug*and supports ACIAor PIAtype interfaces. RT/68MX 55.00 • ANALOG INTERFACE SUBSYSTEM Consists of a PIA connected to a high speed, high accurancy 8 bit digital-to-analog converter. Also included is a buffer and precision comparator to implement a analog-to-digital con- verter using one of several software techniques listed in the manual. Applications include sensor input/output, audio synthesis, vector graphic displays, etc. Circuit board is plug- compatible with the SWTPC 6800 I/O buss. AS1-K (COMPLETE KIT) 87.50 AS1 (ASSEMBLED and TESTED) 115.00 • SERIAL I/O INTERFACE An RS-232 type serial interface card with full modem control capabilities (RTS, CTS, DCD). May also be used for interface with audio cassette systems. Plug compatible with SWTPC 6800 I/O buss. SC1-K (COMPLETE KIT) 35.00 SC1 (ASSEMBLED and TESTED) 50.00 THE MICROWARE CORPORATION HO. BOX 954 Des Moines, Iowa 50304 Write or use reader service card for free brochure. Phone Orders (515) 279-9856 U.S. Orders Postpaid. BankAmericard and Mastercharge give all info on card. Mikbug* is a trademark of Motorola, Inc. Canada Boards DO Something ! v- y stems, inc m ■■' 1 1 ~^"\ '■',# i 't. i I ■ 1 1 i i i lit CL2400 Real Time Clock $98— Kit $135 — Assembled If your system needs to know what time it is, our CL2400 is the board for you. The present time in hours, minutes, and seconds is always available for input, and is continuously updated by the highly accurate 60 Hz power line frequency. Need periodic interrupts? The CL2400 can do that, too, at any of 6 rates. Reference manual with BASIC and assembly language software examples included. PC3200 Power Control System PC3232 $299— Kit PC321B $189— Kit PC3202 $39.50— Kit $360— Assm. $240— Assm. $52— Assm. If your system needs on/off control of lights, motors, appliances, etc., our PC3200 System components are for you. Control boards allow one I/O port to control 32 (PC3232) or 16 (PC3216) external Power Control Units, such as the PC3202 which controls 120 VAC loads to 400 Watts. Optically isolated, low voltage, current-limited control lines are standard in this growing product line. Canada systems, inc. (formerly comptek) P.O. Box 516 La Canada, CA 91011 (213) 790-7957 151 Circle 164 on inquiry card. Circle 121 on inquiry card. The Great International Math On Keys Book ilrei From Texas Instruments Do you need a numerical algorithm for calculating exchange rates in a hotel on a foreign trip? Or figuring those mysterious "points" when facing the sanctimonious charisma of a banker at mortgage arrangement time? This book is a compendium of simple explanations and step by step procedures for accomplishing numerical solutions to numerous commonly encountered situations in daily life. Each entry is characterized by a statement of the problem, including the elements of theory required, and the keystrokes needed to solve the problem on an algebraic entry calculator. This is an invaluable sourcebook of information for the person who is inclined to manipulate numbers. $4.95, plus 50 cents postage. Send now to: BITS, Inc. I 70 Main Street Peterborough N H 03458 1 Please allow six weeks for delivery. Master Charge and BankAmericard Welcome. For convenience, use the coupon on page 146 or 148, writing in this book's title. J^ 000 00 0000 D £H (omputebNtom: Vl/ I DO EJ V Mall Order Computer Store IMSAI 8080 kit with 22 slots (limited quantity) $ 599.00 IMSAI 4k RAM 129.00 IMSAI 16k RAM 419.00 IMSAI 32k RAM 699.00 IMSAI 64k RAM 2,459.00 When Ordered With Kit TERMS: Shipping charges — $10 per CPU or large units, $1 50 per kit, $2 minimum per order Provided slock is available, we ship immediately tor payment by cashiers check or money order. Allow 3 weeks tor personal checks to clear Nevada residents, please add appropriate tax PRICES SUBJECT TO CHANGE WITHOUT NOTICE PLEASE, NO PHONE ORDERS ACCEPTED Phone: (702)734-1104 Write: Metatec Corporation 3453 Industrial Road Las Vegas, NV 891 09 What's Altair (S-100) Bus Interface New Products // one thing is fairly obvious, it is that the Altair 8800 bus, sometimes referred to in advertisements as the S-100 bus, is de facto a standard among many of the products we've seen to date in this industry of personal computing systems. This point was made quite dra- matically when we went through the new products file for this month and found 12 different releases about various products which interface to the Altair bus: The products range widely in pur- pose and intent, but we've grouped them together since they address a common backplane definition. ■ Speech Synthesizer Computalker Consultants (D Lloyd Rice et al) have sent this picture of the Model CT-1 Speech Synthesizer, a $395 assembled and tested module for the Altair (S-100) bus. The Model CT-1 is designed to optimize the trade-off between low data rate speech and direct- ly digitized speech. Low data rate speech relies on canned definitions for the sound of each phoneme, which produces mechanical sounding speech. Digitized speech, while remaining faithful to the original sound, requires 10 K to 20 K bytes per second of storage and is inflex- ible to phonetic manipulation. With the Computalker Model CT-1, the sounds are defined in real time under software control. Parameters which represent the phonetic structure of human speech are transmitted to the CT-1 at a rate of 500 to 900 bytes per second, depending on the data com- pression techniques used. This allows the production of highly intelligible and quite natural sounding speech output. Speaker characteristics and language or dialect variations are retained in the output. The Computalker Model CT-1 can also be operated in a low data rate mode using phoneme definitions con- tained in the CSR1 Synthesis-by-Rule software package, which is available for $35. The Computalker speech synthesis system, used in this way, has the Circle 148 on inquiry card. 152 Circle 1 59 on inquiry card. advantage that the software driver can easily be modified to keep the naturalness and intelligibility of the speech output up to date with the con- stantly evolving state of the art of rule governed speech. The Model CT-1 is a factory assem- bled and tested board, 5 1/4 by 10 inches, which occupies a single card slot. It requires a block of 16 output loca- tions, one byte (8 bits) each, relocatable to any hexadecimal boundary via an on- board selector switch. Power require- ments are +8 V unregulated (or +5 V regulated) at 170 mA typical, 250 mA maximum, and ±16 V unregulated (or ±12 V regulated) at 85 mA typical. Delivery is from stock to 45 days. Computalker Consultants is located at POB 1951, Santa Monica CA 90406." Circle 616 on inquiry card. Vocal Input to your Computer A new system compatible with all Altair (S-100) bus computers to provide voice input and control, and replacing keyboards in many instances, has been announced by Heuristics, a Los Altos CA speech research firm. Known as Speech- LabTM j the system is available in se- lected computer stores and directly from the manufacturer for $249 in kit form or $229 assembled and tested. SpecchLab digitizes and extracts data from speech waveforms and applies pattern matching techniques in order to computer enterprise/ Your Mail Order Computer Shop... IMSAI 8080 kit with 22 slots (limited quantity) $645.00 TDLZ-80 ZPU (the one with full software availablenow) 242.00 Edge Connectorsa/idguides for IMSAI each 4.25 EdgeConnectorsandguidesforlMSAI 10for 40.00 Vector Graphic 8k RAM kit with 500 ns chips 225.00 Seals 8k RAM kit with 250 ns chips 260.00 NorthStarcompleteMicro-DiskSystemkit 599.00 WETAKE MASTERCHARGEORBANKAMERICARD For phone and mail orders... (Add 4% of TOTAL ORDER for service charge) TERMS: Shipping charges — $10. per CPU or large units, $1.50 per kit, $2, minimum per order. Provided stock is available, we will ship immediately for payment by cashiers check or money order. Allow 3 weeks for personal checks to clear. New York State residents add appropriate sales tax. PRICES SUBJECTTO CHANGE WITHOUT NOTICE. For the best prices available on: IMSAI • TDL • NORTH STAR • POLYMORPHIC TARBELL • SEALS ELECTRONICS CALL: (315)637-6208 WRITE: P.O. Box 71 • Fayetteville, N.Y. 13066 STATE OF THE ART BOTH FORMS There are two forms of the "state of the art." One form is the personal growth attained by most professionals who realize they must stay in step, intellectually, with new concepts and new techinques. Too often, a tragedy occurs when the professional neglects the second form, his career development. The fatal mis- take occurs when working in an environment that provides a continuous parallel to industry but neglects to provide the pro- fessional growth that is necessary to insure career development and avoid potential future frustrations. To insulate yourself against this happenstance, check with our professional staff. They will advise you on your career development as it relates to your technical development. Our areas of specialization are: Software Development Computer Graphics Data Base Computer Design Simulation and Modeling Telecommunications Hardware/Software Interface For further information either call or send resume to: PERRI-WHITE ASSOCIATES 50 FRANKLIN STREET BOSTON, MASS. 02110 (617) 423-1900 ROBERT MARLOWE PERRI-WHITE & ASSOCIATES, INC. 5373 W. ALABAMA PLACE HOUSTON, TEXAS 77056 (713). 961-5500 FRANK COLLINS Management Consultants Specializing in Data Processing/Systems Engineering All Replies Held In Strictest Confidence 153 Circle 168 on inquiry card. Circle 100 on inquiry card. Why Wait? - ~"'~ ~~ ■'-■ ■• — ■ - ' '~\\f- The Tarbell Cassette Interface Plugs directly into your IMSAI or ALTAIR* Fastest transfer rate: 187 (standard) to 540 bytes/second Extremely Reliable — Phase encoded (self- clocking) 4 Extra Status Lines, 4 Extra Control Lines 37-page manual included Device Code Selectable by DIP-switch Capable of Generating Kansas City tapes also No modification required on audio cassette recorder Complete kit $120, Assembled $175, Manual $4 TARBELL ELECTRONICS 20620 S. Leapwood Ave., Suite P, Carson, Ca. 90746 (213) 538-4251 California residents please add 6% sales tax •ALTAIR is a trademark/tradename of MITS, INC. 21 START-AT-HOME COMPUTER BUSINESSES in the shoestring, start- at-home computer business handbook CONSULTING •PROGRAMMING ©SOFTWARE PACKAGES *C0M FREELANCE WR I T I N G • S EM I N ARS • TAP E/D I S C CLEANING FIELD SERVI CE • SYSTEMS HOU S E S • L EAS I NG#SU PP L I E S PUBL I SH I NG • T I ME B ROKE RS • H A RDWARE DISTRIBUTORS SALES AGENC I ES • HEADHUNTING ©TEMPORARY SERVICES USED COMPUTERS* FINDER 1 S FEES0SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME Plus - - hundreds of ideas on moonlighting, going full-time, image building, revenue building, bidding, contracts, marketing, professionalism, and much more. No career planning tool like it ever published. Order now and if you're not completely satisfied, send it back within 30 days for a full and immediate refund. • 8± X 11 ringbound #113 PP- •$12.00 730 WAUKEGAN ROAD • SUITE 108 DEERFIELD. ILLINOIS 60015 DHTHSERRCH Incorporated Rush copies of "The Shoestring S t a r t - A t- Home Computer Business Handbook to me right away - NAME /COMPANY ADDRESS C ITY/STATE/Z I P □ check ENCLOSED[~JBANKAMERI CARDQMASTERCHARGE recognize vocal input. Applications in- clude computer input, games, research and vocal control. In addition to Altair bus computers, SpeechLab can be used with any com- puter by using a separate power supply and connector. Included in the price is a complete hardware and software system, a 275 page laboratory manual, 95 page hard- ware manual, high fidelity microphone, and three programs on paper tape. The lab manual includes 35 graded experi- ments with over 100 tables and graphs. The recognition of spoken inputs requires 64 bytes of storage per word and a vocabulary of up to 64 words in memory. Other features include real time response, 95% recognition accur- acy, automatic hardware self-test capa- bility, and C-MOS design for low power dissipation. Software includes the Speech- Basic™ BASIC programming language, assembly language speech recognition program, SpeechBasic plot, correlation, recognition, advanced recognition and hardware self-test programs. For more information write to Heuristics Inc, 900 N San Antonio Rd, Los Altos CA 94022." Circle 61 7 on inquiry card. A Modular Graphics Subsystem Matrox Electronic Systems, located at POB 56, Ahuntsic Station, Montreal, Quebec CANADA H3L 3N5, has sent along some information on what has come to be called the ALT-256**2 Graphics System in their product line of display devices. The ALT-256**2, to which we alluded in a previous new product story (see November 1976 BYTE, page 60) is designed to plug directly into any Altair (S-100) bus com- patible computer such as the IMSAI shown in the press release photo. The board interfaces to the host computer as a set of four peripheral ports. Two of the ports are used for storing the X and Y coordinates ol a spot, and a third port is used simply to turn the dot on or off; a fourth port is dedicated to clearing or presetting the whole screen. It con- tains its own 65,536 bit refresh memory so that no address space in the host com- puter is used up for display purposes. This is an important consideration, since multiple copies of this 256 by 256 grid display can be plugged into the same computer and jumpered to use common Circle 170 on inquiry card. 154 Circle 171 on inquiry card. synchronization so that a color effect with 256 by 256 resolution and seven colors can be achieved by driving a com- mercial RGB monitor (red-green-blue guns on separate inputs with common synch). The board is not a kit, and is priced at $395 FOB Montreal, with de- livery two to four weeks after receipt of orders. European readers will also appreciate the fact that the ALT-256**2 is also available in a standard version using the European television timing definitions.* Circle 618 on inquiry card. Instrumentation and Test with the Personal Computer Bus International Data Systems has announced an instrumentation module for the Altair (S-IOO) bus which allows the user to make measurements of fre- quency and period, formerly done with "dumb" uncomputerized measuring equipment. The product is the 88-UFC, a 9 decade universal frequency counter module. The design allows software selection of all functions and has cap- abilities said to have been previously available only on counters costing several times its $179 price. The 88-UFC has provision for four signal sources which can be selected under software control. Three of the inputs have general purpose analog or digital signal conditioning, and the fourth accepts TTL signals for use in debugging logic systems. One of the general purpose inputs includes a divide by ten prescalar which extends its input range typically above 600 MHz, and the other two general purpose inputs can count signals ranging typically up to 65 MHz. With one of these boards and the software provided, the user can in principle perform nearly all the fre- quency and time period measurements encountered in the typical electronics or scientific laboratory (to say nothing of the amateur radio station or electronics repair shop). The crystal controlled time base on the board can be selected in soft- ware to provide count periods from 100 ns to 1 second, with half cycle or full cycle counts. The board is said to allow measurement of a 600 MHz signal's frequency with ±1 Hz resolution, or two parts in 1 09. Software included with the unit provides totalizing or accumulation of event counts, measurement of the period of a signal, measurement of frequency, computation of frequency ratios Continued on page 162 That's right, if we don't sell a bunch of our BASIC SOFTWARE VOLUME 1 albums quick, we'll get fired! Included are lots 'n' lots of your favorite Basic programs such as LUNAR LANDER and BLASTOFF!, plus new ones like MAILING LIST, FOURIER FIT and AMPLE ANNIE. Plays through your Tarbell, Kansas City or Altair cassette interface (we coded all three ways). Or make cassette copies. Only 6 bucks. Don't be a dummy, or- der today! Satisfaction guaranteed or money back. to: $6 SOFTWARE RECORDS PO BOX 8401-B UNIVERSAL CITY, CA 91508 (CALIFORNIA RESIDENTS: PLEASE ADD 6% SALES TAX) L^fl MICRODESIC3IM i I microcomputer products 2708 TMS2716 EPROM/RAM VERSATILITY • Individual Addressing • Shadow alternates ROM wilh RAM • External RAM disable • Optional IK on-board RAM • S100 compatible • Power-on jump or bootstrap capability • All sockets included MR 8 KIT For 2708 99.50 MR 16 T KIT FOR TMS 2716 99.50 EPROM (shown) not included FIRMWARE • 2K Monitor/Utility • Supports Tarbell cassette, paper tape • Now available lor SI0, MI0. 3P4S, SI0 2 MM 2K (two 2708 type EPROMS) 89.50 MM2T (one TMS 2716 EPROM) 84.50 EPROMS • Prime, full specification • programming available 2708 type 1024x8 35.00 TMS 2716 2048x8 65.00 MICRODESIGN 8187 Havasu Circle. Buena Park CA 90621 • (714) 523-8080 155 Circle 172 on inquiry card. FINALLY. A State-of-the-Art lool For Learning Software Design. And at an affordable price. The Modu-Learn™ home study course from Logical Services. Now you can learn microcomputer programming in ten comprehensible lessons. At home. In your own time. At your own pace. You learn to solve complex problems by breaking them down into easily programmed modules. Prepared by professional design engineers, the Modu-Learn™ course presents sys- tematic software design techniques, structured program design, and prac- tical examples from real 8080A micro-computer applications. All in a modular sequence of 10 lessons . . . more than 500 pages, bound into one practical notebook for easy reference. You get diverse examples, problems, and solutions. With thorough back- ground material on micro-computer architecture, hardware/software trade- offs, and useful reference tables. All for only $49.95. For $49.95 you learn design tech- niques that make software work for you. Modu-Learn™ starts with the basics. Our problem-solution ap- proach enables you to "graduate" as a programmer. See Modu-Learn™ at your local com- puter store or order now using the coupon below. Please send the Modu-Learn 1 " course for me to examine. Enclosed is $49.95 (plus $2.00 postage and handling) or my Mastercharge/Bankamericard authoriza- tion. Name:. Address: City: Card #_ _State:_ Expiration date:. Signature: 711 Stierlin Road Mountain View, CA 94043 (415) 965-8365 SERVICES INCORPORATED BYTE's Bits A Personal Computing Electronic News Service: the "Net" Worth of Space Age Journalism We recently received a copy of the Washington Amateur Computer Soci- ety's Journal which contains news about the society, product reviews and specula- tive articles. In short, a very good ex- ample of the sort of journalism coming out of the local computer clubs. What makes this particular issue so special, though, is that it is available via computer link to anyone possessing a computer terminal and telephone cou- pler! Members and nonmembers alike can dial (202) 635-5730 (for a 300 bps line) or (202) 635-5710 (for a 110 bps line) and start receiving the latest scoop from the Washington DC area. The Journal is written and edited each month on a DECsystem-10 at the Ca- tholic University of America; it is avail- able as a "free access" text file (ie: no password or account number is neces- sary). The procedure used to obtain the journal is simple. After calling either of the two numbers listed above, the DECsystem will respond with its answer tone. Activate your modem and type "Control C." The computer should echo an up-arrow followed by "C." (If it does not, repeat the procedure several times. If you still have no luck, the computer is probably down.) Next, type "I" follow- ed by a carriage return. The system will reply with the following response (there may be some slight variations in this re- sponse): "CATHOLIC U. 507B20 19:39:01 TTY60 SYSTEM 95," follow- ed by a period on the next line to indi- cate that you are conversing with the timesharing monitor and that it is wait- ing for your instructions. To get the Journal, type "HELP WACS" and a car- riage return. The computer will then type out the journal text. The journal is set up to fit in a format of 60 characters to the line and 66 lines per page. If you are going to read the text on a video dis- play unit, it is a good idea to tape the telephone output for later reference. To stop the output at any time, type "Con- trol O." It should be mentioned that the Jour- nal is rather lengthy (16 pages for the April issue). The question of long dis- tance phone charges for this type of ser- vice is not a trivial one. The following excerpts are taken from a letter sent to us by the directors of the club in which they discuss this and other points: We believe that this is the first such electronic "mail service" or journal. You will not be working with a recording but rather will be running a program on the time- sharing system that moves infor- mation stored on a disk file to a serial communications port. We would not be able to share this new adventure in communications with you if it were not for the kind assistance of the computer center of the Catholic University of America. Since this service uses computer time, which slows the computer down slightly and ties up a communications port, we ask that you use it only during non- business hours: late at night or weekends would be ideal. Our journal is also available in printed form. . . . We hope that this will be the first of many such computer hobbyist communica- tion nets, and that the age of elec- tronic mail and news journals will not be far off. We understand that long distance telephone rates will make our service rather expensive for the individual, let's say, in California. But perhaps that is where hobbyist clubs can show their worth and make use of un- used business WA TS lines late at night or on weekends. . . . I Elec- tronic journals! are just the kind of justification for the adoption of ASCII as a legal transmission code on the amateur airwaves that the FCC will recognize. We com- puter hobbyists need access to quick, efficient and up to date communications media to enable us to grow and exchange ideas. Why can't we have access to radio communications in the code that is a national standard not only for our hobby but also for ANSI? Computer hobbyists unite! Petition the FCC to allow us to communicate in our "native tongue." Meanwhile, find those fallow WATS lines and make them serve our hobby. Robert Jones, director Thomas Crone, assistant director Richard Bonanno, editor William Stewart, assistant editor Washington Amateur Computer Society 4201 Massachusetts Av #168 Washington DC 20016* Pushover stacks are characteristic features of incompetent waiters." What is a strip of leather used to hold integrated circuits into the sockets of a voice analysis system? SuonidlQV ■ Circle 145 on inquiry card. 156 Attention KIM-1 and other 6502 system users. If you are tired of waiting for slow-slow program loads, we have the solution. A cassette write/read program that requires no additional interface hardware! Just two single-bit I/O ports! 213 bytes per second fast! Self-clocking with checksum and check read. Uses moderately priced recorders and cheap cassettes. $25.00 check or money order covers program and use instructions. Other copyrighted 6502 software available. Write for particu- lars. (California residents include 6% sales tax.) INNOVATIVE SOFTWARE, INC. 3107 Casa Bonita Dr. Bonita, CA 92002 PARALLEL I/O, POWER SUPPLY, 256 BYTE RAM, 16 OP CODES, TTL (Open Col) COMPATIBLE, CABINET. Rodent COMPUTER KIT $129.00 4K ROM/RAM kit (Less ROM) 3K RAM $99.00 KITS IN STOCK KIT HOUSE 161 GARY WAY NSL, UTAH 84054 * G* N * What you can do with a 4K RAM that can be positioned anywhere in memory by program commands. We have some Ideas you may not have thought of. Write and ask about our new 4K PL (program locatable) RAM card tor the 3100 bus. The 4K PLRAM comes fully assembled, tested and burned in for only $179. $199. Sorry - Blame Pierre Ont. Residents Add 7% PST. l^olMJaHo industries ltd. P.O. Box 421 Slmcoa, Ontario, Canada N3Y 4L5 Circle 149 on inquiry card. Circle 1 74 on inquiry card. Circle 1 75 on inquiry card. Disc/3 r DISC/3 COMPANY COMPLETE MICRO BUSINESS SYSTEMS A/R, Mailing Labels, G/L, Pay roll, A/P, etc. plus Lear Siegler $ 749.95 ADM-3A kit IMSAI 8080 kit $ 599.95 Centronics Business $1520.00 Printer (132 columns; Disc/3 DISC/3 COMPANY 1840 LINCOLN BLVD. SANTA MONICA, CALIF. 90404 (213)451-8911 ' COMPUTER MART OF NEW HAMPSHIRE DEALERS FOR TDL ICOM IMSAI DIGITAL GROUP SOFTWARE INCLUDES: 8K BASIC EXT. BASIC TEXT EDITOR DISK BASIC WORD PROCESSOR MACRO-ASSEMBLER 1 70 MAIN STREET NASHUA (603) 883-2386 micRO-syTE PRESEnTS PROGRflmmms TAPE CASSETTE Designed Especially For microcomputers 30 minutes ,». -- .- hish pneQuencu SUPER SEnSITlUE lsuj noise T~r $5.00 each micro-Bute 5870 MIAMI LAKES DRIVE EAST MIAMI LAKES. FL 33014 (306) 8226010 Circle 176 on inquiry card. Circle 177 on inquiry card. Circle 169 on inquiry card. KIM-1 USERS Are you in need ol peripheral support to get the job done? HERE ARE SOME OF THE THINGS YOU'VE BEEN WAITING FOR! 2704/2708 EPR0M PROGRAMMER S275 2K ROM BOARD with 2 1702A roms S105 8K ROM BOARD with 2 2708 roms SI 55 2K RAM BOARD with 16 21021 rams S105 4K RAM BOARD with 32 2102-1 rams $165 8K RAM BOARD with 64 2102-1 rams S275 ONE PASS ASSEMBLER BOARD for KIM 1 S245 64 Char ASCII TV INTERFACE BOARD S265 Bin RELAY OUTPUT BOARD 120v,400W $195 MOTHERBOARD 6 card KIM 1 to S 100 bus S95 MOTHERBOARD 6 card KIM-1 to EXORCZR bus S95 MOTHERBOARD G card KIM-1 to KIM-1 S105 EXPANDER CABLE to couple motherboards S45 KEY80ARD (63key)/EDIT0R/ASSEMBLER with 8K RAM and TV INTERFACE S895 All units fully assembled 'Pa. Res. add 6% Sales Tax HYBRID TECHNOLOGIES P.O. BOX 163 BURNHAM, PA 17009 Dealer Inquiry Welcome 7?r aeco THE ULTIMATE IN: 8 * BPTtfiAS, TAPS BJftDSSS Precision machined tape guide Interface directly to a pjjj or ljflRT Tristate buffer output fill handshake logic- "nil computable Pull thru tape- Keads 9t«B999 cps Interface thru a 14 pin IC plug t$ 38.00' * 5.50- O ORDER. SEND CHECK OR M.o. TO: 'O BOX 1221 OND DU LAC, Wl 54935 WUCROCOMP WE SPECIALIZE IN MICROCOMPUTER SYSTEMS FOR HOB BY- BUSSINESS- EDUCATION WE ARE EXCLUSIVE OSI DEALERS... WE DO A BETTER JOB. ACCESSORIES FOR YOUR ALTAIR OR OTHER S-100 BUS UP io*tf ,o/o Of* NEW FACTORY WIRED & TESTED BOARDS & SPECIAL-COMPUTERS (mfg.byMITS) • 12 BIT AID • 2SIO • CPU • 4K STATIC RAM 8K PROM BOARDS (WIW.O. PROMS) & OTHERS 2708 PROMS ALSO NEW GE TERM IN ET 30s 24 INPUT MUX (110 or 300 BAUD) CALL DICK REEVES (314) 569-1506 Circle 179 on inquiry card. Circle 1 57 on inquiry card. Circle 181 on inquiry card. A Trapping Technique for the 8080 John M Schulein 1186 Arlington La San Jose C A 95129 Debugging 8080 Software? How About a Trap Routine? If you have got your 8080 system up and running and you are starting to write some programs for your system then the trap routine discussed in this article may be just what you need to assist you in debugging your own software or other software you have keyed in or relocated. This trap routine is in PROM in my system and has been invaluable in locating bugs in various programs. This trap routine is a program that is written as a subroutine and is designed so that when it is called it will do the following: 1. Immediately save the machine state. 2. Print out the machine state on a television display. 3. Wait for a keyboard input so that the programmer can decide whether to examine or modify memory or to restore the machine state and resume execution of the program that called the trap routine. A typical way to use this trap routine is to change one or more instructions in critical areas of the program being debugged to the 8080's RST 7 instruction (FF hexadecimal). Note that this implies thatyour problem pro- gram is in programmable memory and that if a multibyte instruction is changed, the RST 7 instruction is placed in the first byte of the multibyte instruction. Several traps can be set at once since the trap location will be printed out each time the trap routine is executed. The trap routine is activated (called) whenever the 8080 processor en- counters an RST 7 instruction. The RST 7 instruction assumes there is a trap handler routine beginning at hexadecimal location 0038 in memory, so if the trap routine does not start at this location then a J MP TRAP instruction must be present instead. If your PROM memory starts at location 0000 then you can fix the trap routine (or jump instruction and trap routine) into PROM and you are ready to go. If your PROM is in high memory, then you can fix the trap rotuinc in high memory and you will have to remember to load the jump to trap instruc- tion (three bytes) into locations hexadecimal 0038 thru 003A each time you initialize your system. An alternate way to get into the trap routine would be to use a standard three byte call instruction. (Here no jump instruction would be required.) I decided to use the single byte call (RST) mainly for convenience (one byte to change instead of three) and also because my PROM is in low memory. The output of my trap routine is two lines of listing on a television display as shown below: TRAP AT :xxxx: Axxxx:Bxxxx:Dxxxx:Hxxxx:Sxxxx: A flags BC DE H L SP 158 Line Label Op Operand Commentary 1 TRAP PUSH PSW 2 PUSH B 3 PUSH D 4 PUSH H 5 PUSH H 6 PUSH PSW 7 LXI H.000EH 8 DAD SP 9 POP PSW 10 XTHL 11 PUSH H 12 PUSH D 13 PUSH B 14 PUSH PSW 15 LXI H, Trap Message 16 CALL PRST 17 LXI H,0013H 18 DAD SP 19 MOV D,M 20 DCX H 21 MOV E,M 22 DCX D 23 XCHG 24 CALL PTADR 25 CALLCRLF 26 MVI D,"A" 27 CALL PRREG 28 MVI D,"B" 29 CALL PRREG 30 MVI D,"D" 31 CALL PRREG 32 MVI D,"H" 33 CALL PRREG 34 MVI D,"S" 35 CALL PRREG 36 CALL RDTTY 37 CALLCRLF 38 POP H 39 POP D 40 POP B 41 POP PSW 42 RET 43 PRREG CALLPRNT 44 POP H 45 XTHL 46 CALLPTADR1 47 RET 48 TRAP- TRAPATV MESS Save registers for final return to the program being debugged. Put corrected SP onto stack and restore HL. Save and restore flags. Save registers for display. Display "TRAP AT" Calculate trap location, result in HL. Display trap location as four hexadecimal digits. Display flags, registers, and SP. Wait for keyboard input (ESC forces jump to monitor). Restore machine state. Return to program being debugged. Subroutine to POP a trap register through the top of the stack and then print the result. Listing 1 : Symbolic assembly language listing of the trap routine used by the author in his 8080 system. De- tailed comments by line number are made in the text of the article. Note that in the author's system, a hard- ware vector to ' the monitor occurs if an ESC key is pressed on his terminal keyboard instead of some other character when the program is looking for input at line 36. The system routine referenced by this program are summarized in table 7. The first line shows the memory location of the RST 7 instruction that invoked the trap routine and the second line displays the machine state (accumulator, flags, the regis- ters B,C,D,E,H and L, and the stack pointer) at the completion of the last program instruction executed before the trap calling instruction (RST 7) was encountered. The trap routine is shown in listing 1 and the auxiliary subroutines used by the trap routine are described in table 1. Listings of these auxiliary subroutines are not provided since most monitor programs will already have these routines and they most likely are peculiar to individual systems since they deal directly with 10 devices. The stack data generated by the trap routine is shown in figure 1 and will help in understanding the operation of the trap routine. When the trap subroutine is called by a RST 7 instruction, the program counter is automatically pushed onto the stack. The first four push instructions in the trap routine (listing 1, lines 1 thru 4) save the A,B,C,D,E,H and L registers and the flags in the stack. This machine state information will be used at the very end of the trap routine to restore the machine state just before the trap routine return instruction (line 42 of listing 1) is executed. The fifth push instruction (line 5) is used to provide a space in the stack for the value of the stack pointer when the trap routine was called. This value is calculated by adding 000E hexadecimal to the current stack pointer value at line 7 of the trap routine. The DAD SP instruction (line 8) does this addition and the desired initial stack pointer value ends up in HL after the DAD SP instruction is executed. Note that the DAD SP instruction affects the carry flag, and thus the PUSH PSW and POP PSW instructions at lines 6 159 Table J: Summary of Aux- iliary Subroutines. This table lists the symbolic name referenced in listing I and the corresponding functions of several moni- tor routines required. No listings of these routines are provided since the de- tailed code will vary from system to system. Symbol Function PRST Display (as on a printer) a string of ASCII characters in memory starting at the location pointed to by HL. The string is terminated by a zero byte. PTADR Display (print) HL as four hexadecimal digits surrounded by colons. PTADR1 Display (print) HL as four hexadecimal digits surrounded by colons. CRLF Sends a carriage return and a line feed (or equivalent) to the output device. RDTTY Reads an ASCI I character from the keyboard. Any character other than ESC returns the processor to the calling program with the ASCII character in the A and D registers. An ESC character sends the processor to the monitor routine. PRNT Display (print) the ASCII character in the D register. and 9 are required to preserve the flag byte. The XTHL instruction at line 10 ex- changes the most recent two stack bytes with the contents of HL. Thus after the exe- cution of line 10, the initial value of the stack pointer is on the bottom of the stack (8080 stack grows downward) and the con- tents of HL have been restored to their ini- tial values (the values they had when the trap routine was called). The next four push instructions (lines 11 thru 14) save the machine state a second time for the printing operation. Lines 15 and 16 print the ASCII charac- ter string "TRAP AT" in preparation for the printing of the memory address that gen- erated the trap. This information is highly desirable since several traps may have been set into the program being debugged and it is nice to know which trap was encountered each time the trap routine is executed. The trap subroutine return address (pushed onto the stack when the trap subroutine was called) is the key to determining the trap location. In order to access this information, line 17 and 18 cause the HL register pair to point higher up in the stack to the most significant byte of the return address. The return address is put into the DE register pair by the instructions at lines 19, 20 and 21. Note that the value of the DE register pair is decremented by one (line 22) in order to reflect precisely the location of the RST 7 trap generating instruction. This is due to the fact that the return address pushed onto the stack by the RST 7 instruction is the next memory address after the RST 7 instruction. The XCHG instruction at line 23 exchanges the register pairs DE and HL which puts the trap location into HL so that the PTADR subroutine called at line 24 will print the trap location. (PTADR prints out the contents of HL as four hexadecimal digits surrounded by colons.) A CRLF sub- routine called at line 25 moves the output display device to the beginning of the next line. Now things get a little tricky, but we are almost through so don't give up yet. The next ten lines of program (lines 26 thru 35) result in the printing out of the machine state in the form of five groups of characters on the display using the PRREG subroutine (lines 43 thru 47). Each group of characters consists of a single identifying alphabetic character, four hexadecimal digits, and a colon. Thus the printout of the machine state line takes 30 characters and just fits on a 32 character line. Each execution of the PRREG subroutine results in the following operations. First the ASCII character in the D register is printed out on the display by the PRNT subroutine. Next the return address for the PRREG subroutine is popped off the stack into the HL register pair by the POP H instruction at line 44. This brings to the bottom of the stack one of the two byte values to be printed that was placed on the stack by the instructions at lines 10 thru 14. Now the PRREG subroutine return address is restored to the stack (two bytes up from its original position) and the two byte value at the bottom of the stack that is to be printed is put into HL by the XTHL instruction at line 45. (That XTHL instruction sure is nice!) Finally the four hexadecimal digit value now in HL is printed out on the display by subroutine PTADR1 (called at line 46). Each execution of the PRREG subroutine causes the stack to be reduced by two bytes and after the execution of the last PRREG call instruction (line 35) the stack has been reduced to the upper half of that shown in figure 1. After the entire machine state line has been printed out, the trap routine waits for a keyboard input in the RDTTY subroutine (called at line 36). This gives the person debugging a program a chance to digest the trap information before proceeding. Any character other than ESC will return the processor to the trap routine and then to the program being debugged. An ESC will cause 160 the processor to return to the monitor program where the operator can examine and modify memory if necessary. If the character typed was not an ESC, a CRLF is generated and then the machine state is popped off the stack by the four pop instructions at line 38 thru 41. After restoring the machine state, the processor will now return to the program containing the trap (the program being debugged) and resume execution. Note that you can only use this technique if the program being debugged has the trap calling instructions (RST 7) located in program locations that originally contained NOPs. Most of the time I use the ESC monitor exit so that I can restore the original instruction and move the RST 7 trap calling instruction to a new location. Then another execution of the problem program can be initiated. This process will continue until the source of a problem is determined and then the program can be modified to (hopefully) correct the problem. This trap routine (or a similar one) should make debugging much easier as it produces a printout of the entire machine state at a known point in a program. Good luck in finding and removing those bugs!" used to get back to the program being debugged used to restore the machine stat I used to print out the machine state BITS 15-8 BITS 7-0 SP BITS 15-8 BITS 7-0 SP Return address for the calling RST 7 instruction. PUSH A@ line 1 PUSH B ® line 2 PUSH D@ line 3 PUSH H(a> line 4 Corrected stack pointer PUSH H @ line 11 PUSH D<9> line 12 PUSH Big) line 13 PUSH A@ line 14 Figure J: Stack Frame Used by TRAP. This dia- gram shows the allocation of data in the 8080 's stack when TRAP routine is executing line 15 of listing I. Actual contents vary during the course of TRAP, and this particular frame represents the maxi- mum stack utilization (ignoring the supporting subroutine return address) during the routine. When TRAP routine returns, the state of the processor including the stack pointer is completely restored. COMPUTER- WAREHOUSE STORE SPECIAL DISCOUNTS/ ON KITS & ASSEMBLED UNITS SAVE UP TO 201 OFF KIT PRICE UHEN A USED PERIPHERAL IS PURCHASED AT THE SAME TIME (S200 MAXIMUM) PERIPHERAL(S) OVER $9001 PERIPHERAL(S) OVER $2501 PERIPHERAL(S) OVER $95 i 20% OFF KIT PRICE 10% OFF KIT PRICE 5% OFF KIT PRICE DEPT B • P.O. BOX 69- KENMORE STATION* BOSTON, MA. 02215 • 617-261-2700 BUILD YOUR OWN TERMINAL! HOT AUGUST SPECIAL ! $494 75 GREEN PHOSPHOR package price VIDEO MONITOR +■ includes shipping SWTPC CT64 TERMINAL KIT $510 16x64 CHAR., 2 PAGE WITH SCROLLING, 6x9 TnTr.™ MATRIX, SERIAL INTERFACE, KEYBOARD, FULL UK ""'™"- C0NTR0L CHARACTER DECODING, POWER SUPPLY. PR,CE KITS SCAMP KIT FR0H NATIONAL SEMICONDUCTOR COMPUTER KIT.. . KEYBOARD KIT. . . LEAR SIEGLER ADM-3A i,, s ,- ¥ :WITH CURSOR CONTROL • 12" CRT «RS232 • 2*1 LN x 80 CHAR •20 mA LOOP $875 THOUSANDS OF KITS & PERIPHERALS KIT. $25 SHIPPING IMSAI 8080MICROKITS I MM ROM CONTROL KIT EXPANSION TO 1 MEG. KIT ASSEMBLED KIT 22 SLOT. . llK MEMORY KIT PI C-8 PRIORITY INT. SERIAL I/O KIT LOW POWER DYNAMIC MEMORY 65K RAM CARD $3899 $299 32K RAM BOARD KIT $ 7*19 399 ASSEMBLED 1099 16K RAM BOARD KIT s i Herod the horn will sound attei a 50^5 second unuv delay, Thp automobile owner, ti\ inserting Ihe ignition key, win activate th* alarm. Once activated, the alarm will tound (oi two minutes before automatically turning of. The alarm then re sets and is ready lo aflS'n oroteci the uehic4e irom unwarned entry FEATURES Simple installation 5 wires, Automatically turns on when auto lS parked. Adjustable mwiv """■. ExtendwJ exit limeto allow tai unruihed bum iiom vehicle. Numiw ous applications inclui If protection ol boats, cam|)i-Ts. tr.iili-ii. motoicvclei. ducks. Ciinnoi bf deactivated bv "hoi wring" en .hud, C.in noi be turned oil without ignition kt-v, Neq .in v.- ground only ONLY S10.00 PER KIT •U*- ELECTRONIC SWITCH KIT CONDENSER TYPE Touch on Touch Off use 7473 I.C and 12V relay $5.50 each ► ► ► ► FM WIRELESS MIC KIT Transmit range up to 1 00 ft. Easy to assemble (MIc Included) $4.50 each Sub-Mini Size Condenser Microphone $2.50 each FET Transistor Built-in SIGMA 78REI, 12DC RELAY 400.TC COIL SPDT $1.30 ea. or 10 for $10.00 ALL BRAND NEW UNITS ► Computer Grade Capacitors Z00O MFD 2.00 ea. 3DQ0 MFD 3.25 >b. 8000 MFD 3.75 ta. 10000 MFD 3,95 ««. 6000 MFC 7SV-0C 4.00 u. 15500 MFD 75V-DC 5.95 •■ m CLOCK KIT MOST POPULAR MM5314 KIT WITH A NEW CASE!! Features: 12/24 Hour Display 50/60 HZ Input 6 Digits Readout Kit Includes: Grey Color Plastic Case MM5314 Clock Chip PC Boards and Trans- former, 6 Green Color 0.3"' Tube Readouts, All other transistor Drivers and other Com ponen,s Special Only $14.95 ea. ► ► WIRE WRAPPING TOOL $33.50 WIRE WRAPPING IN BULK Red or Blue 100' S2.00 S00' S8.50 MATCHED PAIR ii POWER TRANSISTORS MOTOROLA MJE2U55 PNP MJE305S NPN 10 AMP 60 VOLT 90 WATTS S2.25PER PAIR Sub Mini Size PANEL METER 500 UA ONLY $1.20 ea AC POWER SUPPLY Adapter Type Transformer 12V AC 200 MA Output S2.75 Each 4 Dlgltf Alarm Clock LI '01E, 6011/. 12 hr. rjfip LT 701G. 6OH7, 2d hr. rlisp rS13.nO FACH 500 UA VU METER Special Price 2 for $1.99 SO UA PANEL METER Only S3. 80 ea. QUARTZ CRYSTALS rt 1 MHZ 2 MHZ 4 MHZ 10 MHZ 3.579 MHZ Color TV Type S4.95 S5.25 S5.25 $5.25 S1.25 SAE DIP SWITCHES ^V a rosB'esr-ST s.* SUBMINIATURES TOGGLE SWITCHES A A SPOT OnQM DPDT On Off 3PDT On OH QUAD VOLUME CONTROL onlLj $7.50 .' PUSH-BUTTON SWITCH N/Open Contact Color: Red, White, Blue, reen, Black. 4/$1.00 N/Close also t Available 50c ea. LARGE QTV. AVAILABLE SOLID STATE ELECTRONIC BUZZER $1.50 each or 2/S2.5G UNIMUM ORDER $10.00. California rosirients add 6 & postage lor out O* stale. Overseas countries add 15 c SEND CHECK OR MONEY ORDER TO #j| FORMULA INTERNATIONAL I C. ^^(k^^ I 260 II -.'-■■■■:. BOULEVARD • HAWTHORNE. CALIFORNIA 902b0 j ^^-^^ r_ For more information please call 12 13) 679-5 162 STORE HOURS 10-7 Monday Saturday Circle 184 on inquiry card. byte blocks), low 1.4 A power consump- tion and provision on the board for battery backup. Logos I is available as a kit for $248 ($31 per 1 K block installed) and $298 in assembled form ($37.25 per 1 K block installed). The Model 801C is a static memory board which can be placed at any 4 K boundary in memory address space, and trades a slightly lower price off against the lack of memory protect and battery backup features of the Logos I. The Model 801 C is available in assembled form only, priced at $198 if 21 L02-1 parts are used, and $207.95 if 91L02APC parts are specified for the memory array. Advanced Micro- computer Products is located at POB 17329, Irvine CA 92713." Circle 622 on inquiry card. A Frequency Meter Plug-In 8 K Combined EROM and Volatile Memory Card Mountain Hardware, Box 1133, Ben Lomond CA 95005, has introduced this PROROM board for use in computers which use the 100 pin Altair backplane design. The purpose of this board is to enable the user to store custom soft- ware in a region of 7.5 K bytes (7680 bytes decimal) of UV erasable read only memory parts. The board uses an even 8 K of memory address space, with the extra 0.5 K devoted to volatile pro- grammable memory. The EROM parts employed in this design are AMI-S-6834 which can store 512 bytes per package in fifteen 24 pin packages. Also included in the design is a programming circuit which enables the user to write into the EROM regions. There are DIP switches for selecting the 8 K address range for the board, as well as write protect logic to protect against accidental writing into the EROM parts. The standard $164 kit price includes 256 bytes of volatile memory, one S-6834 EROM prepro- grammed with an 8080 system monitor program, and complete documentation. Where would this product prove most useful? Anyone considering assembly of a general purpose or dedicated applica- tion system with Altair compatible peri- pherals should find this card a useful component: its built-in volatile memory can provide the 8080's subroutine link- age stack, as well as a small amount of scratch pad storage for the application program; the 7.5 K bytes of read only The AIM-1005 is a novel Altair (S-100) bus interface which is an adapta- tion of a previously available industrial module to an Altair compatible 100 pin bus connector as seen in this picture. The AIM-1005 is primarily intended for use as a receiver of signals from trans- ducers which generate frequency analogs of physical parameters for transmission to the computer over twisted pair wires. The precision of the measurement is 16 bits, and the company also provides the AIM-1000 transducer interface and a multiplexor for multichannel systems. This product was demonstrated to us on an Altair 8800a by Barry Hilton, its designer. He is also the proprietor of Automated Industrial Measurements Inc, POB 1 25, Wayland MA 01 778." Circle 624 on inquiry card. memory capacity, when fully stuffed with EROM parts is sufficient for a quite sophisticated set of dedicated Continued on page 168 WE PAY POSTAGE! D.R.C. ELECTRONICS P. O. Box 401247, Garland, Texas 75040 (214) 271-2461 If your computer uses the S-100 buss; D.R.C. is a name you will want to know. Send us your name. ROTARY SWITCH Instrument grade. 6 Pole. Position. Centralab. $.99 each 1 AMP RECTIFIERS House Numbered. Factory marked units. All meet 200 PIV minimum. Many up to 1,000 PIV! Full Leads. 30 FOR $1 2708 1KX8 EPROMS 2708 Prime new units from a major U.S. mfg. 650 N. S. access time. Equivalent to four 1702A's in one package! GOING INTO &1 r "J C BUSINESS SALE! 4>I3./ D each OPCOA LED READOUT SLA-l Common Anode. .33 In. character size. The original high efficiency LED display. $.75 each 4 FOR $2.50 DISC CAPACITORS .1MFD 16 V. P.C. Leads Most Popular Value! P.C. Leads. By Sprague. 20 FOR $1 TANTALUM CAPACITOR 1 MFD. 35 V. Kemet. Axial Lead. Best Value. 10 FOR $1 TERMS: ORDERS UNDER $15 ADD $.75. NO C.O.D. WE ACCEPT VISA AND MASTER CHARGE CARDS. MONEY BACK GUARANTEE ON ALL ITEMS. ■k ELECTRONICS P. O. BOX 401 247 • GARLAND, TEXAS 75040 • (214) 271-2461 Circle 185 on inquiry card. 164 SOLUTIONS FOR SALE: OUR KITS SOLVE YOUR PROBLEMS PROBLEM: As you add more cards on to your buss, funny things start to happen . . . data scrambles, bits drop, and programs crash for mysterious reasons. SOLUTION: ACTIVE TERMINATOR BOARD ($29.50) Plug into any S-100 slot to tighten up your machine by providing proper loading for TTL lines. Active terminations draw far less power than passive types, and provide superior data handling compared to unterminated lines. PROBLEM: You have outgrown your CPU board, and are getting tired of talking to your 8080 in machine language. SOLUTION: 4K ECONOROM II™ SOFTWARE BOARD ($265) Our latest model offers improved listings that make this board even more flexible . . . contains editor, assembler, and monitor routines for your 8080, implemented in eraseable ROM. Very low power opera- tions, S-100 compatible. Also available unprogrammed for storing custom programs and routines. PROBLEM: You have no idea which RAM card to choose out of the many available. SOLUTION: 8K ECONORAM II™ ($169) Everything you want, from low power, to speed (zips along at 450 ns), to reliable technology (static RAMs with low power Schottky support), to convenience features (dip switch block selectors, ability to configure as 2 separate 4K blocks, and tri-state outputs that mate with the S-100 buss or bi-directional busses). In our years of experience selling RAM cards, we've learned how to do it right . . . and how to do it inexpensively. PROBLEM: You need a simple, compact, regulated supply that won't blow up your computer if something goes wrong. SOLUTION: SMALL SYSTEM POWER SUPPLY ($45) Delivers 5V at 4A with crowbar overvoltage protection, and ± 12V at V2 A per side. Also features an ad- justable bias supply and compact design. PROBLEM: You want to add more peripheral cards to an already overpopulated machine ... or start a stand alone system. SOLUTION: 10 SLOT MOTHERBOARD ($89) or 18 SLOT MOTHERBOARD ($124) Not just another S-100 motherboard— includes all edge connectors, as well as our active termination circuitry and extra-wide supply line traces (go ahead . . . fill all the slots, you won't get additional pro- blems with additional cards). Starting a system? Start here. r CAVTi TERMS: Allow up to 5% shipping, excess refunded. Cal res add tax. BankAmerlcard® and Masterchard©orders, call our 24-hour order desk at (415) 562-0636. Include street address for UPS. BILL GODBOUT ELECTRONICS BOX 2355, OAKLAND AIRPORT, CA 94614 DEALER INQUIRIES INVITED Circle 186 on inquiry card. /^W' CRYSTALS iT Pin? CY1A CY2A c THESE FBEQUEHC1ES ONLY Fraquancv Casu/Style" ICY2 1 1.000 MHz 2.000 MHz HC33U HC33U ~ PFTHb $5 95 S5.95 2 010 MHz ifcVTTl CY3A CY7A CY12A CY14A CY19A CY22A CY30B 4 000 MHz 5.000 MHz 10 000 MHz 14 31818 MHz 18 000 MHz 20.000 MHz 32 000 MHz HC18/U HCIB'U HC18U HC18U HCIB'U HC18/U HC16U $1.951 S4.9S S4 95 S4 95 S4 95 S4 95 S4.95 54 95 XH-2206KB Kit $29.95 Special XR-2206KA Kit S19.9S WAVEFORM GENERATORS XR-205 SS 40 XR-2206CP 4 49 XH-2207CP 3 85 STEREO DECODERS XR-I310CP S320 XR-1310EP 3 20 XR-18O0P 3 20 XR2567 299 EXAR XR-4136 XR-146B XR-1488 XR-1489 XH220B TIMERS XR-555CF' S .til XR-32QP 1 55 XR-556CP 1 85 XR-2556CP 3.20 Xfl-2240CP 325 PHASE LOCKED LOOPS XR-210 5 20 XR-215 6 60 XR-567CP 1 95 XR-5G7CT 1 70 CONNECTORS PRINTED CIRCUIT EDGE-CARD 156 Spacing-Tin-Double Read-Oiil Bilurcaled Contacts — Fits .054 to .070 P.C. Cards 15/30 PINS (Soldei Eyelet) S1.95 18/36 PINS (Solder Eyelet) S2.49 22/44 PINS (Solder Eyelet) S2.95 50/100 1.100 Spaciog) PINS (Solder Eyelet) S6.95 25 PIN-D SUBMINATURE DB25P PLUG S3. 25 DB25S SOCKET S4.95 3 1 / 2 DIGIT DVM KIT This 0-2 VOC 05 per cenl digital voltmeter features the Motorola 3'2 digit DVM chip set. II has a A" LEO display and operates from a single ->-5V power supply The unit is provided complete with an mjeclion molded black plastic case complete with Bezel An optional power supply is available which (its into the same case as the G-2V DVM allowing 1 1 7 VAC operation. A. 0-2V DVM with Case $49.95 B. 5V Power Supply $14.95 32 X A-1 P C Etch Materials Kit 27XA-1 — Plugboard s 3662 8800V enough lor 5 circuit boards - Etched CkcuiI Kit Complete M — only add water - 6 5 X 4 5 X 1 '16 Epoxy glass PPanein-44 PC Tans-spaced 156 - Universal Microcomputer/Processor plugboard — Epuxy Glass — complete with healsmk and mounting hardware 5 313 X 10 X 1/16 copper clad $29.95 ea. S 9.95 ea S 6.95 ea. $19.95 ea. 1/16 VECTOR BOARD 0.1 Hole Spacing P-Pallem Pari No L W 6.:P.:-!062\XXP 4 50 6 50 1 I69P44 02XXXP 4 50 17 00 3 64P44 062 J 50 6 50 ? a4P44 062 -i'50 6 50 ?. T69PJJ062 J 50 17 00 5 I69P84 062 R50 17 00 9 lfi'.P44 062C1 ■! 50 17 00 6 # HEAT SINKS 205CB 680-75A 205-CB BeiyHium rouii.-i h.mi Sink *im Bljck rimsli lot n 291-.36H Ai u in,i, u iti Hear Sink lor TO-220 lunsislors & Rci| 680-.75A Bi tu Anoa.rea Ai U 'n.n..n ForTO-3 S .25 S .25 S1.60 HEXADECIMAL ENCODER 19-KEY PAD tm Kjt . Return Key jpJJ • Optional Key i Period) $10.95 each 60 KEY KEYBOARD Tnib keyboard loatures 60 uut coded SPST keys, unattached any kind ol P.C.B A very solid molded plastic 13' * 4' suits most applications $19.95 HOD165 IB LINE TO FOUR BIT PARALLEL KEYBOARD ENCDDER TOOLS A97MS — Diagonal Cutter - 4" semi-flush cut $8.50 ea. A11DMS — Chain Nose Pliers - 4%" long 7.50 ea. T-6 —Wire Stripper - #16 to #26 gauge 3.75 ea. 55B — Wire Stripper - #10 to #20 gauge 2.50 ea. CS-8 — Cutter -Crimper Tool - 8V long 8.50 ea Nippling Tool — Cuts. Trims or Notches Metal up to #18 gauge 6.95 ea. Nibbling Tool Replacement Punch 3.75 ea. PERMACEL P-29 PLUS Electrical Tape - All Weather • V wide x 66 ft. • Black vinyl ^ 1-9 Rolls S.7fleach 10-up Rolls S7. 95/10 roll package MICROPROCESSOR COMPONENTS 8212 8214 8216 8224 SOB0 8080- 2650 2504 251 B 2519 2532 2533 3341 74LS670 CPU 8 Bit Input/Output Priority Interrupt Control Bi-Directional Bus Driver Clock Generator/Driver 12 - with user manual CPU'S Suds- 3006 Super sooa B BIT MPU SR'S 1024 Dynamic He. 32 3IT He. 40 BIT 512 Qynumif 1024 Dynamic Dual 256 BH Dual 512 Bit $19 95 4,95 15.95 6.95 10.95 39.95 8228 System Controller - Bus Driver MC6800L 8 Bit MPU MC6820-L Periph. Interface Adapter MC6810AP1 128 x 8 Static RAM MC6830L8 1024 x 8 Bit ROM Z80 CPU $10.95 35.00 15.00 6 00 18.00 49.95 RAMS 256. Static Dynamic Static 5ianc BIT '024 Stale AY-5-1013 30*. Baud RUM'S 2513I2UD] Chai Gen -upper case 2513(30211 Char Gen -lowercase 2516 Char Gen 9ii.ii: I02J i 1 Sianc 2 25 MZOO 256 ■ ' Sialic u95 93421 258 . • Static 2 95 ,:.'■.■■:.':. 2K a i ■ •- 2 lor 1 00, HROMS 1 ."0?A 204H Famos S 9 95 5203 2048 Famos 14 95 B2I 32 »8 Open C 5 00 S2S12' restate 500 74838! 1.624 Static 1 95 1601 256 . 4 rm 3 95 Lnroril 6301-1 TO?'. Tri-Slr.1i' lliiir.'.si 3 49 FCM3B17 AY-3-8500-1 MC3061P MC4016P (7-1 MC14S83 MCI 456? CD4059 CD4070 MCI 4409 MCM410 SPECIAL REQUESTED ITEMS CD450B C04515 CO4520 MCM6571 MCM6574 MCM6575 MCI 441 9 ICM7045 17 50 1750 17 50 14 95 24 95 MK50240 11C90 DS0026CH TIL30B ICM7208 ICM7207 25 00 9 95 1750 10 50 2200 7 50 8T97 3341 9368 MC1408L7 LDIIOi'LDHI AY5-9100 95M90 ICM7209 H00105 9 95 25 OOsei 1 7 50 ea 13 95 750 7 95 PARATRONICS ALLOW t TO 3 WEEKS DELIVERY Featured on February's Front Cover of Popular Electronics Logic Analyzer Kit ■ Analyzes any type ol digital system > Checks data rates in excess of 8 million words per second . Trouble shoot TTL, CMOS, DTL. RTL. Schottky and MOS families Displays 16 logic states up to 8 digits wide See ones and zeros displayed on your CRT, octal oi hexadecimal formal Tests circuits under actual operating conditions Easy to assemble — comes with step-by-step construction manual which includes 80 pages on logic analyzer operation MODEL 100A 89.00/Kit Some applications are. — Troubleshooting microprocessor address, instruction, and data flow — Examine conlenfs ol ROMS — Tracing operation of control logic — Checking counter and shift register operation — Monitoring I/O sequences — Verilying proper system operations during testing SI BUGBOOK • Continuing Education Series BUGBOOK I & II - Basic concepts ol TTL Logic— over 90 experiments S17.D0/set BUGBOOK lla - Introduces UART — recommended lor RTTY enthusiast S5.00/book BUGBOOK III - Explores 8080 chip — introduces Mark 80 Microcomputer $15.BO/book 555 TIMER APPLICATIONS SOURCEBOOK WITH EXPERIMENTS — ovei 100 design techniques S6.95/hook CMOS-M-DESIGNERS PRIMER AND HANDBOOK a complete CMOS inslrucliorl manual S6.08 I / Ollfi - all IS books iwoitli t-19 95 SPECIAL • S42.95 CONTINENTAL SPECIALTIES PROTO BOARD 6 S15.95 (6" long X 4" wide) Other CS Proto Boards PB100 PB101 PB102 PB103 PB104 PB203 4,5" x 6' S 19.95 5.8" x 4.5" 29.95 7"x4 5" 39.95 9"x6" 59.95 9.5 x 8" 79.95 9.75 x SV2 x 2*4 75.00 PB203A - 9.75 x 614 x KG 120 00 (includes riowei supply) Logic Monitor S84.95 loi DTL HTL, T7L 01 CMOS Devices PROTO CLIPS 14 PIN S4 50 16 PIN 4.75 24 PIN 8.50 OESIGN MATES OM1 - Circuit Designer 54.95 DM2 - Function Generator 69.95 OM3 - RC Bridge 59.95 QT PROTO STRIPS ■ ,!■, ', i'i..;. ■'■ or 35B OT type OT-59S 0T-59B OT-47S QT-47B OT-35S OT-35B OT-18S OT-12S OT-8S OT-7S Experimenter 300 Experimenter 600 S 995 $10.95 $5.00 Minimum Order — U.S. Funds Only California Resldsntt — Add 6% Sains Tax Spec Shouts • 25c — Send 35c Stamp lor 1977ft Catalog Dealer Discount Available — Request Pricing 1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (419] 592-8097 All Advertised Prices Good Thru Augutt Timebancl ]*\ Digital Alarm Clocks . Dott Button i 100" » Solid State ( larrjc Reo Led Display i S riirjnt i AMPM indicator i Seconds display at loucti ot Outlon i fowei failure mdicatoi . One year taciory warranty DIGITAL AUTO INSTRUMENT SEVEN DIFFERENT INSTRUMENTS! MEETS OR EXCEEDS ORIGINAL AUTOMOTIVE SPECS Please specify wtucn one ol the seven models you want when oidenng - those do not all come in one onir Each model must be bought separately WATER TEMP FUEL LEVEL 3 Ppicentage Low Fuel Intji&id W> , SPEEDOMETER* * 0-99 MPH OIL PRESSURE BATTERY MONITOR BRIGHT YELLOW ORANGE X- I FD DISPLAY! eludes case, brackei and .ill componenls — complelt* Noihing else to Duy' 12 Voll NEG GBD dimensions 4'.- « 4 * 2 KIT: S49.95 Add S10.00 lor required speed transducer ASSEMBLED: S59.95 DIGITAL STOPWATCH • Bngtit G Digit LEO Display • Times In 59 minutes 59 59 seconds • Crystal Conn oiled Time Base • Three Stopwatches m One Times Single Eveni — Split S Taylor • Size 4. 5 x2 15 « 90 (4'j ounces! • Uses 3 Penlite Cells Kit — $39.95 Assembled — $49.95 Heavy Duty Carry Case $5. 95 Stop Watch Chip Only (7205) $19.95 AUTOTEL — an audible alarm kit Indicating potential engine damage An audible signal |70 db pulsing) im mediately lorewarns a malfunction 01 failure. There is no sound during normal operation Features CMOS circuitry 2Vj" x 2Vi" x V case. Complete kit with all components, hardware and case. SPECIAL $6.95/Kit QUARTZ DIGITAL AUTO CLOCK OR ELAPSED TIMER! Elapsed Timer: Mrs. Mint and Sect 12 or 24 Hr Capacity Simple Reset - Start Pushbutton Contra! Complete kit includes mounting bracket case and alt components, noilung else 10 tiuy fealuiesMM53l4chip Large 4 LCD's Accuracy Better than i mm per mo internal nailery hackup 12 voll non-poLn operation * ? Kit: $29.95 Assembled: $39.95 CASE ONLY (includes hardware mting bracket and bezel) $6.50 JE700 CLOCK Trie JE'OO is a low cost digital clock Out is 3 very nign duality unit Ine unn tea- lures a simulated walnm case will! di- mmns oi 6 »?'.-* i It utilises a MAN72 i"igh tHigtitneSS readout and ihc $17.95 DIGITAL CLOCK KIT — 3% INCH DIGITS 4 DIGIT KIT $49.95 6 DIGIT KIT $69.95 4 DIGIT ASSEMBLED $59.95 6 DIGIT ASSEMBLED $79.95 This clock features big ;jv/ high digits lor viewing in offices, auditoriums, etc. Each digit is formed by 31 bright 0.2" LED's. The clock operates from 117 VAC, has either 12 or 24 hr. operation. The 6 digd version is 27" x 3Vi"KlVj"andthe4digrtts 18"x3Vi" x lyj". Kits come complete with all components, case and transformer. Specify 12 or 24 Hour When Ordering JE803 PROBE the I ogic Protie is a unil wnicti 15 lor me "iOsl I i ndes pen si t4e in imublc snooting loqic lamil; TTL DTL RTL CMOS 11 derives itie powe riHods lo aperatn ilunciiy oil ot trie cucuit lesl i iwing a MAN3 reartoul Id indicate any oi \he lollowmg 5 symbols iHl t aOWl ■ iPUlSEi P Tne frurn: c.v- Keren hi-j'i ''rLit^nr, ijuiscs lo 45 WH* :ani De used at MOS levels O' circuit damage $9.95 Per Kit printed circuit board PL 5V 1A Supply This « a standard TTL power supply using the well known LM309K rtyulatar E lo provide a solid 1 AMP Ol current at 5 volts * i- try lo make inmqs easy lor you ay providing everyminc you need in one package incluOmiillii'luulwarL' '°' anl, S9.95 Per Kit J B7 7400N TTL SN7400N .16 SN7459A 25 SN740IN .16 SN7460N 22 SN74154N SN74Q2N 21 SN7470N .45 SN74155N SrJ?403N .16 SN7472N .39 SN74156N SN7404N .18 SN7473N 37 SN74157N SN7405N .24 SN7474N .32 SN74160N SN7406N .20 SN7475N' 50 SN74161N SN7407N 29 SN7476N .32 SN74163N SN7408N .25 SN7479N 5.00 SN74164N SN7409N .25 SN7480N 50 SN74165N SN7410N .18 SN7482N ,96 SN74166N SN7411N 30 SN7483N .70 SN74167N SN7412N ,33 SN7485N .89 SN74I70N SN7413N 45 SN7486N 39 SN74172N SN7414N ,70 SN7488N 3,50 SN74173N SN7416N .35 SN7489N 2.49 SN74174N SN7417N 35 SN7490N .45 SN74175N SN7420N 21 SN7491N .75 SN74176N SN7421N .33 SN7492N .49 SN74177N SN7422N .49 SN7493N ,49 SN74180U SN7423N .37 SN7494N .79 SN74181N SN7425N 29 SN7495N 79 SN74182>J SN7426N .29 SN7496N .89 SN741B4N SN7427N .37 SN7497N 4.00 SN7418SN SN7429N .42 SN74100N 1 00 SN74186N SN7430N 26 SN74107N .39 SN74187>J SN7432N 31 SN74121N 39 SN74188N SN7437N 27 SN74122N 39 SN74190N SN743BN 27 SN74123N .50 SN74191N SN7439N .25 SN74125N .60 SN74192N S\7440N 15 SN74126N .60 SN74193W SN7441N 89 SN74132N 1.09 SN74194N SN7442N .59 SN74I36N .95 SN74195N SN7443N 75 SN74141N 1.15 SN74196N SN7444N .75 SN74142N 4.00 SN74197N SN7445N 75 SN74143N 4.50 SN74198N SN7446N .81 SN74144N 4.50 SN74199W SN7447* 69 SN74145N 115 SN74200H SN7448N 79 SN74147N 2.35 SN74279N SN7450N .26 SN74148N 2.00 SN74251H SN745IN .27 SN74150N 1,00 SN74284N SN7453N .27 SN74151N ,79 SN74285N SN7454N 20 SN74153N 89 SN74367N MANY OTHERS AVAILABLE ON REQUEST 20% Discount lor 100 Combined 740Q's CD-1O0O CD4001 CD4002 CTJ40O6 CD4007 C04009 CD4010 CO40U CO4012 CD4013 CD-I 016 C04017 CD4019 CD4020 CD4Q22 CD4023 CC402J CD4025 CO4026 C04027 CD4028 CD4029 25 CMOS 2.90 CD4030 CD4035 CD40-10 CDJ042 CD4044 CD4046 CD4047 CD4049 CD4050 CD4051 CD4053 CD4060 CD4066 CD4069 CD4071 CD4081 CD4511 CD4518 MCI 4566 74C0ON 74C02N 7.1C04N 74C10N 74C20N 74C30N 7JC42N 74C73N 74C74 74C90N 74C95N 74C107N 74C151 74C154 74C157 74C160 74C161 ' 74C163 74C164 74C173 74C193 74C195 MC4044 MC1J016 3.25 2.60 2.75 2.75 LM3U0H .80 LM301H 35 LM301CN 35 LM302H 75 LM304H I.0B LM305H 95 LM3Q7CN 35 LM308H 1.00 LM306CN 1.00 LM309H 1 10 LM309K .99 LM310CN 1 15 LM311H 90 LM311N .90 LM31BCN 1.50 LM319N 1.30 LM320K-5 1 35 LM320K-5.2 1.35 LM320K-12 1.35 LM32DK-15 1.35 LM320T-5 1,75 LM320T-5 2 1,75 LM320T-8 1.75 LM320T-12 1 75 LM320T-15 1.75 LM320T-1B 1.75 LM320T-24 1 75 LM323K-5 9.95 LM324N 1.80 LM339N 1 70 LM340K-5 1.95 LM340K-6 1.95 LM340K-8 1.95 LM340K-I2 1.95 LM340K-15 1.95 LM340K-1B 1.95 LM340K-24 195 LM340T-5 1 75 LM340T-6 1 75 LM340T-8 1.75 LM340T-12 1.75 LM340T-1S 1.75 LM34QT-18 1 75 LM340T-24 1.75 LM350N 1.00 LM35ICN 65 LINEAR 78MG LM370N LM373N LM377N LM380N LM3B0CN LM3B1N LM382N NE501K NE510A NE531H NE536T NE54CL NE550N NE555V NE5608 NE5618 NE562B NE565H NE565N NE566CN NE567H NE567V LM703CN LM7Q9H LM709N LM710N LM711N LM723H LM723H LM733N LM739N LM741CH LM741CN LM741-14N LM747H LM747N LM748H LM748N LM1303N LM1304N LM1305N LM1307N LM1310N LM1351N 1.6 LM1414N 1.7 LM1458C .6 LM1496N .9 LM 1556V 1.8 LM2111N 1.9 LM29Q1N 2.9 LM3065N .6 LM3900N 5 LM3905N .6 LM3909 1 2 LM5556N 1.8 MC5558V 1.0 LH7S25N .9 LM7535N 1,2 8038B 4.9 LM75450 4 75451CN .3 75452CN .3 75453CN .3 75454CN .3 75491CN .7 75492CN .8 75494CN .6 RCA LINEAR CA3013 2.1 CA3023 2.5 CA3035 2.4 CA3039 1.3 CA3046 1.3 CA3059 3.2 CA3060 3.2 CA3080 ,8 CA3081 2.0 CA30B2 2.C CA30B3 1.e CA3086 ,i CA3089 3 7 CA3091 10.2 CA3102 2.5 CA3123 2.1 CA3130 1.3 CA3140 1.2 CA3600 1.7 RC4194 5.9 RC4195 3.2 74LS00 74LS02 74LS03 74LS04 741.S05 74 L SOB 74LS10 741S13 74LS» 74LS20 74LS26 74LS27 74L528 74LS30 74LS32 74LS40 74LS51 74LS55 74LS73 29 74LS00 TTL 29 74LS74 74LS75 74L576 74LS63 74LS85 74LSB6 7JLS90 74LS92 74LS93 74LS95 74LS98 7JL5107 MLS 109 74LS112 74LS132 74LS136 74LSI38 74LS139 74IS151 74LS153 74LS157 74 LSI 62 74 LSI 63 74LS164 74LS175 74LS181 74 LSI 90 74LS191 74 LSI 92 74LS193 741S194 AILS195 74LS257 74LS260 74LS279 74LS670 CLOCK CHIPS MM5309 6 Digil. BCD Outputs. Reset PIN MM5311 6 Bgil. BCD Outputs. 12 or 24 Ham MM5312 4 Digit. BCD Outputs. 1 PPS Output MM5314 6 Digit. 12 or 24 Hour. 50 or 60 Hz MM5316 4 Digit, Alarm. 1 PPS Output MM5318 Vidso Clock Ctiip. for Use With (MM5B41 - S3 95) CT70Q1 6 Oiflii. Calendar, term, 12 or 24 Hour DATA HANDBOOKS 7400 Pin out & DoscMpiion of 5400/7400 ICS CMOS Pin out & Description o* 4000 :-,-<-. ICS Linear Pln-OUt & Functional Descnotion ^ All THRFR HANDBOOKS S6. 95 S2.95 S2.95 S2.95 ■M T201 Black Bracalat $19.95 | TZ37 Whllo w/hfacolol S29.95 T236 Yellow wibmcelBlS34. 95 Timcband by/n/MH/w — Watches — Men's & Ladies • Solid State • Displays hour, minute, second, month S day • Snap-out battery replacement • Free set ot replacement batteries • Choose LED or LCD styles • One year factory warranty i [Mil While w/slrap S29.S TC440 Yellow w/ilrap $34.5 ^ LADIES LED \ T311 White w/slrap $34.95 T310 Yellow w/slrap $39.95 CHANNEL F 5gT $159.95 • Freeze Action • Speed Option • Automatic time and scorekeeping Battery-free AC operation Dual controls with 8-way action Built-in Pro Hockey and Tennis games Easy hook-up on any B/W or Color TV Factory warranty Channel F — additional cartridges — $19.95 ea. #8112 - Desert Fox/Shooting Gallery #8113 - Blackjack (1 or 2 players) #8114 - Spitfire (1 or 2 players) #8115 ■ Space War #8111 - Tic-Tac-Toe/Shooting Gallery/Doodle/Quadra -Doodle XC209 XCZ09 XC2Q9 XC209 XC22 XCZ2 XC22 XC22 SSL-22 DL707 TYPE MAN 1 MAN 2 MAN 3 MAN A MAN 7 MAN 7G MAN 7V MAN 52 MAN 6-1 MM ti MAN 62 MAN 84 MAN 3620 125" dii. ReC 1 Green Orange .2CD" rJla DISCRETE LEDS XC526 XC526 XC526 XCS26 XC526 Yellow Orange Clear XC5S6 XC556 XCS56 XC55G XC556 G'een Yellow Orange Clear .190" dla. Red 10/51 Greer 485 Yellow Al$] Orange 4/SI .085" dla. MVSO - Red - 6/S1 [INFRA-RED LED DISPLAY LEDS C*tti POLARITY Commo'i Anoas 5 i 7 Doi Main Commnrt Cathcde Common Cathoilc Cotmron AnoO; Common Anofli-gieen Common Anooe-yellow Common Anoae-green Comnion Annds-iDtl Common Calficde Common Anode-yellow Common Cainode-yellow Common Anode -orange TYPE MAN 3640 MAN 4710 DL701 01704 DL707 MAN -1740 DL7J1 DL 747 DL 750 DL 33B POLARITY Common Calliodeoiange Common Anode-Red Common Anode-red ^ Common Calhode Common Anode Common Anode -Red Common Anode Common Annrle Common Cathode Common Calhode Common CairiDde Common Calhode Common Anode FCS 8000A — 3W Digit — .8" Display NEW 1 25 Pin Version w l?:?B FRONT VIEW -FSCBOOO SPECIAL $4.95 EA. . MAXIMUM FORWARD CURRENT - 25 mA colon & am/pm mdicalor • Connects almost one lor one wiin 3817. 38I7A or D. (3817 available al 55,00 each). ■ Typical segment current BmA except colon. 10 hrs b & c and 10 mm. a & fl wiich are 16 mA • Forward voltage drop 1.5 volts. 1-24 IC 25-49 HP 5082-7300 Multi-Digit Series • '/«" HI. • Common Cathode • Dip Package • 3 to 5 volts @ 5 mils per segment • 7 segment Monolithic • Red Display 2 Digit $ .79 3 Digit .89 4 Digit .99 5 Digit 1.19 SOLDERTAIL — LOW PROFILE (TIN) SOCKETS 50-100 Bpm 14 pin 18 pin 22 pin 14 pin 16p.n IB pin 24 pin 10 pin 16 pin 5 SOLDERTAIL STANDARD (TIN) SOLDERTAIL STANDARD (GOLD) 24 pin 28 pin 40 pin WIRE WRAP SOCKETS (GOLD) LEVEL #3 43 50 PCS ASST. 1 ASST. 2 x Vis". Board only . . . $45 With 15 connectors $105 Extender Board full size. Board only $9 With connector $1 3.50 Solid state music Cybercom boards are high quality glass board with gold finger contacts. All boards are check for shorts. Kits only have solder mask. 90 day guarantee on Cybercom kits. Waneco Boards MM-1 8KX8 fully buffered, S-100, uses 2102 type rams. PCBD $30 Mother Board 12 slot, terminated, S-100, board only$40 Special 8080A processor & support chip set kit includes one of each; all parts prime 9080A (8080A); 8228; 8212; 8216; 8251; 8214; 8224; 8225. Special $75.00 Special 2101AL-4 1K x 1 ram W less power than 21L02 type rams, with power down, prime from NEC. Ea. 2.00; 32 ea. 1.80; 64 ea. 1.70; 128 ea. 1.60; 256 ea. 1.50; 512ea. 1.45. 9080A AMD 8080A (Prime) 25.00 8212/74S412 Prime 4.00 8214 Prime 8.30 8216 Prime 4.95 8224 Prime 5.00 8228 Prime 8.90 8251 Prime 14.50 8255 Prime 14.50 1702A-6 AMD 4702A Prime 8.00 TMS-6011 UART Prime 6.95 251 3 Char Gen Upper Prime 1 1 .00 2513 Char Gen Lower Prime 11.00 1702A Intel Not Prime 8.00 8T10 8T13 8T16 8T20 8T24 8T26 8T34 8T37 8T38 8T80 2.00 2.50 2.00 2.00 2.50 2.75 2.50 2.50 2.50 2.50 8T97 8T110 5309 5312 5313 5320 5554 5556 5055 2.00 2.00 8.00 4.00 4.00 5.95 1.90 2.50 1.60 MC4044 2.25 M 80L97 81L22 82L23 85L51 85L52 85L63 86L70 86L75 86L99 88L12 419 Portofino Drive San Carlos, California 94070 Please send lor IC, Xistor and Computer parts list. 1.50 1.50 1.90 2.50 2.50 1.25 1.50 1.90 3.50 .80 74L00 74L01 74L02 74L03 74L04 74L05 74L06 74L08 74L09 74L10 74L20 74L26 74L30 74L32 74L42 74L51 74L54 74L55 74L71 74L73 74L74 74L75 74L78 74L85 74L86 74L89 74L90 74L91 74L93 74L95 74L98 74L123 74L164 74L165 74L192 74L193 MH0026 MC1488 .25 .25 .25 .25 .30 .40 .30 .40 .40 .30 .35 .40 .40 .45 1.50 .35 .45 .35 .30 .55 .55 1.20 .90 1.40 .75 3.50 1.50 1.50 1.70 1.70 2.80 1.50 2.50 2.50 1.25 1.20 2.95 1.50 74LS0O 74LS01 74LS02 74LS03 74LS04 74LS05 74LS08 74LS10 74LS12 74LS20 74LS22 74LS27 74LS30 74LS37 74LS38 74LS42 74LS51 74LS54 74LS55 74LS73 74LS74 74LS76 74LS151 74LS1 74 74LS175 74LS192 2501 B 2502 B 2507V 2510A 2517V 2519B 2532B 2533V DM8131 N8263 MC1489 DM8837 .40 .50 .40 .40 .45 .45 .40 .40 .55 .40 .45 .45 .40 .60 .60 1.50 .40 .45 .40 .65 .65 .65 1.55 2.20 1.95 2.85 1.25 3.00 1.25 2.00 1.25 2.80 2.80 2.80 2.50 3.50 1.50 1.50 1101 1103 2101 2111-1 2112 2602 4002-1 4002-2 MM5262 7489 74200 74C89 82S06 82S07 82S17 8223 82S23 82S123 82S126 82S129 82S130 82S131 IM5600 IM5610 IM5603 IM5604 IM5623 IM5624 MMI6330 DM8573 DM8574 DM8575 DM8576 DM8577 DM8578 2.4576 MHZ XTAL 7.20 1.25 1.25 4.50 3.75 4.50 1.60 7.50 7.50 1.00 2.00 4.95 3.00 2.00 2.00 2.00 2.50 3.00 3.00 3.50 3.50 3.95 3.95 2.50 2.50 3.00 3.50 3.00 3.50 2.50 4.50 5.50 4.50 4.50 3.50 4.00 Check or money order only . If you are not a regular customer and your order is large please send either a cashier's check or a postal money order, otherwise there will be a delay ot two weeks lor the check to clear. All items post paid in the U.S. Calif, residents add 6% tax. Money back 30 day guarantee. We cannot accept returned IC's that have been soldered to. Prices subject to change without notice. $10 minimum order. 171 Circle 190 on inquiry card. ARTEC Introduces The Expandable 32K Elephant The 8K-32K Expandable Memory That Grows With Your System Now, for the first time, you can have a reliable true static memory that will grow with your system. Start with the board and 8K memory. Then add on one, two or three 8K increments of memory up to 32K. 250 ns access time. The Artec 32K Expandable Memory allows you plenty of room for memory and all necessary support hardware. For five years Artec craftsmanship and reliability has been proven in tough industrial use. Now, you too can enjoy breadboards and memories that will work time after time. Boards like the GP 100 and the wire wrap WW-100. Send for an Artec Board, your order will be sent the same day as received. Board & 8K of memory — $290.00 8K add on kits— $255.00 ea. Full 32K board— $1,055.00 GP-100— $20.00 Maximum design versatility along with standard ad- dress decoding and buffering for S — 100 systems. Room for 32 un- committed 16 pin IC's, 5 bus buffer & decoding chips, 1 DIP address select switch, a 5 volt reg- ulator and more. High quality FR4 epoxy. All holes plated through. Reflowed sol- der circuitry. WW-100— $20.00 A wire wrap breadboard, similar to the GP 100. Al- lows wirewrap of all sizes of sockets in any combination. An extra regulator position for multiple voltage applica- tions. Contact finger pads arranged for easy TO ORDER: Use your Mastercharge or BankAmericard. Or just send along a money order. Your order will get same day service. FOR MORE INFORMATION: For more information about these or any of Artec's complete line of circuit boards or for either industrial or personal use, please call or write. A catalogue will gladly be sent. Please send me: □ 32K □ GP-100 □ WW-100 □ I've enclosed a money order. Bill my D Mastercharge □ BankAmericard No. Name . Address City . State . .Zip. 10% discount for students & computer club members. pin insertion. dRTGCeLCCTRONiajNC 605 Old County Rd. • San Carlos, CA 94070 • (415) 592-2740 Circle 195 on inquiry card. INTRODUCTORY MEMORY OFFER NEW PRIME QUALITY 2708 $0^95 1Kx8 uv ^&^T PROM Programming Service Available 21L02 350nS STATIC RAM $1.95 8 FOR $14.00 FACTORY SECONDS 2102 STATIC RAM $1.25 8 FOR $ 9.00 -7400T" rL SERIES 7400 .16 7491 .75 7401 .16 7492 .50 7402 .21 7493 .50 7403 .16 7494 .80 7404 .18 7495 .75 7405 .24 7496 .90 7406 .20 74100 1.00 7407 .29 74107 .40 7408 .25 74109 .90 7409 .25 74121 .40 7410 .18 74122 .50 7411 .30 74123 .70 7413 .45 74125 .60 7414 .70 74126 .60 7416 .35 74132 1.00 7417 .35 74141 1.15 7420 .20 74145 1.15 7423 .37 74147 2.35 7426 .30 74148 2.00 7427 .35 74150 1.00 7430 .25 74151 .80 7432 .30 74153 .90 7437 .27 74154 1.00 7438 .27 74155 1.00 7440 .20 74156 1.00 7441 .85 74157 1.00 7442 .60 74160 1.25 7443 .75 74161 1.00 7444 .75 74162 1.50 7445 .75 74163 1.00 7446 .80 74164 1.10 7447 .70 74165 1.10 7448 .80 74166 1.25 7450 .25 74170 2.10 7451 .25 74173 1.50 7453 .25 74174 1.95 7454 .20 74175 .95 7460 .20 74176 .90 7470 .45 74177 .90 7472 .40 74179 .90 7473 .35 74180 .90 7474 .35 74181 2.50 7475 .50 74182 .95 7476 .30 74184 1.95 7480 .50 74185 2.20 7483 .70 74190 1.15 7485 .90 74191 1.25 7486 .40 74192 .90 7489 2.00 74193 .90 7490 .45 74194 1.25 74195 .75 74LS SERIES 74L SERIES LINEARS 74LS00 74LS02 74LS03 74LS04 74LS05 74LS08 74LS10 74LS13 74LS14 74LS20 74LS26 74LS27 74LS28 74LS30 74LS32 74LS40 74LS51 74LS55 74LS73 74LS74 74LS75 74LS76 74LS83 74LS85 74LS86 74LS90 74LS92 74LS93 74LS95 74LS96 74LS107 74LS109 74LS112 74LS132 74LS136 74LS138 74LS139 74LS151 74LS153 74LS157 74LS162 74LS163 74LS164 74LS175 74LS181 74LS290 74LS191 74LS192 74LS193 74LS194 74LS195 74LS257 74LS260 74LS279 74LS367 .39 .39 .39 .45 .45 .39 .39 .79 2.19 .39 .49 .45 .49 .39 .45 .49 .39 .39 .65 .65 .79 .65 1.75 1.75 .65 1.25 1.25 1.25 1.25 1.89 .65 .65 .65 1.25 .65 .65 25 25 25 25 75 25 1.75 1.25 3.69 1.75 1.75 1.65 1.75 1.75 1.75 1.25 .55 .79 1.15 74L00 74L04 74L06 74L08 74L09 74L10 74L20 74L26 74L30 74L42 74L75 74L78 74L86 74L90 74L91 74L93 74L95 74L98 74L123 74L164 .25 .30 .30 .40 .40 .30 .35 .40 .40 1.50 1.20 .90 .75 1.50 1.50 1.70 1.70 2.80 1.50 2.50 301CN 308CN 318CN 320T-5 320T-5.2 320T-8 320T-12 320T-15 320T-18 320T-24 323K-5 324N 339N 340T-5 340T-6 340T-8 340T-12 340 T- 15 340T-18 340T-24 566CN 567V .35 1.00 1.19 1.50 1.50 1.50 1.50 1.50 1.50 1.50 7.95 1.50 1.10 1.50 1.50 1.50 1.50 1.50 1.50 1.50 1.65 1.55 COMPUTER POWER SUPPLY +5V at 1.2 AMP, ±12V at .25 AMP *Q96 I.C. SOCKETS (SCANBE) 14 PIN 16 PIN 14 PIN 16 PIN 24 PIN SOLDERTAIL .22 SOLDERTAIL .24 WIREWRAP .45 WIREWRAP .49 WIREWRAP .69 BATTERY CHARGERS 6Vand9V *Q 50 S100 BUS DESCRIPTION DETAILED WRITE-UP OF ALL S100 SIGNALS $195 Minimum Order $10.00. California residents add 6% sales tax. For immediate shipment, send cashier's check or money order. Add $1.00 shipping and handling charge per order. **** 100% SATISFACTION GUARANTEED ***** ORDER BY PHONE: (213) 888-5079 OR BY MAIL QUAN TRONICS P.O. BOX 264 CHATSWORTH, CA. 91311 MANY OTHER PARTS AVAILABLE - JUST CALL OR WRITE FOR FREE CATALOG Circle 191 on inquiry card. S.D. SALES CO. p.o. box 28810 - ■ dallas, texas 75228 Z-80 CPU KIT For Imsai-Altair $149. ^t Z-80 Chip & Manual $49.95 From the same people who brought you the $89.95 4K RAM Kit. We were not the first to introduce an Imsai/Altair compatible Z-80 card, but we do feel that ours has the best design and quality at the lowest price! The advanced features of the Z-80 such as an expanded set of 158 instructions, 8080A software compatibility, and operation from a single 5VDC supply, are all well known. What makes our card different is the extra care we took in the hardware design. The CPU card will always stop on an M1 state. We also generate TRUE SYNC on card, to insure that the rest of your system functions properly. Dynamic memory refresh and NMI are brought out for your use. Believe it or not, not all of our competitors have gone to the extra trouble of doing this. As always this kit includes all parts, all sockets, and complete instructions for ease of assembly. Because of our past experience with our 4K kit we suggest that you order early. All orders will be shipped on a strict first come basis. Dealers inquiries welcome on this item. Kit includes Zilog Manual and all parts. Kit shipped with 2 MHZ crystals. Z-80 MANUAL - $7.50 SEPARATELY THE WHOLE WORKS $89.95 4K LOW POWER RAM BOARD KIT Imsai and Altair 8080 plug in compatible. Uses low power static 21L02-1 500 ns. RAM'S. Fully buffered, dras- tically reduced power consumption, on board regulated, all sockets and parts included. Premium quality plated through PC Board. ' For 250 ns RAM's add $10.00 CAR/BOAT KIT $34.95 / NEWEST KIT FROM S.D. SALES! MUSICAL HORN HOME KIT $19.95 Musical Horn Kit for Car, Boat or Home Plays any tune from Mozart to Led Zeplin Change tunes in seconds Complete Solid State electronics Standard or custom tunes available at S6.95 each (you supply us with the sheet music — we supply electronics for your favorite tunes.) One song supplied with original order Standard Tunes Available: DIXIE - EYES OF TEXAS - ON WISCONSIN - YANKEE DOODLE DANDY - NOTRE DAME FIGHT SONG - PINK PANTHER - AGGIE WAR SONG - ANCHORS AWAY - NEVER ON SUNDAY BRIDGE OVER RIVER QUI - CANDY MAN Home Kit includes speaker which operates from your door bull. When door belt is pushed your favorite tune is played. Car/Boat Kit DOES NOT include speaker. Uses standard 8ohm PM speaker. Allow 4 weeks delivery on both kits. JLmitd OmMf! SIX DIGIT ALARM CLOCK KIT $9.95 wt We made a fantastic kit even better. Redesigned to take advantage of the latest advances in I.C. clock technology. Features: Litronix Dual Vi" displays. Mostek 50250 super clock chip, single I.C. segment driver, SCR digit drivers. Greatly simplified construction. More reliable and easier to build. Kit includes all necessary parts (except case). For P.C.Board add $3.00; AC XFMR add $1.50. Do not confuse with Non-Alarm kits sold by our competition! Eliminate the hassle - avoid the 5314! NEW! WITH JUMBO LED READOUTS! 1000 MFD Filter Caps Rated 35 WVDC Up- right style with PC leads. Most popular val- ue for hobbyists. 4/$1.00 SLIDE SWITCH Assortment Our best seller. Includes miniature and standard sizes, single and multi- position units. All new. 12/$1.00 POWER RESISTOR IS OHM 25W BY CLAROSTAT 750 ea. RESISTOR ASSORTMENT 7.W 5% & 10% PC leads. A good mix of values! Special I 200/$2. P.C. LEAD DIODES 1N4148/1N9I4 1007S2.00 1N4002 - 1A 100 PIV 40/$1. Just received a good mixed lot of National TO-92 plastic transis- tors. PNP & NPN, even a few FET's. 40-50% yield. Untested Asst. ~500/$3. DISC CAP ASSORTMENT P.C. Leads. At least 10 different values. Includes .001, .01, .05 plus other standard values. 60/$1.00 AMD-1702A FACTORY PRIME UNITS! BRAND NEW! 1.5 Micro-Seconds Access Time. 10/$40. $4.95 ea. IC s from XEROX 7400- 9c 7402 - 9c 7404- 9c 7406 -11c 7407 -11c 7410- 9c 7416 -13c 7420- 9c 7430 - 9c 7440- 9c 7437 -10c 7438 -10c 7451 - 9c 7474 -16c 7475 -24c 7486 -16c 7493 -26c 74121 -22c 74123 -32c 74151 - 9c 741 55 -22c 74193 -35c 8233 -35c Intel -1302 -45c 1402 A Shift Regulator - 50c MH0025CN - 55c IC's REMOVED FROM PC BOARDS ALL TESTED; FULL SPEC. UP YOUR COMPUTER! 21L02-1 And so is power! Not only are our RAM'S faster than a speeding bullet but they are now very low power. We are pleased to offer prime new 21L02-1 Low Power and Super Fast RAM's. Allows you to STRETCH your power supply farther and at the same time keep the wait light off! 500 ns 8/$12.95 250 ns 8/$15.95 $12.95£2) SokiZvluwi! $12.95 MOS 6 DIGIT UP/DOWN COUNTER 40 PIN DIP. Everything you ever wanted in a counter chip. Features: Direct LED sement drive, single power supply (12 VDC TYPE.), six decades up/down, pre-loadable counter, separate pre-loadable compare register with compare out-put, BCD and seven segment out- puts, internal scan oscillator, CMOS compatible, leading zero blanking. 1MH2. count input frequency. VERY LIMITED QUANTITY! 28 PIN IC Sockets 3/$1.00 11,000 MFD 50WVDC Computer Grade Cap. $3.00 3.579545 MHZ Time Base Crystal $1.25 39 MFD 16V Mallory Electrolytic 15/$ 1.00 TERMS: MONEY BACK GUARANTEE! No COD's. Texas Resi- dents add 5% Sales Tax. Add 5% of order for pos- tage & handling. Orders under $10. add 75c. For- eign orders: U.S. Funds Only! Call in your BANKAMERICARD or MASTER CHARGE order in on our Continental United States Toll Free Watts Line: 1-B00-527-3460 Texas Residents Call Collect: 214/271-D022 Cheap DC Supply $2. ea. Actually an AC adap- tor for calculators. 9VDC no load. 6VDC @200ma. 4VDC 19 376ma. S.D. SALES CO. P.O. BOX 28810 -B DALLAS, TEXAS 75228 Orders over $15. - Choose $1. FREE MERCHANDISE! Circle 192 on inquiry card. NEW COMPUTER INTERFACE BOARD KIT Our new computer kit allows you to interface serial TTL to RS 232 and RS 232 to TTL There are four of these supplied with the kit, so you can run up to four devices on one TTL or four separate TTL to RS 232 devices. Typical use: You can use your computer ports to run an RS 232 printer, video terminal and two other RS 232 devices at once, without constantly connecting and disconnecting your terminals. Example: Out store to printer — Voltage requirement + 5V and ± 5V or ± 12 V depend- ing on your RS 232 device. We supply — board, connectors, documen- tation and components. Sorry, we do not supply case or power supply. GENERAL PURPOSE COMPUTER POWER SUPPLY KIT This power supply kit features a high frequency torroid transformer with switching transistors in order to save space and weight. 115V 60 cycle primary. The outputs with local regulators are 5V to 10A, in one amp increments, - 5V at 1A, ± 12V at 1A regulators supplied 6 340T-5 supplied. $79 00 UNIVERSAL 4K MEMORY BOARD KIT $74 50 This memory board may be used with the F8 and with minor modifications may be used with KIM-1jup. 32-2102-1 static RAM's, 16 address lines, 8 data lines in, 8 data lines out, all buffered. On- board decoding for any 4 of 64 pages, standard 44 pin, .156" buss. _F8 EVALUATION BOARD KIT WITH EXPANSION CAPABILITIES A fantastic bargain for only with the following features: • 20 ma or RS 232 interface • 64K addressing range • Program control timers • 1 K of on-board static memory • Built in clock generator $99 00 64 Byte register Built-in priority interrupts Documentation Uses Fairbug PSU FOR FAIRBUG 4K F8 BASIC ON PAPER TAPE $25° 2708-8K EPROM . S24.95 2522 STATIC SHIFT RE 6 S 1.95 2513CHARACTER GEN S 9.95 2513-HEX 32 BIT SR S 3.50 2102 1 1024 BT RAM S 1.29 5280 IK DYNAMIC RAM . . S 4.75 MM5202A UV PROM S 6 95 MM5203UVPROM S 6.95 1702AUVPROM S 4.95 5204 -4 K PROM S10.95 AYft-1 013 UART $ 6.95 mTnIATURE MULTI TURN TRIM POTS " 100, 500, 1K,2K,5K,10K,25K,50K,100K, 200K,5 00 K 1 Mng. $.75 each 3/S2.00 "WfuLTt'TUFlN TRIM POTS Similar to Bourns 3010 style 3/l6' , x5/8"x1-1/4"; 50, 100, IK, 10K. 50K nhrns SI .50 ea. . .3/54.00 LIGHT ACTIVATED SCR's TO 18.200V 1 A S 1.75 TRANSISTOR SPECIALS 2N3585 NPN Si TO 66 S .95 2N3772 NPN Si TO-3 S 1 .60 2N4S6A PNP GE S 75 2N490S PNP Si TO 3 . S 1.00 2N6056 NPN Si TO 3 Darlington S 1.70 2N5086PNPSi TO-92 4/S 1.00 2N4898PNPTO-66 S .60 2N404 PNP GE TO 5 5/$ 1.00 2N3919MPN S. TO 3 RF SI. 50 MPSA 13 NPN Si TO 9? ... . 3/S 1.00 2N3767NPNSiT0 66 . . .$ 70 2N222? NPN S< TO-1 8 . . S/S 1 .00 2N3055 NPN S. TO-3 S .70 2N3904 NPN Si TO -9? 5/S 1 .00 2N3906 PNP Si TO-92 5/S 1 .00 2N5296NPN Si TO 220 S 50 2N6lO')PNPSi TO-220 , , S .55 2N3638 PNP Si TO 5 - 5/S 1 .00 2N65I / NPN TO 92 Si ... 3/S 1 .00 C/MOS {DIODE CLAMPED) 74C10- 22 4016 .40 4029-1.10 74C1931.50 4017 105 4030- .22 4001 22 4018 1.00 4033-150 4002 22 4019 .25 4035-110 4006 120 4020 1.05 4042- 78 4007- 22 4022 .95 4046-2.25- 4009- .42 4023 22 4049- 40 4010- .42 4024 ,75 4050- 40 4011- .22 4025 .22 4055-1.50 40 1 2 - 22 4026 1.25 4066- 80 4013- .40 4027 40 4071- .27 '4015 95. 4028 88 4076-1.05 IN 414K »lf-JiJ14) 15/S1 .Ul MC-\;r QIMICAL M MIT SWITCH SI b0 LED READOUTS FND 359 C.C. .4" S .50 HP 7740.3" C.C. Si. 25 FND70CC .4." S -55 MAN-7-.3" C.A. $ .95 FND 503 C.C. .5" S .85 NS 33-3 dig. array S .75 FMnRinr a b* 1 S .85 ni 747 a .6" S1.95 Terms: FOB Cambridge, Mass. Send Check or Money Order. Include Post Order $5.00, COD'S $20.00 PRINTED CIRCUIT BOARD 4-1/2" x6' 1/2" SINGLE SIDED E POXY 7 WATT LD-65 LASER DIODE IR $835 2N3820P FET S 45 2N 5457 N FET $ .45 2N2646. S .45 ER 900 TRIGGER DIODES 4/ $1.00 2N 6028 PROG UJT . . . S .65 8 PIN DIP SOCKETS S 24 14PIN DIPSOCKETS . . . S .25 16 PINDIP SOCKETS S .28 18 PIN DIPSOCKETS S 30 24 PIN DIP SO CKETS S .4 28 PIN DIPSOCKETS S .50 40 PIN DIP SOCKETS $ .60 VERIPAX PC BOARD This board is a 1/16" single sided paper upoxy board. 47;"x6V DRILLED and ETCHED which will hold up in 21 single 14 pin IC's 01 8. 16. or LSI DIP IC's with busses lor pawt-r su p ply rjonneuisr S4.00 MV5691 YbLLOW-GREEN BIPOLAR LED S .90 FP 100 PHOTO TRANS S .50 RED. YELLOW, GREEN or AMBER LARGE LED's 6/S1.00 1L-5 (MCT-21 $ -75 MOLEX PINS 100/91.00 1000/S8.00 10 WATT ZENERS3.9, 4.7,5.6,8.2, 12,15,18.22.100,150 or 200V . ea. S .60 1 WATT ZENERS 4.7, 5.6,10. 12, 15 18 or 22V ea. S .25 MC6860 MODEM CHIP S9.95 TANTULUM CAPACITORS 22UF 35V 5/S1.00 47UF- 35V 5/S 1.00 .68UF 35V 5/$ 1.00 1UF 35V 5/S 1.00 2 20UF 20V5S1.00 3 3UF 35V 4/S 1.00 4.7UF 15V 5/S1.00 6.8UF 35V 3/S 1.00 22UF 35V S .40 30UF 6V 5/S1.00 33UF i5V S 40 47UF 20V S .35 68 UF 15V S .50 10 UF 25V S .25 M/001 ALARM CLOCK Ch NATIONAL MOS DEVICES MM1402 ■ 1-/5 MM1403 - 1.75 MM1404- 1.75 MM5013- 2.50 MMS016-2.50 MMS017- 2.70 MM5055 - 2.25 MMW56 ■ 2.25 MM5057 - 2.25 MM5058- 2.75 MM5060- 2 75 MM5061- 2.50 MM5555-4.75 MM5556-4.75 MM521D- 195 MM5260- 1.75 Silicon Power Rectifiers PRV IA 3A 12A 50A 125A 100 .06 .14 .30 .80 3 70 200 .07 .20 .35 1.15 4.25 400 .09 .25 .50 1.40 6.50 600 .11 .30 .70 1.80 8.50 800 .15 .35 .90 2.30 10.50 1000 .20 .45 1.10 2.75 12.50 SILICON SOLAR CELLS 2Va" diameter ' at 500 ma. S4.00 / ,2V at 200 mils S2.00 ~ REGULATORS 309K S .95 340K-5.12.15 723 S .50 or 24V. . . . .$ .85 LM 376 .... S .60 340T-5, 6, 8. 12 320K-5or15V S1.40 15,18 or 24VS1.10 320T-5,12,15 78 MG S1.35 or 24V . . S .85 79 MG S1.35, RS232 DB 25P male S3. 25 CONNECTORS DB 25S female .... S3.95 7400 7401- 7102 - 7403- 7404- 7405 7406- 7407- 7408 7409 7410- 741 1- 7412- 741 3- 7414- 7416 7417 7420- 7425 7426- 7427 7430 - 7432- 7437- 743B- 7440- 7441- 7442 .40 TTLIC 7445- 7446- 7447- 7448- 7450- 7472- 7473- 7474- 7475- 74 76- 7480- 7483- 7485- 7486- 7489- 7490- 7491- 7492- 7493- 7494- 7495- 7496- 74107- 74121- 74123- 74125 74126- 74132- SERIES ■ 15 74150- .30 1.85 .67 74151 - 74153 74154 74165 74157 74161 74163 74164- 74165 74173- 74174- 74175 74176 74177- 74180 74181 - 74190- 74191- 74192 74 1 93- 74194- 74195- 74257 74279 75324- 75491 75492 1.20 .95 .52 1.25 .87 MINIATURE DIP SWITCHES CTS 2064 Fou. SPST switches in one riunidip package. - SI. 75 CTS 2063 Eight SPST swiiches in .. 16 pm DIP package. $1-95 8\/5PST tuliniatt )cn..330Ohmco ^LCO MINIATURE TOGGLE SWITCHES MTA 106SPDT SI .20 MTA 206 DPDT . . $1-70 SOLID STATE SALES P.O. BOX 74B SOMERVILLE, MASS. 02143 TEL. (617) 547-4005 Full Wave Bridges ['iiV 2A 6_A 25A 200 .75 1.25 2.Q0 400 .90 U$0 3.00 600 1.2Q 1.75 4 0Q SANkEhJ AUDIO POWER AMPS Si 1 01 G 1 WATTS S 7.95 Si 1020 G 20 WATTS S15.95 Si 1050 G 50 WATTS $27.95 CCD 110 LINEAR 256 XI BIT SELF SCANNING CHARGED COUPLED DEVICE SbS-OO CCD 201 - 100 X 100 CHARGE COUPLED DEVICE $99. 00 . Send 25t (or our catalog featuring Transistors and Rectifiers his Hampshire St., Cambridge, Mass. . 74LS 74LS LINEAR SERIES ■ SERIES CIRCUITS 74LSOO - .23 74LS15 3 - .93 LM 308 "i - 95 74LS02 - .33 74LS155 ■- 1.40 JJU311 9 5 74LS04 .28 74LS157 - .98 LM 318 - .35 74LS08 .23 74LS160- 1.02 LM 319 -95 74LS10 - .23 74LS161 - 1.02 LM 324 - .05 74l.SU. -i23 74LS162- 1.02 LM 339 - -10 74LSI3 - 50 74LS163-1.02 LM 370 1.15 74LS20 - .23 74LS168 - 1.10 i LM 377 -2.50 74LS21 - 23 74LS169- 1.10 LM 380 -95 74LS22 - 23 74LS173 -1.39 LM 381 125 741 S27 - 27 74LS174-1.05 LM 382 - 125 74IS10 23 74LS175 - 1.22, LM 537 -2.50 747ST? 33 74LS190 - 1.50 LM 553 2.50 741 SI 7 37 J4LS191 - 1.50 LM 555 -44 ?4^338 - 37 74LST92-1.75 LM 556 - .85 741S74 - 49 74LS193- 1.75 74LS90 - 95 74LS195 - 1.25 ■ 5BQ sfM 7SLSd2 " m 74LS196- .99 565 - 1-10 ?4tl?3 " 40 " MLS197- -99 566 - \» 74LS74 " 40 74LS257-1.35 567 1.50. 74^76 40 74LS258-1.38, 703 - -90 7* lit '^ '4LS2G6- .38 709 - .26 Ml ...90 .89 .. 71Q .35 74LS92 .85 ^15365 - .66 /u MLS93 .85 %[f 3 l 6 7 -_ f 6 Co.V-31 74LSM2 43 KtlieS - "S-M7 *j Stim M- 74LS390_^.20 LM 3,0 2.50 74LS114 .43. LINEAR 1458 .60 74LS132 80 piR(-|||T<; CA 3046 - -75 74LS138 72 . CIRCUITS^. ^ ^ _ g5 74LS139 .72 LM 101 - 75 3goo _ 4 g 74LS145 1.15 LM 301/748 - .31 ' on-iarr - 3 90 74LSI51 • 98 LM307 ^T30 8038CC 3 ' TO WE SHIP OVER 95% OF OUR ORDERS THE DAY WE RECEIVE THEM Circle 193 on inquiry card. Feeder Service Reader Service Number Page Number 152 197 Alpha Digital 150 108 Apple Computer 14, 15, 16 195 ARTEC 172 121 BITS Inc 61, 75, 105, 128, 146, 148 141 BPI119 * BYTE Index 112 194 California Computer Products 35 164 Canada Systems (Comptek) 151 160 Charles Floto 150 1 56 Computer Corner 1 50 155 Computer Depot 150 159 Computer Enterprises 153 161 Computer Mart 150 177 Computer Mart of NH 157 128 Computerland 118 148 Computer Store 1 52 182 Computer Warehouse 161 162 Contact East 150 116 Continental Specialties 41 * Creative Computing 117 102 Cromemco1,2 170 Data Search 154 114 Digital Group 37 176 Disc 3, 157 185 DRC 164 105 ECDCIII 139 Economy Company 113 138 Edityper113 151 Electronic Control Technology 147 189 Eltron 171 175 EMA157 137 Extensys93 184 Formula International 163 186 Godbout 165 * HAL Communications 138 'Reader service 123 Heath 66, 67, 68, 69 To get futher information on the products advertised in BYTE, fill out the reader service card with your name and address. Then circle the appropriate numbers for the advertisers you select from this list. Add a 9 cent stamp to the card, then drop it in the mail. Not only do you gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you a bigger BYTE. Page Number PerCom Data 10. 140 Peripheral Vision 83 Perri White 153 Personal Computing EXPO 98-101 Polymorphic Systems 27 Processor Technology 6, 7, 8 Quantronics 173 Reeves 157 RHS Marketing 87 Rotunda Cybernetics 150 Scelbi 39 Scientific Research 23, 47 SD Sales 174 Seals 33 Sherwood Medical 157 Smoke Signal Broadcasting 127 Software Records 155 Solid State Music 5 Solid State Sales 175 Southwest Tech CM Synchro-Sound Enterprises 48, 49 Tarbell Electronics 154 Technical Design Labs 13 Technical Systems Consultants 25 Technico 107 Thinker Toys 147, 162 Tripke I 13 Vector Electronic 137 Vector Graphic 105 Worldwide Electronics 149 Xybek 149 Ximedia 89 Reader Reader Service Page Service Number Number Number 132 Heuristics 103 * 179 Hybrid 157 124 106 IMSAI 11 168 136 Infotech 1 1 1 * 149 Innovative Software 1 57 * 154 Intelligent Business Machines 150 104 135 International Data Systems 116 191 126 Ithaca Audio 88 181 187 James 166, 167 125 131 Kent-Moore 97 158 174 Kit House 157 115 145 Logical Services 156 * 188 Meshna 169 192 169 Micro BYTE 150, 157 112 172 Micro Design 155 181 157 Microcomp 157 142 143 Micromation 136 171 163 Microware 151 103 127 Microtech 91 193 147 Midwest Scientific Inst 141 101 190 Mikos 171 118 111 MiniTerm 29 100 146 MITSCIV, 139 107 183 Morrow 1 62 110 119 mpi 59 113 130 Mullen 97 183 129 National Multiplex 95 139 122 North Star Computers 65 144 117 Ohio Scientific 42, 43 134 196 OK Tool 21, 85 153 120 PAIA 60 152 150 Parasitic 129 140 * PC 77, 76, 77, 78, 79, 80 inquiries not solicited. Correspond directly with company. ecMe- EYTE's Ongoing Monitor Box Defused This months there is no BOMB analysis for May BYTE. The BOMB got defused by the late delivery of the May 1977 isssue due to the strike at our printer. As a result, we are holding the analysis until next month when a double BOMB will report the results of May and June reader response together." On BOMB Card, Article No. ARTICLE PAGE 1 Sweer-Dwyer-Critchfield: Controlling Small DC Motors 18 2 Fohl: A Microprocessor Course 26 3 Weisbecker : COSMAC VIP, the RCA Fun Machine 30 4 Iverson: Understanding APL 36 5 Keefe: Here's APL in Action! 44 6 Wimble: An APL Interpreter for Microcomputers, Part 1 50 7 Galway-Anderson: Serendipitous Circles 70 8 McGath: Editorializing with your Computer 81 9 Atwood: Why People Get Hooked on APL 108 10 Burns: An 8 Digit Hexadecimal Readout 114 11 Tenny: Look What You Can Do. . .With an Edge as a Cue 120 12 Maurer: Processing Logical Expressions 130 13 Rheinstein: Simple Algorithms for Calculating Elementary Functions 142 14 Schulein: A Trapping Technique for the 8080 158 176 Tha £2) P"-*S ntcr»in« di araihici |ft| fhancttr EaCJtil — lit diffirtnt | a 12, MftHtrt- dafinablt dot iktrli characttrt, dupUvid II 21 or *l Itnts of IS to 121 characters atr Mm. ill ch*r. e p»ti. ■o CCD\0Bltr l@* Olfi. ****** — kit pit d.ipiiv, ••eh aquara indiv n mth o 121 m ally aattakia. Key Into Maxi-Power Micro-Pric Micromind is an incredibly flexible, complete and expandable, hardware/ software, general purpose computer system. You won't outgrow it. Hardware includes an 80 key, software- definable keyboard, I/O interface board, 6500A-series microprocessor (powerful enough for advanced computing), a high- detail graphics and character display processor, power supply, enclosure and connections for up to 4 tape recorders plus TV or monitor. An interconnect bus powerful assembler, a debugger, a file system, graphic routines, and peripheral handlers. We also include dynamic graphic games: Animated Spacewar and Life. ECD's standard Micromind yuM-65 supplies 8K bytes of memory. Additional 32K byte expansion boards and a mapping option give Micromind expandable access to 64 Megabytes . Utilizing software- controlled I/O channels, Micromind's advanced encoding techniques load data from ordinary tape recorders at 3200 bits per second. Micromind comes to you ready-to-use, factory assembled and fully tested. Among microcomputers, it has the largest memory capacity and the fastest storage. You're looking at the work of the finest display processor on the market. You won't find a microcomputer with a more powerful CPU. You won't find a computer with a more flexible keyboard. You won't find anything to touch it at $987.54. permits 15 additional microprocessors, parallel processing and vastly increased computing power. System software— including ECD's own notsoBASIC high level language, on advanced error-correcting tape cassettes —provides a word processing editor, a So, quit the kluge scene and key into Micromind. You'll be a main frame per- former, with all the comforts of home. We're not fooling . . . this is the cat's fj.1 ECD CORP. 196 Broadway, Cambridge, Mass. 02139 (617)661-4400 €CD Name. Address . City/State . Zip. □ Fantastic! Check enclosed: $987.54. shipping paid by ecd □ BankAmericard □ Master Charge Mass. Resident add 5% Sales Tax # Expiration Date . Signature □ Send me your brochure. Actual unretouched photographs. Circle 105 on inquiry card. Powerful in computing muscle, yet lall in physical size, the Altair'^SOb offers many special features at an affordable price. Based :>n the 6800 microprocessor, the 680b comes with IK of static RAM, Serial I/O port, PROM monitor and provisions for IK of PROM as standard components. Its good thinking, when you're interested in making a modest investment ona highly reliable computer, to consider the Altair 680b. Our PROM monitor eliminates the necessity for toggling front panel switches to load bootstraps or manipulate memory contents. Only a terminal and programming language are required for complete system operation. With Altair System software — Altair 680 BASIC, assembler and text editor— you may begin problem solving immediately with ease. By adding the 680b-MB Expander card, many options are currently available: '16K Static Memory Board — Increase your system memory with 16K bytes of fast access (215 ns), low power (5 watts per board) static RAM. 680 BASIC and assembler/text editor are included free with purchase. *Process Control interface— A PC card that uses optically isolated inputs and relay outputs that transmit sensory information to and control signals from the computer. A diverse world of control applications is opened up with the Altair 680b-PCl. *Universal Input/Output Board — If your I/O needs exceed the serial port already on the main board, augment your I/O channels with the 680b-(JI/O. By implementing the optional serial port and two parallel ports, you can simul- taneously interface to four terminals. *New Addition — Kansas City Audio Cassette Interface- Use the 680b-KCACR to inter- face your Altair 680b with an audio cassette recorder for inexpensive mass storage of programming languages, pro- grams and data. Available in either full front panel or turnkey models, the Altair 680b presents many computing capabilities at a low cost— without skimping on performance. See it today at your local Altair Computer Center or contact the factory for further details. m DuDi Good Thinking. Circle 146 on inquiry card. 2450 Alamo S.E. Albuquerque, New Mexico 87106 dealer inquiries invited.