$1.50 in USA w* \ The 9-inch screen of the CT-VM monitor ($175) shown here with Southwest's newCT-64 illustrates the terminal's 64 -character lines, switchable control character printing, and word highlighting. At just $500 for both, these matching units provide a complete CRT terminal with full cursor control, 1 10-1200 Baud serial interface, and many other features. Now $325 buys a 64-character terminal kit Our new CT-64 terminal kit gives you scrolling, full cursor control, 128-character ASCII display (with both upper and lower case), and two 1 K memory pages. It's usable with any 8-bit computer. Add our optional fully assembled 12 MHz CT-VM monitor for another $175 and you'll have the best CRT terminal buy offered anywhere. The CT-64 gives you full cursor control, home-up and erase, erase to end of line or end of frame, cursor on /off, screen reversal, scroll or page, solid or blinking cursor, page selection, and end-of-page warning beeper. The CT-64's features include: 64 or 32 characters per line (16 lines) Premium display with both upper and lower case letters, and descenders (g, j, etc.) Two 1K pages of 8 -bit memory Scrolling or page mode operation 32 control character decoding Prints control characters (selectable) 128-character ASCII set 1 10 /220 Volt 50-60 Hz power supply Highlights words with reversed background Optional 9-inch monitor with matching cover available Complete with keyboard, power supply, 110-1200 Baud serial interface, and case Okay, Southwest, I know a bargain when I see it. □ Enclosed is $500 for the whole works (CT-64 terminal plus 12 MHz CT-VM monitor). □ Here's $325 for the CT-64. D Send only data for now. □ Send me your $395 MP-68 computer kit. D orBAC# □ orMC# . Name _Exp. Date _Exp. Date City. . Address . State .ZIP. -EI 5a Southwest Technical Products Corp. 219 W. Rhapsody, San Antonio, Texas 78216 Circle 1 on inquiry card. Meet the most powerful /xC system available for dedicated work. Yet it's only $595: 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 juP board (Cromemco's highly regarded 4 MHz, 250-nanosecond cycle time board). • The power and convenience of the well-known Z-80 liP. • 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 M C Cromemco's microcom- puters are the fastest and most powerful available. They use the Z-80 mi- croprocessor 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 /xP 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. TV DAZZLER To make your computer more useful- i a 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-1 00-compatible Al- tairs and IMSAIs, too. CPU • Z-80 MICROPROCESSOR CARD. The most advanced p.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 fiP 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 (Mode! 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. rj| Cromemco incorporated Specialists in computers and peripherals 2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043 • (415)964-7400 Circle 2 on inquiry card. In the Queue JULY 1977 Volume 2 BITE Number 7 12 36 52 64 92 118 122 126 42 44 72 78 82 96 4 Foreground HOW TO COMPUTERIZE YOUR MODEL RAILROAD Applications— Brown THIS CIRCUIT MULTIPLIES Arithmetic Hardware— Hall THE TV OSCILLOSCOPE Hardware— Barbier SPEECH RECOGNITION FOR A PERSONAL COMPUTER SYSTEM Peripherals— Boddie A MACHINE CODE RELOCATOR FOR THE 8080 Software— Zol man HOW FAR-WHICH WAY? Applications— Pittet ADD CURSOR CONTROL TO YOUR TVTII Hardware— McGahee GIVING KIM SOME FANCY JEWELS Hardware— Grater Background CONDENSED REFERENCE CHART FOR THE 6800 Reference Materials— Borrmann ATRAIN CONTROL DISPLAY USING THE LSI-11 MICROCOMPUTER Applications— Hart-Badger HOW TO PICK UP A DROPPED BIT Error Theory— Maurer GIVE YOUR MICRO A MEGABYTE System Design— Grappel AN INTRODUCTION TO NUMBERS Software— Simmons BASICally BASIC Software— Baker Nucleus 124 Classified Ads 128 PAPERBYTES Forum 142, 166 Programming Quickies 151 Book Reviews 155, 158 BYTE's Bits 156 PAPERBYTES: Floppy Disk Object Code 160 Clubs, Newsletters 176 BOMB 176 Reader Service In This BYTE 6 This Elephant Never Forgets 1 Letters 25 West Coast Computer Faire 32, 115, 129 What's New? 34, 150 Technical Forum 41 Ask BYTE 57 BYTE's Bugs 90 Desk Top Wonders: Jeu de NIM, Peutttre? Cover: COMPUTER ENGINEERING 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 361, 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. Single copy price is $1 .50 in the USA and its possessions, $2 in Canada and Mexico, and $3 eleswhere, or DM 7,— through our European distributor in Darmstadt. 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. 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 EDITORIAL ASSISTANT Ingrid Nyland PRODUCTION ASSISTANT Cheryl Hurd ADVERTISING ASSISTANT Noreen Bardsley SUBSCRIPTIONS Kimberly Barbour DEALER SALES Ginnie F Boudrieau ADVERTISING Elizabeth Alpaugh Debra Boudrieau Virginia Peschke CLUBS, PAPERBYTES Peter Travisano TRAFFIC MANAGER Edmond C Kelly Jr ART Mary Jane Frohlich Wai Chiu Li Ellen Shamonski-Bingham SPECIAL PRODUCTS Medellin Stephens Floyd Rehling EXECUTIVE SECRETARY Patricia Clark RECEPTIONIST Jacqueline Earnshaw DRAFTING Lynn Malo Bill Morello Stephen Kruse TYPOGRAPHY Custom Marketing Resources Inc Goodway Graphics PHOTOGRAPHY Ed Crabtree EDITORIAL CONSULTANT Daniel Fylstra ASSOCIATES Walter Banks Steve Ciarcia David Fylstra Portia Isaacson FOREIGN DISTRIBUTOR Pan Atlantic Computer Systems GmbH Frankfurter Str 78 D61 Darmstadt, West Germany (0 61 51) 29 29 23 STATION 3 In This EUI Model railroading can give the com- puter hobbyist an action packed com- puter application. Before tackling the job, however, it is important to have a firm understanding of what's involved in the design of a model railroad. In his article, How to Computerize Your Model Railroad, David C Brown ex- plains in detail the problems faced by the model railroader and points to ways in which they can be solved. He then goes on to cover the requirements for microprocessor interfaces to the model railroad and some thoughts on the software of an operating system to give realism to the model. Sometimes a small amount of hard- ware can speed up software con- siderably. A perfect example is pro- vided by Tom Hall in his article which shows how This Circuit Multiplies. This circuit is a hardware multiplier which takes 8 bit operands and replies (ten clock periods later) with a 16 bit product. Here is an example of putting an inner loop into hardware, thereby speeding up an operation. The model railroad is an ideal way for the personal computing enthusiast to enter the fascinating world of real time control: such a system is realistic but manageable. Authors Jack Hart and Ed Badger show you how they did it in A Train Control Display Using the LSI-11 Microcomputer. page 44 Sometimes a bit of serendipity falls out of an application or project. Ken Barbier describes one such case in the form of his technique of using a television display circuit's ability to generate a raster with various syn- chronous patterns to debug and verify its operation. Read The TV Oscilloscope. There are many ways to make a computer talk, but how do you get it to listen? Speech Recognition for a Personal Computer System discusses a topic which has fascinated and frustrated experimenters for years. Author James Boddie of Bell Labs (the pioneer researchers in the field) covers the history of the subject and presents a practical system which can be realized by a personal computing experimenter. Real world systems may not be perfect, yet programming demands perfection. (If we drop a bit in one machine instruction, it becomes an- other instruction altogether.) As a background discussion of a large sub- ject, W Douglas Maurer presents some information on How to Pick up a Dropped Bit using some of the tech- niques of error detection and cor- rection. What's a sure cure for memory megalomania? Why, Give Your Micro a Megabyte as outlined in Robert Grappel's short tutorial on some large memory design techniques which will prove adaptable to microcomputer systems. There should be virtually no reason to complain if his ideas were put into practice more universally. An Introduction to Numbers, by Webb Simmons, serves as an introduc- tion to the concepts of fixed, scaled and floating point numbers. Here you'll find some basic forms for each type, how the forms differ from each other, and how each can be used. If you've ever been frustrated by the drudgery involved in relocating machine language programs with noth- ing but toggle switches, then Leor Zolman's A Machine Code Relocator for the 8080 is for you! Just enter six key pieces of information and the program does the rest automatically, even fixing up all your address references. For beginners first learning about computers, we often get requests for some basic information. In BASICally BASIC, Robert Baker gives an in- formal introduction to the nature of the BASIC language and its uses in programming. Finding out what a typical BASIC can do is a good starting point in your personal evalua- tion of products available in the per- sonal computing marketplace. Given latitude and longitude of two points on the earth, how do you calculate the distance and bearing? If you use a little BASIC program by Rene Pittet, you can answer the ques- tion of How Far — Which Way? using a small processor. If you have a Southwest Technical Products' TVT II, there is a simple circuit that you can add that will give you manual and computer control over the cursor's movement, erase and bell functions. In his article, Add Cursor Control to Your TVT II, Brother Thomas McGahee describes this simple circuit which can be attached to a TVT II. Poor KIM. If one puts KIM-1 inside a fancy case, the built-in jewels of key- board and displays get hidden. But Robert Grater comes to the rescue by Giving KIM Some Fancy Jewels, which consist of a remote set of displays connected to the processor by cable. POWER. IMSA1 Introduces the Megabyte Micro™ The Megabyte Memory Until today, the largest memory you could fit and address in a single microcomputer CPU was 65K. Now, IMSA1 presents an incredible memory system for micros 16 limes more powerful than yesterday's best. Imagine, a full megabyte of power from sixteen 65K RAM boards. And, to control all this, the IMSA1 Intelligent Memory Manager (IMM), the super control board. You can write protect blocks through- out the full megabyte. Or, map in 16K blocks. Plus, preset 1 6 mapping configurations with protect for high speed transfer or rapid change. All interrupts are fully vectored, and there's an interrupt if an attempt is made to write into protected memory. There's even a real "time of day" clock. 65K,32Kandl6KRAM Boards Until today, the most memory you could plug into a single slot was 16K. Now, IMSAI presents memory boards in astonishing multiples of sixteen: 65K, 32K and I6K low power, dynamic RAM Boards. They can be used in any S- 100 bus computer individually or in combination to form conventional systems up to 65K bytes. Every board is fast. With "hidden refresh" and no "wait state." The Complete Megabyte Microcomputer System The IMSAI Megabyte Micro™ is only part of the story. The full system can include dual floppy disks, terminals, plotters, printers and tape cassettes. IMSAI also offers the finest high level and peripheral software available. Paper tape and Tape Cassette I/O and super Disk Operating Systems. Plus, BASIC and Disk BASIC with more high level languages coming. Until today, the microcomputer's potential was just something you talked about. Now, you can put it to work. Powerfully. Circle 3 on inquiry card. GENTLEMEN: I'm power hungry! □ Send 65K RAM Board Kit $2599 □ Assembled $3899 □ Send 32K RAM Board Kil $749 [] Assembled $ 1099 □ Send I6K RAM Board Kil $449 Q Assembled $679 □ Send IMM ROM Control Kit $299 □ Assembled $399 □ Send IMM EROM Control Kit $499 fj Assembled $699 □ Send full catalog $1.00 Check/MO enclosed. Amt. $ Charge my: □ B AC [J M /C # Exp. Date: Sig Q Send name of my nearest IMSAI dealer Name Company _ Address^ City State/Zip _ ® IMSAI Manufacturing Corporation 14860 Wicks Blvd. San Leandro, CA 94577 (415) 483-2093 TWX 910-366-7287 Editorial * • •■ w #■ * This Elephant Never Forgets By Carl Helmers In a press release dated March 9 1977, Texas Instruments Inc made it official: a commercial bubble memory product is now available for general use, initially in sample quantities priced at $200 per chip. The device is the TBM0103, a single chip 92,304 bit storage element composed functionally of 144 shift registers with 641 bits per register. (Internally, according to Tl, there are 157 registers, but the large size of the chip carries with it the attendant probabilities of defects, so discretionary manufacturing steps are used to connect 144 good registers per package.) The device has a complicated mechanical structure which includes two permanent magnet bias field elements, two orthogonal coils which modulate the bias field to produce a net rotating magnetic field in the garnet film bubble chip, and, of course, a magnetic shield to isolate the chip from external stray magnetic fields. The dynamic data character- istics of the chip are a bit transfer rate of 50,000 bits per second and an access time of 4 ms setup prior to transferring a 144 bit word of data into or out of the device. Conceptually, figure 1 illustrates what one of these memories looks like to a designer or programmer. This figure was constructed based on the limited information about overall characteristics in the press release. The procedure for writing a 144 bit word Continued on page 58 6 BUY YOUR COMPUCOLOR8001 FROM THESE DEALERS. ARIZONA Phoenix: Phoenix Bylc Shop West 12654 N. 28th Dr. (602) 942-7300 Tempe: Tempe Byte Shop East 813 N. Scottsdale Rd. (602)894-1129 Tucson: Byte Shop of Tucson 2612 E.Broadway (602)327-4579 CALIFORNIA Lawndale: Byte Shop of Lawndale 16508 Hawthorne Blvd. (213)371-2421 Orange: Computer Mart of Los Angeles 625 W. Kalella. No. 10 (714)633-1222 San Diego: The Computer Center 8205 Ronton Rd. (714)292-5302 San Francisco: The Computer Store 1093 Mission St. (415)431-0640 San Jose: Amco Electronics 414 S. Bascom Ave. (408) 998-2828 San Jose: Byte Shop 155 Blossom Hill Rd. (408) 226-8383 Van Nuys: Computer Components 5848 Scpulvcda Blvd. (213)786-7411 CONNECTICUT Windsor Locks: The Computer Store 63 S. Main St. (203)627-0188 FLORIDA Coral Gables: Sunny Computer Stores 1238A S.Dixie Hwy. (305)661-6042 Tampa: Microcomputer Systems 144 S. Dale Mabry Hwy. (813)879-4301 GEORGIA Atlanta: Atlanta Computer Man 5091-BBufordHwy. (404) 455-0647 HAWAII Honolulu: Compact Computers P.O. Box 10096 (808)373-2751 ILLINOIS Champaign: 1 he Numbers Racket 518 E. Green St. (217)352-5435 Evanston: Itty Bitty Machine 1316 Chicago Ave. (312)328-6800 Park Ridge: Chicago Computer Store 157TalcottRd..Hwy.62 (312)823-2388 INDIANA Indianapolis: Home Computer Shop 10447 Chris Dr. (317)894-3319 MARYLAND Rockville: Computer Workshop. Inc. 5709 Frederick Ave. (301)468-0455 MASSACHUSETTS Burlington: 'Hie Computer Store 120 Cambridge St. (617)272-8770 MICHIGAN Troy: General Computer Company 2017 Livernois (313)362-0022 MINNESOTA Minneapolis: Cost Reduction Services 3 142 Hennepin Ave. So. (612)822-2119 MISSOURI Kansas City: Computer Workshop of Kansas City 6903 Blair Rd. (816)741-5055 NEW JERSEY Iselin: "The Computer Mart 501 Route 27 (201)283-0600 NEW YORK East Meadow: "The Computer Mart of Long Island 2070 Front St. (516)794-0510 New York: The Computer Mart 314 5th Ave. (212)279-1048 OHIO Columbus: Computervision 894 W. Broad St. (614)228-2477 SOUTH CAROLINA Columbia: Byte Shop 2018 Greene St. (803)771-7824 TEXAS Houston: Communications Center 7231 Fondren (713)774-9526 Richardson: The Micro Store 634 S. Central Expressway (214)231-1096 WASHINGTON Seattle: Retail Computer Store 410 NE 72nd St. (206)524-4101 WISCONSIN Beloit: Austin Computers 1835 Northgate (608) 365-6096 Watertown: General Precision Electronics 207 Rhine St. (414)261-8148 Compucolor Corporation NOW $2750. AMERICA'S LOWEST-PRICED PERSONAL COMPUTER SYSTEM WITH COLOR VECTOR GRAPHICS. By taking advantage of the new technologies available to the industry today, we've con- sistently been able to give you one of the best prices on the market. Now because of great response, we can give you the best price. You can now buy the Compucolor 8001 for the reduced price of $2750. A com- plete stand-alone system with expanded graphics software for plotting points, vectors and bargraphs on a 160 x 192 addressable grid— in color. Eight independent background and foreground colors. The Compucolor 8001 has an Intel 8080 CPU, 34 I/O ports and a color display with an effective band width of 75 MHZ compared to 5 MHZ for standard TV sets. In fact the Compucolor is the only totally integrated system on the mar- ket which includes a color display. You can also have spe- cial options for the Compucolor 8001 right now, including: Mini Disk Drives for extra memory, light pens and a variety of special keyboard features. BASIC 8001 Is Easy To Learn. Compucolor's BASIC 8001 is a conversational programming language which uses English- type statements and familiar mathematical notations. It's simple to learn and easy to use, too. Especially when it comes to intricate manipulations or expressing problems more efficiently. The BASIC 8001 Interpreter runs in ROM mem- ory and includes 26 statement types, 18 mathematical func- tions, 9 string functions and 7 command types for executing, loading, saving, erasing, con- tinuing, clearing or listing the program currently in core. Expandable Memory To 64K. The Compucolor 8001 has UK bytes of non-destructible read- only memory which handles the CPU and CRT operating systems as well as BASIC 8001. Sockets are in place for an additional 21K of EPROM/ MROM memory. The Random Access Main Memory has 8K bytes for screen refresh and scratch pad, 8K bytes for user workspace and room for 16K bytes of additional user work- space. The Compucolor also comes complete with a conve- nient mass storage device, Floppy Tape Memory. It's an 8-track continuous loop tape system, with a Baud rate of 4800 and an extra storage capacity of up to 1024K bytes per tape. Color Graphics At Alphanumeric Black And White Prices. That's what we're becoming famous for, and thanks to the tremendous response to the Compucolor 8001, we've been able to reduce our price even lower— to $2750. Look over our dealer listing on the adja- cent page for the dealer nearest you. Then drop by for a dem- onstration. And while you're checking out the Compucolor 8001, check out your dealer's financing plan. He can help you turn a good deal into a good deal more. Compucolor Corporation, P.O. Box 569, Norcross, Georgia 30091. Compucolor Corporation Pirrlp 4 nn innuirv rarii Sol Terminal Computer ilMvolo'.PT • K ^m 'To do real 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 the heart of three fixed price computer systems with all the peripheral gear and software included to get you up and on the air. Sol System I costs just $1649 in kit form or S212° fully burned in and tested. Here's what you get: a Sol-20 with the SOLOS personality module for stand alone computer power. an 8192 word memory, a 12" TV video monitor, a cassette recorder with BASIC software tape and all necessary cables. Sol System II has the same equipment plus a larger r « I v **.< 'V:v' ',<*<; * eiios ■ ■ capacity 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, $4237 in kit form, S5037 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- parable with mini-computer systems priced 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 of our full) illustrated 22 page cata- log. Or you may write or call us if more convenient. Please address Processor Technology, Box P. 620(1 Hollis Street. Emervville. CA 94608. (415)652-8080. >h % i- The fuivtion.il K\m;\ of So nwre than skin cioep. A look inside n of design and sturxft construction. S\ stems i> Corporation i# # M>W&M See Sol here ALABAMA Birmingham: 1CP. Computcrland (205)979-0707 ARIZONA Phoenix: Bvte Shop Phoenix (602)442-7300 Tempe: Byte Shop Tempe (602)894-1129 Tucson: Bvle Shop Tucson f 602) 327-4579 CALIFORNIA Berkeley: The Byte Shop (415)845-6366 Citrus Heights: Byte Shop Computer Store (916)961-2983 Costa Mesa: Computer Center 171-1) (.46-0221 Fresno: Data Consultants, Inc. (209)431-6461 Fullerton: Bits'N Bytes (714)879-8386 Lawndale: The Byte Shop (213)371-2421 Mountain View: The Byte Shop (415)969-5464 Digilal Deli (415)961-2828 Orange: The Computer Marl (714)633-1222 Palo Alto: The Byte Shop (415)327-8080 Pasadena: Byte Shop (213)684-3311 San Francisco: Byte Shop (415)421-8686 The Computer Store of San Francisco 14151431-0640 San Jose: The Byte Shop (408)377-4685 The Computer Room (408)226-8383 Circle 5 on inquiry card. San Rafael: The Byte Shop (415)457-9311 Santa Clara: The Bvte Shop (408)249-4221 Sunnyvale: Recreational Computer Centers (408)735-7480 Tarzana: Byte Shop of Tarzana (213)343-3919 Walnut Creek: The Byte Shop (415)933-6252 Westminster: Byle Shop (714)894-9131 COLORADO Boulder: Byle Shop (303)449-6233 FLORIDA Coral Gables: Sunny Computer Stores (305)661-6042 Leesburg: Delia Electronics (904)357-4244 Miami: Byte Shop of Miami (303)264-2983 Tim pa: Microcomputer Systems, Inc. (813)879-4301 GEORGIA Atlanta: Atlanta Computer Mart (404)455-0647 ILLINOIS Champaign: The Numbers Racket (217)352-5435 Evanston: itly bitty machine CO, (312)328-6800 Kankakee: Reeves Communications (815)937-4516 Lombard: itty bitty machine CO. (312)620-5808 INDIANA Bloomington: The Data Domain (812)334-3607 Indianapolis: The Bvle Shop (317)842-2983 The Data Domain (317) 251-3139 West Lafayette: The Data Domain (317)743-3951 KENTUCKY Louisville: The Data Domain (502)456-5242 MICHIGAN Ann Arbor: The Computer Store of Ann Arbor (313)995-7616 Royal Oak: Computer Marl of Royal Oak (313)576-0900 Troy : General Computer Store (313)362-0022 NEW JERSEY Hoboken: Hoboken Computer Works (201)420-1644 Iselin: The Computer Marl of New Jersey (201) 283-0600 NEW YORK East Meadow. L. [.: The Computer Mart of Long Island (516)794-0510 Mollis: Synchro Sound Enterprises (212)359-1489 Middle Island: The Computer Shoppe (516)732-3086 New York: Audio Design Electronics (212)226-2038 The Computer Mart of New York (212)686-7923 White Plains: The Computer Corner 1914)949-3282 OHIO Columbia: Cybershop (614)239-8081 OKLAHOMA Oklahoma City: High Technology (405)842-2021 OREGON Beaverton: Byle Shop Computer Store (503) 644-2686 Eugene: The Real Oregon Computer Co. (503)484-1040 Portland: Byle Shop Computer Store (503)223-3496 RHODE ISLAND Warwick: Computer Power. Inc. (401)738-4477 SOUTH CAROLINA Columbia: Byle Shop (803)771-7824 TENNESSEE Kingsport: Microproducls & Systems (615)245-8081 TEXAS Houston: Byte Shop (713)977-0664 Computertex (713)526-3456 Interactive Computers (713)772-5257 Richardson: The Micro Store (214)231-1096 VIRGINIA McLean: The Computer Systems Store (301)460-3634 Reston: Media Reactions, Inc. (703)471-9330 WASHINGTON Bellevue: Byle Shop Computer Store (206)746-0651 Seattle: The Retail Computer Store (206)524-4101 WISCONSIN Milwaukee: The Milwaukee Computer Store (414)259-9140 CANADA Oltawa, Ontario: Trin Ironies (613)236-7767 Toronto, Ontario: First Canadian Computer Store, Ltd. (4161482-8080 The Computer Place (416)598-0262 Vancouver. B. C: Pacific Computer Store (604)438-3282 IBj^R^^y Letters ALTAIR (S-100) BUS QUESTION I am using an 8080 based micro- processor system to control a video imaging system. A number of circuit boards are in use or being built which plug into the Altair style S-100 bus and work with video. Some of these boards require video sync signals (horizontal drive, vertical drive, composite blanking, composite sync and subcarrier). I would like to buffer these and put them on the bus as TTL signals. Could you please describe the known uses to date of the uncommitted pins of the Altair style S-100? I am looking for suggestions of a standardized place to put these five signals. Carl Geiger Onativia Crossing LaFayette NY 13084 Can any readers supply an answer? One place to ask your question would be to call the engineering departments of various companies which make peripher- als for the Altair bus. ON PRINTERS On April 1 1 977, volume 2 number 4 arrived with the fine article by M S McNatt. I look forward to the next issue with the interfacing information. I truly believe that this is a most over- looked situation: the use of Baudot machines with the small computer. It would appear that many, many more people would be interested in the small computer if there was some method of retaining ASCII throughout the computer except in the use of the Baudot machine for input and output. I must, however, take issue with the noise and smell of the Model 15. A Model 15 that is properly lubricated and adjusted, with its cover in place, should be something other than noisy; the cover should shield the owner from smell, also. If smoke comes out of the machine, something is wrong! I note that Mr McNatt did not men- tion the Western Union strip printers; the model number does not come to mind, but I believe that they were 2-B. I saw an advertisement on this type of machine and I have reason to believe that the keyboard of such a machine will mate with the typing reperforator which usually (to my knowledge) comes with- out a keyboard. Also, there is the Friden Flexowriter. My law office has a battery of those machines. The first one was acquired in 1958 and it clatters and bangs happily all day long. (Flexowriters are generally noisy, particularly the FL and SDS models.) Why is there not mention of 10 these machines? They are extremely sturdy and it is my understanding that one can still get maintenance for them. Many have input and output jacks or plugs. Lucius B Dabney Jr POB947 Vicksburg MS 39180 A way of clucking the issue of your last question would be to point to the title of the article: "A Guide to Baudot Teletypes. " As for oil and smoke, Mr McNatt's caricature of the Model 15 certainly fits my remembrances of using one on the amateur radio bands when I was in college . . . C H DOES ANYONE HAVE THE LATEST ON 8080 FORTRAN? Nine months ago, when I began to get serious about my own microcom- puter, everybody was promising a FORTRAN compiler "just around the corner." A major manufacturer promised a FORTRAN compiler "soon" which degrades to "early 1977." Now they don't mention FORTRAN in their adver- tisements. As time goes on we hear less and less of a FORTRAN compiler. Here I sit with 40 K, access to timesharing and a pile of FORTRAN programs I can't use. I am a user, not a hardware man or a systems man. I would like to compile these and other FORTRAN programs one way or another and get on with using my machine. FORTRAN may be a pterodactyl as Mr Lashley suggests, but it is a lan- guage commonly used to solve problems by those more interested in problem solving than in technique. Some of the hardware nuts would have us scrap every- thing everytime a new chip came along. In that event we would do nothing ex- cept construct new hardware. Mr Lashley would have us scrap years of training everytime a new programming idea appeared. That's OK for someone whose main interest is learning new languages. I don't feel we must scrap FORTRAN any more than Ma Bell has scrapped the old phone system. Sure, there have been problems, but by insisting the new must work compatibly with the old, she has built a good system for the user. The purists working for Bell who wish to scrap everything each time a new idea is discovered probably have ulcers. So let us continue to build upon what we have and not scrap everything each time something new comes up. If this is the way things are done, I'll be up- dating my system far into the future. Now, I'd like to see some way of con- verting that pile of FORTRAN programs. Lawson T Pierce 4891 Songbird Dr Columbus OH 43229 LASHING LASHLEY I nominate P M Lashley (Feburary 1977 BYTE, page 78) for the"Cybersnob of the Year" award for 1977. The year is young but I think he should get the nod; no one can possibly top his useless, self-serving, supercilious, unnecessary attack on another man's worthy efforts. Roxton Baker 56 South Rd Ellington CT 06029 APL INTEREST, AND CHARACTER GENERATION TUTORIAL NEEDED I am writing in response to letters in the February 1977 issue of BYTE to say that I am building a microprocessor based APL capability. I plan to build an APL CRT terminal and will want a character generator chip. Since I plan to build my own but have been unsuc- cessful in finding a construction and theory article, BYTE could include such an article, or at least a bibliography, in a future issue. Karl Gerhard 264 Taylor Rd Portsmouth Rl 02871 APL INFORMATION WANTED Would you please send me some information concerning implementation of APL on microcomputers? Thank you for your consideration. Gerry Wong 7950 Mercure Brossard Quebec CANADA J4Y 1A8 Watch future issues of BYTE. COVER KUDOS I had to write, though somewhat belatedly, to comment on the January 1977 cover painting by Robert Tinney. It was, I must admit, a rather emotional moment when I slid the wrapper off to reveal a painting which depicts exactly the feelings and aspirations I have held for some time now. The hope that the power of the computer, in the hands of all the right people, can somehow change the world from the smog filled grey and brown outside the window into the clear and beatiful vision seen through the terminal. May I suggest that this cover be made available in poster size through BITS. While I did enjoy the Thomas Jefferson cover, I feel that we in the world of computing should be looking to the future, and that this particular painting Continued on page 146 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' 11 INSULATED WHEELS Figure I: A simple train layout for one train show- ing the manner in which electricity is transmitted to the motor of the train. MOV H \ AC ~ ' How to Computerize David C Brown 1704 Manor Rd Havertown PA 1 9083 One of the many uses of computers, and especially personal computers, is in the area of real time process control operations. An enjoyable way of experimenting with this area would be to have your small computer control a model train layout. Those of us who attended the Personal Computing 76 convention held in Atlantic City NJ in August undoubtedly saw the Digital Equip- ment Corporation's display of a train layout controlled by an LSI-11 computer. There is no reason why you could not do something similar with your own system. Since many of you may not be familiar with the techniques used in model rail- roading, let's start with a bit of background information. Figure 1 shows the simple oval layout most of us probably had as children in the US, where DC power has dominated the scene recently. Power is applied to each rail. One set of wheels on the engine picks up the positive side and feeds it to the motor; the other set of wheels picks up the negative. Unfortunately, this type of system can only handle one train running at a given time. If a second train were put on the tracks, we would not be able to control the two trains' speeds independently. To solve this problem, we go to block control, shown in figure 2. As you can see, the negative rail is common, as it was in figure I. The difference lies in using insulators on the positive rails and two power packs. Now we can use switches so that either power pack can control either section of track. This allows us to have a train on the smaller loop (block 1) and another train on the run around track to the right (block 2), and we can control each train's speed independently through the two power packs. We still have to be a little careful when we operate this system, because if the train on block 2 runs onto block 1 while block 1 is occupied we will be right back where we started, with two trains running at the same speed and controlled by one power pack. 12 INSULATOR IIOV AC Figure 2: A basic example of block wiring. The nega- tive rail is common to both blocks. The positive rail is divided by insulators into two sections. Each block can run a train using a separate power pack. TRAIN A POWER PACK TRAIN B POWER PACK Your Model Railroad In reality, then, two blocks are insuffi- cient. A moderate size model railroad is likely to have from 12 to 24 blocks. Just before a train enters a block, the operator would flip that block's control to his power pack. When the train leaves a block, the operator would turn off that block so that the other operator could bring his or her train into the block if he or she wanted to. The only other really important consider- ation in train layouts that we should discuss is the reverse loop. Suppose we had a loop as in figure 3, so that the train could go around the loop and end up on the same track but going the opposite direction. If you follow the polarities of the tracks around the loop, you will see that they end up as a short circuit, with "+" connected to "— " and vice versa. This condition requires the use of a special type of block, known as a reverse block or reverse loop. The reverse block is similar to the other blocks we have dis- cussed, except that in this case, both tracks have insulators instead of just one. This is illustrated in figure 4. We have also added some other switches for reversing train direc- tions. A normal power pack has a reverse switch that switches the polarity of its output to make the train run in the other direction. With reverse loops, we can no longer use this switch. Instead, we need a Figure 3: An illustration of the type of difficulty that arises when a track is put through a reverse loop. Following polarities it will be seen that the negative side of the track will con- nect to the positive side at the end of the loop and vice versa. IIOV AC POWER PACK 13 INSULATORS Figure 4: Using insulators on both the positive and negative tracks a block is created that is totally iso- lated from the main track. Using a separate power pack will allow the train to run through the block, turn around, and return to the main track. u MAIN DIRECTION i SWITCH J direction switch for the reverse loop and another direction switch for the rest of the track. By playing with these switches, we can keep the polarities correct and prevent a short circuit. This is easier to see in an illustration. Assume that the train is coming down the main track from the left of figure 4 and that the track switch is posi- tioned to the right so that the train will end up going around the reverse block in a counterclockwise direction. The polarities of the main and reverse block on each side of the A insulators are the same, so there is no problem crossing the insulators. If we leave everything the way it is though, we will have a problem when the train hits the B insulators, since the polarities are reversed on opposite sides of the insulators. In this case, while the train is on the reverse block, we flip the main direction switch. This reverses the polarity of the main track so that it is the same as the reverse block's polarity at the B insulators. Now the train can leave the reverse block and go back onto the main track with no problems. Suppose the polarity of the reverse block had been reversed when the train was coming down the main track. In this case, we would have had no problem leaving the reverse block, but would not have been able to enter it in REVERSE BLOCK DIRECTION SWITCH the first place. The solution would be to flip the reverse block direction switch while the train was on the main track. This would match up the polarities at the A insulators. Then, after the train got onto the reverse block, we would reverse the main direction as we did before so that the train could safely leave the reverse block. Two items were omitted from figure 4 for the sake of simplicity in the prior discussion. At point C we would tie in the second power pack and the block control switches of figure 2. At point D we would need a 2 pole 2 position switch to allow either power pack to control the reverse loop. So much for train layouts and block control! The only other major piece of equipment on a model railroad is the track switch, called turnouts in model railroad terminology. Turnouts allow you to vary the route that your train takes, which is cer- tainly more interesting than watching your train do nothing but go around in a circle. A turnout represents the actual track that can be switched. It physically can sit in one of two states which are electrically controlled. The electrical components for moving the turnout are called switch machines. Figure 5 shows a typical turnout and switch machine. The turnout contains a movable section. In 14 figure 5, the train will go straight. If the movable section were pulled down, the train would go to the left relative to its motion, up the turnout track. The switch machine is really just a pair of solenoid coils. A soft metal bar with an S shaped groove slides between the coils. The movable section of the turnout has a lever connected to it. The other end of this lever rides in the groove of the sliding bar of the switch machine. In figure 5, if the reverse switch was closed, coil B would be energized and the soft bar would slide to the right. The lever would ride in the groove and be pulled down, thus pulling down the movable section of the turnout. Since the coils draw close to 1 A when energized, they should only be energized long enough to move the turnout. If left energized for more than a few seconds, they could overheat and burn out. For this reason, push button switches are normally used for controlling the switch machines. The switch machines normally run off an alternating current accessory power pack and have no relation to the block system. They represent a separate, isolated set of circuits on the model railroad. All of these electrical requirements may sound somewhat confusing. Linn Westcott has an excellent, very inexpensive paperback book entitled How to Wire Your Model Railroad from Kalmbach Publishing Com- pany, 1959. This book, or one like it, should be available at any hobby shop. Another very good set of paperbacks is published by Atlas Tool Company, a leading manufacturer of model railroading equipment. Atlas has also simplified the wiring for you. They sell sealed switch units containing printed cir- cuitry for all of the wiring I have discussed. The Atlas selectors contain block control circuitry, the Atlas controllers contain di- rection control and reverse loop circuitry, and the Atlas switch controllers contain the turnout control switches. These devices are inexpensive and have the ability to be plugged together for handling any size train system. All you do is connect your power packs, block wires and switch machine wires to the Atlas devices and your wiring is complete. The Atlas books also diagram track layouts, usually 6 to 8, from simple to complex, give construction details, and show how to wire them with the Atlas devices. What more could you ask for? Now that I have you hooked, or at least interested in model railroading, let's take a look at what we need to control this system by computer. All of the principles discussed so far still apply. The only additional item that we need on the train layout . itself is some way of knowing where the trains are. Figure 5: The basic workings of a turnout and switch machine. The two coils of wire move a piece of soft metal with a groove back and forth between them. The switch machine rides in the groove. When coil B is activated, by using the reverse mode, the metal is pulled into the B coil and the switch machine slides down in the groove changing the position of the switch machine. The simplest approach would be to use magnetic reed switches. As shown in fig- ure 6, these switches are nothing but two contacts, very close together, and scaled in a glass envelope. If we place these switches at intervals along the tracks and glue a small magnet to the bottom of our trains, the train going over the glass capsule will close the switch. These switches, by the way, are common in burglar alarm systems and other proximity sensing devices. I will rci'cr to these switches along the tracks as markers in the remainder of this article. The train control system to be discussed is currently under development. So far, the development has concentrated on the soft- Figure 6: This is a mag- netic reed switch which can be used as a marker along the track. The switch consists of two con- tacts that are enclosed within a glass envelopt The two metal contac, are activated magnetically when a car with a magnet attached passes over. BY T & E GLASS ENVELOPE ~TX SWITCH CONTACTS (ACTIVATED BY MAGNET) 15 vccO>- 02 O Ml O M2 C>- M3 C>~ M4 O- M5 [>■ M6 O- M7 C>- M8 fZ>- M9 D>- MIO O- fiii O- MI2 C>- MI3 [~>- MI4 O MI5 [3>~ MI6 O- »RI "|K ETLG CLK INTE R0 m R2 R3 R4 R5 R6 IC I 8214 R7 ELR ENLG INT A0 a! A2 BO §1 B2 SGS ECS I IC2 8214 CLK INTE RO Ri R2 R3 R4 R5 R6 R7 ELR ENLG INT A0 Al A2 BO Bi B2 SGS T /77 R2>R3>R4>R5 IK ?IK ?IK ?IK IC4 i> RESET STB DO Dl D2 D3 D4 D5 D6 D7 CLR DSI 8212 INT D00 DOI D02 D03 004 D05 D06 D07 MD DS2 00000 000 -C>INT -co -o -o -o 8080 BIDIRECTIONAL > BUS -o -o Q A 6 PRI0RITY_ 10 ARRAY EN Figure 7: This circuit is used to encode switches into marker numbers and generate interrupt signals. All resistors are measured in ohms and are 1/4 W. TO 4 MORE 82I4S CASCADED TOGETHER ware aspects, and most of the hardware details are yet to be worked out. These I must leave up to your ingenuity at the moment. You will need a way of controlling the switch machines. The October 1975 issue of BYTE, page 87, showed one way this could be done with a flip flop, several 2N3766 transistors, and a oneshot multi- vibrator. You will need a way of controlling the block switches, allowing you to turn a block off or to route power to it from any of your power packs. You will need a way of switching the direction controls, both main and reverse loop, as discussed with figure 4. Along with this, you will need a way of reading the polarity between the current block and the next block, probably using the marker number as the address. Fortunately, you only need this capability at entrances and exits from reverse blocks. You will need a way of controlling speed. This could be done with a digital to analog converter, or you could adapt the speed controller shown in the January 1975 issue of Popular Electronics, page 58. Last, but definitely not least, you will need the marker system. The markers, as mentioned earlier, are the switches located along the track for sensing the location of the trains. When the train passes over a marker, an interrupt could be generated. The interrupt software must be able to read in a binary number identifying which marker was hit. This could be accom- plished on an 8080 based system by cas- cading together Intel 8214 Priority Interrupt ICs, as shown in figure 7. Ideally, we would 16 like a large number of markers. Although I haven't the room to discuss this aspect, a graphics display could be used so that the track layout is displayed and each marker would light up as the train passed it. For this, we want many markers. The circuit of figure 7 will allow up to 40, but needs five 8214 chips, at $15 each. Another possibility would be to use a 256 word by 8 bit read only memory and have the markers control the address lines into the memory, which would be programmed with the marker numbers. I would be interested in hearing from anyone who has a cheap way of debouncing and encoding 256 switches into a byte of data that could be read in by an interrupt routine. For that matter, I would be interested in hearing from people on any of these hardware requirements, since I haven't worked them out myself yet. So much for hardware. The software should, actually be easier to explain than model railroading theory. The entire soft- ware package is table driven. This makes it easier to understand and easier to adapt to a wide variety of train layouts. The four major tables used are the marker table, the block table, the switch table and the train table. The marker table really controls most of the system. Each marker on the track has a corresponding entry in the marker table. When the train hits a marker, an interrupt is generated. Interrupts are probably preferable to a polled system, since it is crucial that none be missed and unless the marker event is latched, a busy processor could miss it. If your program is processing a console com- mand and a train passes a marker before you get to poll it, you could have real chaos. The marker interrupt routine, then, would read in the marker number and look it up in the marker table. Table 1 shows the layout of an entry in the marker table. If a graphics display is used, MXY would be used to update the display, showing the train at the new marker location. MBLOCK would be the pointer to the block table entry for the block which contains this marker. MSETUP indicates that this is the last marker in the block. The software would go to the block table, figure out the next block that the train will enter, and issue a command to apply power to that block (remember fig- ure 2?). MFREE tells the software that the marker is the first one in the block and power should be removed from the prior block. This is the reverse of MSETUP. MFA and MFD are fractional accelerators and fractional decelerators. Fractionals represent a small change in the speed of the train. Any marker can be set up to add or subtract a fractional to the train's current Label Byte Bit Meaning 1 to 8 marker number 1 to 8 block table entry displacement 1 to 8 stop number 1 setup next block indicator 2 stop indicator 7 apply fractional decelerator on stop only 8 release prior block indicator 1 to 4 fractional accelerator value 5 to 8 fractional decelerator value 1 to 8 XY coordinates for graphics display routine Table I : Marker Table Information. The purpose of the marker table is to organize the current information associated with each marker input from the model railroad layout. The list of information shown here is described in the text in more detail. The use of a graphic display of the layout is assumed by putting in display coordinate fields (MXY), which might be omitted otherwise. The basic marker entry information is repeated in this format for each marker. MMARKER 1 to 2 MBLOCK 3 MSTOPNO 4 MSETUP 5 MSTOP 5 MFDS 5 MFREE 5 MFA 6 MFD 6 MXY 7 to 8 Label Byte BBLOCK 1 BTRAIN 2 BREV 2 BPRIOR 3 BNEXT 4 Bit Meaning 1 to 8 block number 1 to 4 which train is currently in the block 8 reverse block indicator 1 to 8 prior block ID 1 to 8 next block ID Table 2: Block Table Information. The purpose of the block table is to organize the current information about each block in the model railroad layout. The block is identified by its number. (Although this field might be omitted if numbers and position in the table are made identical.) If the block currently has a train, its number is identified. The topology of the track network is reflected in the prior block and next block pointers. speed. This would be used to speed up the train as it goes up a hill, called a grade, or slow it down on a downgrade. It could really be used any place you wanted the train's speed to automatically change. Fractionals can also be used for programmed stops. The MSTOP indicator in the marker table entry tells the system that the train should stop. However, a sudden stop would be unrealis- tic, so we can use the fractional decelerator. If the operator requests a stop at a particular stop number and that stop number equals MSTOPNO, the system will look at MSTOP and MFDS. If MFDS is on, the fractional decelerator will be applied, slowing down the train. MFDS also will prevent the frac- tional decelerator from being applied if a stop was not requested. Eventually the train will hit a marker that has the correct MSTOPNO and has the MSTOP indicator on, and the train will be stopped completely. Each block on the track layout has a corresponding block table entry, as shown in table 2. The block table entry contains indicators for what train is in the block and whether the block is a reverse block (our figures 3 and 4 discussion). The reverse indi- cator will be used by the marker processing. When power is to be applied to the next 17 Label Byte Bit Meaning SSWITCH 1 1 to 8 switch number SPOS 2 1 through or turnout indicator SFROM 3 1to8 from block ID STHRU 4 1to8 through block ID STURN 5 1to8 turnout block ID SNMKTHRU 6 1 to 8 setup next marker ID for through block SNMKTURN 7 1 to 8 setup next marker ID for turnout block SPMKTHRU 8 1 to 8 release prior marker ID for through block SPMKTURN 1 to 8 release prior marker ID for turnout block Table 3: Switch Table Information. The switch table entries describe each switch in relation to the railroad layout by means of pointers to the "from, " "through" and "turnout" blocks. This information, which is relatively fixed for a given layout, is used to modify the prior and next block information in the block table according to the settings of the switch. One such entry is needed for each switch in the layout. (A roundhouse would have to be a special case . ■ ■ ) BLOCK 2 MARKER I i INSULATORS MARKER 2 MARKER 3 J L BLOCK I BLOCK 3 Figure 8a: An example of a marker being between two blocks. In this type of array the computer must only determine whether the train will go into block 2 or 3. BLOCK I BLOCK 2 BLOCK 4 Figure 8b: This figure is slightly more complex than figure 8a. In this type of array the train may enter block 3 or block 2. The computer must determine which block the train will enter. If it is block 3 the information for block 3 must be updated for the particular train as soon as the train has passed marker I . If the train will enter block 2 next, however, the information for block 2 must not be updated until the train has passed marker 2. block, the software will check to see if either the current or the next block has the reverse block indicator on. If neither block is a reverse block, power is applied to the next block. However, if either block is a reverse block, we must do additional processing. Power is applied, but we have to worry about the polarity. Therefore, we read in the polarity between the two blocks, probably using the marker number as the address for the polarity interface. We cannot use the block number, since the polarity will be different at the two ends of the reverse block. If, after reading the polarity between the two blocks, we find that they are equal, we are done. If they are different and the current block is a reverse block, then we must reverse the polarity of the main track. If they are different and the current block is not a reverse block, we must reverse the polarity of the reverse block. These are the same operations that we discussed with figure 4, only the computer will do them rather than the operator. The BPRIOR and BNEXT fields in the block table entry are pointers to the block table entries for the prior and next block on the track layout. These pointers are maintained and modified by the switch processing. When the operator requests that a par- ticular switch position be changed, the soft- ware will locate the switch entry in the switch table. Table 3 shows the layout of a switch table entry. SPOS, the position indi- cator, will be toggled and the graphics display, if used, will be updated to show the new switch position. The new value of SPOS will be output to the switch interface. SFROM, STHRU, and STURN are used to update the prior and next block fields of the block table entries so that each block entry points to its correct successor and predecessor. SNMKTHRU, SNMKTURN, SPMKTHRU, and SPMKTURN are used to turn on and off the MSETUP and MFREE indicators in the marker table. For example, if the switch is set for turnout, MSETUP in the marker pointed to by SNMKTHRU will be turned off and will be turned on in the marker pointed to by SNMKTURN. SPMKTHRU and SPMKTURN do the same with the MFREE indicator in the marker table. The reason for this may not be apparent, so let's look at an example. In figure 8a, this processing would not be needed. MSETUP in marker 1 would always be on, and MFREE could be left on in both marker 2 and marker 3 since there is no other way into block 2 or 3 other than from block!. However, figure 8b is a different case. Here we have the switch in the middle of a block. If the switch were set for the 18 turnout, the train would leave block 1 and enter block 3. Marker 1 would have MSETUP on and marker 4 would have MFREE on. Now let's change the switch position. The train will no longer go into block 3. The switch processing would have updated block Ts block table entry so that block 2 was the next block. If we try to set up the next block (block 2) according to marker 1, we will be premature. Maybe there is another train in block 2 at the moment, since there could be quite a bit of track between the switch and the beginning of block 2. Likewise, if a train comes down block 3 and tries to free the prior block according to marker 4, we might have a similar problem. The switch processing, then, must turn off MSETUP in marker 1 and turn off MFREE in marker 4 if the switch is set for through and turn them on if the switch is set for turnout. In this par- ticular case, markers 2 and 5 could have MSETUP on all the time, markers 3 and 6 could have MFREE on all the time, SNMKTHRU and SPMKTHRU will be zero, and SNMKTURN and SPMKTURN will have a 1 and a 4 respectively. The train table of table 4 has one entry for each train that you are running. This table entry is used primarily for keeping track, pardon the pun, of where each train is. It specifies what block the train is in, the last marker hit, the train's direction (forward or reverse), the train's current speed, and the port address for the train's power pack interface. This interface would control the speed, through digital to analog convenors or similar, and the main and reverse block direction controls. The train table entry would be updated by marker processing and by speed and direction commands issued by the operator. So far, we have discussed primarily the automatic functions of the software. Now let's look at the functions controlled by the operator. We already discussed switches and stops. That leaves us with direction and speed. Suppose we want to reverse a train. First, this command would not be allowed if the train was moving, since we might cause a derailment if we suddenly reversed a fast moving train. Other than that, it's fairly simple. We store an indicator in TDI R of the train table entry to indicate that the train is going in the reverse direction and then issue the command to reverse either the main polarity or the reverse block polarity, de- pending on whether or not the train is currently in a reverse block. From then on, we reverse logically the meaning of the MSETUP and MFREE indicators in the marker table entries and we reverse logically Label Byte Bit Meaning TTRAIN 1 1 to 4 train number TDIR 1 8 direction TBLOCK 2 1 to 8 current block ID TMARKER 3 to 4 1 to 8 current marker ID TSPEED 5 1 to 8 train's current speed TPORT 6 1 to 8 IO port address for controller Table 4: Train Table Information. Each train in the layout must also be followed in the software as it runs its route. The information can be formatted and referenced with a structure such as this. The details vary for each train with time, as the train progresses through the layout. the meanings of the prior and next block pointers in the block table entries. There- fore, we set up the next block when MFREE is on and free the prior block when MSETUP is on. BNEXT points to the prior block and BPRIOR points to the next block. Train speed control can be somewhat more difficult. There are basically two ways to control speed. The easiest would be to use a digital to analog converter. Trains run on to 16 VDC, so a converter would be needed capable of providing this range at approxi- mately 1 A per train to be run at a time. Therefore, if you plan on running two trains at the same time, you need a to 16 VDC supply rated at 2 A minimum. This idea works well with the fractional system out- lined earlier, but is not very realistic. The operator would have to enter on the console the voltage to be applied and the software would output to the converter the correct value. To gradually speed up a train would keep the operator busy for a while entering speed commands. A more realistic approach would be to enter an accelerate command that would gradually speed up the train at a uniform rate. When the proper speed is reached, the operator would enter a hold command to maintain the current speed. To slow down, a decelerate command would cause the train to gradually slow down, and the hold com- mand would again be used to stop decel- erating. This type of control could be accomplished by adapting the circuit on page 58 of the January 1975 Popular Elec- tronics to operate as an IO device rather than by push buttons. This complicates the fractional system, since the fractionals were intended to represent actual voltage quanti- ties to be applied to the train's speed. A similar approach could be to still use digital to analog converters, but to have the software periodically increment or decre- ment the value applied to the converter if an accelerate or decelerate command was in effect. This method will satisfy both realism and the operation of the fractionals, but depends upon the construction of the soft- 19 Marker Interrupt Processing Routine The M algorithm is used for marker interrupt processing. It reads in the marker number, per- forms operations on it, including block processing (B algorithm) if necessary, determines any change in speed and then returns from the interrupt. Ml. Read the marker number input and look it up in Marker Table. M2. Use MB LOCK of Marker Table entry to point to Block Table entry. M3. Use BTRAIN of Block Table entry to point to Train Table entry. M4. Store marker and Block Table pointers in TMARKER and TBLOCK. M5. If TDIR=0 and MSETUP is on then go to B1, M6. If TDIR = 1 and MFREE is on then go to B1. M7. If TDIR=0 and MFREE is on then go to B11. M8. If TDIR=1 and MSETUP is on then go to B11. M9. Send MXY to graphics display if it is used. M10. If MFA > then add MFA to TSPEED and send TSPEED output to the speed controller. Mil. If MFD > and MFDS is off then subtract MFD from TSPEED and send TSPEED output to the speed controller. M12. If MFD > and MFDS is on and stop has been requested at MSTOPNO then subtract MFD from TSPEED and send TSPEED output to the speed controller. M13. If MSTOP is on and a stop has been requested at MSTOPNO then store in TSPEED and send TSPEED output to the speed controller. M14. Return from interrupt processing routine. B Block Processing Routine The B algorithm is used for block processing of the power controls. The algorithm determines the voltage and polarity changes that are to be made for the various blocks. Lines B1 to B10 set up the next block for the train to enter it. Lines B11 to B1 5 free the prior block that the train is leaving. B1. If TDIR = 1 then use BPRIOR as the next block pointer, else use BNEXT as the next block pointer. B2. If BTRAIN of the next Block Table entry = TTRAIN then go to M7. B3. If BTRAIN =£ then stop system (there is a train over run: two trains in same block!) B4. Store TTRAIN in BTRAIN of the next block. B5. Send command output to the block con- troller to power up the next block. B6. If BREV of the current block and BREV of the next block are both then go to M7. B7. Read polarity of tracks using MMARKER of the current Marker Table entry as the address. B8. If polarity=0, then current and next block polarities are the same so go to M7. B9. If BREV of the current block = 1, then output a command to reverse the main polarity and go to M7. B10. Output a command to reverse the reverse block's polarity and go to M7. B11. If TDIR=1 then use BNEXT as the prior block pointer else use BPRIOR as the prior block pointer. B12. If BTRAIN of the prior block = then go to M9. B13. Store in BTRAIN of the prior block. B14. Send command output to block controller to turn off prior block and go to M9. Switch Command Routine The S algorithm performs the switch command processing by resetting all of the markers that are being affected by a particular train. It is called by an operator command. 51. Look up the switch number in the Switch Table. 52. Reverse value of SPOS (O=through, 1=turnout). i 53. If SPOS=0 then use STHRU as the pointer to next block and go to S5. 54. Use STURN as the pointer to the next block. 55. Store the pointer to the next block in BNEXT of the Block Table entry pointed to by SFROM. 56. If SPOS=1 then go to S14. 57. Turn off MSETUP in Marker Table entry pointed to by SNMKTURN. 58. Turn on MSETUP in Marker Table entry pointed to by SNMKTHRU. 59. Turn off MFREE in Marker Table entry pointed to by SPMKTURN. 510. Turn on MFREE in Marker Table entry pointed to by SPMKTHRU. 511. Send SPOS output to the switch controller using SSWITCH as address. 512. If the graphics display is used then update it to Show new switch position. 513. Return to operator command processor. 514. Turn off MSETUP in the Marker Table entry pointed to by SNMKTHRU. 515. Turn on MSETUP in the Marker Table entry pointed to by SNMKTURN. 516. Turn off MFREE in the Marker Table entry pointed to by SPMKTHRU. S'17. Turn on MFREE in the Marker Table entry pointed to by SPMKTURN. S18. Go toS11. R Reverse Direction Command Routine The R algorithm performs the reverse direction command processing. If the train is not moving, the polarity of the block will be reversed and TDIR will be logically inverted. R1. If TSPEED in the current Train Table entry ^ then indicate invalid request and return to command processor. R2. Reverse the present value of TDIR in current Train Table entry. R3. Use TBLOCK of the current Train Table entry to point to the current Block Table entry. R4. If BREV of the current Block Table entry = 1 then go to R7. R5. Send command output to reverse the polarity of the main track. R6. Return to operator processor. R7. Send command output to reverse polarity of reverse block. R8. Return to operator processor. 20 ware to increment or decrement at a reason- able pace. Table 5 shows a list of operator com- mands that might be used on a typical computerized model railroad. The remainder of this article is devoted to some algorithms for the more important processes we have discussed. Algorithms, if the term is un- familiar, are simply flowcharts expressed in words rather than in blocks and arrows. Since this article is not presenting actual code and is more directed to theory than to bit by bit details, generalized algorithms seem more appropriate. I hope this article has increased your interest in the area of model railroading and has given you some ideas on how you can simulate, on a small scale, the types of real time process control systems that could be used on a large scale to control an actual railroad." Mnemonic Command meaning A Tx accelerate train x D Tx decelerate train x H Tx hold train x at current speed S Tx stop train x immediately S Tx Sy stop train x at stop number y FA xxx My set fractional accelerator value of xxx into marker y FD xxx My set fractional decelerator value of xxx into marker y FD xxx My,S same as above but also turn on MFDS R Tx reverse train x Sx toggle position of switch x Ex My1,y2,--,yn establish stop x at markers y1 ,y2,-yn and turn on MSTOP in marker yn Dx delete stop x K kill system; emergency power off C close down system; orderly stop of trains and power off Table 5: Definition of a Command Language. Here is mnemonic set of commands for control of the trains on a model railroad layout from a terminal keyboard. When a general purpose keyboard is used, this sort of sequence is required — although the particular commands defined here are not necessarily the only set possible. Algorithms S and R (see separate boxes) are command processing routines for switch toggling and reversal of trains, two of the more complex commands in this list. GLOSSARY Algorithm: A method used to express the steps to be taken in solving a problem. It may be expressed in words, as a flowchart of blocks, lines and arrows, or in other forms. Block control: Sectioning up a railroad layout so that multiple power packs can be used to run more than one train on the tracks at a time. Block table: A table used in the software for controlling a model train layout. Each block on the tracks has a corresponding entry in the block table. Digital to analog converter: Commonly abbreviated as DAC, the device takes as input a digital value, typically an "n" bit binary number, and outputs an analog signal in the form of a variable voltage corresponding to the digital input value. Fractionals: As used in this article, a fractional is a 4 bit binary number representing a small change in the speed of the train. It is used for automatic speed changes under program control. Graphics display: A video display device that can display lines, curves and drawings rather than just characters. In a train system, a graphics display could be used to show a real time diagram of the train layout and where each train is located. Insulators: In a train layout, insulators are used to isolate sections of track in order to use block control. Since power is supplied to the train through the tracks, insulators are placed between sections of track so that each section can be controlled independently. Markers: Switches located on the track that are activated by the passing of a train. These markers are used by the software to keep track of where the trains are. Marker table: A table used in the software, containing an entry for each marker on the train layout. Polarity: As used in this article, polarity refers to which track is positive and which track is negative. Normally, this is not really important, except in the case of reverse loops, where the polarity between two adjacent blocks on the layout might be different, resulting in a short circuit when crossed by the train. Reverse loop: Or reverse block; this is where a section of a track will allow a train to go around in a loop and end up on the same track but going in the opposite direction. Special handling of these cases is needed. Solenoid: A coil of wire which acts as an electro- magnet. When current is applied to the coil, a bar of soft metal will be attracted toward the magnet. In model railroading, solenoids are part of a switch machine. Switch machine: A solenoid activated mechanism attached to a turnout, used to move a section of track so that the route of the train can be modified. Switch table: A table used in the software, containing an entry for each switch machine and attached turnout on the track. Train table: A table containing an entry for each train that is running on the train layout (also, the physical structure on which your train layout is built). Turnout: A movable section of track, used to modify the route of the train. A turnout allows the train to go in one of two possible directions. A switch machine is used to move the turnout. A turnout has a normal position, which is the direction most commonly taken, and a reverse position, which is the less frequently used position. In this article, I have also used turnout to refer to the reverse position, and through to refer to the normal position. 21 Introducing Apple II. SP Mi" Mr ■»>•■« M, 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 II? 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 nstructions. And your programs can be stored on— and retrieved from— mdio 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 IPs 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— 40hx48v, 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 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 port_ • 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). _4- apple computer inc. 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. ^cippkz computer inc. 9n«fi'* Qtmmrc Pr^Bt Rhrrl R3.P 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 .Zip State Phone 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 □ Master Charge Card Number : Expiration Date Signature Mail to: Apple Computer Inc., 20863 Stevens Creek Blvd., B3-C, Cupertino, California 95014 Circle 7 on inquiry card. Photo 1: Two different shots from the balcony of the Civic Auditorium show the extent of the crowd. At the end of the show, chaircreature Jim Warren announced that 12,800 people had attended. Random Observations and Conversations at the First West Coast Computer Faire Notes and Photos by Lawrence F Willard The kids monopolized the computer games most of the time, and were better in their scoring than most of the adults. Said one man to another: "Those kids have been at the keyboard for 1 5 minutes; shall we push 'em out of the way?" "No," said the other. "They're doing a helluva lot better than I know I could do." There were several variations of Star Trek in evidence. At the Processor Technology booth one frustrated kid kept getting this printout whenever he entered a command: "Captain, I'm afraid your last command made no sense." He was lucky. A kid about 12 years old playing Star Trek at the Vector Graphic Inc booth apparently made a king sized error and got this printout: "Thanks to your bungling the galaxy has been destroyed by the Klingon War Fleet. You are demoted to cabin boy. Try again." The boy turned around and saw me watching him. "Don't say anything," he growled. These games reveal a lot about people to dedicated people watchers like me. At the National Semiconductor booth a computer was set up to plot, on a screen, a graph of the player's physical, emotional and intellec- tual cycles. You were asked to key in your birth date and to indicate over how many days you wanted the chart plotted. I noted, curiously, that some people used arbitrary dates or somebody else's birth date rather than their own. Are some people reluctant Larry Willard, who writes regularly for Yankee magazine (Dublin NH), acted as BYTE's rov- ing eye at the First West Coast Computer Faire held in San Francisco's Civic Auditorium on April 16 and 17 of this year. Here are Larry's notes on Random Observations and Conversations at the event. Photo 2: The mild, unassuming roll top desk at the left of this sequence hides an intelligence. For, when all the doors and slides of this "desk" by RDC En- terprises (8352 Stanford Av, Garden Grove CA) are opened, they reveal an experimenter- oriented computer with built-in Altair bus extender card at desk level, a keyboard at desk level and video monitor. The actual computer mainframe is below desk level behind doors, and the bottom drawer can hold the ex- perimenter's tools. 25 Rich Man, Poor Man, Merchant, Physician, Teacher, Lawyer, Student, Musician.... There's MICOM Floppy Disk System for Everyone! More Uses People from every walk of life are adding iCOM® Floppy Disks to their microcomputers for such diverse tasks as payroll, inventory control, mailing lists, game playing, record keeping, parts ordering . . . We've uncovered some innovative applications, too: The sailboat architect who puts equations and algorithms on an iCOM disk to test his nautical theories ; the student who has auto- mated a bowling alley; the iCOM dealer who designed an environmental control system for a university. More Speed These users have found iCOM floppies to be much faster and more versatile than cassette or paper tape. WithiCOM, programs can be loaded in seconds; files updated in minutes; hundreds of programs can be stored on j a single disk. I More Models iCOM has Frugal Floppies™, Dual Floppies, Microfloppies™ (using the new 5 Vi " diskette), and other new approaches to floppy disk systems. Each is hardware and software compatible with Altair™, IMSAI, Poly 88, Sol-20 and other microcomputers using the Altair S-100 bus format. More Software Then there's iCOM's famous software: Powerful field-proven FDOS-II with macro-assembler, string- oriented text editor, and file manager. Plus easy-to-use compatible 8K Disk BASIC. Each with super features such as : named variable length files, auto- file create, open and close, multiple merge and delete . . . and more. More Backup We've been building floppies for microcomputers for more than 3 years . Long before the rest. Thousands of systems are operating perfectly in the field. And we're part of Pertec Computer Corporation, one of the largest manufacturers of peripherals, microsystems, data entry products and data processing systems. We'll be around whenever you need us. More Dealers Maybe not in quantity, but in quality. We've chosen our dealer network carefully to assure you of assistance every step of the way. Our prices are right. Our delivery is fast. Our dealers are experienced and knowledgeable. Must Reading Our free booklet, "What a Floppy Disk Can Do for You" is must reading. Send for yours today or visit your dealer. po v* •*«*• V3*. B* (*» 0f& © 1 97 7. Pertec Compuler Corporation v® miCROPERIPHERRlS a division of Pertec Computer Corporation 6741 Variel Ave., Canoga Park, CA 91303 U.S.A. Tel . (213) 348-1391 TWX 910-494-2788 There's an iCOM for Everyone at these Computer Stores... ARIZONA INDIANA Byte Shop Data Group Tempe IndianaDolis (602)894-1129 (317)842-2983 CALIFORNIA KENTUCKY Orange Computer Ctr. Cybertronics Costa Mesa Louisville (714)646-0221 (502)499-1551 Byte Shop Lawndale MASSACHUSETTS (213)371-2421 American Used Computer Byte Shop Boston Mt. View (617)261-1100 (415)969-5464 Computer Mart MINNESOTA Orange Microprogramming (714)633-1222 Burnsville Byte Shop (612)894-3510 Pasadena NEW HAMPSHIRE (213)684-3311 Computer Mart Byte Shop Nashua Santa Barbara (603) 883-2386 (805)966-2638 NEW JERSEY Byte Shop Santa Clara Computer Mart Iselin (408) 249-4221 (201)283-0600 Byte Shop San Diego NEW YORK (714)565-8008 Synchro Sound Hollis Byte Shop San Rafael (212)468-7067 (415)457-9311 Computer Mart NYC (212)686-7923 Computer Room San Jose (408) 226-8384 NORTH CAROLINA Byte Shop Digital Dynamics Tarzana Charlotte (213)343-3919 (704)374-1527 Tech-Mart PENNSYLVANIA Tarzana (213)344-0153 Byte Shop Brymar Byte Shop (215)525-7712 Thousand Oaks (805) 497-9595 SOUTH CAROLINA Byte Shop Carolina Computers Walnut Columbia (415)933-6252 (803) 798-6524 Byte Shop TEXAS Westminster (714)894-9131 Microstore Richardson COLORADO (214)231-1096 Prime Radix Microtex Denver Houston (303) 573-5942 (713)780-7477 FLORIDA Computer Terminal El Paso Byte Shop (915)542-1638 Miami (305) 264-2983 WISCONSIN The Computer Store Madison Computer Jacksonville Madison (904)725-8158 (608) 255-5552 ILLINOIS CANADA Itty Bitty Machine Computer Mart Evanston Toronto (312)328-6800 (416)484-9708 Numbers Racket Computer Place Champaign Toronto (217)352-5435 (416)598-0262 Champaign Computer Champaign (217)359-5883 miCROPERIPHERfllS 6741 Varlel Ave., Canoga Park, CA 91303 U.S.A. Tel. (213) 348-1391 a divison of Pertec Computer Corporation O oo Photo 3: The kid at the keyboard of this I MSA I 8080 under the watchful eye of Lynn Stone is Bob Bowdige, a fifth grader at Rollingwood School in San Bruno. A t this school, 200 students each week study BASIC programming. The school was invited to become part of the exhibit at the Action Audio Electronics booth at the show. to know what their cycles are, or are they reluctant to have other people see when their highs and lows occur, a privacy thing, perhaps? Anyway, I saw a pretty young lady who couldn't be out of her 20s key in a Photo 4: Victoria Van Buskirk, 10, with her father Thomas, a pro- grammer at Lockheed in Sunnyvale CA, in the Re- creational Computer Centers booth. Tom, with his interests in computer games and home account- ing problems, plans to acquire a computer. 27 Photo 5: The husband and wife team of Ellen and Allen Penn (he's president, she's VP and secretary of Sylvanhills Laboratory Inc, I Sylvanway, Box 239, Strafford MO 65757) demonstrate computer controlled plotters to Dick Speer of Northwest Computer Cinema. (For more details on the plotter kit, see BYTE January 1977 page 85.) Dick has a 6502 based computer similar to the KIM which the Penns are using in this setup; he wants to use it for computer controlled graphics. birth date of October 9 1912. An arbitrary date? The birth date of a parent? Only she knows. The computer took a fair amount of time to figure it all out, but finally traced the patterns on the screen for a 20 day per- iod. At the Advanced Technology Research Associates booth there were flashing space jewels and Plexiglas ray guns that lit up with a pulsing bright colored light when the trig- ger was pulled. These fascinated kids and grownups alike, only at 24 bucks and on up the kids weren't buying. The older people were, though. I asked one guy what he planned to use his space ray gun for. "I'm a magician," he said. "I'll find a use for it on stage." Another guy wanted to know if the space jewels were waterproof. He thought it might be interesting to drop one of the little flash- ing pendants into his tropical fish tank, or into a pitcher of his favorite iced beverage. They aren't waterproof; the battery com- partment would be flooded. Like a lot of other people, I had a com- puter portrait made— you stand in front of a TV camera, your image is held on the TV 28 OUR DEALERS NORTHEASTERN STATES Computer Workshop, Rockville, MD; Computer Mart, Waltham, MA; Iselin, NJ; Hoboken Computer Works, Hoboken, NJ; Audio Design Electronics, New York, NY; Byte Shop East, Levittown, NY; Computer Corner, White Plains, NY; Computer Enterprises, DeWitt, NY; Fayetteville, NY; Computer Mart ot New York, New York, NY; Computer Shoppe, Middle Island, NY; Ithaca Audio, Ithaca, NY; Byte Shop, Bryn Mawr, PA; Personal Computer Corp., Frazer, PA SOUTHEASTERN STATES Computer Hut, Hialeah, FL; Delta Electronics, Leesburg, FL; Douglas Computer Systems, Jacksonville, FL; Economy Computing Systems, Orlando, FL; Electronic Shop Inc., Melbourne, FL; Microcomputer Systems Inc., Tampa, FL; Computer Systems Center, Atlanta, GA; Computer Electronics, Baton Rouge, LA; Byte Shop, Columbia, SC MIDWESTERN STATES American Microprocessors, Prairie View, IL; Bits and Bytes, Posen, IL; Itty bitty machine company, Evanston, IL; Lllllpute Computer Mart, Skokie, IL; Numbers Racket, Champaign, IL; Data Domain, Bloomington, IN; Home Computer Center, Indianapolis, IN; Micro Bus Inc., Cedar Rapids, IA; Data Domain, Louisville, KY; Computer Mart, Royal Oak, Ml; Computer Systems, St. Clair Shores, Ml; General Computer, Troy, Ml; Computer Depot, Minneapolis, MN; Computer Room Inc., Eagan, MN; High Technology, Oklahoma City, OK; Milwaukee Computer Store, Milwaukee, Wl WESTERN STATES Bits & Bytes Computer Shop, Phoenix, AZ; Personal Computer Place, Mesa, AZ; Affordable Computer Store, Santa Clara, CA; A-VIDD Electronics, Long Beach, CA; Bits n Bytes, Fullerton, CA; Byte Shop, Burbank, CA; Fresno, CA; Lawndale, CA; Long Beach, CA; Palo Alto, CA; Pasadena, CA; Placentia, CA; San Diego, CA; San Jose, CA; San Rafael, CA; Santa Clara, CA; Tarzana, CA; Thousand Oaks, CA; Walnut Creek, CA; Westminster, CA; Computer Center, Costa Mesa, CA; Computer Center, San Diego, cA; Computer Components, Van Nuys, CA; Computer Electronics, Santa Barbara, CA; Computer Emporium, Newport Beach, CA; Computer- land, San Leandro, CA; Computer Mart, Orange, CA; Computer Playground, Westminster, CA; Computer Power and Light, Studio City, CA; Computer Store ot San Francisco, San Francisco, CA; Dunston Enter- prises, Redding, CA; Executive Office Equipment, Pasadena, CA; Micro Computers, Fountain Valley, CA; Microsystems Engineering, San Francisco, CA; Sunny Sounds, San Gabriel, CA; Sunshine Computer, Carson, CA; Upland Computer Labs, Upland, CA; Xlmedla, San Francisco, CA; Byte Shop, Boulder, CO; Engle- wood, CO; Mighty Mini Company, Denver, CO; Micro- computer Systems of Hawaii, Honolulu, HI; Small Computer Systems, Honolulu, HI; Computer Mart of West Texas, Lubbock, TX; Computer Shop, San Antonio, TX; Computer Terminal, El Paso, TX; Electronic Specialty, Houston, TX; Houston Computer Mart, Houston, TX; KA Electronic Sales, Dallas, TX; Micro Store, Richard- son, TX; Vanguard Systems, San Antonio, TX FOREIGN Microtech Computers, Winnepeg, Manitoba, Canada; Haywood Electronic Associates Ltd., Northwood, Middlesex, England; Instrumatlc, Geneva, Switzerland. cch g3A?hc inc. 790 HAMPSHIRE ROAD • A + B WESTLAKE VILLAGE, CA 91361 Not Affiliated With Vector General Circle 9 on inquiry card. THE PERFECT MICROCOMPUTER '*«*«»*«*. cCC031 ■ ■ It's a two touch affair VECTOR 1 is based on the 8080A Microprocessor and S-100 Bus - EASY TO ASSEMBLE, EASY TO ACCESSORIZE, EASY TO BUY AND VERY EASY TO OPERATE. lOR G=?APHC illC. 717 LAKEFIELD ROAD, SUITE F WESTLAKE VILLAGE, CA 91361 • (805) 497-0733 Photo 6: Terry Belcher of Advanced Technology Re- search studies a map of world conquest for the color video game "Risk" which was being run at the Compucolor booth. screen until it can be scanned for a computer printout. In about a minute the printer rolls it out and it is torn off and handed to you. The guy in front of me in line made a pro- duction out of it. He was bearded, and he wanted a profile shot with a pipe in his mouth and his hand up to it in a studied pose. He explained that he wanted it for his office door. There were a couple of booths playing computer music and the sound was great, even if the repertoire was a bit limited. About the 15th or so time you've heard a particular tune during the day you can draw the waveforms of each note. But the perfor- mance was pretty good. Solid State Music's booth was playing such tunes as "The Flight of the Bumblebee," Bach's "Little Fugue in G Minor," "Blues in F," "It's a Small World," and "Maple Leaf Rag." Try those on your computer. Footweary after awhile, I went into the cafeteria, got some coffee, and sat down at a table and got into a conversation with two men sitting there. They were Manabu Uyehara and George M Hirota, who have the Radio Shack franchise in Honolulu. They had flown to San Francisco especially for the Faire. Both men have had previous com- puter experience, and they are anxious to carry computers in their store. I moved to another table and met Scott M Dickson, a computer programmer in the dental school of the University of Michigan. He wants a computer to experiment with. He thinks dentists could use them for pa- tients' records and for billing. Coming from the cafeteria I stopped at a booth offering a selection of fine prints and etchings done in sort of a science fiction-fan- tasy style. One of them, I thought, would look especially fine in my study. Before I could ask how much it was, somebody else did. "Six-fifty," said the young artist. Real reasonable, I thought, and moved forward to buy one. The man who had asked how much, then asked: "Six hundred and fifty dollars?" The artist said that was correct. I walked away. That's more than most of the computers were selling for." Photo 7: Some floor shots. 1 rtCHMCAl [MWJN -LM*t IS YOUR DOLLAR BUYING AS MUCH POWER & FLEXIBILITY AS TDL'S XITAN SYSTEMS PROVIDE? OUR CUSTOMERS SAY THINGS LIKE THIS ABOUT TDL PRODUCTS: "... the best CPU board I've put i(»jjt'tfH"f . . . exeellenl parts ... . IRC C ,Hiil)ri(ii;c, Mass. KMM Bella Vista, Ark. "... hif»h quality components, good engineering & complete WP Seattle, Wash. Col. L)WW Santa Maria, Calif. SK-L Boston, Mass. alpha 1 When we combined our highly praised /PU 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: $76!) ASSEMBLED & TESTED: $1039 XITAN * alpha 2 i ■:*'*■ ,rt By adding a ZI6 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 /apple 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: $t369 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. Circlu 1 1) on inquii s card. '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 dale. Shipping is usually made via UPS or UPS Blue Label. Specify other arrangements if you wish. Prepaid orders are shipped postpaid. RESEARCH PARK 8LDGH 1 101 STATE ROAD PRINCETON, NEW JERSEY 08540 (6091 9210321 What's New? A New 16 Bit Personal Computing System EBNEK Inc, 254 N Washington St, Wichita KS 67202, has recently an- nounced the new EBNEK 77 system. This system, available for $2770 in kit form or $3800 assembled and tested, features the 16 bit TMS9900 processor manufactured by Texas Instruments Inc. What EBNEK has done is to design a finished package around the TMS9900 with the following characteristics: • TMS9900 processor board. • 16 K bytes of programmable memory on two 8 K byte boards. • 8 K bytes of EROM socket capacity on one board, with 2 K bytes of operating system soft- ware supplied (ie: room for 6 K bytes of user defined EROM programs). • Video display board with tele- vision monitor. • IO interface board with keyboard interface, eight bits of parallel IO, serial data port with data rate generator, and cassette modem. • Cabinet and power supply motherboard. • Phi-Deck tape transport with firmware support. • 'ASCII keyboard and case. The design of the system is modular, with an addressing space limitation of 64 K bytes, and a design limit of 128 K bytes using memory bank switch- ing. (Power adequate for a full 128 K bytes is provided as a standard feature according to the company.) Cabinets for Electronic Systems CX-9 Series Standard cabinets for monitors, keyboards, and electronic systems. Steel and aluminum construction. Use cabinets individually or interlock to form complete systems. Call or write for complete catalog. V>lf») BACKER-LORING CORPORATION I A^AwJ 65 WALNUT STREET, PEABODY, MASS. 01960 • 617-531-3600 The video display provides 15 lines of either 32 .or 64 characters, generated with a 7 by 9 dot matrix. The display also has a point graphics mode allowing a 256 by 240 dot display driven from an 8 K byte segment of main memory. The display and processor are inter- leaved so that operation of the proc- essor does not break up the picture with visual hash, allowing programmed updates to occur while information is being displayed. This product looks like a significant one for the personal computing user who wants the ultimate in microproc- essor execution speed and performance. The TMS9900 architecture includes 16 general purpose work areas at arbitrary memory locations which use a short form of addressing. It has the unique characteristic of built-in multiply and divide operations which take (worst case without wait states, using 3 MHz clock) 17 and 41 us to evaluate 32 bit results of 16 bit operands. Individuals with real time computational applica- tions (as in voice recognition, scene analysis, electronic music generation) will find the 9900 architecture quite useful. In addition to the physical con- figuration, EBNEK's announcement of the EBNEK 77 describes availability of an assembler, editor, utilities and a user's software library." Circle 631 on inquiry card. Polyphonic Music Generator Board A new interface board designed for music generation called the SRS-320 has been announced by Stillman Re- search Systems, POB 14036, Phoenix AZ 85063, for $175. The board, which can serve as the basis for a computerized music synthesizing system, is Altair bus compatible and can generate up to four musical notes simultaneously over a four octave range. This is sufficient to generate most elementary chords and inversions. The SRS-320 is priced at $175, and a demonstration cassette of the board is available for $3, as well as a variety of other music generation electronics." Circle 632 on inquiry card. New Vector Catalog Available Vector Electronic Company Inc's 1977 catalog is now available, listing prices and descriptions of the entire Vector product line, including printed circuit cards, terminals and pins, bread- boarding kits, wiring pencils and so on. Of special interest to the computer experimenter is the company's new cord- less rechargeable wire wrap tool called Wrap and Strap. The catalog is avail- able free from Vector Electronic Com- pany Inc, 12460 Gladstone Av, Sylmar CA 91342, and no serious experimenter would want to be without it." Circle 633 on inquiry card. Circle 1 1 on inquiry card. 32 The POLY 88 Microcomputer System PolyMorphic Systems now offers the complete, assembled, personal computer system— the POLY 88 System 1 6. A full 1 6K system with high speed video display, alphanumeric keyboard, and cassette program storage. A BASIC soft- ware package providing the most advanced features avail- able in the personal computing market. Features like PLOT and TIME, which utilize our video graphics and real-time clock. Others like VERIFY, so that you know your tape is good before you load another. Or input type-ahead so you can tell your program to run while the tape is still loading (it stores up to 64 characters of commands or question re- sponses to be executed). All these plus a complete pack- age of scientific functions, formatting options, and string capabilities. With the POLY 88 System 1 6 you can amaze your timesharing friends the very first night! Polymorphic Systems 11 K BASIC — Size: 1 1 K bytes. Scientific Functions: Sine, cosine, log, exponential, square root, random number, x to the y power. Formatted Output • Multi-line Function Definition • String Manipulation and String Functions • Real-Time Clock • Point- Plotting on Video Display • Array dimensions limited by mem- ory • Cassette Save and Load of Named Programs • Multiple Statements per Line • Renumber • Memory Load and Store • 8080 Input and Output • If Then Else • Input type-ahead. Commands: RUN, LIST, SCR, CLEAR, REN, CONTINUE Statements: LET, IF, THEN, ELSE, FOR, NEXT, GOTO, ON, EXIT, STOP, END, REM, READ, DATA, RESTORE, INPUT, GOSUB, RE- TURN, PRINT, POKE, OUT. Built In Functions: FREE, ABS, SGN, INT, LEN, CHR$, VAL, STR$, ASC, SIN, COS, RND, LOG, TIME, WAIT, EXP, SORT, CALL, PEEK, INP, PLOT. Systems Available. The POLY 88 is available in either kit or as- sembled form. It is suggested that kits be attempted only be per- sons familiar with digital circuitry. System 2: is a kit consisting of the POLY 88 chassis, CPU, video circuit card, and cassette interface. Requires keyboard, TV moni- tor, and cassette recorder for operation. $735 System 16: consists of an assembled and tested System 2 with 1 6K of memory, keyboard, TV monitor, cassette recorder, 1 1 K BASIC and Assembler on cassette tapes. $2250. System 0: The circuit cards an S-1 00 mainframe owner needs to be compatible with the POLY 88 software library. System con- sists of the central processor card with monitor ROM, the video cir- cuit card, and cassette interface, all in kit form. $525. Prices and specifications are subject to change without notice. California residents add 6% sales tax. 460 Ward Drive Santa Barbara, Ca. 93111 (805) 967-2351 Technical Fopuro Peter G Formaniak David Leitch Mostek POB 169 Carrollton TX 75006 A Proposed Microprocessor Software Standard Many people are concerned about the need for standardization in the microproc- essor industry. One obvious source of standards is people who are seriously de- signing and supporting microprocessors. The following text was provided by Mostek to document one interchange standard intended for the Mostek version of the Z-80 processor. The text was written by Peter Formaniak and David Leitch and was distributed without copyright. The standard is intended to be an upwards compatible extension of the original Intel 8080 object code format, with provision for relocatable programs and linkage of separate assemblies. Object Output Definition Each record of an object module begins with a delimiter (colon or dollar sign) and ends with carriage return and line feed. A colon (:) is used for data records and end of file indicator for Intel compatibility. A dollar sign ($) is used for records containing relocation information and linking informa- tion. An Intel loader will ignore such infor- mation and allow loading of nonrelocatable, nonlinkable programs. All information is encoded in ASCII format. Each record is identified by a "type." The type appears in the eighth and ninth bytes of the record and can take five values. In the following text the record type begins each heading. • Type 00: Data Record Byte number 1 Colon $ LABW03212A Description delimiter. defines last reference to external symbol 'LAB' 2, 3 Number of (binary) bytes of data in this record. The maximum is 32 binary bytes (64 ASCI I bytes). 4, 5 Most significant byte of start address of data. 6, 7 Least significant byte of start address of data. 8,9 10 ASCII zeros. This is the "record type" for data. data bytes. Last 2 Checksum of all bytes except the bytes delimiter, carriage return, and line feed. The checksum is the negative of the binary sum of all bytes in the record. CRLF Carriage return, line feed. • Type 01 : End-of-file Record Byte number Description 1 Colon (:) delimiter. 2,3 ASCII zero. 4,5 Most significant byte of the transfer address of the program. This transfer address appears as an argument of the "END" statement of a program. This Intel standard may prove useful in higher level language programs. 6, 7 Least significant byte of the transfer address. 8,9 Record type 01 . CRLF Carriage return, line feed. • Type D2: Internal Symbol Object Data Byte number Description 1 Dollar sign ($) delimiter. 2, 7 Up to 6 ASCII characters of the internal symbol name. The name is left justified, blank filled. 8, 9 Record type 02. 10,13 Address of the internal symbol, most significant byte first. 14,15 Binary checksum. CRLF Carriage return, line feed. Continued on page 62 34 Fantastic Software This LIBRARY is a complete do it yourself kit. Knowledge of programming not required. EASY to read and USE Written in compatible BASIC immediately executable in ANY computer with at least 4K, NO other peripherals needed. VOLUME I |BASIC SOFTWARE LIBRARY This Library is the most comprehensive work of its kind to date. There are other software books on the market but they are dedicated to computer games. The intention of this work is to allow the average individual the capability to easily perform useful and productive tasks with a computer. All of the programs contained within this Library have been thoroughly tested and executed on several systems. Included with each program is a description of the program, a list of potential users, instructions for execution and possible limitations that may arise when running it on various systems. Listed in the limitation section is the amount of memory that is required to store and execute the program. Each program's source code is listed in full detail. These source code listings are not reduced in size but are shown full size for increased readability. Almost every program is self instructing and prompts the user with all required running data. Immediately following the source code listing for most of the programs is a sample executed run of the program. BASIC SOFTWARE 'wv,„, .LIBRARY : Sat,,. - VOLUME III ■■ IM- The entire Library is 1100 pages long, chocked full of program source code, instructions, conversions, memory requirements, examples and much more. ALL are written in compatible BASIC executable in 4K MITS, SPHERE, IMS, SWTPC, PDP, etc. BASIC compilers available for 8080 & 6800 under $10 elsewhere. This Library is destined to become one of the reference bibles for the small computer field, due to its versatility and uniqueness and the ease of operation of the programs it contains. These volumes are deductible as a business expense when purchased by a company. Send your remittance for prompt delivery, while supplies last. Volume discounts are available to qualified dealers. Bookkeeping Games Pictures S24.95 VOLUME II Math & Engineering Plotting & Stat Basic Statement Def. . . . S24.95 VOLUME III Advanced Business Billing Inventory Payroll S39.95 VOLUME IV General Purpose S9.95 VOLUME V Experimenter S9.95 WtQssz^ ■ *.«• ^^XJpww JwPiPst' VpLUMKllyl v ;m by a.w. llOWIf'™ 1 © FUTURE ADDITION TO THE "BASIC SOFTWARE LIBRARY" Volume VI (A Complete Business System S49.95) General Ledger System - Taxes, Pyrl, W-2's, Inventory. Depr., Financial Statements, etc. AVAILABLE MID SUMMER Available at most computer stores. Add S1.50 per volume for postage and handling. SCIENTIFIC RESEARCH 1712-B FARMINGTON COURT CROFTON MD 21114 Phone Orders call (800) 638 9194 Information and Maryland Residents Call (301) 721 1 148 This Circuit Multiplies Tom Hall 8500 Cameron Rd Austin TX 78753 Table 1: Power wiring for figures 1 and 2 Type 1-5 V GND IC1 74161 16 8 IC2 74199 24 12 IC3 74199 24 12 IC4 7483 5 12 IC5 7483 5 12 IC6 7476 5 13 IC7 7400 14 7 IC8 7404 14 7 We all know that algorithms for multipli- cation can be implemented perfectly well in software. But such programmed approaches to arithmetic operations can often prove quite slow. There are a number of possible approaches to gaining speed in operations involving multiplication. These may vary all the way from just tightening up the code to putting a full hardware floating point arith- metic unit into the processor. The latter is often expensive and difficult to build. One approach which is midway between these extremes is to implement the "inner loop" of a software algorithm as some special purpose hardware. An example of this tech- nique is this simple binary multiplier which takes two bytes of information and supplies a 2 byte product value, leaving all the other functions of a full arithmetic package to software. By speeding up the multiplication operation, the entire arithmetic software will run much faster whenever it involves multi- plication. How To Do Binary Multiplication To examine the operation of a shift and add algorithm for multiplication, let's look at the multiplication of two 4 bit bytes: 14 = multiplicand (Y) x10 = multiplier (X) 1110 x1010 0000 1110 0000 1110 10001100 = 140 = product (P) From inspection it can be seen that the result can be achieved in the same number of steps as there are bits in the byte of the multiplier, and that the answer requires as many bits as the number bits in the two bytes. In other words, two 4 bit bytes generate an 8 bit product, and the multipli- cation of two 8 bit bytes generates a 16 bit product. Now, by further inspection, it is possible to visualize the necessary imple- mentation of the algorithm with hardware. First, note that the answer requires eight bits. Let's start off then with an 8 bit register (P) set to all zeroes: °i ° ■ ° i° 0,0,0,0 register P Then we'll note that when the first bit to be operated within the multiplier is a zero, 1 I ■ the result is a zero; so no adding is necessary and we merely shift one place for the next operation. Now the bit to be operated with is a one, 10 10 and one times a number is that number; so we just add the multiplicand into the P register as follows: = register P 1 1 1 1 1 1 + 1110 0,0,0,1 1,1,0,0 new P value Then we shift over one and select the next bit to be operated on: 10 10 Since it is a zero, only a shift is necessary. Then we operate on the last bit of the multiplier: 1 Figure 1: Arithmetic logic of multiplier. The X and Y inputs are assumed to be stable throughout the multiplication. The P product output lines are stable after the multiplication is completed. The single bit provided by IC6b extends the product shift register by one bit. Control signals for the operation of the multiplication are ACLK and MST ART generated by the circuit in figure 2. 36 37 STATUS OUTPUTS <>- CONTROL INPUTS I DONE READY DONE 4 t> START 16 r 1 - ^ CLOCK PRESET C L J A R K IC6a 7476 2 A run LTL IC8 7404 7b "Vj 5 7400 y + 5V +5V A 4 MSB Ih O > 8 COUNT INPUT, -' BINARY LSB RIPPLE CLEAR D C B A CARRY LOAD ICI 74161 4 BIT COUNTER ENABLE ENABLE P T OD CLOCK TO FIGURE I COUNTER CLOCK START READY ACLK MSTART RIPPLE CA TIMING OF MULTIPLICATION 8 19 110 ill 112 !l3 >I4 115 lO r~~ t i l r ■» i — 1 1 1 -J 1 1 1 1 t_-J / \V\ START MUST TURN OFF BY THIS TIME *-\ 1 f LtUULtULtLJULi ©©©©©©©©© 1 1 3RY 1 — 1 TIME'S ARROW—*- P = X x Y Transition ID 1 2 3 4 5 6 7 8 9 = 25 x 150 Action LOAD X.CLEAR ADD Y SHIFT P SHIFT P ADD Y ADD Y SHIFT P SHIFTP SHIFT P Y = Pl5 STATE TABLE FOR 150 X 25 = 3750 P6 P5 P4 P3 P2 Pi Po sc 1 1 1 P = 3750 1 1 1 1 X = 1 1 1 Pl4 1 1 1 Pl3 1 1 1 Pl2 P11 1 1 1 1 PlO 1 1 1 1 1 P9 1 1 1 1 P8 1 1 1 1 P7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Figure 2: Control logic of multiplier. The control logic for the multiplier generates a series of nine clock pulses on ACLK. The first pulse coincides with the high state of the MSTA R T signal, and is used by the arithmetic logic to load the X operand into the low order part of the 1 7 bit output shift register while clearing the high order nine bits, PI 5 thru P7. On successive clock cycles, the arithmetic logic of figure 7 either shifts the product righ t one bit, or adds the Y operand with the resulting sum being loaded with a I bit right shift. The operation of a typical 8 bit multiplication is shown in the state table, with the circled numbers referring to clock transitions on the timing diagram. 38 0,0,0,1 1.1.0,0 1110 1,0,0,0 i.i.o.o This is a one; so we again add the multi- plicand into the P register into the position indicated by the shift: register P final product in P register Thus, the product is generated. How It Works The multiplication logic described for the 4 bit case is generalized to 8 bit operands with a 16 bit product in the circuit of figures 1 and 2. The multiplier logic of this design accepts two 8 bit bytes, X and Y, from which it generates the 16 bit product P. After the start signal, a mere ten clock periods suffice to generate the product value. Since TTL devices are utilized, it is possible to generate the result in less than one microsecond by using a fast enough clock. Practically speaking though, with the 1 MHz speed of the typical microprocessor clocks, a result in about ten microseconds will be quite acceptable, especially when comparison is made to the equivalent pure software approach. The multiplier unit provides optional ready and busy lines as status bits for the processor, and requires a free running clock plus a start signal from the processor. The ready and busy lines can be ignored entirely in most computers, by simply making sure that one or two instructions are executed, taking ten clock periods total between start of a multiply and reference to the product value. The Multiplication Cycle Let us assume that the unit is idle, waiting for an input. This idling situation is shown in the timing diagram of figure 2 at the left-hand side. At idle, the BUSY output will be low and the READY output will be high. To start the multiplication, a high level is placed on the START input after the X and Y bytes are set up and presented to the unit. At the low to high edge transition of the next clock pulse after the START line is raised, the READY and BUSY lines will change state as flip flop IC6a is clocked. Within eight clock times of these transitions, the START level should be brought low again to keep the unit from restarting the multiplication upon completion of opera- tion. These transitions raise the MSTART line to a high level, which causes the control counter IC1 to be loaded with the value 8 (binary 1 000 on the D,C,B,A inputs). At this A Memory Address Space Interface One good way to interface the multiplier is through the wiring of two addresses with appro- priate output latches and decoding logic. Each address has a possible input and output signifi- cance, corresponding to whether the processor is reading or writing data to the "memory" location which is the multiplier: Address Write Action Read Action n Load X operand latch Read P-i,- to Pp rt+1 Load Y operand latch Read P-, to Pq and start multiply. This method of interfacing avoids using IO instruc- tions, and can take advantage of the double byte load and store instructions of the 8080 or 6800. (In certain cases, such as array indexed address calculation, the 8080's double byte addition opera- tion can prove useful.) time, the X input byte is loaded into shift register IC2, and the high order product bits in shift register IC3 and flip flop IC6b are all cleared. All this action happens on the ACLK transition, labelled 1 in the timing diagram of figure 2. The shift and add multiplication algo- rithm occurs during the next 8 clock transi- tions, labelled 2 thru 9 in the timing diagram. At the low to high transition of these clocks the binary counter ICI is incremented, and a shift right occurs in the shift register IC2 which holds P0 to P6 of the final product and starts out with the value of X. If the shift carry output (SC) of IC2 is low, the transition will simply shift the high order portions of the product (IC6b and IC3) right by one bit, since binary has no effect on the sum. But if an X bit was 1, SC will be high, which sets up control lines so that Y is added to the previous value of the product P and loaded into P with a right shift 1 bit position. (This right shift is in the wiring of the adder as shown in figure 1, where, for example, the old bit P1 5 plus the high order bit Y7 of Y are added together to form bit PI 4 of the new P value, and the new PI 5 is taken from the carry out of the addition process.) The operation of the algorithm is shown in the state table of figure 2 for the example 25 x 150 = 3750. The multiplication operation is ter- minated when the binary counter reaches a count of 15, thus generating a ripple carry output which resets the flip flop IC6a to a READY state at the final high to low transition of the ACLOCK clock during a multiplication. If the external circuitry tests READY, this indicates end of the multiplica- tion and a valid product on the P output lines. Note that the binary counter performs one more increment to a zero count, then inhibits itself until the next START signal." 39 Announcing a Computer that thinks in BASIC for only 5 298. Ohio Scientif ic's new Model 500 computer has full mini-computer BASIC in ROM and a minimum of 4K RAM for user programs. BASIC is always there when the computer is turned on. Make your terminal intelligent! If your company or school has remote computer terminals, con- sider the Model 500-1. It fits in the communications line between the terminal and modem or system. When the 500-1 is off, the terminal talks to the modem. When it is on, the terminal talks to the Model 500. Use the Model 500 for short and medium sized programs in BASIC. Use its immediate mode as an ultra-powerful scientific calculator! Computers for Students Couple a Model 500 to a low cost purchased or leased terminal such as the popular ASR-33 teletype for student instruction. The Model 500's BASIC is a perfect instructional language for stu- dents. Since the computer's machine code is also accessible, the Model 500 can challenge the advanced student with other optional software such as our interactive Assembler/Editor. Personal Computing The Model 500 has eliminated all of the grief of the first genera- tion personal computers. This computer comes fully assembled, tested, and guaranteed. Most importantly, it is easy to use since the BASIC is always there. Flexibility and Expandability The Model 500 uses Ohio Scientific's standard 48 line bus so that it is fully compatible with our Model 400 kits and Challenger" 11 product lines. Any of thirteen accessory boards including RAM, PROM, parallel, serial, AID, D/A, cassette, and video graphics can be added as well as peripherals including floppy disks, line printers, color graphics, and more. The Model 500 is offered here in three forms to meet every application and pocket book. Specifications Model 500 Board $298.00 8" x 10" fully assembled board including 6502 microprocessor running at 1MHz, 512 bytes of PROM, 8192 bytes of ROM con- taining 8K BASIC and 4096 bytes of RAM for user programs. The board contains an ACIA based serial interface which is jumper selectable for RS-232C or 20ma loop at 110, 300, 1200, 2400, or 4800 baud. The 8K BASIC features: full floating point math including transcendental functions, N dimension arrays, multiple letter variables, full string functions, logical operators, PEEK, POKE, USR, and lots more! The Model 500 board requires +5 volts at 2 amps, -9 volts at 500ma, an external reset switch, and an ASCII serial terminal for operation. Model 500-1 $429.00 Fully enclosed 500 board with power supply, reset switch, and two 25 pin EIA standard terminal connectors for loop through operation. The 500-1 is 12" x 15" x 4". Model 500-8 $629.00 This unit is a 500 board in an eight slot Challenger" 11 case allow- ing seven slots for expansion. The unit has a heavy-duty UL recognized power supply and is 15" x 17" x 10". ORDER FORM Order directly from: Ohio Scientific; Hiram, Ohio 44234 This introductory offer expires August 31, 1977. Please allow up to 60 days for delivery. PRINT OR TYPE CLEARLY. Name Shipping Address City _State_ -Zip- Payment by: BAC(VISA)._ Credit Card Account # „ _ Money Order Expires . Interbank # (Master Charge) . . Model 500 Boards @ $298.00 . Model 500-1 Computer @ $429.00 . . Model 500-8 Computer @ $629.00 . . Additional 4K RAM Memories for 500-8 @ $149.00 4% Sales Tax (Applies to Ohio Residents only) TOTALCHARGEDOR ENCLOSED. All orders shipped insured UPS unless otherwise requested. Circle 12 on inquiry card. Hiram, Ohio 44234 Asfc BYTE S-100 BUS? Would you please show the pin description of the S-100 bus, or at least tell me where I can find it? David W Anderson 15500S 1300 W Bluffdale UT 84065 The S-100 bus, so called, is the name used by "everybody else" who manu- factures a MITS Altair compatible peripheral, processor or board. MITS Inc defined the bus by designing the Altair 8800, and during 1976 various manu- facturers who make Altair compatible peripherals and processors with Altair- like backplanes began calling it the "S-100" bus in advertisements. So for detailed information, purchase the docu- mentation of an Altair 8800, or one of the other central processors which copy this arrangement. Sooner or later, we expect to print an article detailing this information. ■ MULTIPLICATION ... In the April 1977 BYTE you published some information on the 8008. From looking at the instruction set published I don't see a multiplication instruction. Do any microprocessors have a hardware multiply instruction, or is it always in software? J oseph H Stockton Jr Rt 6, Caroline Dr Stockbridge GA 30281 The 8008 was the first microprocessor to be both widely marketed and of suf- ficient capability to make a decent general purpose computer. Since it came out, in the early years of this decade, designs have evolved considerably, but few designs to date (1977, first quarter) include hardware multiply and divide functions. The Digital Equipment Cor- poration's LSI- 11 has a PDP-11 instruc- tion set which does not include multiply or divide operations in its basic set, but which has an optional extended arith- metic option which provides 16 bit fixed point arithmetic operations and 32 bit floating point arithmetic operations. The Texas Instruments TMS-9900 processor has multiply and divide operations for 16 bit integer arithmetic built into its design. But the popularly used 8080, Z-80, 6800 and 6502 processors do not incorporate this feature and the user must do multiplication and division in software. ■ Put exceptional versatility and control into vour s-100 bus system with the t>lueboards\..and save money in the 8 8 8 8 8 8 8 8 bargain! II XB1 Extender Board Board Only $9.00 With Connector $13.50 : : : : : MT1 1 5 slot Mother Board Board Only $45.00 With Connectors $105.00 MB4 4K Static RAM (low power) Kit $129.95 Assembled $179.95 VB1A Video Board Kit $189.95 Assembled $264.95 MB6A SK Static RAM (low power) Kit $265.00 Assembled $325.00 SB1 Synthesizer Kit Kit $250.00 Assembled $325.00 MB3 2K/4K EPROM (1702A) Kit less PROM's $65.00 2K—$105.00/4K— $145.00 Assembled board available 16K I/02 Interface Board Kit $55.00 Assembled $79.95 ■ MB7 16K Static RAM (low power) " Kit S525.00 | Assembled $599.95 -I We're the blue boards! Compare the Cybercom blue boards with any others on the market today. You'll find exceptional quality plus prompt delivery and significant cost savings. All Cybercom kits are guaranteed 90 days for parts and labor. Contact your local computer hobbyist store or write for details. Solid State Music 2102A Walsh Avenue, Santa Clara, CA 95050 Telephone (408) 246-2707 Circle 13 on inquiry card. Condensed Reference Chart a NN b Mne. Mode Cond. Flags OPERATION Figure 1 ; This is the basic four line format that is used to describe each par- ticular opcode instruction. See text for a detailed description of the notation used. Robert J Borrmann Electrical Engineering Dept Manhattan College RiverdaleNY 10471 Here is a quick reference chart that de- scribes the opcodes for the Motorola 6800 microprocessor. This chart gives all of the hexadecimal codes, including the ones that are unimplemented. The codes are given in a four line format as shown in figure 1 . The first line has three values: a, b and NN. NN is the hexadecimal op code; a is the length, one, two or three bytes, of the instruction; b is the length of execution in machine cycles for each instruction. The third line contains the condition flags that are affected by the execution of the instruction. The notation used for the condition flags is summarized in table 2. If a flag is set to a specific value by the instruc- tion, the flag and value are shown on line 4. If the command is a branch instruction then this line contains the conditions under which A = Accumulator A. B = Accumulator B. # = Immediate. d = Direct. X = Indexed. e = Extended. r = Relative. = Inherent (no symbol) Table I : Summary of the addressing modes that are used in the chart. These modes are found in blue on the chart. the branch will occur in parentheses. The letter "u" represents an operand interpreted as an unsigned 8 bit binary number, "s" represents an operand interpreted as a signed two's complement number. The "u" and "s" conditions are correct only if the last flag affecting instruction executed before the branch is SBA, CBA, SUB or CMP. The fourth line contains a summary of the operations of the instruction in the AHPL language. AHPL stands for A Hard- ware Programming Language and is discussed by Hill and Peterson in Digital Systems: Hardware Organization and Design which is published by John Wiley and Sons Inc. The notation is taken from page 1 1 2 of that book. The upward and downward pointing arrows stand for various types of shifts. The upward pointing arrow is a circular shift left and the downward pointing arrow is a circular shift right. An arrow with a circle at its beginning denotes a shift with a zero moving into the vacated end. The arrow with the ditto mark (") is my own invention to denote a shift with the vacated end bit maintained. The ® symbol is used to denote the exclusive OR function. The left pointing arrow is the APL standard assignment symbol. If a condition flag is set to a particular value by the instruction, the value is indicated. Any condition flags that do not have a particular notation follow the ordi- nary rules. Primes on the flag condition, such as v in the LSR, ROR and ASR instruction, denote a special rule for setting or clearing that flag. A nonstandard notation concerns the pushing or pulling of the stack. Pulling from the stack is accompanied by an increase in the value of the stack pointer. The value is increased by 1 in the PULA and PULB instructions; by 2 in the RTS instruction; and by 7 in the RTI instruction. Similarly, pushing into the stack is accompanied by a decrease in the value of the stack pointer by the appropriate amount." CCR = xxhinzvc. h = Half carry. i = Interrupt mask. n = Negative. z = Zero. v = Overflow. c = Carry. x = Don't Care, always 1 Table 2: Summary of the condition flag codes that are used in the chart. Editor's Note . . . The Holes in Opcode Space Looking at this chart of the 6800 (or a similar chart for any processor) one sees numerous "holes" in operation code space. These holes are the yellow boxes. An interesting chal- lenge for the owner of a microprocessor (or any computer) is to try and figure out what happens when the forbidden op- codes are executed. Will these exotica turn out to have any uses? Or will they simply be another set of NOPs? For example, look at the strange group- ing of the operation codes 4X, 5X, 6X, 7X where X is any hexadecimal digit. 40, 50, 60, 70 are all negates, 43, 53, 63, 73 are all complements, and various arithmetic operations oc- cur for other values. But the operation codes 41, 51, 61 and 71 are nomi- nally undefined as are 4B, 5B, 6B, 7B and several others. Could it be that those are operation codes that weren't documented in the literature because the masks of the LSI chip had errors' 1 Could it be that they are supposedly unimplemented but are really just not documented so that a "next genera- tion" processor can be achieved by simply releas- ing the paperwork and sell- ing "new" chips? It's an area of personal research which could prove quite useful: Whenever you find a new processor, examine it for missing opcodes and see what wasn 't docu- mented — then try to fig- ure it out by writing pro- grams which execute "un- implemented" instructions under carefully controlled conditions. 42 for the 6800 00 '10' ' 20" '30" '40' '50' '60' 3 70" ' 80' '90 3 ' AO" ' B0' ' CO' ' DO 3 ' EO" 3 F0' SBA BRAr TSX NEG A B X e SUB A= Ad AX An B= Bd BX Be nzvc nzvc nzvc A- ■ A-B PC-PC+r+2 IX-SP^l OP- ~OP ACC-ACC-OP '01' '11' 21 '31" 41 51 61 71 '81' 2 91 3 'A1 5 3 B1" L 'C1' 'D1 3 'El" 'F1" NOP CBA nzvc nz*e f(A-6) INS SP- SPi 1 CMP A# Ad AX Ae B- nzvc nzvc-flACC-OP) Bd BX Be 02 12 ' 22'' '32" 42 52 62 72 ' 82' '92' 'A2 S 3 B2" 'C2' ' D2 1 ' E2" 3 F2" BHI i PULA SBC A-: Ail AX Ae B= Bd BX Be (U1>U2) A- TOS nzvc ACC- ACC-OP-c 03 13 ' 23' BLSi (UKU2I '33' PULB B- TOS '43' '53' '63' COM A B X nzvc OP- -OP v Op I 3 73° 83 93 A3 B3 C3 D3 E3 F3 04 14 ' 24' '34' '44' '54' '64' 3 74 r. '84' '94' ' A4 b ' B4' ' C4' • D4 3 ' E4" : 'F4" BCCi DES LSR A B X e AND A= Ad AX Ae B-" Bd BX Be (c=0) nzvc nzv SP- SP-1 (OP,c)-$(OP,c) n- ACC-ACC NOP. v-0 05 15 '25" '35' 45 55 65 75 '85' 2 95 3 'A5 ! ' 'B5' 'C5' ' D5 3 ' E5" 3 F5' BCS. TXS BIT A = Ad AX Ai- B= Bd BX Be (c=1) SP- IX— 1 nzv nz-t(ACCAOP), v-0 '06' '16' '26' '36" '46' '56' '66' 5 76" '86' '96 3 'A6 ! ' : 'B6' 'C6' ' D6 3 ' E6" •F6' TAP TAB BNEr PSHA ROR A B X e LDA A = Ad AX Ac B= Bd BX Be ihnzvc nzv (2-0) nzvc nzv CCR- A B- A. v-0 TOS- A (OP.cl-MOP.cl ACC- OP v-0 '07' '17' '27" '37' '47' '57' '67' 3 7?B 87 '97' J A7 t :. B7 s C7 'D7' : 'E7" i F7 s TPA TBA nzv BEQr U-1] PSHB ASR A B X nzvc e STA Ad AX Ae nzv STABd BX nzv Be A- CCR A- B, v-0 TOS- B (OP.c|-HOP,cl OP ACC, v- OP- ACC. v-0 '08' 18 '28" 38 '48- '58' '68' 3 78" ' 88' ' 98 ' A8'' 'B8' 'C8' ■ D8 3 E8" 'F8' INX BVC. ASLA B X a EOR A ---- Ac AX Ae B= Bd BX Be z (v=0) nzvc nzv IX- IX+1 (c.OPI-J ( c - op l ACC-ACC-i-OP, v-0 '09* '19' ' 29' '39' J '49' '59' '69' 3 79' '89' ' 99' ' A9° ' B9' ' C9' •' D9 3 ' E9" ' F9' DEX DAA BVSr RTS ROL A B X e ADC A= Ad AX Ae B= Bd BX Be Z nzvc tv-1) nzvc hnzvc IX- IX 1 A. CCR- -| ) PC- DTOS (c.OP)-t(c.OP) ACC-ACC+OP+c '0A' 1A ' 2A' 3A '4A' '5A' '6A' J 7A e '8A' ' 9A J ' AA" ' BA' ' CA' 'DA' 'EA" 3 FA' CLV BPL , DEC A B X e ORA A== Ad AX Ae B= Bd BX Be V (n=0) nzv nzv v-0 OP-OP- 1 ACC-ACCVOP, v-0 'OB' '1B' '2B' '3B'" 4B 5B 6B 7B '8B' '9B' 'AB S 3 BB' 'CB' DB" : 'EB" 3 FB" SEV ABA BMI r RTI ADD A= Ad AX Ae B = Bd BX Be V »> 1 hnzvc A<-A+B (n-1) ihnzvc Rtl- 7S'K hnzvc ACC-ACC+OP 'OC 1C 1 2C' 3C '4C '5C' '6C 3 7C" J 8C 3 ' 9C" 'AC 3 BC 5 CC DC EC FC CLC BGEr INCA B X e CPXS d X B c (S1>S2) nzv nzv c-0 OP-OP < 1 nzv-fllX- -DOP| 'OD' 1D '2D' 3D '4D' '5D' '6D' 3 7D" '8D« 9D 'AD" ' BD'' CD DD ED FD SEC BLTr TST A B X e BSRr JSRX e c (S1S2) WAI JMP X e LDS = d nzv X e LDX = d X nzv e i-0 7Stk- Rg np SP- DOP v-0 IX-DOP, v-0 'OF' 1F '2F' '3F" '4F' '5F' '6F' i 7F e 8F '9F' J 'AF' >BF" CF 'DF" 'EF' J FF" SEI BLEr (SKS2) SWI i-1 CLRA B X nzvc e STSd X e nzv STXd X znv e M 7Stk-Rg OP— 0,n— O.z— 1,v-0,c -0 DC P-SP, v-0 DOP-^IX,v-i J 43 A Train Control Display Using the LSI-11 Microcomputer Jack Hart Digital Components Group Engineering Ed Badger System Diagnostic Engineering Digital Equipment Corporation Marlborough MA 01752 Figure 1: Model railroad track layout used in au- thors' system. During a typical demonstration, both trains leave their sidings under control of a Digital Equipment Corpo- ration LSI-11 microcom- puter and are routed along the tracks according to a control program in the computer. Feedback sen- sors are used to verify train locations at strategic times. In order to demonstrate the application of a microcomputer to real world situations, a model train system was developed which is controlled by a Digital Equipment Corpora- tion LSI-11 microcomputer. Two model trains were used for the demonstration — one adhered to a fixed schedule while the other was directed along a path to make it avoid the first train. HO model railroad components were used. (HO is currently the most popular size for model trains and accessories among enthusiasts in the United States; the scale is 1/64th of actual size, but this can vary.) The layout includes some 75 feet of track and 18 switches plus detectors to determine train locations and a programmable power S4 supply to control train speed and direction. Control interfaces are used between the computer and the track for power. In addi- tion, switches are used to control train position and both station indicators and billboards check train positions and provide atmosphere. A 60 Hz clock is used for a time base, and peripheral devices are used for data entry, status reporting and transferring com- mands to the train system. As in many other such systems, the hard- ware and software elements of this system can be analyzed separately, but it is impor- tant to keep the interrelations between the two in mind. Thus, when a detector informs the computer that a train is in a certain loca- tion, the control program must update the STATION #3 STATION*- 2 STATION* 1 S18 SI SU TRACK LAYOUT INDICATING 18 SWITCHES, 4 STATIONS AND 2 SIDINGS STATION -#4 44 system's files so that the new location can be related to the location of the other train. Take the A Train The operation of this electric train system is straightforward (see figures 1 and 2). Upon startup, the trains are moved forward until they trip the location sensors in their respective sidings. These location sensors are actually reed switches which will close in the presence of a magnetic field. Each train is MICROPROCESSOR a PERIPHERALS VT52 TERMINAL <^> ^A SERIAL A A. LINE f y UNIT V y SERIAL A- LINE ' UNIT V- 7T provided with a magnet for this purpose (the next section describes these switches in greater detail). After both siding sensors have been tripped, the trains (called A and B for convenience) are individually brought clear of the siding area. The lead train A is switched to a station and train B is diverted to the outer track. The software used to control the trains and keep them separated is then employed throughout the remainder of the LSI-11 demonstration. INTERFACE c RT02 TERMINAL <^> LSI - M MICRO- COMPUTER OUTPUTS* INPUTS < RELAY DRIVER TRACK POWER BILLBOARDS AND STATION SIGNS SIGNAL CONDITIONERS TRACK AREA - RELAY 2 I ll FROM PLUI < T + 8V O <*. then creating the proper track energization sequence to control the trains. There is one problem in using PLU I 's output to energize the tracks: its TTL output power is too low to drive the HO trains being used. This problem can be solved by the use of relays (see figure 5). Relaying Information Two types of relays are employed. For those sections of track which are simply to be turned on or off, a single pole relay is sufficient. When power is required, the appropriate output word is transferred to 1 ^ o TO RAILS PLU 1, which causes the desired relay to be energized. This in turn applies power to the track. When power is no longer required, PLU I is updated with a new word and the relay is de-energized. Some tracks, however, have reversing capabilities which require not only power but also one of two polarities for track voltage. Figure 5 shows how two relays are used to do this: relay 1 chooses the polarity of the track based on a command from PLU 1, while relay 2 applies power to the track, again on a command from PLU 1. Each time a command isgiven, a single 16 bit word is written into the output data buffer INSULATING TIES 3V I RIGHT LEG SOLENOID O TO PLU2 Figure 6: A typical fork (or "turnout") In the track. In this illustration, the turnout is positioned to divert the train to the left leg. These solenoid controlled mechanisms act as their own sensors. One leg of the switch is either grounded or ungrounded depending on its position. This is used to provide a logical or 7 output to the computer for confirmation of the switch's posi- tion. The solenoid is illustrated in figure 7. 48 PLU 1. Each section of the track has been assigned a specific bit and only those bits of the word necessary to alter the status of the track section in question will change. A Successful Turnout Another aspect of control is the "turn- out" switch (see figure 6). Turnout is a railroading term for a fork in the track which divides it into two branches. This term is used to avoid confusion with the electrical switches. The turnout settings will obviously have to change as a function of the two trains' positions and the pro- grammed routes. The current status of a turnout must be determined by the com- puter before a train can pass through. A de- railment will occur, for example, if the train proceeds from either leg of a turnout against the current setting. The turnout mechanisms in this system have been modified to act as their own sensors. One of the two moving legs of the turnout is electrically isolated in SWITCH LEFT SWITCH RIGHT o_ O- \y c^- 3 - ^37 AC :ommon TO SLIDE OF SWITCH TRACK SOLENOID CONTROLLED SWITCH TRACK one position and grounded in the other. It is connected to a +5 VDC level (TTL) through a pullup resistor so that its output, which goes to parallel line unit number 2 (PLU 2), is either high or low depending on the switch's position. A software routine controls the turnout mechanisms by indexing the track table in memory to determine which track switches must be thrown to get both trains to their next checkpoints. It then moves the turn- outs to the required position, waits until the mechanical motion of the switches is com- Figure 7: A turnout solenoid. This type of solenoid can be activated in either direction because of its center tapped coil. Application of voltage to the desired side of the coil determines the direction of throw. DATA INPUT FROM PLU2 NEW DATA HEADY }^> I SECOND _TL + 5VDC > Ol ITO TURNOUT SWITCH TO TURNOUT SWITCH Figure 8: Coil activation circuitry. The coils used to energize the track solenoids cannot be energized 100% of the time (a 100% duty cycle) without burning up. This circuit uses flip flops and delay elements to provide a one second pulse to a relay where it is converted to 17 VAC, sufficient to activate the solenoid. This illustration, like the rest in this article, is intended to illustrate a concept rather than to serve as a basis for actual construction. 49 pleted, and checks the new switch position. Each track switch is moved by a solenoid as shown in figure 7. This type of solenoid can be activated in either direction because of its center tapped coil: application of voltage to the desired side of the coil determines the direction of throw. Mortal Coils Activating each solenoid requires a fairly elaborate arrangement, since PLU 2 has only 16 bits in its output word, while 32 control signals are actually required for all left and right solenoid positions. Further, the sole- noids cannot merely use a level converter to increase the output control signal of PLU 2: such solenoids cannot be constantly ener- gized at the required level without burning up. Figure 8 shows a circuit which converts the incoming signal to a level of 17 VAC used to energize the solenoid. The initial signal is sent to IC1, a hardware latch with both inverting and noninveerting outputs. This latch is used to buffer the incoming data. A 75 ns delay is used between the inverted output of the latch and the clock of flip flop IC2 to allow the data level to settle to its correct value before being clocked in. A logical 1 signal from PLU 2 will cause IC2 to go high and activate the coil. Another delay circuit from the inverted output of IC2 feeds back to the clear line and turns the relay coil off after one second. All of this causes the turnout switch to move to its right hand position. Shifting the switch to the left involves the same type of procedure. To insure the correct initial conditions, a software routine in the LSI - 1 1 places all turnout switches in the left hand position following startup. Off the Beaten Track An emergency (eg: a train derailment) will occasionally occur which requires an immediate halt to all operations. A provision on the RT02 data terminal keyboard permits "panic stops" in such circumstances. To bring a more normal, orderly halt to the system, an appropriate command is entered into the data terminal: this sends train A to station 1 and train B to station 4. When train A reaches its station, power is reversed on the tracks so that it will back into siding 1. Train B is similarly backed into siding 2, which signals the end of a very tractable system demonstration!" Let's talk about a Real Bargain It's the Typewriter/Terminal from AJ We have hundreds of ready-for-lease, or ready-for-sale terminals that have been refurbished and repriced to make them a truly outstanding bargain. Use it as a typewriter! Our AJ 841 features the heavy duty Selectric IBM mechanism to give you fast, dependable operation day after day. Use it in the office. Use it at home. At our price, it's an economical typewriter. Use it as a terminal! The 841 incorporates our own SELECTRONIC mechanism that turns it into one of the most useful and reliable computer terminals on the market. Thousands are in operation today. Your choice of EBCD or Correspondence Codes, with APL as an option. It will interface with almost any IBM computer. If you can use an efficient, low cost computer terminal, here's your chance to get one for about the price of a good typewriter alone. If you're interested, call AJ Marketing at 408 -263-8520, Extension 280, or write for more details. w ANDERSON 521 Charcot Avenue • San Jose, CA 95131 ■ (408) 263-8520 EASTERN REGION/Hackensack, N.J. (201) 488-2525 ■ CENTRAL REGION/Northbrook (Chicago), III. (312) 498-4220 Circle 14 on inquiry card. 50 wmm* Deal yourself in Atlantic City, N.J. August 27th-28th What its alt about! Software Development Micro Computers Hardware Development Disc Memories Computer Comparisons Interfacing Program Implementation AMSAT Computerized Music Video Terminals Kit Construction Printers Computer Games Digital Tapes • Seminars and Technical talks by leading electronic equipment manufacturers • Major Exhibits from all over the country • Demonstrations in many areas including Home and Personal Computing • Door Prizes, Free Literature and Free Mementos • All this plus Sun and Surf - Fun and Excitement - Relaxation and Leisure SPECIAL GROUP RATES FOR CLUBS AND PPrSOriell ORGANIZATIONS TRAVELING FROM THE WEST COAST AND MID-AMERICA. U "" M -' Seven Seas Travel Dawn Corrigan 17220 S. Norwalk Blvd. (213) 924-8383 Cerritos. CA. 90701 ^ Computing Write for FREE TRIP-KIT to PERSONAL COMPUTING 77, Rt 1, Box 242, Mays Landing, New Jersey 08330 ft Consumer Trade Fair EXHIBITION BOOTHS STILL AVAILABLE - CALL (609) 653-1188 gfc^fc^ MMtarifetfM ktfl Ml mm ******** Mi MMI The TV Oscilloscope Or, Some Notes on Building a Display Photo 1 ' : A "typical" dis- play. This shows the com- pleted display in opera- tion. The large block letters are reverse video spaces. The use of blank- ing prevents generation of any signals at the top or bottom of the screen and keeps the visible portion of the display within the linear region of the TV set. Kenneth Barbier POB 1042 Socorro IMM 87801 Although conceived and designed in- dependently, the display circuitry in my CRT terminal is virtually identical to that of CW Gantt in his article "Build a Television Display" on page 16 of June 1976 BYTE. The major difference is that I did not use the MM5320 sync generator, and my display is therefore not interlaced and its horizontal sweep is not exactly at the usual TV horizontal rate. My display, shown in operation in photo 1, consists of 24 lines of 64 characters, with a frame consisting of 270 raster lines repeated 60 times per second. With this formulation I have a time allotment for 27 character lines with ten raster scan lines per character. The extra three character line positions represent overhead for vertical sync. In a TV set the interlacing is produced not by the hardware within the set, but by the nature of the incoming sync signal. By using a decode of what would have been character line 26 (raster lines 251 thru 260) as the vertical sync, and a decode of character column 72 as the horizontal sync, the generator produces a horizontal sync frequency of 16,200 Hz. The TV set is happy with these small deviations from its usual sync diet, requiring no readjustment when used for its original purpose. Another difference between the two approaches is in the size of the display. I wanted no fewer than 64 characters per line in order to be compatible with existing software written for a Teletype terminal. And to be consistent with more characters per line, using more lines per frame preserves the character's aspect ratio: the ratio of its height to width. With 64 character spaces each seven dots wide, plus sync and retrace time allowances of about 20%, I found my dot rate would be DOT COUNT ■^7 1 .5 to 4 volts< Address Select: 8 ea. Spst. Dip Switch. Wait States: None Current Reg.: Less than 200 ma per 1 K All Address, Control, and Data out lines fully buffered. All IC's supplied with IC Sockets Solder Masked on Both Front and Back of P.C. Board . Kit Price: . . $295.00 Assembled Price: . .$395.00 OTHER SEALS ELECTRONIC PARTS AVAILABLE Item No. Description 8KSC 8K Static Memory Card 500 nsec WWC Wire Wrap Card 88 EXT 88 Extender Card 68 Ext S Extender Card (Small) Bwt«i680apwnR»t.w < 68 Ext-L Extender Card (Large) 68 WWC Wire Wrap Card swrpcoBtxicoiinutitimptotWcii BBUC Battery Back-Up Card Kit Price Assembled Price $269.00 $ 37.50 $ 29.00 $ 19.00 $ 29.00 $ 35.00 $ 55.00 $369.00 $ 47.50 $ 38.00 S 25.00 $ 39.00 $ 45.00 $68.00 ORDER DELIVERY: FROM STOCK TO 10 DAYS niSEni-SiiV ELECTRONICSJNC. TELEPHONE # 615/693-8655 Circle 15 on inquiry card. Photo 6: A map of the preferred states of one memory chip. By tapping into just one of the memory data lines with the display probe, it is possible to generate a map of the data. This data is identical to that of photo 5, but we are now looking directly at one bit, instead of generating characters from 8 bit byte groupings of several chips. This same technique of looking at one bit can be done with normal programmed dis- plays, too, rather than the turn on pattern used here. the system that scan the dots making up the characters and the scanning of the memory addresses. When all is well to this point, we could connect the programmable memory address lines to the data inputs of the character generator and display one of each character, as Gantt did on page 17 of June 1976 BYTE. The next step is the connection of the display memory to the address lines, with the display memory data going into the character generator. Turning on the system with the probe on the character generator output, we find that the memory contents will initially be an arbitrary pattern, producing a screen full of garbage as in photo 5. Note how the horizontal "pulling" at the top of the screen distorts the characters in the top line. As this is actually line 26, it is not used in the display, and will disappear after the "blank" signal is connected as in figure 2b. The arbitrary pattern is not totally so, since a virtually identical pattern will appear with each turn on. This is due to built-in asymmetries in the memory chips, with each bit having a preferred state to come up in when power is initially applied. We can connect our clip lead to one bit of the memory data as in photo 6 and see that each memory chip in the 2 K by 8 bit array has a unique pattern visible in these preferred states. In photo 6, notice the obvious division in the pattern about two thirds of the way down the display. This corresponds to the division between the lower 1 K (lines thru 15) and the upper 1 K (lines 16 thru 23) of memory, which use different chips. After we connect the processor to the input side of the memory, we can use this same TV oscilloscope connection to examine the setting and resetting of each bit at each address under program control. Setting the memory to all zeros, each bit we turn on will appear as one black block in the display. The TV oscilloscope can thus be used to insure that the processor and display address Photo 7: Physical layout of the equipment. The author's display is shown here as it was built on prototyping cards with a bus wired backplane be- tween connectors. The clip lead is shown here at- tached to memory address bit 7, as used to generate photo 3. The computer and keyboard are in the foreground. i ^ ]> ..-A ,5 3 « 2&Stf r i£4_JB i 8 m$Mi I wife 7 56 correspond correctly, and that data is written correctly. (Of course, we could just as well have put some message on the display, too.) Photo 7 shows the hardware in my system. The clip lead can be seen connected to the display memory address line out of the timing board which was used to produce the display in photo 3. Since all of the dot signals, scan line signals, memory addresses, and the memory read and write data buses all appear on the backplane wiring of the system, virtually everything in the system is accessible to the TV oscilloscope test instrument. For even more versatility in the TV oscilloscope, it might be useful to add an AND gate and another clip lead, so that the exact timing relationships between two signals could be determined. Alternately, one of the signals could be added into the video at a different level to produce a gray image so that the two signals could be differentiated. [For looking at programmed behavior, the same technique can still be used if the vertical or horizontal sync signal is used as a timing cue. Much more could obviously be written on this subject as readers adapt Ken's idea to personal use . , . CH/" BYTE's Bugs A Structure Glitch RESOLVE FORWARD REFERENCE DUMP SYMBOL TABLE I I Jack Emmerichs called upon his receipt of April 1977 BYTE and re- ported a couple of errors in the execu- tion of figure 3 on page 66. (As Murphy's law would have it, figure 3 was moved to the first part of the article at the last moment at lack's request, and he did not get to see author proofs for that one figure.) The major glitch is corrected by noting the above segment of the dia- gram in its proper form. Two minor errors are an extraneous "level 3" at the lower left of the diagram, and an extraneous "Compare Strings" box in the "General Service Routines" shown at the lower right of the diagram." COMPLETE FLOPPY DISK SYSTEM FOR YOUR ALTAIR/IMSAI $699 That's right, complete. The North Star MICRO-DISK SYSTEM™ uses the Shugart minifloppy™ disk drive. The controller is an S-100 com- patible PC board with on-board PROM for bootstrap load. It can control up to three drives, either with or without interrupts. No DMA is required. No system is complete without software: we provide the PROM bootstrap, a file-oriented disk operating system (2k bytes), and our powerful extended BASIC with sequential and random disk file accessing (10k bytes). Each 5" diameter diskette has 90k data byte capacity. BASIC loads in less than 2 seconds. The drive itself can be mounted inside your computer, and use your existing power supply (.9 amp at 5V and 1.6 amp at 12V max). Or, if you prefer, we offer a power supply ($39) and enclosure ($39). Sound unbelievable? See the North Star MICRO-DISK SYSTEM at your local computer store. For a high-performance BASIC computing system, all you need is an 8080 or Z80 computer, 16k of memory, a terminal, and the North Star MICRO-DISK SYSTEM. For additional performance, obtain up to a factor of ten increase in BASIC execution speed by also ordering the North Star hardware Floating Point Board (FPB-A) . Use of the FPB-A also saves about 1 k of memory by eliminating software arithmetic routines. Included: North Star controller kit (highest quality PC board and components, sockets for all IC's, and power regula- tion for one drive), SA-400 drive (assembled and tested), cabling and connectors, 2 diskettes (one containing file DOS and BASIC), complete hardware and software documentation, and U.S. shipping. MICRO-DISK SYSTEM ... $699 To place order, send (ASSEMBLED) $799 check, money order or ADDITIONAL DRIVES. . . $425 ea. ^ or MC card* with exp. ._^- Tr .„ Z. __ date and signature. Uncer- DISKETTES $4.50 ea. tifted checks require 6 FPB-A $359 weeks processing. Calif. (ASSEMBLED) $499 residents add sales tax. NORTH STAR COMPUTERS, lf\lC. 2465 Fourth Street » Berkeley, CA 94710 ' 57 Circle 16 on inquiry card. Continued from page 6 SERIAL ELECTRONIC INTERFACE BUBBLE TO ELECTRONIC INTERFACE "^ c MAJOR LOOP WITH PARALLEL TRANSFER TO MINOR \\ LOOPS AND BACK &1k-k-k&Akk---kkA-A-kA-A-& 64I BIT POSITIONS / IN EACH MINOR LOOP v_y w \-S W v_y \^y W ELECTRONIC TRANSFER CONTROL INTERFACE (MAJOR TO MINOR, MINOR TO MAJOR, OR CIRCULATE ) W W I44 MINOR LOOP SHIFT REGISTERS Write Operations: 1. Serially load major loop 2. Align minor loops to desired record 3. Transfer major loop to minor loops' top bit position Read Operations: 1 . Align minor loops to desired record 2. Transfer minor loop's top bit position to major loop 3. Serially unload major loop and use data Figure I: Conceptual dia- gram of a magnetic bubble film memory. This dia- gram is concocted from a general knowledge of the way bubble memories work, with captions based en the figures given by Texas Instruments' press release on the TBM0I03 memory part. The mem- ories to be used must also have support hard- ware (or software) to sequence the various steps needed to randomly or serially access desired 144 bit blocks stored in the chip's minor loop shift registers. consists of serially loading the 144 bits into the major loop, then transferring all 144 bits into the minor loops; reading is done in reverse order by copying the currently posi- tioned bits of all 144 minor loops into the major loop then serially reading the major loop. The result is a nonvolatile file storage device which has 641 blocks of 18 bytes per block, a total of 11,538 bytes in one 14 pin dual in line package measuring 1.0 by 1 .1 by 0.4 inches (2.5 by 2.8 by 1 .0 cm). Using a volume parameter for memory density, this elephant of a memory stores 200,000 bits per cubic inch (13,000 bits per cubic centimeter) in a nonvolatile magnetic medium. With this short introduction to the existence of a new low cost, high density memory system, what are the ramifications of such a part for the personal computing user? I'll confine my comments to two major classes of application for the memory, applications which take advantage of its nonvolatility, low cost of. 22 cents per bit in sample quantities, and the large size of each part's memory. The first class of applications for the bubble memory is as nonvolatile file storage in minimum size personal com- puting systems analogous to pocket calcula- tors; the second class of application is as on line file storage for larger general purpose desk top or console personal computers. Superficially, the difference between the two classes of application is in the number of these bubble memory parts used with the product. What Can You Do with J ust One? Consider first the pocket programmable calculator. At the April 6 1977 meeting of the New England Computer Society, Bev Pettit of the Hewlett-Packard calculator sales office in Lexington MA gave an excel- lent presentation of the functional capa- bilities of the new HP-67 and HP-97 calcula- tors, two products which represent the ultimate in pocket calculator performance to date. These machines can be used to perform fairly sophisticated problems, with overlay structures for data and program material swapped using the magnetic card medium incorporated in the design. But, the machines are limited by the fact that there is a finite set of data registers (26, if I recall correctly) and 224 programming steps. What would be the impact of adding a bulk pro- gram storage facility implemented with the Tl bubble memories or equivalent? Viewed only as a calculator, with 8 bit command codes for each function, just one such bub- 58 ble memory chip would lead to a device which could permanently store interpretive calculator programs with an aggregate total of 1 1 ,538 program steps, or an improvement of program capacity nearly two decimal orders of magnitude. Or viewed as data memory, the same single chip could ac- comodate over 1400 floating point numbers in an 8 byte representation. (I have no information on the details of the HP-67's internal representation, but assuming thirteen 4 bit BCD mantissa digits, two BCD exponent digits, and one 4 bit field for signs, an 8 byte floating point representa- tion is a fair estimate for the typical calcula- tor's characteristics.) But simply to generalize the calculator's programming techniques to a much larger program and data storage field is not the ideal situation. For example, the HP-67 and HP-97 systems use an interpretive "label" operation code to identify places within a program. When the label is referenced by a "go to" command or "call subroutine" command, the internal opera- tion is to search linearly through the pro- gram memory field looking for a label operation code followed by the correct identification. This works quite acceptably in a calculator with a 224 step capacity, but would produce unacceptably long delays in a memory field of the size represented by just one of these new bubble memory chips. As the new capacity gets incorporated into the small personal computers called programmable calculators, we can expect to see the beginnings of more sophisticated calculator operating systems and interpreters with features needed to take advantage of such memory. The lowly hand held calculator will start having the data management fea- tures of the magnetic disk based minicom- puter, but miniaturized to numeric symbols and smaller total capacity. Perhaps we might even see a limited (ie: somewhat inconvenient for touch typists like myself) alphanumeric data storage mode for program names and variable symbols in the next generation of calculators, reminiscent of the "Minisec" of Arthur C Clarke's Imperial Earth which I summarized in my April 1977 editorial. What Can You Do with Just "N"? In a more expensive console or tabletop personal computing system, the same charac- teristics of nonvolatile electronically con- trolled bulk storage which expand the cal- culator concept can be applied to the general purpose computer system concept. Basically, the bubble memory makes possible a very large totally electronic on line buffer storage memory, at a price compatible with personal computing economics. Since the memory is Articles Policy BYTE is continually seek- ing quality manuscripts writ- ten by individuals who are applying personal systems, or who have knowledge which wiU prove useful to our readers. Manuscripts should have double spaced type- written texts with wide mar- gins. Numbering sequences should be maintained sepa- rately for figures, tables, photos and listings. Figures and tables 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 photog- raphy, items to be photo- graphed can be shipped to us in many cases). Computer listings should be supplied using the darkest ribbons pos- sible on new (not recycled) blank white computer forms or bond paper. Where possible, we would like authors to sup- ply a short statement about their background and experi- ence. Articles which are accepted are typically acknowledged with a binder check 4 to 8 weeks after receipt. Honorar- iums for articles are based upon the technical quality and suitability for BYTE's reader- ship and are typically $25 to $50 per typeset magazine page. We recommend that authors record their name and address information redun- dantly on materials submitted, and that a return envelope with postage be supplied in the event the article is not accepted." 59 Microcomputer Quay 80AI does much more with the Z-80, 0U3H This dynamite new microcomputer system in a kit moves data like nothing else on the market. Run it alone or plug it into an S100 bus Altair/IMSAI. For solo performance, all you need is •an unregulated power supply and an I/O device, Plugged in, Quay 80AI is a CPU, ROM, SIO, and RAAA board— run any 5100 compatible device. BUT MORE THAN THAT. Quay 80AI's Z-80 CPU opens challenging new areas of personal computing. Features D S100 bus compatible. Plugs in one slorof your Altair or IMSAI. D Z-80 w/2.5 MHz clock. D 1 K static RAM. D 512 byte (ROM) monitor. Comes up running. Inspect, alter, dump, and load memory; set breakpoint jump to user program. Handles serial I/O or keyboard input, including setting baud rate. D 4 UVEPROM (2708) sockets. □ Serial I/O. P5-232 and 20 ma interface. D Parallel keyboard input. AccepR stan- dard ASCII keyboard. D UVEPROM programmer. Program 2708 type UVEPROMs. O 2 phase clock and sync. Run 5 100 com- patible peripherals. □ 1 58 instructions. All 78 3080 instructions plus 80 new powerful instructions. □ On board voltage regulators. Quay 80AI in a kit is $450; factory as- sembled, $600. Send for complete details. Or for fast action call 201- 681-8700. Mastercharge ond BankAmericard accepted. COD with 1/3 deposit. NJ. residents odd 5% soles tox. Wee does not include shipping ond handling. Dealer inquiries invited. CORPORATION P.O. Box 386, Freehold, NJ. 07728 Phone: 201-681-8700 Circle 17 on inquiry card. otoit it! Given a choice for your home computer investment, you'd want city. With an appropriate operating system and high level language built into the read only memories, the symbolically named files in this bubble memory region can be rolled in or out of the 1 6 K volatile program- mable memory region as desired. Using the audio tape interface at the end of a program- ming session, the file memory could be checkpointed automatically onto tape while the user attends to some other noncomputer related activity like eating, sleeping, etc. (Assuming an audio tape interface at 100 bytes per second, it would take 923 seconds or about 15 minutes to dump the state of the file memory, plus about three minutes to dump the programmable volatile memory of 16 K bytes.) What would such a conception cost? Perhaps $2000 to $3000, assuming produc- tion quantities of the bubble memory cost significantly less than $200, that the sup- port circuitry is not excessive, and that the rest of the system uses existing technology. This would be the minimum configuration of such an "appliance computer circa 1977-1978." The logical next improvement in performance would be to incorporate one Shugart style minifloppy disk file, at perhaps a $500 to $800 increment in price. The bubble film memory is functionally totally electronic there is no problem with mechanical design considerations, an advan- tage which is offset by the constraint of not having removable media as is the case for a floppy disk. As the price of the parts goes down with eventual mass production, the cost per installed bit has the potential of dropping well below that of the removable media floppy disk storage devices. The implications of this bubble memory for the "appliance" computer are most interesting. Let's consider what the new "minimum" personal computing system which incorporates the bubble memory medium might look like. First, the sys- tem includes a typical microprocessor de- sign with eight of the contemporary 16 K dynamic memory parts for main memory, with perhaps 8 K to 1 6 K of systems soft- ware in read only memory. Peripherals built-in include video display (interface or built-in monitor depending on the manu- facturer), and alphanumeric keyboard, with a high speed audio cassette interface for long term program storage. For filing of current programs and data this minimum system incorporates eight of the TBM0103 bubble memory units, giving a capacity of 92,304 bytes of data or program file capa- Flexibility You'd want 8 or 16-bit digital computers with fully expandable memories and a variety of I/O interfaces. Such versatility lets you optimize the system for your hobby, education or small business application. 60 Operating Cctitfierce You'd want an 8-bit computer featuring an intelligent front panel with octal keyboard entry and display for fast readout, a resident monitor with built-in bootstrap for one-button program entry or storage. Or a powerful 16-bit computer with resident monitor. Tl happens to be the first to commercially market the bubble memories. (AT&T has already been using them for several months in production phone equipment, but these parts are not available to general commercial users.) If we use the example of the Shugart minifloppy disk drives as a prototype for the delay from announcement to proven end user product for a system of similar com- plexity, then we can expect to see end user deliveries of mass storage subsystems for present day personal computer systems sometime late this coming fall. (This editorial was written April 8 1977.) As for complete computer systems which make the bubble memory an integral part, I would tend to expect the first such systems in the first half of 1978 or sooner depending upon the cleverness and resources of the companies which ultimately produce such products. In the meantime, perhaps some technologically enterprising reader will purchase the early sample versions of the bubble memory chips along with documentation, and design a homebrew computer interface which we can publish for the benefit of all BYTE readers. The bubble memory, a long awaited promise, has finally become a technological and commercial reality available for use in personal computing products." very similar to a floppy disk. The bubble memory's data transfer rate, at 50 kbps, is comparable to the transfer rates of the small floppies, and its access time to blocks of data is approximately one to two orders of magnitude faster (12.8 ms versus typically 250 to 500 ms head positioning time on a floppy disk). But the bubble memory chip capacity of 92,000 bits is about the same as the capacity of the typical 5 inch floppy disk. Using one floppy disk drive for its removable media attributes, and the standard permanently "mounted" simulated floppy disk of the bubble memory, this appliance computer concept now has the ability to "instantly" copy disk files, sort data within the constraints of two 92,000 byte file regions, and do many of the "memory intensive" tasks usually associated with large interactive systems. When Will We Users See Products? The announcement by Texas Instruments, accompanied by extensive advertisements in the electronics trade press for the bubble memory, a 64 K charge coupled device, volatile memory and large 16 K dynamic programmable random access memories, is aimed primarily at designers of new products. Peripherals You'd want a complete line of system compatible peripherals including a CRT terminal, paper tape reader/punch, and audio cassette mass storage. (more) 61 Continued from page 34 Type 03: External Symbols Byte number 1 2,7 Description Dollar sign ($) delimiter. Up to 6 ASCII characters of the external symbol name. The name is left justified, blank filled. 8,9 Record type 03. 10,13 Last address which uses the ex- ternal symbol. This is the start of a link list which is described be- low. The most significant byte is first. 14,15 Binary checksum. CRLF Carriage return, line feed. The Mostek SDB-80 assembler outputs the external symbol name and the last address in the program where the symbol is used. The data records which follow contain a link list pointing to all occurrences of that symbol. This is illustrated in figure 1 . 1. The external symbol record shows the label ( LAB ) and the last location in Documentation and Sorties Support You'd want superior documentation with assembly, operation and software manuals that are the most thorough and accurate around, plus a factory and retail network of trained service personnel that can help you get up and running fast. 9 Software You'd want each computer supplied with full system software at no extra cost (assembler, editor, BASIC, debug). And enhanced system software and ready-to-use applications programs available at a nominal cost. the program which uses the symbol (212AH). 2. The object code at 21 2A has a pointer which shows where the previous reference to the external symbol oc- curred (200FH). 3. This backward reference list continues until a terminator ends the list. This terminator is FFFFH. This method is easy to generate and decode. It has the advantage of reducing the number of bytes of object code needed to define all external references in a program. Intel defines each external reference explicitly. • Type 04: Relocating Record The addresses in the program which must be relocated are explicitly defined in these re- cords. Up to 16 addresses (64 ASCII char- acters) may be defined in each record. Byte number Description 1 Dollar sign ($) delimiter. 2, 3 Number of sets of 2 ASCII char- acters. Where two sets define an address. 62 Circle 18 on inquiry card. 4-7 ASCII zeros. 8,9 04 10 Addresses which must be relo- cated. Last 2 bytes Binary checksum. CRLF Carriage return, line feed. • Assembler Object Output Sequence The SDB-80 Assembler will output object records in the following sequence: 1. Internal symbols (type 02) in alpha- betical order. 2. External symbols (type 03) in alpha- betical order. 3. Data records (type 00), interspersed with relocation records (type 04). 4. End of file record (type 01 ). Internal symbol records will be outputted only if internal symbols are defined in the source program. The same is true of external symbol records. Relocation records always will be outputted by the assembler." It* fill tours Because the world-leader in quality electronic kits has researched the needs of the computer hobbyist and developed some of the most sophisticated and affordable products around. HEATHKIT They're the ones you've been waiting for! A i/aliie/price liliTiWli You'd want all hardware systems in stock in easily affordable and buildable kit form from the world's largest and most experienced kit manufacturer. Systems designed to give you more and better features for your computer dollar. And all backed by a "We won't let you fail" promise. GLOSSARY Object module The output from an assembler is called the object module. One or more object modules can be placed into memory by a loader. The output from the loader is called a "load module." Relocatable program: A program which has extra information in the object .module is referred to as relocatable. The extra information allows the loader to place the program anywhere in memory. A nonrelocatable program can be loaded only in one place in memory in order to work properly. Position independent program: A program which can be placed anywhere in memory is called posi- tion independent. It does not require relocating information in the object module. Internal symbol: A symbol which is defined in a program and whose location is made known to all other programs is called an internal symbol. It is also called "public" (Intel), "defined," "global," or "common." External symbol: A symbol which is used in a program but which is not defined in the program is called an external symbol. Such symbols must be defined as internal symbols in other programs. Linkable program: A program with extra informa- tion in the object module which defines internal and external symbols is called a linkable program. The loader uses this information to connect, or link, external references to internal symbols. 63 Speech Recognition for a Personal Computer System James R Bocldie Bell Laboratories Murray Hill NJ 07974 The August 1976 issue of BYTE pre- sented to the personal computer user an introduction to half of the problem of man- machine communication by speech: machine generation of speech. Speech synthesis has been investigated since at least the 1800s. High quality speech can be produced by a computer if it decodes utterances that have been efficiently coded and stored in mem- ory. Poorer quality, but sometimes accept- able speech can be synthesized by electron- ically simulating the human speech produc- ing mechanism. Speech communication in the other direction, machine recognition of speech, is usually considered to be a harder task. The purpose of this article is to present some of the problems and to introduce some solu- tions that may be realized by the personal computer enthusiast. The ideal speech recognizer would be a machine that could accept casually spoken sentences from many speakers with different dialects and transcribe them in real time into written text or translate them into com- mands for controlling some function. Un- fortunately, there are at least five major pro- blem areas in speech recognition that are still incompletely solved. • The Continuous Speech Problem. In ordinary conversational speech our words tend to "run together" acous- tically. Say "How are you" and "How (pause) are (pause) you." The con- tinuous version is uttered almost as a single word. What is the best pro- cedure for segmenting such an utter- ance into words? • The Multiple Speaker Problem. People say the same words differently. Can a machine allow for these differences or must it be "tuned" to each indivi- dual user? • The Limited Vocabulary Problem. Error rates, recognition rates and memory requirements increase with vocabulary size. How many words can be reliably handled by a machine? • The Vocabulary Entry Problem. The words in the vocabulary have to be described to the computer in some way. What is the most efficient way? • The Noise Problem. Speech is filtered by some transmission process or corrupted by noise in transmission media such as telephone or radio. What is the best signal processing technique for these conditions? These are the problems that concern many industrial and academic research lab- oratories using the most sophisticated tech- niques and equipment available. However, there are some realistic goals for a speech recognizer in a personal computer system. That is, it should be possible to build a sys- tem which can accept isolated words from a limited vocabulary of ten -to 20 words spoken by a speaker whom the machine has been trained to understand. These goals are well within the capabilities of most contem- porary microprocessors. Several such systems have already been designed using a modest amount of discrete 64 Figure I: A speech encoding model. Messages from the brain in the form of desired words are processed through a series of transformations to produce the finished speech. These messages come in the form of "phonemes, " or word building blocks (see table I), which make up the desired word. This code is translated into appropriate neuromuscular signals which control the speech "articulators": the vocal cords, vocal tract, lips, tongue and teeth. The other parameters in the figure show how dialect, emotions, context and external noises can all have an effect on the final speech. logic. (See the first six references in the bibliography at the end of this article.) Each of these systems can be easily duplicated with a small amount of hardware such as a microphone, amplifier, filters, an analog to digital converter and a microcomputer. This paper will show how one of these well known recognizers can be implemented. But first, a few basic facts about human speech production. The Speech Code In order to construct a system for de- coding speech you should know how the acoustic signal is encoded with the desired message. One way of looking at the process is shown in figure 1. The message from the brain may be thought of as going through a series of transformations which modify it by many factors. The word idea or linguis- tic information is first translated into speech sound units called phonemes. This "code" is a collection of the descriptors of the sounds necessary to say the words. In English there are approximately 40 basic types of sounds which are used to construct our entire vocabulary. The phonemic code is translated by the central nervous system into neuro- muscular signals for controlling the physical speech making apparatus or articulators'. The articulators "modulate" the sound generated by the vocal cords and produce the radiated acoustic signal. This process has sources of error. The phonemic codes for various dialects are different from one another. A speaker may say the same word many different ways de- pending on context or physical and emo- tional state. Differences in the sizes of people's articulators account for variations between speakers. Day to day changes in the articulators (due to a head cold, for ex- ample) can cause variations in the way a given person sounds. Finally, the acoustic signal itself may be corrupted by noise or filtering. The message coding process produces a signal which contains much information that is not significant to the intended message and which makes any direct comparison of speech waveforms difficult if not impossible. The extent of the coding inefficiency can be seen by a simple example. The following sentence: "The objective of this section is to develop these techniques." contains 60 characters and can be spoken in about three seconds. Using a 5 bit code for alphabetic characters, real time transmission at speech rates would require only 100 bps. If the utterance were transmitted with a string of 42 phonemes coded with six bits each, then 84 bps would be necessary. How- ever, if the speech signal itself were band- limited at 3 kHz, sampled at 6 kHz, and quantized to 256 levels or eight bits, real time transmissions would require a rate of 48,000 bps. If a computer could analyze this digitized speech in real time it would have to process one 8 bit speech sample every 160 jis. A microcomputer with a cycle time of 500 ns would have only 320 cycles be- tween speech samples. That does not allow time for very many instructions to analyze and match the data with reference wave- forms. The direct storage of the waveform would require 6,000 bytes of memory for every second of speech. It should be clear that it is desirable to have a method of rapidly extracting the useful information, thereby reducing the amount of data storage and computation time. A look at the speech production mechanism provides some clues for data analysis and reduction. Speech Parameters Speech sounds originate from two sources. So-called "voiced" sounds are made by the vocal cords and make up vowel-like sounds. The vocal cords produce periodic bursts of air through the vocal tract at a repetition rate of about 1 25 to 200 Hz. "Unvoiced" sounds or "fricatives" are 65 Voiced Example AE bad AH father Al bite AW bought AY bay EH bet EE beet ER bird IX fit OU boast UX book UH but UU boot WX win YX yes RX rip LX lit MX man NX not NG ring Fricatives FX fan TH bath SX sip SH ship CH church HX hand Combinations o f Voiced and Fricative Sounc s VX van DH than ZX zip ZH measure Stops JH jump PX pan TX tan KX can Voiced Stops BX ban DX dan GX gab K 2000 £ b- O 1500 > u Z lu => 1000 Table 1: Speech phonemes. In English there are approximately 40 basic types of sounds which are used to construct the entire vocabulary. These sounds are called "phonemes. " The phonemes are not pro- nounced literally, but rather serve as symbols for their respective sounds. The phonemic code is translated by the central nervous system into neuromuscular signals for con- trolling the physical speech making apparatus or "articulators." "Voiced" phonemes are the vowel-like sounds which are produced in the vocal cords as periodic bursts of air from 125 to 200 times a second. "Un- voiced" phonemes or "fricatives" are noise- like sounds made by forcing air through constrictions in the mouth. Some phonemes are combinations of voiced and unvoiced sounds. "Stops" result from momentary blockage of air flow (and sound). noise-like and are made by forcing air through constructions in the mouth. If the air flow is completely blocked for a mo- ment, the sound is called a "stop." Some- times we make both voiced and fricative sounds. Table 1 classifies various phonemes into these source types. Phonemes have special symbols that are often used, but this table uses a machine readable format. The vocal tract is like a pipe from the vocal cords to the lips which has several natural resonant frequencies called "for- mants." This pipe acts like a filter that most readily passes sounds whose frequencies are the same as the formants. The three most prominent formants are centered around 500, 1500 and 2500 Hz but they vary with changes in position of the tongue, lips and mouth. The voiced and unvoiced sounds can be thought of as "carrier" signals that are 200 400 600 800 IO0O I200 FREQUENCY OF FORMANT I (Hz) "modulated" by the resonances in the vocal tract. It is well known that there is a correspon- dence between phonemes and the formant frequencies. In fact, it is only necessary to know the first two formant frequencies in order to identify many vowel sounds. Figure 2 shows a map of several vowej sounds in a plane formed by the first two formants. For example, if you knew that for some interval of a speech utterance the first formant was at 800 Hz and the second at 2500 Hz, then you might guess that the speech sound was the phoneme "EH." A nice property of formant data is that it changes rather slowly. It is necessary to sample the formant frequencies only every 10 to 20 ms in order to keep up with chang- ing phonemes. This means that the motion of two formants could be stored in only 100 bytes per second of speech as opposed to 6000 bytes per second for the waveform itself. Naturally, we would like a technique for easily measuring the first two formant frequencies by looking at the waveform data. The most accurate methods require either a lot of high speed computation or special purpose hardware. Fortunately there is a very simple way to get an estimate of the formants which is most suitable for microcomputer processing. Zero Crossing Analysis Since the late 1940s it has been known that the amplitude of the speech waveform carries little information. Most of the use- ful information can be obtained from just the knowledge of the number of times the signal waveform crosses the zero axis. This is called zero crossing analysis. [This method would lend itself perfectly to Walsh trans- form analysis. . .CM/ If you count the num- ber of times the signal changes sign in a fixed interval, say every 10 to 20 ms, you can get numbers which closely follow the changes in the first formant frequency. If you first emphasize the higher frequencies by high pass filtering, then the zero crossing rate tracks the second formant frequency. Figure 2: Vowel phonemes on the formant plane. "Formants" are the natural resonant frequencies of the vocal tract. These reson- ances are similar to the resonant vibrations of organ pipes or the characteristic sound of an empty bottle when air is blown across it. The three most prominent formants are centered around 500, 1500 and 2500 Hz, but they vary with changes in position of the tongue, lips and mouth. 66 Although the zero crossing rates do not give accurate estimates of formant fre- quencies, they do contain enough informa- tion to partially separate the vowels for recognition purposes. Figure 3 shows a map of vowels on a high pass versus low pass zero crossing rate plane. There are many advantages in using zero crossing analysis techniques in digital speech recognition. One of them is that the neces- sary hardware is simple. Since only the sign of the waveform is important, only one bit per sample is needed, which eliminates a re- quirement for an analog to digital converter in the system. The analysis can easily be done in real time since no multiplications are involved - only counting. The zero crossing parameters can be measured with simple hardware or software as the signal comes in, which eliminates the necessity of storing the waveform. Because the amplitude informa- tion is not used, the analysis is independent of voice volume and inflection. This makes zero crossing measurements somewhat less dependent upon characteristics of individual speakers. Pattern Matching After the acquisition of the zero crossing parameters, the identification of the word can be done using one of two simple processes: in a one step approach, the para- meter data is directly compared with reference patterns (sometimes called templates) for each word in the vocabulary. The closest match is chosen as the most probable utterance. In a two step method, the parameter data is first converted into a string of phonemes. Then this string is com- pared with a phonetic representation of the words in the vocabulary. Both methods have problems. The one step comparison suffers if the word is spoken at a different rate from the words in the sample set unless some technique is used to find the best time alignment. The time Figure 4b: A diagrammatic representation of the word "SIX" on the zero crossing plane using a form of state diagram. In this graph the high and low pass functions from figure 4a are plotted against one another in stylized fashion to better show how the zero cross- ing rates change as the word Is pronounced. (Note that the word begins and ends with the same phoneme, SX.) The signal is split into two bandpass regions because these particular regions reveal key attributes of English words which can act as types of "fingerprints" of the words for later indenti- fication. O uj in < O I oc o u (/I o w uj °- fM I li. 52 O I Figure 3: Vowel formants on the zero crossing plane. For comparison purposes the formants in figure I are plotted here on the zero crossing plane. The term "zero crossing rate" refers to the number of times that the voice signal changes its polarity per unit time (see figure 4a). NUMBER OF ZERO CROSSINGS PER 16 mS (LOW PASS CHANNEL) ZERO CROSSING RATE SX IX' - KX - SX' TIME Figure 4a: A plot of the word "SIX" showing the zero crossing rate as a function of time. The word is shown split into its four phonemes. In this case, the signal is first processed through two bandpass filters. The number of zero crossings is then determined by the computer. Results for both filters are shown. As the graph indicates, there Is a very short period of silence during the pronunciation of the KX phoneme which can be verified by slowly pronouncing the word "six. " LOW PASS ZERO CROSSING RATE SILENCE AT ORIGIN 67 SPEECH INPUT STAGE MICROPROCESSOR INTERFACE MICROPHONE CD ici ; PIN 14:5V DC PIN 7:GND PARALLEL INPUT PORT Figure 5: Speech filtering circuitry. A voice signal is picked up by the microphone and preamplified. It is then sent through a low pass filter made up of CI and R1 whose cutoff frequency is 3 kHz. The signal is next passed through a I kHz high pass filter and a I kHz low pass filter as shown. The two signals then go to the microprocessor interface for further processing. ICI, which forms the basis for this circuit, is a quad LM 3900 op amp. The diode-like symbols shown on the four amplifiers indicate the use of "current mirrors" for the noninverting inputs. For a detailed discussion see National Semiconductor's book, Linear Integrated Circuits, page 2-250 and following. NUMBER OF ZERO CROSSINGS PER l6mS (HIGH PASS CHANNEL) 80 64 32 P(29) P(30) P(7) P(8) P(l) P(2) P13) P(4) P(5] P(6) 6 13 19 25 32 NUMBER OF ZERO CROSSINGS PER l6mS(L0W PASS CHANNEL) Figure 6: In order to implement the speech recognition algorithm, 60 samples of speech over roughly I second's duration are sequentially processed through the circuit illustrated in figure 5. For each of the 60 intervals the number of high and low pass zero crossings per second is counted and stored in a software array corresponding to the regions in this figure. (This figure is not to scale.) After this, a straightforward statistical correlation is performed on the array to compare it with a series of word models in the memory and to arrive at the most likely match. dependence can be eliminated by consider- ing the pattern of the data plotted on a zero crossing plane. Figure 4 shows how the word "six" might be plotted. The one step method has the double disadvantage that a lot of memory is required for template stor- age and that the matching may be more time consuming. Two step systems use less memory in the template storage but depend on the performance of an imperfect phon- eme indentifier. The phoneme matcher must be able to tolerate errors such as missing, mislabeled or extraneous phonemes in the hypothesized string. For example, the out- put from a phoneme indentifier given in the utterance "six" (or "SX IX KS SX") might be "SX SX EE IX IX EH KX SX SX." A Practical Speech Recognizer You have probably realized by now that there are many possible approaches to the analysis and recognition of speech. With this in mind, we can now consider in detail an isolated word recognizer that can be implemented on most microcomputer systems. This algorithm is based on one of the earliest successful word recognition cx- 68 The book you've waited for is here! „** * % EPROMs UNDERSE4NDING COMPUTERS AND SMALL COMPUTER SYSTEMS _ What's an accumulator? How do you use relative addressing? Indexed addressing? Boolean logic operations? Does a program counter count programs? What's an I/O port? What are EPROMS? What is paging? A stack? The difference between a dot and vector CRT display? How do you copy programs using an ordinary tape recorder? What can a microcomputer really do? What kind of personal computer system should I buy? These and hundreds of other questions about microcomputers are answered in this profusely illustrated, easy-reading "must" book. Here are the funda- mental concepts behind the operation of virtually all microcomputers . . . written in simple English so that anyone can gain the extra knowledge that will let him or her read and understand computer magazines and manufacturers' literature and feel "at home" around computers. Here are just some of the items discussed . . . How a CPU is organized and how it follows sequences of directives to solve problems. • Illustrates basic instructions from almost every class of microprocessor. • Discusses common memory addressing modes — illustrates \ typical uses. \ • What you must know to tell a computer what to do %i when using machine language programming methods. • Explains use of flow charts; program worksheets; hand assembly of source codes into object codes; memory maps; purpose of an Editor, Assembler, Jjfk Monitor. • Benefits of using a high level language ;||k —introduction to BASIC. • How a computer communicates. Types of commonly used input/out- put devices and their operational concepts. • Practical aspects of selecting a small computer system. Plus, hundreds of other practical facts and information. If you're at all curious about small computers, you must own this 300 page no-nonsense text that reads like a simple book, and includes an easy-to-use glossary of key microcomputer oriented words. UNDERSTANDING MICRO- COMPUTERS. The name says it all. And, it all costs only $9.95. Order your copy today! AT 1CEEEI COMI LITER fccONIlMIING INC. ^^- PO Box 133 — PP STN Milford, CT 06460 Price shown for North American customers. Master Charge, Postal and Bank Money Orders preferred. Personal checks delay shipping up to 4 weeks. Pric- ing, specifications, availability subject to change without notice. SCELBI Books are available in many fine Computer Stores. Circle 19 on inquiry card. FOR J = 1 TO 60 F1(J) = F2 (J) = FOR I = 1 TO 100 [Delay for 160 nS loop time] INPUT X X1 = XOR (X, X0) IF XI > 1 THEN F2 (J) ■■ IF (X1 = 1) OR (X1 =3) X0 = X NEXT I NEXT J = F2 (J)+1 THEN F1 (J) ;lnput speech port ;Exclusive OR input with last sample ;State change or bit 1 F1 (J) +1 ;State change or bit ;Save last sample Listing 1 : The input algorithm. Arrays Fl and F2 store the number of zero crossing counts in each 16 ms interval for the low pass and high pass channels respectively. This listing, like the following listings, is written in BASIC for illustrative purposes, but it must be translated into machine language to achieve real time performance. 100 200 FOR I = 1 TO 30 P (I) =0 NEXT I FOR J = 1 TO 60 FOR 11 = 1 TO 5 IF G1 (ID > F1 (J) THEN 100 NEXT 11 11 = 6 FOR 12 = 1 TO 4 IF G2 (12) > F2 (J) THEN 200 NEXT 12 12 = 5 I = (12-11*6+11 P(l) = P (I) +1 NEXT J FOR J = 1 TO L Correlate R (J) = FOR I = 1 TO 30 R (J) = R (J) + P (l)*T (I, J) NEXT I NEXT J J1 = 1 ;Pick best R1 = R (1) FOR J = 2 TO L IF R (J) > R1 THEN R1 = R (J) : J1 = J NEXT J PRINT J1 INPUT "TEMPLATE NUMBER," L FOR I = 1 TO 30 P1 (I) = NEXT I FOR K ■ 1 TO 8 INPUT "READY?", Q [Call routine for sampling speech and computing P] FOR I = 1 TO 30 P1 (I) = P1 (I) + P (I) NEXT I NEXT K FOR I = 1 TO 30 T (I, L) = P1 (l)/8 NEXT I Listing 2: The classifica- tion and accumulation rou- tine. This routine takes the information from arrays Fl and F2 and stores it in array P, which represents the zero crossing plane. Listing 3: The correlation routine. This routine com- pares the completed array from listing 2 with various word models in memory and uses standard statistical methods to find a best match. For a ten word vocabulary the entire speech recognition algo- rithm can be run in less than 69 ms. Listing 4: The template generation routine. A "template" is a word model in the form of an array. This routine, which can be run off line (in BASIC if desired, since there are no time restric- tions), is used to generate all of the word models in the vocabulary desired. Eight samples of a given word are uttered by the operator and averaged to- gether to create each word template. periments (see reference 1). Originally built with mainly analog components, it could recognize telephone quality digits from a single speaker with an accuracy better than 97 percent in real time. A microcomputer using a minimum amount of extra hardware can easily duplicate this performance. The input stage is shown in figure 5. The speech is low pass filtered at 3 kHz and split into a 1 kHz high pass channel and a 1 kHz low pass channel. These filtered signals are compared with a reference voltage level and logic outputs indicate the result of the com- parison. That is, a logic results from a sig- nal level greater than the reference and a logic 1 results from a level less than the ref- erence. Proper adjustment of the reference levels will allow the measurement of the sign of the signal. The outputs from this stage are connected to the two least significant bits of a parallel input port. The microcomputer must sample the input port every 160 p.s and count the num- ber of state changes (zero crossings) over 16 Ms intervals. If the input is sampled for 60 intervals, then the machine will have "list- ened" for 0.96 seconds, which is more than enough time to pronounce most individual words. Listing 1 is the input algorithm. It is written in BASIC for illustrative purposes, but it must be efficiently translated into machine language to achieve real time performance. All variables are 1 byte integers unless otherwise noted. The inner loop must be executed once every 160 us. This can be done by using software delays or an external clock. The listing does not show details of how this delay is accom- plished. The F1 and F2 arrays are used to store the zero crossing counts in each 16 ms interval for the low pass and high pass channels respectively. Of course, the "IF" statements can be replaced by a simple "rotate into carry, branch if carry" in the machine language code. The next step is to divide the low pass versus high pass (F1, F2) plane into 30 re- gions as shown in figure 6. Then for each of the 60 intervals, the zero crossing counts in Fl and F2 are located on this plane and associated with one of the regions. A 30 ele- ment array P keeps up with the number of points in each region. This distribution of points in the Fl, F2 plane is used as the input pattern to be compared with the refer- ence patterns. Listing 2 illustrates the classification and accumulation routine. TheG1 and G2 arrays contain the information about the division of the F1, F2 plane. They should be initial- ized (in BASIC or equivalent machine code) as follows: 70 READG1 DATA 6, 13, 19,25,32 READG2 DATA 32, 48, 64, 80 The calculation of index I involves a multi- plication by a constant 6. This can be most quickly done by coding: I =(I2-1)*2 + (I2-1)*4+ 11 This BASIC statement can easily be trans- lated into machine language using two left shifts and addition operations. The pattern matching is done by correlat- ing the P array with precomputed reference patterns for each word in the vocabulary. The word with the best match is picked as the most likely utterance. Listing 3 gives the pattern matcher routine, expressed in BASIC. L is the num- ber of words in the vocabulary. R is an array that contains the calculated correlation values for each word. T is a 30 by L array of reference templates. The number corres- ponding to the template which best matches the input is printed as J 1 . The calculation of R requires 30 times L multiplications, which can be very time consuming. For a ten word vocabulary and an 8080 processor (one 8 by 8 bit software multiply in 230 /us) the R calculation can be done in 69 ms. Also note that while the numbers in P are always positive, this does not apply to the numbers in T. R should be a double precision (2 byte) number to avoid overflow. The templates are generated by averaging several sample patterns for each word. Much of this task can be done off line rather than in real time, so it can be coded in BASIC or other interpretive languages. A direct machine language coding is relatively straight- forward, however. Listing 4 shows how eight patterns are averaged to form a template. The program uses the code of listings I and 2 to obtain the pattern in array P. The accumulation of the P1 array should be done with 2 byte arithmetic. The division by 8 is accom- plished by a simple right shift three bit places. Finally, a little data massaging is neces- sary. To make this type of correlation pattern matching work, each template should have the same statistical properties. Specifically, each template should have a mean value of zero and a normalized standard deviation. This is easily done with the program in listing 5. The removal of the mean is simplified by the fact that the mean for each template is the same (60 intervals divided by 30 regions gives a fixed mean value of 2). The normalization of the stan- dard deviation involves computing a square FOR J = 1 TO L FOR I = 1 TO 30 Subtract mean T (I, J) = T (I, J)-2 NEXT I S = FOR I = 1 TO 30 S = S + T (I, J) * T (I, J) NEXT I S2 = SQRT (S) FOR I = 1 TO 30 formalize T (I, J) - 8 * T (I, J)/S2 NEXT I NEXT J root. If the square root function subroutine is not available, then it can be computed manually with a pocket calculator and entered by hand (PRINT S : INPUT S2). This is not too painful since it needs to be done only once for each word in the vocabulary. S should be a 2 byte integer, and the division by S2 should be done using double precision arithmetic. The templates can be saved and used indefinitely without alteration, but new templates will be necessary for different speakers. Composite templates can be made by averaging the reference patterns of several talkers, but they do not work as well as individualized ones. This very simple speech recognizer is only one of many systems that can be adapted to microcomputers. Much more information on the digital analysis and synthesis of speech can be found in the IEEE Transactions on Acoustics, Speech and Signal Processing, which is available in most engineering libraries." BIBLIOGRAPHY 1. Davis, Biddulph, and Balashek, "Automatic recognition of spoken digits," Journal of the Acoustical Society of America, volume 24, pages 637-642, November 1952. 2. Ross, "A limited-vocabulary adaptive speech recognition system," Journal of the Audio Engineering Society, volume 15, pages 414-416, October 1967. 3. Gilli and Meo, "Sequential system for recog- nizing spoken digits in real time," Acustica, volume 19, pages 38^4, 1967. 4. Teacher, Kellett, and Focht, "Experimental, limited vocabulary speech recognizer," IEEE Transactions on Audio and Electroacoustics, volume AU-15, pages 127-130, September 1967. 5. Purton, "Speech recognition using autocorrela- tion analysis," IEEE Transactions on Audio and Electroacoustics, volume AU-1 6, pages 235-239, June 1968. 6. Bezdel and Bridle, "Speech recognition using zero crossing measurements and sequence infor- mation," Proceedings of the IEEE, volume 116, pages 617-623, 1969. Listing 5: A normalizing routine. This auxiliary rou- tine is used to adjust the statistical properties of the templates. Specifically, each template is modified so that it has a zero mean value and a normalized standard deviation. This is done to insure that all of the word templates have the same statisti- cal properties prior to correlation. An Application for This Speech Recognition System An excellent application for Dr Boddie's system would be to use it as a quick way to enter hexadecimal code with- out toggling or typing. The vocabulary required could be kept to a minimum if the operator pronounces each digit separately (ie: "seven, seven," not "seventy seven") so that the various compound forms do not have to be learned. The computer would then verify the verbal entry by outputting the code to a printer or dis- play screen. Better yet, use this system in conjunction with a computerized speech syn- thesizer such as D Lloyd Rice's Computalker [BYTE, August 1976, page 16} to obtain a verbal interaction. A more sophisticated system could process verbal op code mnemonics and assemble them directly in hexadecimal code on your display screen for verification. 71 Cassette tape and other magnetic tape recording without bit errors requires that we get our feet wet in the murky waters of error correcting codes . . . How to Pick up a Dropped Bit W Douglas Maurer Rm 634, University Library Bldg George Washington Univ Washington DC 20052 The oxide coating of a tape is sometimes uneven- ly distributed, particularly when the tape is old and has been used many times. The phenomenon of the dropped bit causes difficulties in two distinct areas of computer technology: in the recording of data on tape (or disk, or the like), and in the transmission of data from one place to another. Suppose, for example, that we are recording one hundred 32 bit words on a tape. Out of the 3200 bits that are to be written on the tape, there is a nonzero chance that at least one of them will be wrong. Either it will be recorded as a zero, when it should have been a one (a dropped bit) or it will be recorded as a one, when it should have been a zero (an added bit). Even if all 3200 bits are recorded correctly, there is still a nonzero chance that the next time we read this tape, we will read at least one of the one bits from the tape as if it were a zero, or one of the zero bits as if it were a one. In such a case we again speak of dropping a bit, or adding a bit. Often both dropped and added bits are referred to, generically, as dropped bits, and we shall continue to do so in this paper. In a similar way, suppose we are trans- mitting a message which consists of bits. (The message does not have to involve com- puters at all; it may, for example, simply be a message from one Teletype to another.) In a long message there is, again, a very good chance that at least one bit which is trans- mitted will be received in the wrong way. It might be received as a zero, when it is supposed to be a one, or vice versa. Again we speak of bits being dropped in transmission. (One slightly confusing piece of terminology here is that the entire collection of bits, out of which a very few are dropped, is very often referred to as a "message," even when we are not transmitting it, but rather record- ing it on tape or disk.) There are many possible sources of dropped bits. Tapes often have tiny dust particles on them which interfere with the reading and writing of data. The oxide coating of a tape is sometimes unevenly distributed, particularly when the tape is old and has been used many times. The same considerations, of course, apply to floppy disk memory, or any other kind of memory involving an oxide coating. In transmitting messages from one place to another, noise in the channel and receiver can very easily degrade the quality of the reception. In order to solve the problems created by dropped bits, we can proceed in two general classes of ways. The first is to improve our hardware in such a way that dropped bits do not occur: We can clean our tapes. We can throw away our old tapes. We can transmit messages at a slow rate, and so on. The other approach is what may be called "picking up" the dropped bits. The idea is to send a message that is longer than the original one, and that is so designed that, even if certain bits are dropped, the original message can be recovered. (As we mentioned above, the word "message" is being used here in a general sense; it may, in particular, be a record written on tape or disk.) Picking up a dropped bit is referred to, more precisely, as "error correction," a term which must be carefully distinguished from "error detection." In error detection, we simply detect the fact that some bit has been dropped; we cannot tell which bit is the 72 y and x+y+1 = d, then we can use a code with minimum distance d, as above, to correct any y errors and simultaneously detect any x errors. As a special case of this, if y = 0, we can detect any d-1 errors with- out any error correction capability at all." IN WIRE- WRAPPING (og) HAS THE LINE. . HOBBY-WRAP-30 wire-wrapping, stripping, unwrapping tool for awg 30 (.025 square post) STRIP WRAP UNWRAP OK MACHINE & TOOL CORPORATION 3465 CONNER STREET. BRONX, NEW YORK. NY. 10478 U.S.A. ■ PHONE (212) 8844600 TELEX: 125091 TELEX: 232395 Circle 20 on inquiry card. 76 Memories are made of this. ' /E g~} c jc 44«\-UY«\»\^ "*w ■ ill'.^Kltf IlffllffllllllllllllllllllllMtllltl BHHH 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 21 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 ffe(%[MI DGWg) ) P.O. Box 6528 Denver, Colorado 80206 □ I promise to mail this in Name (303) 777-7133 so add me to your list! Addrpss CitylStatp/Zip □ Remember me? I'm already on your mailing list, but I need the memory spec sheet desperately, on inquiry card. Figure 1 : Conceptually, it's easy to expand the effective memory space of a processor by adding a latched output port which pro- vides extra high order bits of addressing. The result is a "paged" memory technique which can address a much larger memory address space. In this example, four bits added to 16 bits yields 20 address bits, giving a micro- processor an effective addressing range of 1048576 locations. However, there are dis- advantages of such a technique in this simple conception: Each 64 K region is completely isolated from its neighbors, since the 10 port technique requires software switching between regions, which cannot in general be accomplished within one or a small number of instructions. Give Your Micro a Megabyte What is it that makes a microcomputer "micro?" There are many factors involved, but one of the most crucial is the small memory available in most hobby computers. I had scarcely gotten my Altaic up and running with 8 K of memory before I wanted to write programs that exceeded its storage capabilities. Paging programs in and out from dual cassettes became a major nuisance, so I gathered my pennies and bought an- other 4 K memory board. In less than a month I needed even more storage. It is a fact of programming life that one must trade storage space for execution speed in programs. 1 tried to write a program in BASIC to play Mastermind on my Altair. Mastermind has 1296 possible moves, each move composed of four numbers. Storing this optimally would require about 5 K bytes; the BASIC code took nearly 6 K bytes, leaving me almost no space for my program. I tried to write the program to regenerate the moves each turn. This saved the space, but it took over ten minutes of computation to respond. Few human play- ers can put up with such a wait. Don't think that this lack of memory afflicts only small machines. I work on several large computers, each of which has over 100 K bytes of storage. Programs have been written on each system which strain the memory limits. The unwritten law has it that "programs expand to fill all available space." We programming experimenters don't have much control over the structure of our processor architectures, but we do build up our own memory systems. In all systems that I have worked on, the memory was the single most expensive component. Peripherals rank second in most systems. This is the area in which we can upgrade our machines most readily from the "micro" class. This article will describe, in a general way, two methods for expanding the storage capability of a computer. These methods are widely used in big machines, but are rarely built into small machines. This need not be the case. Present day 8 bit microprocessors typically have 1 6 bit address buses. This implies that a maximum of 64 K bytes can be directly ad- dressed. Many minicomputers also have 16 bit buses, but often address up to a megabyte. How do they accomplish this apparent bit of magic? Obviously, they must come up with some more address bits some- where. Minicomputers do it by using special registers called mapping registers. These registers contain the extra address bits. If the mapping register contents are fixed, then only 64 K can be addressed. But by dynamic- ally changing the bits of (for example) a 78 L_. LATCHED 4 BIT OUTPUT PORT PROCESSOR 1 4 1 16 t ADDRESS BUFFERS DATA BUS BUFFER 20 BIT EFFECTIVE SYSTEM ADDRESS BUS 8 BIT SYSTEM DATA BUS Robert D Grappel 148 Wood St Lexington MA 02173 4 bit mapping register, the processor can effectively address an entire megabyte. In minicomputers, the mapping function is usually performed automatically, when needed, by operating system software. Each task loaded in the system has access to 64 K, as determined by its mapping register. Homebrewed microprocessors can do this, too, as well as commercial systems with appropriate modifications. We need to add a register for mapping. We can't add the needed bits to the processor itself, but we can use peripheral registers as we like. Just treat the mapping register as an output device. Figure 1 shows how an 8 bit micro- processor with 16 address bits can generate an effective 20 bit address space using a 4 bit output port as a mapping register. A multitasking operating system could be written to switch up to 16 tasks, each of which has access to 64 K. With such systems, 64 K segments of data could be kept in partitions (64 K space defined by the map register), separate from the programs in which they are used. The opportunities for innovative system design are vast. As men- tioned, the more memory a system has, the more complex its programs become. "Wait a minute!", you are asking. "We were talking about microcomputers with typically 4 to 16 K. What good is extending the address space without the memory? Who could afford to build amegabyteof storage?" Good questions. The answer is the second trick used by big systems ... it is called "virtual memory." This is quite a sleight of hand technique. Basically, it amounts to this: If you can't have memory at the ad- dress, move the address to the memory you have. Nobody expects a system to actually have a megabyte of on line storage. That is too expensive for all but the biggest ma- chines. Disk (or tape) is also a storage medium. It is slower, but a heck of a lot cheaper for large volumes of data. Suppose that some external storage device holds a lot of data blocked into 4 K chunks. When- ever the processor asks for data, the chunk that contains that data is read into a 4 K memory from which the processor gets it. This is the essence of virtual memory: a small but fast memory which is being filled by a large but slow external store. To the program it appears that its entire address space is filled with active memory; it just has to wait sometimes. Since most programs move more or less sequentially through memory, many memory accesses are often made to the same chunk of memory. These accesses arc as fast as the real memory can be. The system can have several chunks active at the same time. This, again, is the 79 + 5V FROM PAGE SELECT REGISTER LSB o o O MSB PS3 ■ IK ■ INSERT ADDITIONAL 7485 IF NEEDED FOR LOW ORDER COMPARISONS ILT IEO IGT INPUTS 7485 AO BO Al A2 Bl B2 A3 B3 COMPARATOR OUTPUTS OLT 0E0 OGT + 5V POWER PIN 16 GND PIN 8 LSB MSB FROM ) ADDRESS BUS 1= ADDRESS IN SELECTED PAGE -o O-ADDRESS NOT IN SELECTED PAGE (START PAGE FAULT RECOVERY) trade-off of memory space for execution speed. The rest of this article outlines a virtual memory system for a typical microprocessor. It will work with most popular processors. The one requirement is a READY or WAIT capability that will halt the processor at any point in an instruction upon an external signal. This is absolutely necessary to halt the processor until the desired chunk (or more properly "page") of memory has been loaded. The 8080, 6502, Z-80, TMS9900 and other processors have this feature. The 6800, unfortunately, does not. We will assume a page size of 4 K bytes. This means that the low order 1 2 bits of the address bus wiil address the memory page. We will assume a single 4 K page of real memory for simplicity. Two processors need access to this memory. The main processor uses it, but there must also be another processor which can access the memory page to move the data into and out of it. Thus, both the address and data buses must have switches to permit either processor access to the memory. Now, we need to know if a given address lies in the current memory page. The paging processor uses an output port as a page address register. This register is compared with the upper bits of the ad- dress from the main processor. A circuit for such a page select logic is shown in figure 2. It compares the upper four bits of the address bus against the contents of a 4 bit page register. It uses 7485 4 bit magnitude comparators to test whether the address is in Figure 2: If a virtual memory system is implemented, there is a definite need to find out whether or not a referenced address is currently in the swapping region of memory. This can easily be accomplished by using one or more comparator chips. If the page select register is equal to the current page address reference to the swapping region, then access is normal. But if a page fault occurs (a reference to a page not presently in memory), then the paging processor is invoked while the main processor is at rest waiting for data. The 2 microprocessor strategy discussed here is but one of a number of strategies possible for implement- ing virtual memories. the page identified by the page register contents. The output goes high when the address falls outside the page. (The 7485 is cascadable, so this circuit could be extended with extra bits to generate a virtual memory space of a full megabyte. This would require a megabyte of peripheral storage, or about four floppy disks.) Processors are cheap these days. One may as well use a micro to control the external storage. It will be idle most of the time, when the main processor is happy with the present memory page. When the page select logic indicates that a change of page is neces- sary, the paging processor goes into action. The main processor is made to wait. The memory buses are switched to the control of the paging processor. The paging proces- sor reads the upper four (or more) bits of the main processor address. If the present page of memory has been written into, then the new contents of the page must be restored onto the external store. The new page must be read in from external storage and placed into the memory page. The page written latch is reset, since we will want to know if the main processor changes the contents of the page. Finally, the page address register is updated. This releases the main processor to continue processing as though nothing had happened. It never noticed that the paging processor took over. The mechanism of storage used by the paging processor is a detail of the design of the virtual memory system. It could use hard disks, floppy disks, 3M drives, digital or even audio cassettes. (A very ingenious commercial unit using a microprocessor and interpreter for the APL language runs such a virtual memory system on cassettes. Watching this little beast run its cassettes around while running a program is quite impressive. It features a 256 K byte effective address space . . . limited by the storage on a cassette. [See the MCM/ 80 SYSTEM INITIALIZATION PAGE FAULT INTERRUPT INITIALIZE PERIPHERALS SET MEMORY PAGE ENABLE INTERRUPTS WAIT FOR INTERRUPT ENDLESS LOOP IN MAIN PROCESS RESTORE PAGE TO MASS STORAGE READ NEW PAGE FROM MASS STORAGE CLEAR WRITE LATCH IF WRITE LATCH = THEN PAGE HAS NOT BEEN CHANGED SINCE IT WAS LAST READ WRITE LATCH = (NO NEED TO COPY DATA BACK IF IT HAS NOT BEEN CHANGED) NOTE: "WRITE LATCH" IS A HARDWARE FLIP FLOP TESTABLE BY SOFTWARE, CLEARED BY SOFTWARE, AND SET BY HARDWARE WHENEVER DATA IS STORED (WRITTEN TO) THE PAGING REGION OF MEMORY. Figure 3: What to do when a page fault occurs. This is a simplified flow diagram of a virtual memory sys- tem control process, in- cluding initialization and response to a page fault interrupt. It is assumed to be running in a micro- processor dedicated to memory management. RETURN FROM INTERRUPT 800 sold by Microcomputer Machines Inc, 2125 Center Av, Fort Lee NJ 07024.) A simple flowchart of such a paging proces- sor program is shown in figure 3. The main program is simply initialization followed by a wait loop. The reset function of the main processor also starts the paging processor. There is a small difficulty here: The memory page must be initialized by the paging pro- cessor before the main processor can use it. Some means must be found to keep the main processor busy while the memory page is being initialized. A oneshot triggered by the reset line (or by the paging processor), which holds the main processor in the wait state for sufficient time for the memory to be set up, will work. An output bit from the paging processor can also be used. The initial page would probably be the operating sys- tem. This brings up another interesting point. Since the entire content of memory is stored on an external, and nonvolatile medium, one can think of the entire memory space as a bit like ROM. A page can be write protected by not letting the paging processor restore that page from real memory. Such memory protection can be implemented by a ROM which is addressed by the page address lines from the main pro- cessor and which resets the page written latch. Thus, the page processor doesn't think that the page has been changed, and doesn't write on the external copy. Software in the page processor can implement program con- trol of "write protection." Another point is that if the main pro- cessor has ROM in its address space, one doesn't want the paging processor to waste time trying to page into that address area. A similar use of a ROM in the paging proc- essor can inhibit paging of certain pages in which the main processor ROM is located. With a virtual memory system, and perhaps memory mapping, there is often no need to do IO with large data blocks. Everything is, effectively, in memory ad- dress space and 10 is often hidden by the paging process. This can greatly simplify programs that use lots of data. Virtual memory systems are not espe- cially cheap. Using a floppy disk, a system such as I describe here would probably cost around $2000 to build. A single floppy stores about 256 K bytes; so with mapping, this system would allow a quarter megabyte address space. Think of wiring together two thousand 2102s! Think of the power supply that would require! Besides, 2102 chips cost much more than a dollar each. The virtual memory space could be doubled by adding another floppy drive. It should take quite a while for you to exceed these storage limits. When you do, the system readily expands. You're not likely to byte off more than your micro can chew." 81 An Introduction to Numbers Webb Simmons 1559 AlcalaPI San Diego CA 92111 The concept of fixed point numbers, scaled numbers and floating point numbers originated in the scientific computer en- vironment at a time when a computer was generally considered to be either a scientific computer or a business computer rather than the general purpose computer of today. Business computers used fixed point num- bers but designers felt no need to describe them as such because that was the only kind of number used. Some business computers used decimal arithmetic rather than binary arithmetic and allowed a variable amount of decimal digits for various variables and values of programs. Some business com- puters referred to their decimal digits as characters and regarded every character whether or not it was a decimal digit as having a decimal digit value. But here we're concerned with the wider concepts of num- ber representation in a general purpose computer. In the general purpose machine we regard all numerical values to be binary numbers in some sense. The point in fixed point and floating point is not a decimal point but is a binary point. A binary point in a binary number plays the same role as the decimal point in a decimal number. The binary number 101 (meaning 101 J has the decimal value of 5. The binary number 10J has the decimal value of 2.5. The binary digit to the left of the binary point has the place value, positional value, of one; the binary digit next further left has the place value of two, then four, then eight, etc. The first binary digit to the right of the binary point has the place value of one half, then one fourth, one eighth, etc. Binary 1010.1010 is decimal 10.625. Conversion is seen by adding the digit's place values 10.625 = 8 + 2 + 0.5 + 0.125. The binary value in a register or memory location contains only binary digits as a succession of binary zeroes and ones. It has nothing in it that is explicitly a binary point. It is the responsibility of the programmer to decide the assumed position of the binary point. If the binary point is assumed to be to the right of the least significant binary digit, the value is an ordinary integer. Such a value is often called a "fixed point" number as in FORTRAN or PL/I. The binary point can be assumed to lie anywhere within the word or anywhere outside of the word. When the binary point is assumed to be fixed at any place other than at the right of the least significant bit (LSB) it is commonly called a scaled value, or scaled fixed point value. Any other fixed place- ment is a scaled binary number. Fixed Point Valu e ( I ntegt »rj 8 B its 7 6 5 4 3 2 1 1 ' 1 1 ' 1 I ° I 1 ] o ' 1- 165 DECIMAL 128 64 32 16 8 4 2 •1 UNSIGNED RANGE: TO 255 ASSUMED BINARY POINT Scaled F ixed Poi it 7 6 5 A 3 2 1 1 - 1 o 1 ' 1 I ° I i 1 1 1 1 - 20.625 DECIMAL UNSIGNED RANGE: 0.0TO31.875 16 8 4 2 '1 1/2 1/4 1/8 1 ASSUMED BINARY POINT 82 THE LOGICAL CHOICE-First in a series Logic Probe 1 is a compact, enor- mously versatile design, test and trouble- shooting tool for all types of digital applications. By simply connecting the clip leads to the circuit's power supply, setting a switch to the proper logic family and touching the probe tip to the node under test, you get an instant picture of circuit conditions. LP-1's unique circuitry— which combines the functions of level detector, pulse detector, pulse stretcher and memory— makes one-shot, low-rep-rate, narrow pulses— nearly impossible to see, even with a fast scope— easily detectable and visible. HI LED indicates logic "1", LO LED, logic "0", and all pulse transi- tions—positive and negative as narrow as 50 nanoseconds— are stretched to Vb second and displayed on the PULSE LED. By setting the PULSE/MEMORY switch to MEMORY, single-shot events as well as low- rep-rate events can be stored indefinitely. While high-frequency (5-10MHz) signals cause the "pulse" LED to blink at a 3Hz rate, there is an additional indica- tion with unsymmetrical pulses: with duty cycles of less than 30%, the LO LED will light, while duty cycles over 70% will light the HI LED. In all modes, high input impedance (100K) virtually eliminates loading prob- lems, and impedance is constant for all states. LP-1 also features over-voltage and reverse-polarity protection. Housed in a rugged, high-impact plastic case with strain-relieved power cables, it's built to provide reliable day-in, day-out service for years to come. PULSE LED OFF LO LED ON I HI LED ON HI LED ON nnM fr° 4 4 4 4 4 LO LED ON DURING PULSE tnANf.iTIONS PULSE t€D B I LEO ON.LO LED DOES NOT RESPOND TO NARROW PULSES Dunn pulsf i n n n LO LED ON . HI LED DOES NOT RESPOND TO NARROW PULSES CSC'S MULTI-FAMILY LOGIC PROBE 1. AT $44.95, IT DIGS UP A LOT OF INFORMATION WITHOUT BURYING YOUR BUDGET. HI/LO LED's— Display leve (Hl-logic "1", LO-logic "0"' of signal activity at node under test PULSE LED— Lets you know what's going on— and off. Indicates positive and nega- tive pulse and level transi- tions. LP-1 stretches pulses as narrow as 50 nano- seconds to full Vb sec. (3Hz pulse rate) PULSE/MEMORY Switch- PULSE position detects and stretches pulses as nar- row as 50 nanoseconds to 1 / 3 sec. Switch to MEMORY and it stores single shot and low-rep-rate events indefi- nitely; HI/LO LED's remain active Non-corrosive nickel- plated probe tip and clip leads— For reliable contacts and maximum life Protected— Features built-in reverse polarity and over- voltage protection; strain- relieved power cable Logic Family Switch— TTL/DTL or CMOS matches Logic "1" and "0" levels. , for greater versatility. High Input Impedance— 100K virtually eliminates circuit loading problems and is constant in both "0" and "1" states. CMOS position also compatible with HTL, HiNILand MOS logic EASY DOES IT 44 Kendall St . Box 1942 New Haven. CT 06509 TWX: 710-465-1227 West Coast office: Box 7809. San Francisco. CA 94119 TWX 910-372-7992 See your CSC dealer or call 203-624-3103 (East Coast) or 415-421-8872 (West Coast) 9 AM to 5 PM local time. Major credit cards accepted. Add $2.50 for shipping and handling in the U.S. and Canada on direct orders of 550.00 or less; $3.00 for orders over $50.00. On all foreign orders add 15% to cover shipping and handling. Circle 22 on inquiry card. The values which can be represented as an integer in one 8 bit byte arc from zero to 255 when all values are considered to be unsigned, and therefore positive. In signed two's complement notation the fixed point values in one byte are the integers from -128 to +127. In either case there arc 256 different values possible, of which all are integers with no fractions permitted. Scaled fixed point binary is not often used except as a part of a floating point word. When scaled numbers were widely used in earlier computers, the binary point was frequently placed, or assumed to be placed, in the center of a long computer word of 36 bits, 48 bits or 60 bits in length. Another common placement used was at the left of the most significant bit (MSB) but to the right of the sign bit of a two's comple- ment number. In scaled values of this type the values are always less than one and greater than minus one. Many modern large computers have instructions to facilitate operations on these fractional scaled values. Signed Scaled Fixed Point Values ASSUMED BINARY POINT Scaled fixed point values will not figure strongly in our futures, except in those rare cases where speed or other application dependent criteria require optimization. For signed and scaled fractional two's complement numbers, the largest binary value is .1 11 1 1 II and the smallest binary value would be I .0000000 where the digit to the left of the binary point is the sign bit; however, if we are to limit the range to fractional values, we must throw out the 1.0000000 state and treat 1.0000001 as the most negative value. This leaves us with 255 states ranging from +(127/128) to —(127/128) or performing the division, +.9921875 to -.9921875. Extending Precision The fact that a particular computer uses bytes for its memory storage and registers does not mean that a datum must be one byte. A unit of data can be any number of bits regardless of the computer word length. It can be 1 9 bits on a 1 3 bit word machine if you program such a construction. This would be unusual but it certainly is possible. It is customary to define the numerical data so that it will use 1 ,2,3 or some other whole number of bytes or words. Dividing data on memory address boundaries eases and simpli- fies programming. Scaled values were useful enough for many purposes but their use was trouble- some to the programmer. If a value got too large, there was danger of overflow. If a value got too small, there was a loss of significance caused by too many leading zeroes and the danger of the value becoming zero. Special scaling factors had to be used from time to time to keep the problem in hand, and of course the effects of the scaling factors had to be removed when the compu- tations were completed. The invention of floating point numbers cured most of the scaling difficulties. Enter Floating Points A floating point number has two parts for each value. One part is a fraction which is a scaled fixed point number as described above. The fractional part has many names. It may be called the fraction, mantissa or coefficient. The typical floating point num- ber has a fraction whose absolute value is always less than one. The minimum frac- tional value is determined by the base of the other part of the floating point number. This other part of a floating point number has been called the exponent, power or charac- teristic depending on whose description you read. It is the exponent or power to be applied to some base (also called the radix) that forms a scaling factor. The value of the number is the fractional part multiplied by the base raised to the power of the ex- ponent's value. For many years the base for the exponent part of a floating point number was almost invariably two. For a base radix of two a nominal minimum absolute value for the fractional part is one half. We set up our hardware or software to force the most significant bit of the mantissa to be one, in order to "normalize" our numbers. Simi- larly, for each possible base we constrain the fractional value: For a base of four the minimum fraction value is one fourth. For a radix of eight the minimum fraction is one eighth and for 16 it is one sixteenth. IBM System 360/370 uses a radix of 16 for the exponent base in floating point numbers and so do various other computers and systems. Whatever the radix for the exponent, when- ever the fraction is greater than or equal to the minimum value for that base, the float- ing point number is said to be normalized. (In order words, it is the "normal" or "best" form.) There is very little standardization among floating point numbers. The radix for the exponent's base may be two or it may be ten 84 FLIP OVER OUR FLOPPY Only $750 from Peripheral Vision. Peripheral Vision is a brand-new company that's dedi- cated to selling reasonably priced peripherals for various manufacturers' CPU's. We think you'll flip over our first product. It's a full-size floppy disk for the Altair-lmsai plug-in compatible S-100 BUS. And it's available for as low as $750. Here are the features: • 1 interface card supports 4 drives • Stores over 300,000 bytes per floppy • Bootstrap EPROM included — no more toggling or paper tape • Completely S-100 plug-in compatible • Interface cabling included • Drive is from Innovex (the originator of the floppy concept) — assembled and tested • Interface card design is licensed from Dr. Kenneth Welles and the Digital Group • Disk operating system with file management system included on floppy • Cabinet and power supply optional Now, a little more about our company. Peripheral Vision may be brand-new, but we have some old-fashioned ideas about how to run our business. We know there are serious incompatibilities among the different manufacturers' peripherals and CPU's. We want to get them together. And, we want to bring significant new products to market — products consisting of everything from adaptation instructions/kits for hardware and software to major new products. It's a tall order, but we feel we're up to the task. Peripheral Vision has already obtained a license from The Digital Group to adapt versions of some of their prod- ucts to the S-100 BUS. And we're working on getting more from other companies. Most important to our customers, Peripheral Vision is committed to helping you get along with your computer. We'll do all we can to make it easy. Write us now for all the information on our company, our philosophy and our exciting line of products. And be prepared to flip over all of it. Prices: Interface card kit and assembled and tested drive Power supply — +24V at 2A Cabinet — Optima, blue Circle 23 on inquiry card. Kit S750 45 Assm. $850 65 85 RO. Box 6267 Denver. Colorado 80206 (303) 733-1678 Send me the works, and I just might flip over it! Name . Address. City/State/Zip. Table 7 : This is a summary of the nominal maximum relative error that occurs for different field widths. The field widths are measured in bits. The max- imum error column is cal- culated as being the maxi- mum error or change in value that occurs if the least significant bit is lost or changed. The decimal digits column indicates the number of decimal digits which are unaffected by relative error in the repre- sentation. or even 1 6. Within a floating point word the bits for the exponent can be either before or after the fraction. The number of bits for the exponents vary widely in different sys- tems as do those for the fractions. There are various schemes for showing the signs for the exponents and the signs for the fractions. The dynamic range of values allowed for a floating point number is determined pri- marily by the radix for the exponent and the number of bits in the exponent. The IBM System 360 and 370 hardware uses an 8 bit exponent of which one bit is used to take care of the sign for the exponent (it is not truly a sign bit but the overall effect is much the same) and one bit handles the sign for the fraction which leaves six bits to deter- mine the value of the exponent. The largest value in six bits is 63 which, when applied to a base of 16, produces 16^3 or approxi- mately 7X1075. The smallest positive ex- ponent is equivalent to 1 6 64 or approxi- mately 9X10~78 These exponents must be multiplied by some fraction between 0.0625 and 1 to get the final value of a floating point word. The exponent for a Univac 1 100 series computer is nine bits which loses two bits for the signs. The remaining seven bits would seem better than the remaining six for the System 370 except that the radix of the exponent is two. The largest exponent is 2127 or approximately 1.7X1038 and thus much smaller than that for the IBM version. The Univac double precision floating point word allows numbers to 21024 or approxi- Number of Maximum Decimal 3 its Values Error Digits 2 4 .250 3 8 .125 4 16 .063 1 5 32 .031 1 6 64 .016 1 7 128 8E-3 2 8 256 4E-3 2 9 512 2E-3 2 10 1k 1E-3 3 11 2k 5E-4 3 12 4k 2£4 3 13 8k 1E-4 3 14 16k 6E-5 4 15 33k 3E-5 4 16 66k 2E-5 4 17 131k 1E-5 5 18 262k 4E-6 5 19 524 k 2E-6 5 20 1M 1E-6 6 21 2M 5E-7 6 22 4M 2E-7 6 23 8M 1E-7 6 24 17M 6E-8 7 25 34M 3E-8 7 26 67M 1E-8 7 27 134M 7E-9 8 28 268M 4E-9 8 29 537M 2E-9 8 30 1G 9E-10 9 31 2G 5E-10 9 32 4G 2E-10 9 mately 1.8X1 0^8 which is pretty impressive. The precision, or accuracy limit, of a floating point number is determined by the number of bits in the fraction part. Just in case you're mistakenly tempted to regard accuracy and precision as being the same, let us learn to distinguish between them. Pre- cision relates to the ability to differentiate between value representations that are nearly the same. In terms of decimal values the precision can be to eight significant digits but if the accuracy is less than the precision then some or all of these eight digits are nonsense. Accuracy cannot exceed precision. Precision can be defined as the maximum possible relative accuracy. You cannot easily ascribe a precision to a 1 bit field because there is only one nonzero value possible. In spite of slight conceptual error it is often convenient to regard the precision as the representional error caused by the vari- ation of one in the least significant bit position for a field width in bits that does not include leading zero bits. Using this method for two bits we can stipulate four values, so we can say the precision is about 25%. From this point let us decide to give precision as the precision in bits in the bit field that does not include leading zero bits. Then, for each such precision, we can compute an error that will have nothing at all to do with accuracy beyond placing a limit on the accuracy. This is equivalent to saying that a method or procedure which produces a value can be totally wrong but this does not reduce the precision in the value as it is represented. We can claim the square root of 4 to be 1 .389567. This square root is quite precise but not very accurate. When one thinks of errors it is usually errors caused by all inaccuracies rather than just those errors caused by precision of expression: However, for the remainder of this article I will take a narrow view of errors and assume they are all caused by precision only. The nominal maximum relative errors for different field widths, measured in bits, are summarized in table 1. Our approximate rule for the maximum error in a 2 bit value gave us 25% when the true value was about 20%. As the field width in the number of bits increases the approximate rule improves and is close enough in any case. It is important to remember that the effective field width does not include leading zeroes. The floating point fraction on the Uni- vac 1108 (Univac calls it the mantissa) is 27 bits wide and the most significant bit is 86 always set for positive values. Thus the precision, expressed as the maximum repre- sentational error, is about one part in 10§ and is equivalent to seven or eight significant decimal digits. The single precision floating point fraction on the IBM System 370 com- puters is allowed a width of 24 bits but because the exponent radix is base 16, the normalized fraction can have from none to three leading zeroes. The precision therefore varies from an error of about one part in 1 0^ for 24 bits to one part in 10? for 21 bits. The equivalent decimal precision is about six or seven significant decimal digits. The IBM fraction is not quite as good as Univac's but the dynamic range allowed by the floating point exponent is greater. Both are greatly inferior to the CDC machines with their 12 bit exponent and 48 bit mantissa in a word of 60 bits. It is not customary to use a signed value in the exponent part of floating point numbers. The more usual arrangement is to bias the exponent by adding a constant. The exponent range for the IBM floating word is from 16~64 to 1 6^3 j ne 16 is not shown but is assumed. IBM adds 64 to the ex- ponents so that the floating exponent part for the value 16—64 is zero and for 1663 is 127. A floating value of one is equiva- lent^ 16X1/16=1 which yields binary 01 000001 0001 00000000000000000000 as a single, 32 bit value. In hexadecimal this is 41100000. The exponent part in hexa- decimal is 41. Table 2 shows a summary of the binary and hexadecimal digit placement as used by IBM. Negative floating values are typically formed one of two ways. The word as a whole is simply arithmetically inverted or else only the sign bit is inverted. Either of hexadecimal 4 110 binary 01 000001 0001 00000000000000000000 Table 2: The breakdown of a sample number of a 32 bit word into binary and hexadecimal digit groups. these methods is satisfactory and neither changes the dynamic range of the exponent nor the precision of the fraction. Many IBM users go to double precision floating point because the precision equiva- lent to 6 decimal digits is not sufficient for their needs. In this case the exponent, and the dynamic range, is not changed but the fraction width is increased to 56 bits which is equivalent to about 17 decimal digits. Double precision on the Univac allows 12 bits for the exponent, versus the single precision 9 bits, and 60 bits for the fraction, versus the single precision 27 bits. Double precision on the CDC machines is almost ridiculous — the exponent is essentially repeated in the second word which allows 96 bits for the fractional part which is equivalent to more than 30 decimal digits! If I were writing a complete programming system for an 8 bit byte machine, I would not use a 4 byte copy of the IBM floating word but would use two bytes for the exponent with an exponent base radix of two rather than 16 and four bytes for the fraction part. A 32 bit fraction is equivalent to about nine significant decimal digits and the exponent range would be ridiculously large. Or maybe one should use the IBM method but adding two bytes to the fraction part. My point here is that I personally do not like a word with only six decimal digits of precision." The COMPUTALKER Model CT-1 optimizes the trade-off between low data rate speech and directly 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 1 OK to 20K bytes per second of storage and is inflexible to phonetic manipulation. With the 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. 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 CT-1 can also be operated in a low data rate mode using phoneme definitions contained in the CSR1 Synthesis-by- Rule software package. The COMPUTALKER speech synthesis system, used in this way, has the advantage that the software driver can easily be modified to keep the naturalness and intelligibility of the speech output up to date with the constantly evolving state of the art of rule governed speech . SPEAK "KAAMPYUTAOLKER" WRITE FOR INFORMATIVE LITERATURE COMPUTALKER CONSULTANTS P.O. BOX 1951, DEPT. B., SANTA MONICA, CA 90406 CALIFORNIA: Long Beach, CA 90815 A-VIDD Electronics [213]S98-0444 Lawndale.CA 90260 Byte Shop of Lawndale [213]371-2421 Orange, CA 92667 The Computer Mart [714)633-1222 Santa Monica, CA 90401 The Computer Store [213]451-0713 GEORGIA: Atlanta, GA 30305 Computer Systems Center [404]231-1691 INDIANA: Bloomington, IN 47401 The Data Domain [812] 334-3607 KANSAS: Kansas City, MO 64113 Micro-Corn, Inc. [8161333-8383 MICHIGAN: Royal Oak, Ml 48073 Computer Mart of Royal Oak [313] 576-0900 NEW JERSEY: Hoboken, NJ 07030 Hoboken Computer Works [2011420-1644 OREGON: Portland, OR 97201 Byte Shop of Portland [503] 223-3496 VIRGINIA, WASH. DC; Fairfax, VA 22030 Roberts Information Services, Inc. [703]560-6119 CANADA: Toronto, Ontario/Canada M5V 1Z1 The Computer Place [416] 598-0262 ENGLAND. London NW6, England Compelec Electronics GERMANY, AUSTRIA: 8011 Munich-Putzbrunn Datameg Div. of Megatron KG [089] 46 50 66 JAPAN: Shibuya-ku, Tokyo, Japan Pax Electronic! [03] 370-2751 87 Circle 24 on inquiry card. SYNCHRO-SOUND Enterprises Your Small Computer Department Store >] »*.i il»]»]»] I i [*■(*] Hardware and Software Compare our PRICES, PRODUCTS, QUALITY, »] 3 n VI J : W*ci a :Vi m : you need in small computers, terminals, printers, monitors, keyboards, accessories. We'll meet or beat competitive prices on everything we sell! LEARSIEGLER ADM-3A TERMINAL 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 uppercase, plus punctuation and control. Communications Rates— 75 to 19,200 Powerful • Easy to use • Low cost With 22 Slot Mother Board.. .$619.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 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 $839.95 i ADM-3A Assembled .1079.95 Lower Case Option 89.00 I SPECIAL BUYS HAZELTINE Modular One Video Terminal $1639.00 959.00 2769.00 2595.00 989.00 599.00 2095.00 300.00 29.95 69.95 ilivery SORAC IQ120 Video Terminal Kit DEC LA180 Printer COMPUCOLOR8001 Color Graphics Computer ICOM Microfloppy Disc & Controller. . . NORTH STAR Microfloppy Disc & Controller OKIDATA Model 22 Printer OMNITEC401C300 Baud Modem 2708EPROMS OAE Papertape Reader SOL 20 In Stock For Immediate De 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)! 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 Please send me further nformat on on (list items) Price List a City State Zip Circle 25 on inquiry card. DeskTop Wonders Jeu de NIM, Peut Etre? We recently received the following from Alain Chance' in Paris. Alain is a confirmed SR-52 fan, as his letter so amply indicates. It, just goes to show that enthusiasm for small systems programming is by no means limited to the US. Alain Chance 20 rue de Longchamp 75116 Paris FRANCE I am an enthusiastic reader of your maga- zine. Since I own an SR-52 with PC-100 printer attachment, I have read "The Buried Gold in the SR-52"and "DeskTop Wonders" [December 1976 BYTE, pages 30 and 92} with great interest. But I think that the register organization offers a much more fantastic ability: By the use of memory functions and program storage registers, a program can alter itself! '^A^ "That funny black caterpillar you just killed will set you back five bucks. " By Duane Bibby To find out the correspondence between codes and program register contents, we execute the following sequence using the SR-52's 2 digit keycodes: *7TEE 12 STO 70 *rset "list and we get: display = 3.141592654 12 printout = 000 20 001 01 002 00 003 54 004 26 005 59 006 41 007 31 The following program should prove very useful to SR-52 enthusiasts: 000 001 002 003 004 005 006 007 008 009 *LBL 010 A 011 012 0130 0140 015*rtn 016 *LBL 017 B 018 EE 019 5 020 8 021 + 022 RCL 023 7 024 1 025 = 026 STO 027 7 028 029 *rtn 030 031 To see how it works, perform the following sequence: * 77 STO 05 5 STO 97 Input 0.7094336 Press B, display = 5.607094336 60 Press A, display =3.141592654 00 The A function operates exactly the same way as if we had keyed in the following steps (in the learn mode): *IND RCL 97 To replace those four steps by GTO 123 (whose codes are 41 01 02 03), we would merely input .3020141 and press B. This unique feature opens a new dimen- sion in programming. For SR-52 games hunters, I offer the following version of NIM which allows up to nine rows of 1023 pawns each. (This pro- gram should be run with the PC-100 printer.) 90 Program Listing v^SR-52 CODING FOR NTH VI - KODE AGE /SEITE/P a CM A FORM ~ FEUILLE ARF A DE PROGR/ OF/VON/DE DATUM /DATE iMMATION ^ PROGRAMMER/ PROG HAMM1ERER/ PROG RAMM EUR _ r\l0.t .hl-CE DATE / iin_a*0tW7« Loc. Code ; Key Comments Adf. ;Kodej Taste Bemerkungen Adr. ' Code | Touche Commentaires Loc. Adr. Adr. Code Kode Code Key Taste Touche Comments Bemerkungen Commentaires Loc. Adr. Adr. Code Kode Code Key Taste Touche Comments Bemerkungen Commentaires Labels Label Labels t ne'e •JS2 ! w© ' , „ *LBL A 00 00 . nombrc de M rionS aoumtro o B B ' g^CtCt-oo-1) 1 li _L»». "JO * 11x16 STO 3 9 8 o| 1 C1UL0O «OC7 j_?S o o D" I 3 8 *prt 085 55 4- p. =o SC p»CP, *o ii Impair _.i_8£ +■ 4-2 STO Mn'mo.7,.^ n ""' 5 "" 16 T *A' + tBL 4-S" r" co utilise p«wr I'uiit i*ocrtf n OO M0 « u * A' K' 4-3 RCL 01 cchticnnchl M *LftL i o| 1 of C 02 le howbre 87 * 1 » 1 SO 090 399 o7 7 03 I 9 | 7S - 17 *&' ... J2 INV J t» 80 ! "if pos oo 1 oo o o ^36 *jto.b Acs Srangte B55 oo tpft 5-6 "rtn io «•< *LBL 1 'contienrwht s T 6 *LSL 10 W e' * tc' '2 i le hotrvbre "■2 *b' I B' 100 31* 85" + l3 dc ptohs oi £ At chrome »5 = ,5 dts 9 rjhje* •1 | 3 ] 065 J* 3 RCL 15 E "expritnt « ! STO 1 1 OO o r5 ■*» 'Vht it o o 105 °t 2 Ia 4ysttmc "■Mil o« £ t S"S * 75- - "clCCtlT*^! o 5 ol i "Lai. FUJI f l«Bi ol I 1 U70 55 IS" E E if , *IM6 Si *rtr> b, ignore it. 90 2B DCX H 91 7E MOV A,M 92 91 SUB C 93 23 INX H 94 7E MOV A,M 95 98 SBB B 96 DA 49 OD JC LOOP if operand is < a, ignore it, 99 2B DCX H HL points to B2--B3 again 9A EB XCHG 9B 2A E8 OD LHLD DISP get displacement value; 9E EB XCHG 9F 7E MOV A.M add to B2 - B3 ; A0 83 ADD E A1 77 MOV M,A A2 23 INX H A3 7E MOV A.M A4 8A ADC D A5 77 MOV M.A A6 C3 49 OD JMP LOOP go look for more 3 byte operations; A9 7C COMPH MOV A,H complement H L; AA 2F CMA AB 67 MOV H,A Hexadecimal Address Code Label Op Operand Commentary ODAC 7D MOV A,L AD 2F CMA AE 6F MOV L,A AF 23 INX H BO C9 RET d and e) hit stop. You should see C3 in the data LEDs of an Altair or IMSAI. That's it! Now the program should run right where you loaded it, unless one of the following problems occurs. Relocating to a Lower Memory Location The block move (phase 1) is clone tail first. For a block of length n, then, byte n of the source would be transferred to byte n of the destination, then byte n— I would be moved, then n— 2, etc, up to byte 1. There- fore, relocating forward into higher memory always works, but relocating backward into lower memory fails if the difference between the source and destination addresses is not greater than the block length. In such a case, say moving a block at b to location a, an intermediate relocation must be done from b to c (where Ic— al > length of block), and then a second relocation must be performed from c to a. Note: I could have had the relocator check the direction of the move Hexadecimal Address Code Label Commentary 0DB1 01 11 21 TABLE3 table of 3 byte op codes; B4 22 2A 31 B7 32 3A C2 BA C3 C4 CA BD CC CD D2 CO D4 DA DC C3 E2 E4 EA C6 EC F2 F4 C9 FA FC CB 06 OE 16 TABLE2 table of 2 byte op codes; CE 1E 26 2E D1 36 3E C6 04 CE D3 D6 07 DB DE E6 DA EE F6 FE DD 00 00 SSTRT source start a; DF 00 00 SBOT source bottom b; E1 00 00 DTOP destination c; E3 00 00 START start phase 2 d; E5 00 00 STOP end phase 2 e; E7 01 FUNK function select f; E8 00 00 DISP displacement (program definedl; Figure I: A special case in program reloca- tion. The program block a thru b is to be moved to location c, but the integrity of the data block from f thru g must be preserved. The technique in this case is to change pro- gram references in two passes: up to, but not including, the data block, and then after the block. Locating all data at the end of programs will of course prevent this type of problem. source block data area destination block start of program end of program 94 and proceed either tail or head first accord- ingly, but the program is long enough to cause toggling headaches as it is. Problems with the LXI Instruction LXI instructions in which the operand happens to equal an address in the block between a and b but doesn't actually refer to an address (LXI H, 0000 is a good example) present a problem. If you are in the process of writing the program try to use LHLD instead (or, if worse comes to worse, LHLD with MOV B, H and MOV C, L for LXI B, xxxx) and set aside two bytes of storage at the end of the program for the data. If the program was not written by you, or if you really want to use LXI, then the only alternative is to go through your listing (if you have one!) and change the locations in question. But this problem never caused me much trouble. Data Block Problems Avoid relocating data whenever possible. If relocation is necessary do not try passing through it with phase 2. Here is an example of how to handle data areas: In a program residing from location d to location e, a block starting at a and ending at b is to be moved to location c. As a complication, a data block resides from location f to loca- tion g. See figure 1 for a memory map of this situation. The relocation should be performed in two runs of the relocator as follows: Run 1 . Give relocation data of a, b, c, d, f-1 , 1 . This moves the block and fixes all references up to loca- tion f, the start of the data area. Run 2. Give data of a, b, c, g+1 , e, 0. This simply fixes up the remain- ing references after skipping the data area. [Here again the practice of keeping data separate from executable code should allev- iate this problem. . .CH/ In the listing provided the relocator re- sides at locations 0D00 to 0DFF, but it is self-relocatable, of course. The six key items of relocation data must be set up at loca- tions 0DDD to 0DE7 as shown in table 1, with the low byte coming first numerically in each case. I sincerely hope that this program repays your understanding and toggling efforts with a vast reduction in relocation frustration. ■ The value of this program becomes apparent when a friend having 32 K on his machine hands you a tape of a program he wrote residing somewhere up in the sky (or so it seems to you, with only 4 K), and you would like to run it. THE SAME 8K STATIC MEMORY KITS YOU'VE PURCHASED IN THE PAST, NOW ASSEMBLED AND TESTED 79G HAMPSHIRE RD..A+ B WESTLAKE VILLAGE. CA 91361 TEL: (805)497-0733 3 CT APHC inc. 'FAST 8" $275 SPECIFICATIONS: Access Ttme-. Power Consumption: Address Lines: Memory Protect: Power Regulators: Address Select: Output Disable. Board: ABY" $265 "Fast 8'"250 ns, Fairchild : 2102LHPC "8K BABY" 450 ns, Fairer** 2102L1PC No Wait States "Fast8",1.6Aat+5V "8K8ABY".13Aat+5V Schmltt triggers tor buf- fering Hardware 8K 4ea,7805 Dip switch accessable from top of board. No need to remove board to re- locate. Permits use with trans- parent loader Quality G-IO material with solder mask both sides Not affiliated with Vector General, Inc. 95 Circle 9 on inquiry card. BASICally BASIC (an informal introduction to BASIC) Robert Baker 15 Windsor Dr Atco l\IJ 08004 The BASIC programming language was developed in the early 1960s at Dartmouth College as a conversational, problem solving language. It has wide applications in scien- tific, business, and educational environments since it can be used to solve both simple and complex mathematical problems from the user's terminal. Due to the small number of clearly understandable commands and pro- gramming statements required, BASIC is one of the simplest languages to learn and use. Like most programming languages, BASIC can be divided into two sections: elementary statements for simple programs and more advanced techniques and state- ments for complicated problems. As an introduction to BASIC, this article deals primarily with the elementary functions and statements recognized by BASIC as it is most frequently implemented, with program examples included to illustrate their applica- tions. Several operating commands and a few of the more advanced features found in some BASIC systems will also be mentioned. The specific features available on each computer system will differ slightly, forming many different dialects of the BASIC lan- guage. When writing programs to be com- patible with different systems, it's general practice to use only elementary statements common to most forms of BASIC. The BASIC programming manual or equivalent documentation should always be consulted to verify the commands and statements actually available and the conventions used for a particular system. BASIC Operating Commands After gaining access to BASIC in what- ever manner required by a particular system, BASIC will normally respond with a message indicating it is waiting for a command. The various operating coi'nmands depend on the BASIC implementation used. Several of the commands usually available are: OLD: Load a previously saved pro- gram. BASIC may request the old program (or file) name, depending on the system. NEW: Enter (or write) a new pro- gram from the console. BASIC may request a pro- gram (or file) name de- pending on the system. LIST: Print the current program on the console. Some systems may allow printing individual lines or groups of lines. RUN: Compile and execute the cur- rent program. Some systems may allow starting at a parti- cular line. SAVE, RESAVE, or REPLACE Save the current program. UNSAVE, PURGE, or SCRATCH Delete the current program. BYE, GOODBYE, or SYSTEM Exit BASIC. In addition, some systems may accept abbreviated commands or offer various editing commands to possibly delete lines, resequence line numbers, etc. Most BASIC interpreters will usually type READY when waiting for an operating command. New lines are inserted by simply typing a line number followed by the desired instruction terminated with a carriage return. Line numbers and individual instructions will be discussed later. Fundamental Programming Concepts What does it take to represent a program in a high level language such as BASIC? As 96 SATISFY YOUR APPETITE FOR COMPUTER KNOWLEDGE WITH SAMS COOKBOOKS Send for the cookbooks and manuals described. Increase your knowledge of minicomput- ers, microprocessors, computer technology, related computer circuits and peripheral equip- ment. Be satisfied or your money back. How To Buy & Use Minicomputers & Microcomputers By William Barden, Jr. This manual gives you the basics of minicomputers and microcomputers. Explains their hardware and software, the peripheral devices available and various programming languages and techniques. Allows you to decide which system is best for your needs. 240 pages; softbound. No. 21351 $9.95 Microcomputer Primer By Mitchell Waite and Michael Pardee Written for the beginner in the computer field. All the basic concepts and characteristics of microcomputers are explored. The easy to under- stand language prepares you for further study. 224 pages; softbound. No. 21404 $7.95 CMOS Cookbook By Don Lancaster Your complete guide to the understanding and use of Complementary Metal-Oxide- Silicon integrated circuits. Gives usage rules; power supply design examples; applications; information on breadboards, testing, tools, and interface. Detailed coverage of logic and more. 416 pages; softbound. No. 21398 $9.95 The Big CMOS Wall Chart 35" x 23" Big, readable wall chart provides essential information on CMOS devices. No. 21399 $2.95 Dl m POUTER Sag Computer Dictionary and and Handbook By Charles J. Sippi & Charles P. Sippi At your finger tips you have more than 22,000 definitions, acronyms, and abbreviations dealing with the field of data processing. Also 13 appendices cover a myriad of computer related subjects. 784 pages; hardbound. No. 20850 $19.50 TTL Cookbook By Donald E. Lancaster You'll discover what Transistor-Transistor Logic is, how it works and how to use it. Discusses practical digital applications. You'll learn to build TTL systems that entertain, test and train. 336 pages; softbound No. 21035 $8.95 User's Guide to TTL (Wall Chart) 35" x 23" Shows you needed information on TTL devices at a glance. No. 20180 $2.50 o o TV Typewriter Cookbook By Don Lancaster Your comprehensive guide to low cost television display of alpha-numeric and graphics data for microprocessor systems, word processing, TV titling and video games. Covers configurations, memories, keyboards, techniques and much more. 256 pages; softbound. No. 21313 $9.95 Send your order Today! Send books and/or wall charts checked below, $ enclosed*. I understand that, if not completely satisfied, I may return my order within 10 days for a full refund. □ 21351 □ 21399 □ 21080 □ 20969 □ 21404 □ 20850 □ 21313 [J 20715 J 21398 F] 21035 □ 21168 'Include sales tax where applicable. Canadian prices slightly higher. ad; Active-Filter Cookbook By Don Lancaster Dynamic coverage of active filters. What they are and how to use them. Learn to build and apply them to audio equalizers, speech therapy, psychedelic lighting and more. 240 pages; softbound. No. 21168 $14.95 :t NAME please print ADDRESS o 1— CITY "0 STATE ZIP o c a Howard W. Sams & Co., Inc. 4300 West 62nd Street Indianapolis, Indiana 46206 IC Op-Amp Cookbook By Walter G. Jung Now one book gives you in-depth exposure to IC op amps. Covers theory and over 250 practical circuit applica- tions. 592 pages; softbound. No. 20969 $12.95 RTL Cookbook By Donald E. Lancaster You will learn the how and why of Resistor-Transistor Logic. Obtain useful design information and many digital applications. 240 pages; softbound. No. 20715 $5.75 Circle 26 on inquiry card. irator Exampl e Description + A+B Add A and B + + A A is positive - A-B Subtract B from A - -A A is negative * A*B Multiply A times B / A/B Divide A by B T * * AI B A»*B ! A to the power B Table I: Arithmetic Operators. A typical BASIC interpreter incorporates an arith- metic expression parsing algorithm which recognizes the usual add, subtract, multiply, divide and exponentiate operations. Pre- cedence is described in the text, and parentheses are used for explicit ordering of operations. with any computer language, BASIC uses certain notations for numbers, variables and operations. Numbers The computer can compute the value of expressions like 12/7 or SQR(9); but while they use numbers, they arc not considered numbers and may not be used in lists of constant data. Numbers are self defining values which are generally expressed in decimal form and may be positive or nega- tive (ie: 3 or -2.79. Most BASIC languages will also allow scientific notation for num- bers, where the letter "E" is used to signify 10 raised to a power. A number expressed in this form, such as aEb, would indicate "a" times 10 raised to the power "b". Thus, 0.125 may be expressed as 0.125E0 or 125E-3, and 1000 may be written as 1E3 or 10E2. With scientific notation, a number must always be present on both sides of the letter "E", and may be either positive or negative. There is usually a maximum num- ber of digits allowed with either number notation depending on the particular com- puter and BASIC implementation. Variables Simple numeric variables arc generally specified by any single letter or any letter followed by a single digit. Thus, E7 would be interpreted as a variable along with A, B, C2, and X0. Certain computer systems may allow more advanced variable labeling. But if you expect compatibility with other BASIC systems, it is best to use this restricted, simpler form. Numeric variables represent a number with a value. The value is assigned to the variable by either LET or READ statements. An assigned value will not change until the next LET or READ statement which ex- plicitly changes the variable. In the typical BASIC interpreter, all numeric variables are initially set equal to zero before a program is run. It's only necessary to assign an initial value to a variable when a value other than zero is desired. Arithmetic Operators Arithmetic computations in a language like BASIC arc performed by evaluating single line formulas similar to those used in standard mathematical calculations. Any of the arithmetic operators listed in table I may be used to write a desired formula. In computations utilizing multiple operators, the order of precedence is determined by a very conventional set of rules: 1. A formula inside parentheses is evalu- ated before the parenthesized quantity is used in a computation. 2. Normally, an operator cannot follow another operator. The operators + and — can, however, follow the operators *, /, t or **, In this case, the + or - takes precedence over the leading operator to indicate the sign of a quantity. 3. Without parentheses in a formula, ** and t take precedence over * and /, which take precedence over + and 4. With only * and / operators and no parentheses, BASIC performs the operations from left to right in the order they arc read. 5. With only + and - operators and no parentheses, BASIC performs the operations from left to right in the order they are read. The following examples will help illustrate these rules and how a BASIC interpreter typically executes various computations: B+3*A**2 «■ A squared times 3, then added to B B+(3*A)**2 ♦» Product of 3 times A is squared, then added to B (B+(3*A))**2*» Product of 3 times A is added to B and the sum is then squared A/B/C «* Quotient of A divided by B is then divided by C A B— C ** C is subtracted from the result of B sub- tracted from A A #* 2 **3 <-> The result of A squared is then cubed 98 Extensys Corporation The most cost effective products for your |f microcomputer, iff CGM77H JNlss^ * 7 "*^? 1 THE RM64 MEMORY BOARD provides the most cost effective means for system memory addition in the industry. The board is S-100 bus compatible making it usable in over a dozen different microcomputer systems including ALTAI R and IMSAI . It comes in three configurations: 32K, 48K or 64K bytes and is completely assembled, checked out and burned in for at least 50 hours prior to shipment. This complete testing procedure enables EXTENSYS to provide you a one year warranty on parts, labor and materials (assuming no misuse of the board occurs). On board hardware is provided for: Individual memory bank address selection in 8I< increments; Complete dynamic refresh logic without loss of processing efficiency while programs are running; . Board select logic which allows more than one 64K byte board per system; . S-100 bus compatibility including on-board voltage regulator; Memory overlap which allows memory sharing the same address space to coexist in the same system; and . Write protection in 16K blocks THE CGM77 COMPUTER GRAPHICS MACHINE is a fully tested system that provides the basis for developing the most sophisticated video graphics imaginable. The CGM77 board is S-100 bus compatible, making it usable on over a dozen different computer systems. The only additional components needed for a complete video graphics system are 8K bytes of RAM interfaced to the microcomputer system. The EXTENSYS RM64-32K RAM board is ideally suited for this. Special control panels are available that provide universal control for interfacing with the graphics board. Output of the board is in the form of composite sync that can be used directly by a high resolution video monitor. The heart of the system is the EXTENSYS GRAPHICS MACHINE. This is a sophisticated piece of software developed by EXTENSYS for the rapid implementation of video graphics. The GRAPHICS MACHINE permanently resides in PROM chips that are part of the board and therefore never need to be loaded. The GRAPHICS MACHINE software actually transforms the microprocessor into a much more powerful and sophisticated computer whose instruction set is ideally suited for the development of video graphics or video games. Contact your local computer store ___________ or order directly from EXTENSYS | _j _ B-l Please place my order for the following; QTY DESCRIPTION AMOUNT RM64-32K byte board _ S 895 ea. RM64-48K byte board @ $1195ea. RM64-64K byte boards $1495 ea. CGM77 computer graphics board @ $ 375 ea. Subtotal California residents add m% tax TOTAL Shipping and handling prepaid in continental United Slates NAME extensys _____■_# co r po rat ion 592 Wedded Drive Sunnyvale, California 94086 lease check method of payment; Check Enclosed , BankAmericard No expiration date Master Charge No. expiration date ADDRESS- CITY .SIGNATURE: PHONEIINCLUDE AREA CODE) _ Circle 27 on inquiry card. Arithmetic Functions In addition to the five arithmetic opera- tions, a fully implemented BASIC inter- preter can evaluate several standard mathe- matical functions. The elementary functions available in a typical BASIC arc listed in table 2. Any valid formula may be substi- tuted for X in all of the functions. More advanced functions are often available and will be discussed later. Various other mathe- matical functions may be available de- pending on the individual computer system used. Sometimes extended nonarithmetic functions arc also made available. Relational Symbols When it is necessary to compare values, six mathematical symbols of relation are used in IF statements. Some systems may use the alternate written expressions, espe- cially when the terminals do not have the standard symbols. Table 3 lists the standard symbols and alternate forms of relational operations. Line Numbers In any BASIC program, each statement must include a line number as mentioned earlier. The first line is usually numbered 10 and all following line numbers are generally in steps of 10. This allows insertion of extra statements between existing lines by using a line number between the two lines where the statement is to be added. New lines arc correctly inserted by BASIC by using the line number specified with each statement. The only restriction on line numbers in a program is that each line number must be greater than the preceding line number. Elementary Programming Statements The elementary statements of the BASIC language are identified by the first word of the statement. Function Description SIN(X) Sine of X COS(X) Cosine of X TAN(X) Tangent of X COT(X) Cotangent of X ATN(X) Arctangent of X EXP(X) e raised to the power X (e x ) LOG(X) Natural logarithm of X (1n X) SQR(X) Square root of X ( >/x~ ) ABS(X) Absolute value of X ( IXI ) X is usually interpreted as an angle expressed in radians on most systems. X is always interpreted as a number. LET Statement The LET statement is used to assign a given number or the result of a calculation to a particular variable or group of variables. The general form of the LET statement is: LET [variable] = [formula]* *Any item shown in brackets will indicate a general form of an argument, such as: [variable] = any variable [line number] = any line number Table 2: Typical BASIC Mathematical Functions. The usual implementation of a full BASIC interpreter provides this list of built-in mathematical functions. The precision and range of numbers depends upon the details of the implementation and its number representation internally. With some BASIC implementations, the word LET may be optional in the statement. Examples of assigning a value to a single variable would be: 10 LETX=1 20 LETA=B*2/3 In many BASICs, several variables maybe assigned the same value by a single LET statement, such as: 30 LETX=Y2=B=4 Also, a variable may appear on both sides of the equal sign since the entire calculation is completed using "old" values of data before the result is assigned to variables on the left hand side of the "=" sign. For example, the statement: 100 LETX=X+1 will take the old value of X added to one and assign the result as the new value of X. The LET statement is not an algebraic equality, but a command to perform the computations and assign the answer to the variables specified. It is an unfortunate fact of computer language life that most lan- guages use the same "=" symbol for assign- ment (data transfer) and relational tests (data comparison). READ and DATA Statements These statements are used to enter infor- mation into the computer for a given pro- gram. The READ statement assigns values obtained from DATA statements to the variables listed in the READ statement. A DATA statement must be present in order to use a READ statement. Before a program is run, the typical BASIC interpreter will take all DATA state- ments in the order they appear and store them in a large data block. Every time a READ statement is encountered, the next available numbers from the data block are assigned to the variables in the READ statement. If the data block runs out of data, the program will stop and an error message will be printed. READ statements are normally located near the beginning of a program since data must be read in before working with it. DATA statements may be located anywhere in a program, as long as they occur in the 100 Talk to your computer for $ 299 with SpeechLaB. Use SpeechLab to directly control any S-100 Bus Com- puter such as Sol, IMSAI, 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- Streets City . State . Zip. In Canada: Trintronics Ltd. 186 Queen St. W. Toronto, Canada M5V 1Z1 Heuristics INC. Circle 28 on inquiry card. Standard Alternate Symbol Expression Example Description = = A = B A equals B < LT A < B A LT B 1 A is less than B <= LE A <= B A LE B 1 A is less than or equs > GT A > B A GT B 1 A is greater than B >= GE A >= B A GE B 1 A is greater than or e <> NE A <> B A NE B 1 A does not equal B Table 3: Typical BASIC Relational Operators. These operators are used to specify comparisons between operands which might be numbers, variables or formulae. In certain BASIC implementations, substitutes are made when special characters are not available. For example, in a homebrew computer system using an older Baudot Teletype model, such substitutions would be a virtual requirement. correct order. Many programmers find it convenient to place DATA statements just before the END statement at the end of the program. Each READ statement is of the form: READ [list of variables] While each DATA statement is of the form: DATA | list of numbers] Example: 100 READX,Y,Z 200 DATA 1,2,3,4,5,6,7,8,9,0 The statements in this example would read the first three numbers of the data block (1,2, and 3) and assign them to X, Y, and Z. Always remember that only numbers, not formulas, may be used in DATA statements and 14/3 and SQR(7) arc formulas. PRINT Statement PRINT statements are used for a variety of purposes in a typical program. While the command is called "PRINT" in many sys- tems this means in fact "send data to the primary BASIC output device," such as a hard copy printer or electronic display de- vice. The following example illustrates the format used to print the results of a com- putation or a variable value: 10 PRINT X,SQR(X) This example would print or display the current value of X followed by the square root of X a few spaces to the right. To print a specified message, the message is enclosed in quotes and the following format is used: 20 PRINT "NO ANSWER" This example would simply print the words NO ANSWER on a single line without the quotes. If desired, messages and values may be intermixed: 30 PRINT "THE SQUARE ROOT OF" X"IS"SQR(X) This statement would type the following line if the value of X were nine: THE SQUARE ROOT OF 9 IS 3 To skip a line or issue only a carriage return and line feed, the PRINT statement is used with no arguments: 40 PRINT With many of the more advanced BASIC systems there are various print control characters and special statements which may be used to control the spacing of the data being printed. This control may vary be- tween systems and is beyond the scope of this article. For the present, it's sufficient to understand the primary use of the PRINT statement and to know there are often methods available to print data in any- desired format. GO TO Statement The GO TO statement is used to uncon- ditionally jump to some specified statement in the program other than the next sequen- tial statement. The line being jumped to may be anywhere in the program, before or after the current line. The general form of the GO TO statement is: GO TO [line number] Example: 100 GO TO 200 This example would always cause the pro- gram to skip to line 200 whenever reaching line 100. IF Statement The IF statement is used to conditionally jump from the sequential order of state- ments according to the truth of some rela- tion. The program will skip to the desig- nated line number only if the relation specified is true. The IF statement, some- times referred to as a conditional GO TO statement, has the general form of: IF [formula] [relation) [formula| , THEN [line number] Example: 120 IF X=0, THEN 200 130 IFSIN(X) <=0.5, THEN 80 In this example, if the value of X is zero, the program will skip to line 200. If the sine of X is less than or equal to 0.5, the program will jump back to line 80. When both conditions are false, the program will go to the next line in order. The word "THEN" may be replaced with "GO TO" or the comma before "THEN" may be optional depending on the system. ON Statement Where the IF statement provides a two 102 THE LATEST IN TAPE SYSTEMS MODEL CC-8 - $175.00 MODEL 3M3A - $220.00 2SIO (R) CONTROLLER $190.00 ($160.00 Kit) 4800 BAUD CASSETTE RECORDER An ASYNCHRONOUS NRZtype Recorder with remote motor start/stop. Error rate 10^ at 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 50 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 3M Data Cartridge. Tape speed 10"/sec. on record, up to 30"/sec. 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. 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 1 7, Barcelona 14, Spain; ARIES, 7, rue Saint Phillipe du Roule, 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 IZ1 Tel: (416) 598-0262 NATIONAL MULTI PLEX CORPORATION 3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 Circle 29 on inquiry card. 103 Legal Loops: -100 FOR X -110 FOR Y -157 NEXT Y ■160 NEXT X Illegal Loops: • NOTE CROSSOVER -780 FOR X . . . -790 FOR Y . . . ■820 NEXT X ■830 NEXT Y Legal Loops: Figure I: Nesting Diagrams: Legal and Il- legal. There are legal and illegal ways to nest FOR . . . NEXT loops. The legal way to do so is to ensure that the program always has complete loops within loops. The illegal way is to have the loops cross each other. The arrows show the scope of each loop in this set of examples. -213 FOR X -220 FOR Y r~230 FOR Z 1—260 NEXT Z r^300 FOR W ■350 NEXT W - 400 NEXT Y 410 NEXT Z general form of the END statement is simply the word "END": 9999 END STOP Statement The STOP statement is equivalent to a GO TO statement, where the line skipped to is the END statement of the program. The statement is simply the word "STOP": 1000 STOP REM Statement (Remark) The REM statement provides a method of inserting remarks and comments in a program listing. Even though whatever fol- lows REM is ignored, the line number may be used in a GO TO, IF, ON, or GOSUB statement. The general form of the REM statement is: REM [any desired information! Example: 1000 REM THIS ROUTINE AVERAGES 10NUMBERS way fork in a program, the ON statement (if it is implemented) allows a multiple path switch. The general form of the ON state- ment is: ON [formula |, GO TO | list of line numbers] Any formula may be used and the instruc- tion may contain any number of line num- bers as long as the statement fits on a single line. The value of the formula is computed and truncated to an integer. If the result is one, the program skips to the line number occur- ring first in the list; if the result is two, it skips to the second line number in the list, etc. If the result of the formula computation is less than one or greater than the number of line numbers listed, an error message is printed. Example: 20 ON X-1, This example following: If X is 2, program will go to line 1 00 If X is 3, program will go to line 200 If X is 4, program will go to line 300 If X is less than 2 or greater than 4, an error message will be printed. The comma preceding "GO TO" may be omitted or the word "THEN" may be substituted for "GO TO" on some systems. END Statement Every program must have an END state- ment and it must be the statement with the highest line number in the program. The GO TO I 00, 200, 300 will cause one of the Elementary Programming Examples Now that the elementary statements and functions have been introduced, three sample programs are included which will help illustrate how statements are combined to accomplish various computations or comparisons. Loops The simplest way to execute a sequence of instructions a given number of times is by using a program loop. The block of instruc- tions within the loop is executed repeatedly until a given condition is satisfied. In BASIC there are two statements used to specify a loop: The FOR statement is used at the beginning of the loop and the NEXT state- ment at the end. The general form of the FOR statement is: FOR | numeric variable] = [formula-]] TO [Tormu^] STEP [formu^] Depending upon the BASIC implementation, the word "BY" may be substituted for "STEP" in the FOR statement. The accompanying NEXT statement is of the form: NEXT [numeric variable] The variable in the NEXT statement must be the same variable as in the FOR statement for each loop. Loops may be nested to a level dependent on the particular BASIC implementation system, but the loops must be legally nested and not crossed. Figure I shows some examples of legal and illegal nesting. The value of the numeric variable starts at the value of formula-] and is changed by the 104 XililEDiA P=5EiEnCi The SOROC 10120 CURSOR CONTROL. Forespace, back- space, up, down, new line, return, home, tab, PLUS ABSOLUTE CURSOR AD- DRESSING. TRANSMISSION MODES. Conversation (half and full Duplex) PLUS BLOCK MODE — transmit a page at a time. FIELD PROTECTION. Any part of the display can be "protected" to prevent overtyping. Protected fields are displayed at reduced intensity. EDITING. Clear screen, typeover, abso- lute cursor addressing, erase to end of page, erase to end of line, erase to end of field. DISPLAY FORMAT. 24 lines by 80 char- acters (1 ,920 characters). CHARACTER SET. 96 characters total. Upper and lower case ASCI I . KEYBOARD. 73 keys including numeric key pad. REPEAT KEY. 1 5 cps repeat action. selectable DATA RATES. Thumbwhee from 75 to 19,200 baud. SCREEN. 12 inch rectangular CRT phosphor. P4 SPECIAL INTRODUCTORY PRICING Kit $ 995.00 Assembled $ 1 ,295.00 (Price includes block mode, lower case and 24 line options.) Specials of the Month North Star Micro Disk with power supply and cabinet Kit — S699 Assembled - $799 IMSAI I-8080 with TDL ZPU Kit - $825 Assembled - $975 Digital Systems FDS Disk Drive with CP/M Software (assembled only) . Single - $1,750 Dual -$2,350 Mountain Hardware PROROM Kit - $145 Assembled -$210 Vector Graphic 8K RAM Kit - $235 Assembled — $285 XIMEDIA OFFERS A FULL RANGE OF PRODUCTS FOR THE PERSONAL COMPUTER ENTHUSIAST AND THE SMALL SYSTEM DESIGNER. LET US QUOTE ON ALL YOUR HARDWARE AND SOFTWARE NEEDS. OUR RETAIL STORE -THE COMPUTERIST tm - IS NOW OPEN IN SAN FRANCISCO. CALL US FOR DIRECTIONS. NOW WE RE TOLL FREE 800-227-4440 (in California, Hawaii, and Alaska, call collect: 415/566-7472) XililEDiA 1290 24th Avenue, San Francisco, CA 94122 (415) 566-7472 Circle 30 on inquiry card. COD orders freight collect. Orders with payment shipped prepaid. California residents add 6% sales tax. Please allow 3 weeks for delivery. value of formula3 (either positive or nega- tive) each time BASIC completes an execu- tion of the loop. If the word "STEP" and formula3 are omitted, the step value defaults to positive one. It should be pointed out, however, that the control variable may be changed within the body of a program loop if desired. Exercise care when using non- integer step values since noninteger numbers cannot be represented exactly in binary and may be truncated or approximated within the computer. This may cause an undesired number of loops to be executed due to the unexpected results. [See W Douglas Maurer's "Software Bug of the Month #2" on page SI of the July 1976 BYTE.} For this reason, every effort should be made to use an integer step value whenever possible. Example: 5 LETF=1 10 FORX=l TO 10 STEP 1 20 LET F=F*X 30 PRINT X,F 40 NEXTX This example program loop will be executed 10 limes as X is incremented by one between the values of one and 10. During each pass of the loop, the numbers X and X-factorial will be printed. The FOR state- ment in this example could have been shortened to: 10 FOR X=l TO 10 since the step value was one. Subroutines When a particular sequence of statements is to be used repeatedly in several different places within a program, they may be written as a subroutine. A subroutine is a completely self-contained program accessed Sample Program =1: This program reads a group of numbers from a data block and prints the average of the numbers read. The nun- be i 9999 is used as a dummy item in the data block to indicate the end of the data block. The individual numbers of the data block are read until 9999 is found Since all variables are initially set equal to zero until assigned another value, th =re is no need to include a statement to initialize S and C to zero (LET S=C=0). Program Explanation 10 REM print average of numbers Remark 20 Read X Read a number X 30 If X=9999, then 70 Check for end of data if X=9999 40 Let S=S+X Add X to sum 50 Let C=C+1 Increment the data count C 60 Go to 20 Go back for more data 70 Print S/C "is the average of" Compute and print average C "numbers" 80 Data 5,7,3,9,27,54,31,9999 Data 90 End End of program by the main program or other subroutine; using a subroutine calling convention. In BASIC, subroutines arc entered (oi called) by using GOSUB statements any- where in the main program (or other sub- routines) of the general form: GOSUB line number The GOSUB statement is similar to a GO TO statement except the computer saves the location of the GOSUB statement before going to the subroutine. Statements are then executed sequentially until a RETURN statement is encountered. The RETURN statement directs the computer to return to the line following the GOSUB statement that called the subroutine. It consists simply of a line number and the word "RETURN": I000 RETURN and is usually the last line of a subroutine. Subroutines may appear anywhere in the main program but should only be entered with a GOSUB statement and exited via a RETURN statement. A subroutine may actually contain several RETURN state- ments as long as one will be used. By using a GOSUB statement within one subroutine to call a second subroutine, subroutines may be nested. The level of subroutine nesting is sometimes limited depending on the parti- cular BASIC implementation used. Example: 10 LET L=4 20 PRINT "THIS PROGRAM PRINTS" 30 GOSUB 1 90 40 PRINT "THIS MESSAGE WITH" 50 GOSUB I 90 60 PRINT "FOUR BLANK LINES" 70 GOSUB 190 80 PRINT "BETWEEN PRINTED LINES." 90 GOSUB 190 100 REM Then the numbers 1 to 10 are printed with the I 10 REM number indicating the number of blank lines 120 REM following that line. 130 FOR L=1 TO 10 140 PRINT L 150 GOSUB 190 160 NEXT L 170 PRINT "DONE" 180 STOP 190 REM Subroutine to print "L" blank lines. 200 IF L>0, THEN 220 210 RETURN 220 FOR X=l TO L 230 PRINT 240 NEXT X 250 RETURN 260 END This example illustrates how subroutines are utilized and the use of multiple RETURN 106 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 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: • 4233 Convoy Street • DeHart Street San Diego, CA 92111 Morristown, NJ 07960 (201 ) 539-4077 • 50 East Rand Road • 6840 La Cienega Blvd. Arlington Heights, IL 60004 Inglewood, CA 90302 (213)776-8080 • 225 Elmira Road • 813 B Lyndon Lane Ithaca, N.Y. 14850 Louisville, KY 40222 (607) 277-4888 (502) 425-8308 ' • 16065 Frederick Road (Rt 355) • 104 W. First Street Rockville, MD 20850 Tustin, CA 92680 (301) 948-7676 (714) 544-0542 • 1612 Niagara Falls Blvd. • 24001 Via Fabricante Buffalo, NY 14150 Mission Viejo, CA 92675 (714)770-0131 opening soon: • 22634 Foothill Blvd. • Thousand Oaks, CA Hayward, CA 94542 • Park Ridge, IL (415) 538-8080 • Franchise Opportunities available — Contact: Ed Faber, President Computerland Corp.TM (415) 895-9363. Circle 31 on inquiry card. statements within a single subroutine. It also shows how the line number of a REM statement may be used in a GO TO, IF, ON, or GOSUB statement as mentioned earlier. Every time a "GOSUB 190" statement is encountered in this example, the program will go to the subroutine starting at line 190. If the value of L is less than or equal to zero, the computer will return to the main pro- gram. Otherwise, the subroutine will print a number of blank lines equal to the value of L before returning to the main program. Lists and Tables In addition to the limited number of simple variables, BASIC usually allows the capability to designate the elements of lists or tables. Simple variables arc called un- subscripted variables while list or table elements are called subscripted variables. Subscripted variables may be used anywhere an unsubscripted variable would normally be used, except immediately after "FOR" in a FOR statement or in a NEXT statement. Several special matrix instructions and func- tions will be discussed later. The name of each list or table must be designated by a single letter. The individual elements of a list (also called a vector) are specified by the list name followed by a subscript in parentheses: A(0), A(1), . . . A(n) while table (also called a matrix) elements are specified by double subscripts: B(1,l), B(l,2),. . . B(m,n). The subscript form is flexible and may be either a constant or any legal expression as long as the Sample Program #2: This program will determine the sma llest and largest numbers of a given data block and print the values. The first entry in the data block indicates the number of entries to read from th e data b ock (An alternative would be to use end of data indicator.) Program Explanation 10 LetS=10E6 Set smallest number to something big 20 Read C Get number of entries 30 Read N Read data (once for each number) 40 If N >=S, then 70 Jump if larger than old smallest number 50 Let S=N Set new smallest number equal to this number 60 Go to 90 Continue (skip largest test) 70 If N<=L, then 90 Jump if smaller than old largest number 80 Let L=N Set new largest number equal to this number 90 Let C=C-1 Decrement data count 100 If C <> 0, then 30 If C not equal zero then continue 1 10 Print "largest number is " L Print answers 120 Print With blank line 130 Print "smallest number is" S Between them 140 Data 8 Number of data entries 150 Data 2,7,42,74,21,61,47,29 Data 160 End Program end subscript value is not less than zero. The single letter denoting a list or table name may also be used as a simple variable without confusion. The same letter may not, how- ever, be used to denote both a list and a table in the same program since a list is actually a single column table. Example: 10 FOR 1=0 TO 2 20 FOR J=0TO3 30 READM(IJ) 40 NEXT J 50 NEXT I 60 DATA 1,2,3,4 70 DATA 5,6,7,8 80 DATA 9,10,11,12 This example routine shows how a 3 by 4 table may be entered into a program using elementary statements and how the table entries are specified. Storage space is automatically reserved for any list or table with subscripts (typi- cally) of 10 or less (the exact number depends on the implementation). For larger subscripts, space must be reserved by using a DIM statement. A DIM statement may ap- pear on any line before the END statement, but it is normally placed at the beginning of the program. A DIM statement may also be used to reserve less space for a small list or table when a large program requires more program space. The general forms of DIM statements for lists or tables are: DIM |listname] ( maximum subscript ) DIM | table name | ( maximum row subscript, maximum column subscript ) Separate DIM statements arc not needed for each list or table; several lists or tables may be specified in a single DIM statement by separating them with commas. Example: 10 DIMV(15) 20 DIM M(20,20) May also be written in a single DIM state- ment as: 10 DIM V(15),M(20,20) This example reserves space for 16 items in vector V: V(0), V(1), V(2), ...V(I5) and 441 items in matrix M: 20 + 1 rows and 20 + 1 columns Advanced Statements and Functions This section will briefly introduce the more advanced and specialized features of BASIC. These features may or may not be available in a particular BASIC implemen- tation, whereas the elementary statements and functions already presented should always be found. Refer to the programming manual for your particular BASIC inter- 108 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. ALL OUR 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 FloppyTM. 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 32 on inquiry card. Sample Program #3: This simple inventory program for th ree products illustrates the use of the ON statement by reading an item code num aer followed by an item count from the data block. The ON statement decodes the item code to determine what total to add the new count to. When done, the program prints all the current inventory totals. Program Explanation 10 REM inventory Program name 20 Read N, 11,12,13 Read data count and original totals 30 Read l,C Read code and count 40 If l>3, then 130 Check for valid code 50 If I < 1, then 130 60 On I, go to 70,90,1 10 Decode item code 70 Let I1 = I1+C Add to item #1 80 Go to 150 Continue 90 Let I2H2+C Add to item #2 100 Go to 150 Continue 110 Let I3=I3+C Add to item -.'3 120 Go to 150 Continue 130 Print "invalid item code" Print error message 140 Stop Exit program 150 Let N=N-1 Decrement data count 160 If N <> 0, then 30 Finish data 170 Print "item #1 =" 11 Print totals 180 Print "item #2=" 12 190 Print "item *3 =" 13 200 Print Blank line 210 Print "total items =" 11 + 12+13 Combined total 220 Data 6,1020,1349,714 Original totals 230 Data 1,12,1,7,3,27,2,11,3,212,1 . Data 136 240 End Program end Notice how this program checks for an illegal value before the ON statement. An invalid item code causes a message to be printed and the STOP statement terminates the program. preter to be sure the desired functions and/or statements are available. INPUT Statement The INPUT statement acts like a READ statement except data is entered from the console keyboard rather than from DATA statements. Whenever BASIC encounters an INPUT statement ii types a question mark (?) to indicate it is waiting for operator input. The user then types the desired input as it would normally appear in a DATA statement terminated by a carriage return. INPUT statements are usually combined with PRINT statements to indicate what value is desired: 10 PRINT "NUMBER OF DAYS"; 20 INPUT D The semicolon at the end of the PRINT statement causes the question mark to be typed on the same line as the message. Normally, the question mark would be printed on a separate line. In this example, the words NUMBER OF DAYS without quotes would be printed followed by a question mark. The number typed followed by a carriage return would be assigned to the variable D. The data entered via an INPUT statement is not saved with the program so it should only be used when entering small amounts of data or data that is unknown until the program is run. RESTORE Statement The RESTORE statement typically permits reading data from the DATA state- ments of a program more than once. When- ever a RESTORE statement is encountered, BASIC resets the data block pointer to the first entry in the data block. The next READ statement then starts reading the data block all over again. SIGN Function The sign function: SGN(X) returns a value indicating the sign of the argument specified. The value one is assigned for any positive number, zero for zero, and — I for any negative number. Example: SGN(2.75) = 1 SGN(0) = SGN(-0.25) = -1 The sign function can be combined with an ON statement to give a three way branch depending on the sign of a number: 60ONSGN(X)+2, GO TO 1 00, 200, 300 This instruction will jump lo 100 if X is negative, 200 if X equals zero, or to 300 if X is positive. INTEGER Function The integer function: INT(X) returns the greatest integer of X that is less than or equal to X. Example: INT(2.98) = 2 INT(-2.05) = -3 INT(4) = 4 The integer function may be used to round numbers to the nearest integer by adding 0.5 to the number: INT(X+0.5) It may also be used lo truncate a number lo any specific number of decimal places (n): INT(X*10**n+0.5)/(IO**n) Random Numbers Most forms of BASIC provide a means of generating a random number between zero and one. This function is generally used to simulate events that happen in a somewhat 110 CP/M LOW-COST MICROCOMPUTER SOFTWARE i CP/M is a low-cost control program for microcomputers which brings together recent advances in computer and peripheral technology. CP/M is an advanced disk operating system designed for use with IBM-compatible diskette-based computer systems which employ the Intel 8080 microcomputer. Previously available only to OEM's, CP/M has been in existence for over three years in various manufacturers' products, and has undergone extensive field testing. The functions of this software package include named dynamic files, program editing, assembly, debugging, batch processing, and instantaneous program loading, resulting in facilities similar to popular timesharing services. CP/M is an "unbundled" software package which can be easily adapted to any 8080 orZ-80 computer system with at least 16K of main memory and one or two IBM- compatible disk drives. The field-modification manual provided with CP/M has been used successfully by many CP/M users in customizing CP/M for their own hardware configurations. Dl DJGJTflL RESEARCH wBSm.. -Mm Please send me the following: □ CP/M Documentation (Complete set of 6 manuals) for $25.00. D CP/M Documentation and CP/M System Diskette for $70.00. □ Free CP/M brochure and price list. □ Information concerning high level languages and optional packages. NOTE: IMS Associates and Digital Systems distriPute CP/M with their hardware systems. D Bank Americard No. Exp. date D Master Charge No. _ Exp. date D Check or M.O. enclosed. California residents add 6% sales tax. Amount enclosed Name Address City Dl DJOJTflL RESEARCH State Zip Post Office Box 579 • Pacific Grove, California 93950 Circle 1 1 1 on inquiry card. MAT READ a,b,c . MATM = ZER MAT M = CON MATM = IDN MAT PRINT a,b,c . MAT INPUT V MAT B = A MATC= A+B MATC= A-B MATC = A*B MATC = TRN(A) MATC= (k)*A MATC= INV(A) Read the specified matrices or vectors, dimensions pre- viously specified. Set all components of matrix M equal to zero. Set all components of matrix M equal to one. Set up square matrix M as an identity matrix. Print the specified matrices or vectors. Call for the input of a vector. Set matrix B equal to matrix A. Set matrix C equal to the sum of matrices A and B. Set matrix C equal to the result of matrix B sub- tracted from matrix A. Set matrix C equal the product of matrix A multiplied by matrix B. Set matrix C equal to the transpose of matrix A. Set matrix C equal to matrix A multiplied by the number k which must be in parentheses and may be given by a formula. Set matrix C equal to the inverse of matrix A. Special MAT Functions. . . . DET Equals determinant of a matrix after inversion. NUM Equals number of components following a MAT INPUT. Table 4: Matrix Special Functions of BASIC. The addition of these matrix functions to BASIC is one of the most common exten- sions to the language's capability. For engineering and scientific applications, such functions are a virtual necessity. random way such as a dice roll in a game. The general form of the random function reference is: RND with no argument needed. If a particular BASIC implementation does require an argu- ment, the number one is typically used: RND(I) To generate a random single digit integer, the following instruction might be used: 40 LETX=INT(I0*RND) If it is desired to generate a random integer number between two limits, this instruction may be used: 60LETX=INT(A*RND+B) This instruction will generate an integer random number between A and B, where A is larger than B. Thus, to simulate a dice roll for a game, with integers between 1 and 6, use: INT(6*RND+1) To aid in debugging programs, the typical BASIC RND function generates the same set of random numbers in the same order each time a program is run. In some implementa- tions inserting a RANDOMIZE statement as the first statement in a program using random numbers, repeated runs of the pro- gram will produce different results. User Defined Functions In addition to the standard BASIC func- tions, some BASIC interpreters allow up to 26 additional functions to be defined with the DEF statement. The name of the defined function must be three letters, the first two always being "FN" (eg: FNA, FMB, ..., FNZ) and the DEF statement may appear anywhere in the program. Each DEF state- ment defines a single function and it can contain any combination of other functions and/or variables besides those denoting the arguments of the function. Any variable that is not an argument of a function will use its current value in the program. For example, to repeatedly use the function: c* 2 + 3X + Z define the function: DEF FNE(X) = EXP(X**2)+3X+Z and then call for different values of the function by: FNE(2), FNE(A+B),ctc The current value of Z is used each time the function is called. Also, each defined func- tion may have zero, one, two, or more numeric variables as arguments of the function. Examples: 10 DEF FNA= 3.1.16*(R**2) 20 DEF FNB(X,Y) = (X+Y) / (X*Y) 30 DEF FNR(A,B,C,D) = FNB(A,B) + FNB(C,D) Multiple line defined functions are con- structed by dropping the equal sign and ending the function definition with a FNEND statement. The function name with- out arguments is used as a temporary vari- able to compute the function's value. Multi- ple line functions usually cannot be nested and there must not be a transfer from inside the function to outside its range, or vice versa. Also, GOSUB and RETURN state- ments are not typically allowed within a multiple line defined function. 112 DataSync DS-100 Educated Terminal ^r- m v • • • Internal microprocessor control for high reliability. True word processing with character and line insert/delete. 24 lines by 80 characters on a full nine-inch screen. Special individual function keys control the block screen send, screen protect, forms mode, tabs, scroll up and down, print page, line centering mode, and other modes. A full cursor control key pad is included. All switches are Cherry gold cross point for extra long life. A full-function light pen attaches to the terminal for easy control of all dis- played characters on screen. Two serial RS232 ports transmit up to 9600 baud. Tarbell format cassette interface reads and writes up to 4800 baud to and from the screen or your computer. All switches, including baud rate, parity stop, local-RS232 CRT controls, and on-off are accessable from the front. Weighs under 30 lbs. including strong ABS cabinet. Terminal can also be used as a full word processor or text editor. $695 Kit $795 Assembled DataSync 16K RAM $298 Circle 34 on inquiry card. Fast access, low power, dynamic RAM memory board with transparent memory refresh. SI 00 bus compatible, expandable to 64K Bytes. Assembled — — Name Address.. City 'Mail this coupon NOW for fast delivery ■ State & Zip . □ DS-100 Terminal D Kit □ Assembled □ DS-16K RAM Add $5 postage & handling in U.S. / Calif, residents add 6%. □ Enclosed find check 01 money order for $= □ Master Charge # □ BankAmericard # DataSync 201 W. Mill / Santa Maria, CA 93454 / 805/963-8678 Example: 10DEF FNM(X.Y) 20 LET FNM = X 30 IF Y = X, THEN 50 40 LET FNM = Y 50 FNEND This example returns the larger of the two argument values whenever the function is called. ASC (single character or mnemonic of nonprintable character) Returns a decimal value for the ASCII code of the argument. CHR$(numeric formula) Opposite function to ASC, argument is truncated to an integer which becomes the content of a one character string which is returned. INSTR(numeric formula, string formula, string formula) Searches for the second string within the first string. Search starts at character position specified by the numeric formula truncated to an integer or at the first character if omitted. Returns the position of the first character in the substring if found, if not. LEFT$(string formula, numeric formula) Returns a substring of the string formula, starting from the left. Substring contains the number of characters specified by the numeric formula truncated to an integer. LEI\l(string formula) Returns the number of characters in its argument. Ml D$ (string formula, numeric formula, numeric formula) Returns a substring of the string formula, starting at the character position specified by the first numeric formula truncated to an integer. The substring contains the number of characters specified by the second numeric formula truncated to an integer, or the substring continues to the end of the string if the second numeric formula is omitted. RIGHT$(string formula, numeric formula) Returns a substring of the string formula, starting from the right, containing the number of characters specified by the numeric formula truncated to an integer. SPACE$(numeric formula) Returns a string of spaces, the length specified by the numeric formula truncated to an integer. STR$(numeric formula) Returns a string representation of its argument (the number is converted to a string). VALIstring formula) The opposite function of STR$. Returns the number represented by the string formula (the string is converted to a number). In addition to these functions, the CHANGE statement is used to convert between strings and numeric data and vice versa as follows: CHANGE [string formula] TO [numeric formula] Changes the string specified to a numeric vector. The zero element of the vector will contain the number of characters in the string and the decimal ASCII code of the letters will be stored in the numeric vector. The statement: CHANGE [numeric vector] TO [string variable] changes the numeric vector to a string. The zero element of the vector must contain the number of characters in the desired string. Table 5: A "typical" set of string manipulation functions implemented in a BASIC interpreter. This table lists functions found in the author's experiences with BASIC on Digital Equipment Corporation computers; similar sets of string functions are often implemented by other "extended BASIC" interpreters. Vectors and Matrices Since operations on lists and tables occur frequently, a special set of matrix instruc- tions and functions are usually available in BASIC. The list of typical MAT instructions and functions plus a brief description of their operation is found in table 4. Many of the matrix statements require special condi- tions to exist in order to be legal or may allow operations on vectors as well as matrices. While every vector has a zero component and every matrix has a zero column and row, these are ignored by MAT instructions. Any numeric array referenced in a MAT statement other than a MAT INPUT, will be set up as a matrix unless specifically declared as a vector in a DIM statement. Strings So far, only operations dealing with numeric information have been discussed; but some forms of BASIC also process alphanumeric information in the form of strings. A string is a sequence of characters including letters, digits, spaces, or some other printing characters. In BASIC it cannot, however, contain a line terminator such as a line feed, carriage return, form feed, or vertical tab. Strings are normally enclosed in quotes (eg: "ANSWER") when used as string constants, but may be omitted in some instances. Variables may be used for simple strings and string vectors but not for matrices. Any variable or vector name followed by a dollar sign ($) stands for a string: A$, B2$, orC$(l) String variables or constants are used just as numeric quantities in most BASIC state- ments. However, numeric and string data are kept in two separate data blocks and are utilized independently of each other. The RESTORE statement discussed earlier resets both data pointers to the beginning of the data blocks. A typical implementation trick to reset only the numeric data pointer is to use: RESTORE*, and use RESTORES to reset only the string data pointer. Table 5 shows some of the possible functions for manipulating strings in BASIC in some implementations. Other Features Many BASIC software systems, especially large time sharing systems, sometimes allow special operations involving data files and special formating of data. An example is the PEEK and POKE facility which is used in Altair BASIC for bit level manipulation. It is 114 always best to refer to the BASIC program- ming manual for the particular implemen- tation being used as I have pointed out many times before. Always check what features are offered and how to use them, since they can vary drastically from system to system. There may also be special editing or operating commands available depending, again, on the system used. In Closing . . . Now that the general statements and functions have been discussed and some of the more advanced features have been intro- duced, the best way to actually learn the BASIC language is by hands-on experience. Find a system with BASIC, check the available BASIC features, then start with small, simple programs. In no time at all you should be able to program almost anything desired. BASIC is an extremely easy lan- guage to learn and use so don't let the term "HIGH LEVEL LANGUAGE" frighten you away. Look for future articles on programming techniques, games, and applications as BASIC becomes available for more and more microcomputer systems. BASIC programs should be very easy to reproduce and convert for various specific systems, including microcomputers." What's New? A New Microcomputer Series from CGRS CGRS Microtech Inc, POB 368, Southhampton PA 18966, has an- nounced a new line of microcomputers called the 6000 series which are all Allah' bus compatible and based on the Mos Technology 6502 microprocessor. The Microputer I is a 3 board tutorial system featuring 256 bytes of pro- grammable memory for $229.95. The Microputer II includes 2K bytes of programmable memory with room for up to 4 K bytes of erasable read only jwaoH -'*9^*frfamt*P l WW&*~'' 3N$ . Teach your System to type with a IYFEAWAY 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. TYPEAWAYis 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 MQC^OMATOM MICROMATION INCORPORATED 524 UNION STREET SAN FRANCISCO, CA. 94133 415/398-0289 115 Circle 35 on inquiry card. memory. The price is $389.95. The most sophisticated system in the series is the Microputer III, a complete microcom- puter system upwards compatible with the first two systems. Contact the manu- facturer for further information." Circle 572 on inquiry card. 'fY£hon Breadboards Available for PDP-1 1 and PDP-8/A Users ADI 306 ACI 316 SUE 326 , SSI 336 AM 346 i i XRE 356 ORI 366 CPI 376 POP B 3C1 POPD J?l POPH 341 POP PSW 361 PUSHB i'^ PUSH 325 ' PUSH ti :«!> PUSH PSW 360 ST AX a 002 . LDAXB 012 STAX 022 Uncond A*0 A = Cy = Cy= 1 Prty = Odd Pit/ = Even Bit 7 = 1 I Ul SPQ61 DAD SP071 RrGISTFR FAIR 1MX SP063 OPERATIONS OCX SP 073 NOP 000 1 HLT 166 OUT 323 IN 333 067 077 j :"H'-'. SUB f.1 22li SBB H2M MATH & LOGICAL OPERATIONS M 2JG 1.1 26G ALL FLAGS ArFLCTIO Attention Individuals, Clubs and Computer Stores: An 8080 Octal Code Card Is Now Available Tychon Inc has announced this new 8080 Octal Code Card. The code card is i ""> M06.1 OCR ,, I0C5 MV! M06G MOV A M176 »O»0 M10 G move mug MOV ,,, 126 '■'OVE M136 MOVH Mi.,6 HOVL U156 I WO' l« M 1G6 i ONLY CARRY AFFECTED l ^ Douglas Electronics has announced the availability of a complete line of breadboards designed to be compatible with Digital Equipment Corporation's PDP-11 and 8/A minicomputers. The glass epoxy boards, which feature electroplated solder circuits and gold connector tabs, come in a variety of configurations and options which in- clude extender boards with sockets, wire wrap boards and breadboards for custom logic circuitry. Contact Douglas Elec- tronics Inc, 718 Marina Blvd, San Leandro CA 94577. Circle 573 on inquiry card. "We may have the surplus electronics you need!" Terminal/Keyboard With Schematics S250.00 • CRT Terminals •Assemblies Tape Drives $800.00 • Peripherals • Components Keyboards S40.00 to $60.00 (ASCII Encoded) Equipment Cabinets $45.00 to S60.00 (19" With Fan) Send for a free catalog or call Bill Blaney, toll free 800 258-1036 in NH 603-885-3705 (i¥l Come to our showroom wufLdwiqe ELECTFiunicajric. 10 Flagstone Drive, Hudson, New Hampshire 03051 a slide rule like aid for programming and debugging 8080 software in octal nota- tion. It contains all the mnemonics and their corresponding octal codes. The instructions are all color coded to indi- cate which flags are affected during exe- cution. The pocket sized card measures 6.5 by 3 inches (16.5 by 8 cm) and it provides the instructions in a neat, logical format for quick reference. The back side of the card is printed with an ASCII code chart for all 128 characters plus the 8080 stalus word and register pair codes. Delivery of the 8080 Octal Code Card is immediate and the price is $2.95 postpaid. Quantity discounts start at ten units, and custom imprinting is also available. According to Tychon, a hexa- decimal version of the card will be available in the near future. For further information write Tychon Inc, POB 242, Blacksburg VA 24060.» Circle 574 on inquiry card. A New Way to Do Slit-N-Wrap Vector Electronic Company, 1 2460 Gladstone Av, Sylmar CA 9 1 342, has just sent along this photo of a neat new addition to their line of Slit-N-Wrap tools, the P160-4T1 pistol gripped / 3 110 VAC powered wrapping tool. This $80 tool will accept the PI80 Slit-N-Wrap tool bit, or a standard wire wrapping attachment in the form of the P160-2A wrapping bit. While Slit-N-Wrap can be done by hand, it becomes much more convenient when it is powered as with this tool. (Because the Slit-N-Wrap technique requires no stripping of wire, it tends to be somewhat faster than standard wire wrap as a matter of course, Circle 36 on inquiry card. 116 since the lool is always held in one's hand and is never pul down for the stripping operation as in wire wrap with reel wire.)" Circle 575 on inquiry card. IMSAI Brochure and Catalogue A beautiful four color brochure out- lining the IMSAI product family came our way recently. In the same package was the current price list of this family of computers and computer products, which may be inspected at many local computer stores. A full catalog is also available according to the brochure, at a price of $1. Write IMSAI Manufacturing Corporation, 14860 Wickes Blvd, San Leandro CA 94577." Circle 576 on inquiry card. Altair Bus Floppy Synetic Designs Company, POB 2627, Pomona CA 91 766, has sent along this picture of their new "ready to use" disk system for Altair compatible 8080 based computers. The product is called the FDS-2, and it employs iCOM standard size floppy disk drives. The total package includes the iCOM execu- tive system, text editor and assembler for the 8080, plus the custom "executive handler" provided by SDC to allow user-specific attributes of the executive. From one to four drives may be attached to the controller, with two drives shown in this photograph. Maximum on line capacity with four drives is just over 1 Mb. The recording format is IBM 3540 and 3740 compatible to allow transfer of data to and from other computer systems on floppy disk cartridges. Files may contain source data, program object data or user generated data. The drive may be seen at Computer Mart of New Jersey and other stores nationwide. Delivery is quoted as three weeks ARO lor small orders; price was not quoted in the press release materials." Circle 577 on inquiry card. ■o 3 ANNOUNCING Z80 SEMINARS AUGUST 22-26 (the week preceding the Atlantic City convention, PC 77) CHOOSE FROM ONE OF THE 7 FIVE DAY d r% EVENING SEMINARS " ^SEMINARS BRING THE WHOLE FAMILY (Recreation Facilities Available) REASONABLE Individual/Family Rates for a limited number at the college on a first come, first served basis TRANSPORTATION available to the ATLANTIC CITY CONVENTION Software courses (DAY) Programming in Basic for the r 'C owner. An Introduction m the Mask language. From beginning t<> writing application programs. Emphasis tin TDIs (IK and I2K Bask fat the 780. Includes inlro l<> TBI's FORTRAN, S199 Assembly Language Programming (or the Z80 8080 An introduction to assembly language programming. First (.overs bobo instructions mil then brandies into the extra instructions available for the Z-B0. Includes inlro to TOL's /-B0 Monitor and Macro-Assemhier and also covers applications in interfacing and control. S249 Advanced Assembly Language Programming for the Z-80 For someone who knows the HOBO. Covers added 7-80 instructions and how to gel the most out of them. Imphasis on use of TDl's Macro- Assembler. Application to digital Ingii replacement and process control. S2!t!) FORTRAN IV An introduction to the FORTRAN language. From beginning to writing of application programs. Emphasis on TDL's ANSI standard FORTRAN IV for the Z-flO. $289 Word Processing with a Text Editor and Formatter Introduction to the use of the Tent Editor and Text Output Processor for achieving basic word processing capabilities. Emphasis on TUL's Text Editors and Text Output Processors, familiarization with system requirements, $299 Hardware courses (DAY) Introduction to Hobby Computing A survey course dealing in an exploration of the Hobby computing field and delining the basics needed to lie understood in order to gel started. Sinn Digital Logic Circuits Instruction in digital logic circuits covering the 7400 TTL and the CMOS series. Codes, registers, counters, memory, combinatorial logic, etc $199 Evening Workshops How to Setup a Computer Store Guest lectures from owner operators ol computer stores and microcomputer manufacturers. How tQ become a dealer. How Id get a franchise. How to operate a business, How In set up a service facility... and more. $99 Kit Building Lab Instruction and guidance on kit building. Bring your kits! SPECIAL: Anyone taking delivery on a TDl product during the course (must be ordered in advance-) will receive this workshop FREE. Others pay only... $49 SPONSORED jointly by TECHNICAL DESIGN LABS, INC. (TDL) Princeton, N.J. and TRENTON STATE COLLEGE Trenton, N.J. For registration forms and brochure write: Z-80 SEMINARS Office of Continuing Education TRENTON STATE COLLEGE TRENTON, NEW JERSEY 08625 Art by Duane Bibby How Far — Which Way? Rene E Pittet WMU Physics Dept Kalamazoo Ml 49008 Assisted by M Davidson a) ARC SIN X = X Did you know that your computer can answer the questions of how far and which way for you in microseconds for macrodis- tances? At least my SWTPC 6800 can with its 8 K BASIC high level compiler language. The usefulness of this program will be apparent to anyone who sails a boat or flies an airplane. By inputting longitude (degrees and minutes) and latitude of the starting point first, and the destination second, the program will print out the distance in statute miles, or nautical miles with a minor change, and the true bearing. Look up the variation of magnetic north in your area and add that correction for a magnetic compass heading; or better yet, add it into the program. The program of listing 1 is offered as a 1 , 1x3 c 1x3x5 1x3x5x7 n - x 3 + : — X 5 + : = = X 7 + : ; — X 9 2x3 b) ARC SIN X = X + + 6 40 2x4x5 5 x X° 1 5 x X ' 2x4x6x7 2x4x6 336 105 x X B 3456 radians Figure 7 : A series expansion of the ARCS IN function, as found (above) and as evaluated partially for use in the expression in listing I at lines 158 and 160 of the program. model to start from and can be modified or elaborated on according to the wishes of the user. It is based on what is known to cartographers as a Lambert Conformal Conic Projection map. This type of map uses a fixed reference point in its projection, so the method is less accurate the farther north or south you go, into Canada or Alaska for example, from the reference point in the US. However, it will be quite accurate within a restricted area such as that covered by an FAA aeronautical regional or sectional chart. The requirement for this program grew from my Civil Air Patrol activities when we search for downed aircraft (a true hardware crash) and send rescue teams out to find them. Usually we have an airport to start from and grids to search in by air. The downed aircraft is spotted visually or by reception of a signal from its emergency locator transmitter (ELT). If found, its coor- dinates are radioed back to the mission coordinator. He then dispatches the ground teams to the rescue and here is where the questions "how far?" and "which way?" are answered by the computer. The routine uses the trigonometric solu- tion of a right triangle to determine the distance (hypotenuse) and direction (arcsine 118 of X). The sides of the triangle X5 and Y5 are the differences between the two sets of coordinates of longitude and latitude. To explain the program a little, notice that the ARC SIN X is a special subroutine which had to be created since ARC SIN, ARC COS and ARC TAN functions are not included in SWTPC 8 K BASIC. This ARC SIN X function is performed by use of the trancendental formula shown in figure 1a which is reduced to the equation of figure lb. The formula, translated into BASIC, is shown on lines 1 58 and 160 of listing 1., Since the ARC SIN X formula above is less accurate from 45° to 90°, we switch and use 90° -COS of the complimentary angle of the right triangle and get the same resolution as when the angle is 0° to 45 . This is written in BASIC in lines 155, 163 and 168 to 175. Also, notice that in lines 58 and 59 a very small number (l.E-9) was added to the two sides X5 and Y5 of the right triangle X5, Y5, D. This extremely small error eliminates the problem of dividing into zero at the 90°, 180°, 270° and 360° points of the compass when one or the other of these sides of the triangle are zero. SWTPC 8 K BASIC doesn't like zeros in your math formulas. In line 60 the hypotenuse of the triangle, D, is multiplied by 1.1516 to get statute miles. This conversion factor assumes that your calculations have been in British nau- tical miles which have 6080 feet to the mile. If your calculations have been in American nautical miles, with 6076.1 1 5 feet to a mile, the conversion factor would be 1.1508. In lines 50 and 54 the numbers 44.89 and 74.82 were derived from the ratio of nau- tical British miles per degree of longitude versus latitude in the northern hemisphere at about 43° north latitude. In other parts of the globe, farther north or south, it would be advisable to recalculate to maintain accu- racy. (The distance of one degree of longi- tude gets smaller and smaller as you go north or south from the equator.) To correct for the magnetic variation in your area add the degrees of correction at lines 162 and 174. For example, if the aeronautical chart shows 3° west variation, then add +3 to R5's value. One last comment: the latitude and longi- tude are entered as a decimal number. The digits to the left of the decimal are degrees and to the right, minutes; seconds are not used. The program sorts it all out and understands what you are inputting by using the INTEGER functions in lines 50 to 56. Try it for aircraft flight planning or a sailing trip in large bodies of water, then check the accuracy by actual measurement on an aeronautical chart." PRINT " " LINE = 64 PRINT "TO COMPUTE DISTANCE & DIRECTION" PRINT PRINT "ENTER LONGITUDE (XX. XX) AND LATITUDE (YY.YY) OF BOTH PLACES: PRINT PRINT "ENTER X1, Y1" INPUT X1, Y1 PRINT PRINT "ENTER X2, Y2" INPUTX2, Y2 DIGITS = 2 28 GOSUB 50 36 PRINT PRINT " - " PRINT 44 PRINT "TRY ANOTHER SET " 46 PRINT 47 GOTO 18 48 STOP 50 X3 = 44.89*INT(X1)+74.82*(X1-INT(X1)I Y3 = 60*INT(Y1) + 100*(Y1-INT(Y1)) X4 = 44.89*INT(X2)+74.82*(X2-INT(X2)I Y4 = 60*INT(Y2) + 100*(Y2-INT(Y2)) X5= (X3-X4)*SGN(X3-X4) + 1.E-9 Y5 = (Y3-Y4)*SGN(Y3-Y4) + 1.E-9 60 D = 1.1516*SQR(X512+Y5t2) 61 PRINT GOSUB 150 PRINT "DISTANCE = ";D PRINT "(STATUTE MILES)" PRINT IF X4>X3 THEN 74 IF Y4>Y3 THEN 84 GOTO 88 IF Y4 Y3 THEN 80 PRINT "TRUE BEARING = ";270-R5," DEG'S" RETURN , ;270+R5;" DEG'S" 00 05 10 12 14 16 IS 20 22 24 26 27 38 42 52 54 56 58 59 62 63 64 65 68 70 72 74 76 7f 80 82 84 86 88 90 PRINT "TRUE BEARING = ' RETURN PRINT "TRUE BEARING = RETURN PRINT "TRUE BEARING - ' RETURN ;90-R5," DEG'S" ;90+R5;" DEG'S" 150 REM ARC SGN X SUB-ROUTINE 154 S = Y5/D 155 C = X5/D 158 81 = S+(Sr3/6) + (3*SI5/40) + (15*St7/336) 160 S2 = 105*SI9/3456 162 R5 - (S1+S2)/. 017453293 163 IF R5>45 THEN 168 164 PRINT 166 RETURN 168 CI = C+(C13/6> + (3*C 5/40) 170 C2= (15*CI7/336) + (105*Cf9/3456) 172 R4 = (C1+C2)/. 017453293 174 R5 = 90-R4 175 GOTO 164 TO COMPUTE DISTANCE & DIRECTION ENTER LONGITUDE (XX. XX) AND LATI TUDE (YY.YY) OF BOTH PLACES ENTER X1, Y1 7 83.00 ? 42.24 DETROIT CITY AIRPORT ENTER X2, Y2 7 87.55 7 41.58 CHICAGO O'HARE DISTANCE - 255.92 (STATUTE MILES) TRUE BEARING = 264.16 DEG'S TRY ANOTHER SET - ENTER X1, Y1 Listing 1 : A BASIC program used to calculate range and bearing information from navigational coordinates. (This program was typeset from a hand typed listing of the original, which had been developed and debugged from a computer sans hard copy.) In the sample printout, user input is preceded by a question mark query. 119 NOW!! Z- 80 Power for the S-loo bus without getting ridof your CPU card. ~> $159.95 assembled *>**tp±i ?"w4s4saia« * w.y ZSC-80: UU 1 IxLJiy ILiU a leader in low cost, low power ram boards has just announced it's Zj BO — oO piggy back card. This plug - in board enables you to use your existing IMSA1, ALT AIR CPU card and upgrade your system, to a Z — 80. The card design is such that all, you do is pull out your 8080 and 8212 chips, plug in the Board to the 8080 socket itself and the ribbon cable to the 8212. A system monitor, on paper tape, is included with the board as well as a 280 Manual and Theory of Operation Manual. Dutronics will also supply all additional software at no cost, when it becomes available The price is $159.95 (assembled) only. OFF THE SHELF. ^ BYTE OF PHILADELPHIA 1345 W. Lancaster Ave. Rryn Mawr, Perm. 19010 (215) 525-7712 BYTE OF PALO ALTO 2227 El Camino Palo Alto, Co. 94.306 (415) 327-8080 110B0KEN COMPUTER WORKS 20 Hudson Place Hoboken, N.J. 07030 (201 120-1644 BYTE OF WESTMINSTER 14300 Reach Blvd. Westminster. Ca. 92683 (714)894-9131 BYTE OF SANTA CLARA 3400 El Camino Real Santa Clara, Ca. 95051 (408)249-4221. for more information call or write to R.H.S. MARKETING 2233 El Camino Real Palo Alto, California 94306 (415)321-6639 DEALER INQUIRES INVITED BofA & MASTERCHARGE ACCEPTED ~J 16384 BYTES for $485.00 assembled (with sockets) : tested - burned-in - guaranteed A new high in S100 bus memory cost effectiveness, (with sockets), tested, burned—in and guaranteed, memory chips (the same ones used by the ton in IB ible memory systems ) combined with self containe logic, yield a memory system with: • Low power consumption, total board 5 watts. • Transparent refresh, which means the memory looks static to the outside world. • No waiting. In fact, xrdy is not even con- nected to the memory. • Full DMA capability • Reliable, low level clock and control signals. Dynabyte UyTlQsUy 16 brings to the S — 100 Bus a state of the art, industrial quality memory system. J6K on a single board for $485.00, Guaranteed for 1 year. J BYTE OF PASADENA 496 So. Lake Ave. Pasadena, Ca. 91109 (213)684-3311 BYTE OF SANTA CLARA 3400 EI Camino Real Santa Clara. Ca. 95051 1408)249-4221 BYTE OF WALNUT CREEK 2989 N. Main St. Walnut Creek. Ca. 94596 (415)933-6252 BYTE OF SAN MATEO 1200 W. Hillsdale Blvd. San Mateo, Ca. 94403 (415) 341-4200 BYTE OF PALO ALTO 2227 El Camino Palo Alto, Ca. 94306 (415)327-8080 for more information call or write to: R.H.S. MARKETING 2233 El Camino Real Palo Alto, California 94306 (415)321-6639 DEALER INQUIRES INVITED BofA & MASTERCHARGE ACCEPTED Circle 37 on inquiry card. Add Cursor Control to Your TVT II Brother Thomas McGahee The Salesian Center 80 S Sixth St Columbus OH 43215 If you own a TVT II and would like a simple circuit to provide for operation of the cursor and erase functions, then consider the circuit shown in figure I. This simple circuit will accept ASCII control characters and decode them in a manner suitable for con- trolling all of the cursor control and erase functions, and it even has a few outputs that can be used to provide user defined func- Figure I: Diagram for the TVT II cursor controller. ICI is a 4 to 16 line decoder that will select which control command is wanted. Transistor Qi is in the circuit to make it compatible to the Southwest Technical Products' screen read and UART boards. Diodes D1, D2 and D3 are in the circuit to protect ICI when it is connected in parallel to the output of a gate on the main TVT II board. IC2 is wired as a one shot to activate the Sonalert when a control G is pressed. tions, such as enabling external devices or turning on bells and whistles. In the version presented here several functions are provided, including home, erase to end of line, erase to end of frame, cursor up, cursor down, cursor left, cursor right, and bell. In addition there are five other unused codes that may be assigned any way you wish. Control | and M are unused, since the TVT II already decodes these as carriage return and line feed. How it Works IC1 decodes the incoming ASCII char- acter, and selects one of its 16 outputs to go to logical zero whenever bits 5, 6 and 7 are all logical zero. The TVT II data lines are J4 [D>- + 5V J4 [9> J4 [8> B2 BITS ; J4 [0 s — J4 n> B4 BIT5 J4 [5>- GND J4 [2> IN914(3) ICI 74154 4 6 7 8 II 12 14 GND l5 H4 -TX> J3 -[F>J3 H* 12 ENABLE IF -HC CI lOOpF Rl 2.2K I VW- R2 IK -U> J3 -n> J3 -G>J3 -Q[> J3 -E> J3 :o nR3 IOK tK C2 iocyF B VCC PRINT CEXT -<6~1 J3 - - 220 West Cedar • Olathe, Kansas 66061 • 913/764-3273 TWX 910 749 6403 (MSI OLAT) nnnnnnnnnnaDnnDDDnDnnnnnn a Before I forget. . .send me your catalog a Name D — □ Address D n Ci( y ■ n State □ Zip □ □ □ □ □ D □ MSI is a dealer for Southwest Technical Prod 220 West Cedar • Olathe, Kansas 66061 Circle BY7 77 O nnnnaannnDnnnnnnnannnnnan *MSI BASIC is an additional $65.00 ucts • Mastercharge & BankAmericard Orders accepted • 913/764-3273 • TWX 910 749 6403 (MSI OLAT) 44 on inquiry card. up to 5 mils of protective polyester coating. The company is considering the manufacture of a reader designed to read whole programs encoded on ID card magnetic stripes." Circle 636 on inquiry card. lit •••« •*•••• A Tutorial Training Computer The Datac 1 000 computer, controller and tutorial card is a new product available from Datac Engineering, POB 406, Southampton PA 1 8966. This card is available in two models, the tutorial version and the fully populated version. The tutorial version is $185 assembled and tested, with power supply; the fully ilHVili-1CJBpl| IIHIIIIL— lit milium ill iiirinttittlti imiiimtim Attention LSI-11 People Wanting Mass Storage Charles River Data System Inc, 235 Bear Hill Rd, Waltham MA 02 1 54, has announced its new FDIl Floppy Disk Acld-On System lor PDP-1 I computers as well as LSI-11 microcomputers. The system was designed to be hardware, populated version is $345 assembled, tested and with power supply. In either case you get a 6502 processor, an instantly usable computer with expan- sion capabilities, and a unique system of touch sensitive input keypads, seen along the lower edge of the board depicted in this photo. A documentation package ac- companies each processor board.* Circle 637 on inquiry card. Make the HAL Connection > 8080A MPU 1 1K Monitor/Debug Software in 2708 EPROM or 2-3624 PROMs • On board space for. 4K ROM (2708), 2K RAM (2102A-4) • 24 lines of Parallel I/O (8255) • Hardware "front panel" on board • Optional Accessories: CRT Terminal Board, BASIC in EPROM, Audio Cassette Interface, 7K RAM Expansion Board/ • TTY Current Loop or RS-232C serial I/O (8251) EPROM Programmer, Power Supply MCEM-8080 from $375 (2-3624 ROM/1 K RAM) or$445 as shown (2708 EPROM/2K RAM) and solve your lab or OEM computer problems 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, lntel®compatible I/O routines) which greatly simplifies program develop- ment; Parallel and Serial I/O on the board; and very reasonable prices. 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 software and media compatible with the DEC RX11 products. It includes write protect switches, unit select switches, up to four drives with one unit load on the DEC Unibus, PROM self-diagnostic pro- grams and bootstrap loader. Track to track access time is 6 ms. Single quantity price of the drive and DEC compatible controller is $2750." Circle 638 on inquiry card. Portable Games IHHj iPO" GarpcK Pac \ For the benefit of the steadily grow- ing ranks of pocket calculator game enthusiasts, Hewlett-Packard is offering the Games Pac I. Intended for use with the company's HP-67 and HP-97 pro- grammable calculators, the package con- tains an owner's handbook (shown) and 20 prerecorded program cards. Games include Space War, Golf, Slot Machine, Dice, and a Bowling Scorekeeper. The price is $35. Contact Hewlett-Packard, 1501 Page Mill Rd, Palo Alto CA 94304." Circle 648 on inquiry card. A New Version of the PCM-1 2 Microcomputer Pacific Cyber/Metrix Inc, 180 Thorup Ln, POB 215, San Ramon CA 94583, has announced a new version of their PCM-1 2 microcomputer called the PCM-1 2A. The new unit is a 12 bit machine based on the Intersil IM6100 microprocessor, and is de- signed to be compatible with PDP-8 134 software. The new model includes the following features: • Memory expandible to 32 K bytes of programmable memory. • Crystal controlled data rate gen- erator to service peripherals. • Front panel controlled bootstrap loading. • Can be expanded to run with Digital Equipment's OS-8 oper- ating system. The unit is available either assembled or in kit form. The kit price of $799 includes the control panel, 1 K byte of static programmable memory, cabinet and power supply." Circle 639 on inquiry card. Hewlett-Packard's Personal Computer. . . The HP983 I A desk top computer is a personal computing entry of Hewlett- Minidisk and Verbatim™ - New Products from ITC Information Terminals Corporation, 323 Soquel Way, Sunnyvale CA 94086, announces a new proprietary ferric oxide binder system called Verbatim™ This new material will form the storage medium for the company's floppy disks, magnetic cards, computer cartridges, Packard, which comes in at the high end of the present day spectrum of price, $7200. This machine speaks BASIC with an 8 K byte source program string area expandable to 32 K maxi- mum in 8 K byte increments. It uses an on board tape drive with 90 ips (229 cm/sec) search and rewind speed, 22 ips (56 cm/sec) data transfer speed. The tape cartridge can hold approximately 250,000 bytes and is available to BASIC applications programs as a resource. The average access time is quoted as six seconds. Auxilliary ROM cartridges are also available for extension of its capa- bilities. The main display peripheral is a 32 character LED alphanumeric device, and the keyboard is used as the primary interactive inputs. Options include printers, floppy disks and other goodies. For inquiries contact Hewlett-Packard at 1501 Page Mill Rd, Palo Alto CA 94304." Circle 640 on inquiry card. digital cassettes, mini data cassettes and the MD 525 minidisk. The new binder is said to be more resilient and less abrasive than previous binders. The minidisk is approximately half the size of the standard floppy disk and provides one third the storage capacity. Priced at $5.95 per disk, the minidisk is intended for use in the small systems market as well as in power typing and editing systems. When you use high speed digital media, this type of product will prove most useful." Circle 641 on inquiry card. Bite Analysis, Anyone? The latest issue of Complot's Appli- cation Newsletter describes a new tech- nique being used at the University of Michigan's School of Dentistry. Re- searchers are using computer graphics PAPERBYTES Design and Implementation of a Tiny Assembler 6800 — Microprocessor Self Assembler $7 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 All 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 barcode 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 I | Address I | City State 7j£_ I J PAPERBYTES Tiny Assembler 6800 Q Check enclosed □ Bill MC # □ Bill BA # Price of Book $ Postage, 35 cents $ Total $ Exp. Date Exp. Date Signature In unusual cases, processing may exceed 30 days, Vou may photocopy this page if you wish to leave your BYTE intact. No. 700 JL 135 Circle 51 on inquiry card. ■'if Vs ' '. "igure 2. The coordinate po nts comprising our model of tlie literal craniofacila morphology of the skuLL in conjunction with a computer to study how changes in the number of teeth through time can affect the shape of the skull and face. An X-ray of the skull's profile is first digitized into 177 key coordinate points to facilitate plotting. A typical plot is then produced in 30 seconds, which can be overplotted to show deviations of the skull and jaw due to age, corrective surgery or other factors. Researcher Dr Geoffrey Walker looks upon the technique as a major tool which can improve the quality of cor- rective facial surgery and other dental techniques. For further information contact Complot Application News, One Houston Sq (at 8500 Cameron Rd), Austin TX 78753. ■ Circle 642 on inquiry card. A New Economical 6800 Software Package Users of 6800 based microcomputers will be interested in Inpro Micro Sys- tems' new software package called MIKADOS, a combination debugging program, assembler and operating sys- tem which resides in 2.5 K bytes of programmable memory. The assembler generates object code on the same line as the user's mnemonic to provide an immediate program listing. The price, which includes user manual and hexa- decimal object code listing, is $12.95. Contact Inpro Micro Systems, POB 7776, Van Nuys CA 91409." Circle 643 on inquiry card. With a Small Floppy Disk, Where Does One Get Media? Media (for those new to the term) is a generic name for tapes, floppy disks, hard surface disks, etc, which can store data. International Terminals Corpo- ration has recently introduced a new line of floppy disk media for use with the new drives such as the Shugart Mini- Floppy. The price of the ITC MD 525 flexible disk cartridge is $5.25 in single Now available direct from manufacturer. . PS-40 48-column Thermal Printer • 64 ASCII characters (upper case) • TTL level parallel interface • STROBE-BUSY handshaking • Active low new line implementation • Local line feed (continuous) • 20 characters-per-second throughput PS-40 mechanism and Print Head $250 With TTL parallel interface — kit $350 With TTL parallel interface — assembled and tested $400 PS-40 with versatile multifunction RS-232C interface (F-8 microprocessor) — assembled and tested $550 Power supply $100 Case $ 80 Paper roll (5%" x 164) $ 3 Shipping Charges $ 4 • Delivery — Four weeks ARO, F.O.B. Addison, Texas Please complete and return coupon with check or Master Charge number. Money back guarantee! Texas residents add 5% sales tax. telpar, inc. To:Telpar, Inc. 4132A Billy Mitchell Road, P.O. Box 796 Addison, Texas 75001 Telephone (214) 233-6631 □ Enclosed is my check in the amount of $ purchase of . covering I □ Place my order on Master Charge, please. My MC number ; expiration date is l Signature Name (please print) _ Address City _State_ Zip Circle 46 on inquiry card. 136 quantities, and the press release says delivery is from distributor stocks. The company is located at 323 Soquel Way, Sunnyvale CA 94086." Circle 644 on inquiry card. Not for the Casual Amateur, But . . . This "Traverscan" absolute free cursor digitizer from the H Dell Foster Company, POB 32581, San Antonio TX 78216, is an interesting idea which experimenters might find challenging to emulate. This is a real time graphic digitizer which measures, counts and displays the X and Y coordinate values of points, with six digits per axis read directly in English or metric units. Numerous operational features include electronic scaling, 2 axis scalable inte- grator (or digital planimeter) for auto- matic area compulation, and of course, output interfaces through RS-232C serial lines so that the data can be captured by a computer. One uses a graphic digitizer to get information from drawings into a computer by tracing lines and tracing around regions. The complexity of this particular device strongly suggests it has some microprocessor intelligence built into it locally. H Dell Foster Company is a subsidiary of the Keuffel and Esser Company." Circle 649 on inquiry card. Improving Your Memory If you want to experiment with APL or other sophisticated data con- structs requiring extensive memory space, (see the editorial in the November 1976 BYTE), you may be interested in the new 64 K byte programmable memory THE COMPUTER ROOM SMALL COMPUTER SYSTEMS • SOFTWARE • AMATEUR RADIO EQUIPMENT 3455 Southwest Temple Salt Lake City, Utah 841 15 Phone:801-486-4311 "WE TAKE THE insasn out of the mora " One Of The Nations Largest Full-Service Computer Stores. Over 1600 Square Feet Of Sales And Service Facilities. WHEN YOU WRITE FOR OUR CATALOG AND ENCLOSE $1 TO HELP DEFRAY THE COST OF HANDLING AND MAILING, HERE'S WHAT YOU GET: 1. A CERTIFICATE GOOD FOR $2 ON YOUR NEXT PURCHASE 2. THE COMPUTER ROOM EASY TO UNDERSTAND CATALOG COVERING I MS A I THE DIGITAL GROUP POLYMORPHIC SYSTEMS SOUTHWEST TECHNICAL PRODUCTS CORPORATION TECHNICAL DESIGN LABS ETC. 3. the COMPUTER ROOM -easy guide- to help you PICK THE RIGHT SYSTEM, PERIPHERALS, COMPONENTS, AND SOFTWARE FOR THE BEGINNER THE ADVANCED THE EXPERT THE SMALL BUSINESS 4. A CURRENT LISTING OF PRESENTLY AVAILABLE SOFTWARE PUBLICATIONS PERIPHERALS 5. INFORMATION ON REPAIR SERVICE, LOW COST CUSTOM PROGRAMMING AND OTHER SPECIAL SERVICES. AT THE COMPUTER ROOM YOUR written questions AREHAPPILY RECEIVED AND PROMPTLYANSWERED WE ALSO STOCK A COMPLETE LINE OF AMATEUR RADIO EQUIPMENT BANKAMERICARD 137 MASTERCHARGE Circle 47 on inquiry card. Complete listing of all fea- ture articles appearing in Volume I of BYTE- September, 1975 thru De- cember 1976. Indexed for easy reference. Includes all errata. To get yours, send a $.24 stamped self addressed en- velope to: free BYTE Index 70 Main Street Peterborough NH 03458 board recently announced by Extensys Corporation, 592 Weddell Dr, Suite 3, Sunnydale CA 94086. The 5 by 10 inch (12.7 by 25.4 cm) board has a hardware provision for bank switching to add over one million bytes. This Altair compatible board also allows memory address to be set in 8 K byte increments and provides hardware protection in 16 K byte increments. Power supply voltages re- quired are 12V 300 mA, 5 V 750 mA, and —5 V 1mA (Power supplies are not included). Memory overlap protection is provided to prevent conflict with existing memories. The price of the 64 K byte board is $1,495. A 32 K byte board is available for $895, and a 48 K byte board for $1,195." Circle 650 on inquiry card. Voice Synthesizers, Anyone? MICOM Systems, 9551 Irondale Av, Chatsworth CA 91311, is manufacturing a Voice Response System intended for minicomputers, which uses a micro- processor as a control element. The press release describes a system which can accept Touch-Tone encoded inputs and give digitally generated synthetic voice outputs. This system, which is definitely oriented toward commercial systems markets, has prices beginning at $500.* Circle 651 on inquiry card. A Decimal Order of Magnitude Difference in Price We received this picture of a new Model 100A Logic Analyzer, produced by Paratronics Inc, 150 Tait Av, Los Gatos CA 95030, and seen in some detail in Popular Electronics, February 1977. This unit is available in a complete kit for $198.50, along with a 100 page assembly and applications manual. According lo its makers it compares quite favorably with commercial labora- tory equipment products costing $2750 (and up). The output display is on an ordinary oscilloscope, with blanking, and consists of a truth table of the last 16 states of a 1 byte word of data. Various other useful features make this an interesting test instrument which may prove useful to many of our readers." Circle 652 on inquiry card. Two New Dajen Cassette Interfaces Dajen Electronics, 7214 Springleaf Ct, Citrus Heights CA 956 1 0, has an- nounced two new cassette interface boards compatible with the Altair bus. The first board is a universal cassette interface called the UCRI, available for $1 75 assembled or $ I 35 in kit form. Data transmission rate is user selectable from 520 to 41,000 bps. The unit can be optionally equipped with two Texas Instruments Introduces 12 Digit VLED Display Board Thinking about your own custom decimal displays? Texas Instruments has announced a multidigit visual light emitting diode (VLED) display stick with 12 digits on a single board, called the TIL804. The characters are 7 seg- ment red VLEDs, 0.27 inches (0.66 cm) high; typical brightness is 500 micro- candelas at 20 mA. The display stick features right hand decimals at each digit, continuous uniform brightness of segments within each digit, and a wide viewing angle for distances up to 15 feet. It is presently available in a common cathode configuration to facili- tate multiplexing. Intended commercial applications include Citizens' Band ra- dios, scanners, digital instrumentation, electronic games, medical electronics, test and measurement equipment and desk top calculators; these would make excellent numeric displays for the experimenter as well. The price of the board is $14.65 in quantities up to 100 and $11.65 eacli in quantities above 100 to 999. Write Texas Instruments, POB 5012, Dallas TX 75222." Circle 659 on inquiry card. reed relays allowing the unit to inde- pendently control two cassette re- corders. The second interface board, the CRI-B, has a maximum data trans- mission rate of 6000 bps and is avail- able for $165 assembled or $120 as a kit." Circle 571 on inquiry card. A Source of Neat Ideas Persons interested in discovering the functional characteristics of a well thought out editing terminal design would do well to look at the new "2645A Display Station User's Manual," publication number 02645-9000 1, put out by Hewlett-Packard Data Terminals Division. (Inquiries should be addressed to Inquiries Manager, Hewlett-Packard Company, 1501 Page Mill Rd, Palo Alto CA 94304.) This pamphlet of approxi- mately 40 pages in length is the user's manual for this microprocessor con- trolled data terminal with editing capa- bilities, which make it extremely adapt- able to numerous practical tasks." Circle 658 on inquiry card. A New Tutorial Kit from Motorola Motorola has announced a new 8 bit 6800 based microprocessor kit for tutorial purposes called the Edu- cator II. The unit contains a 128 byte IN WIRE- WRAPPING <^R) HAS THE LINE. . . MODEL WD-30 I WIRE DISPENSER ■ 50 FT. ROLL OF 30 AWG. KYNAR WIRE-WRAPPING WIRE ■ CUTS THE WIRE TO LENGTH ■ STRIPS 1 INCH OF INSULATION AVAILABLE IN FOUR COLORS WD-30-B BLUE WIRE WD-30-Y YELLOW WIRE WD-30-W WHITE WIRE WD-30-R RED WIRE EACH PATENT PENDING MINIMUM BILLING $25.00 ADD SHIPPING CHARGE $1.00 NEW YORK STATE RESIDENTS ADD APPLICABLE TAX ®KYNAR PENNWALT OK MACHINE & TOOL CORPORATION 3455 Conner St., Bronx, N.Y. 10475 (212) 994-6600 / Telex 125091 139 Circle 20 on inquiry card. programmable memory, a 512 byte read only memory and a TTL clock circuit. An executive program residing in the read only memory contains rou- tines for servicing interrupts, program transfer to and from cassettes, tape searching programs, and a program to test the finished kit. The executive program uses 14 bytes of the program- mable memory as a scratchpad mem- ory, leaving 114 bytes for user pro- grams. An optional 128 bytes of pro- grammable memory can be added later. The Educator II comes with an aluminum case for $169.95, including assembly and operating manuals. The unit is available from Motorola dis- tributors. For further information, dis- tributors and computer stores should contact Motorola HEP/MRO National Sales Manager, 705 W 22nd St, Tempe AZ 85282.- Circle 657 on inquiry card. Timesharing Software Listing Available Gregory Research Associates, 1900 Greymont St, Philadelphia PA 19116, are making available a directory entitled Remotely Accessible Conversulional Pro- grams and Data Bases. The price is $28, which includes three bimonthly updates. The listing is a guide to thousands of programs for timeshare users in the areas of business, engineering and science. The programs listed are written in a conversational style which requires no special knowledge of computer languages. Users pay only for those programs used based on rates listed in the directory. Programs are received via standard telephone lines; some require terminal data rates of 120 characters per second." Circle 653 on inquiry card. A Processor Board with Expanded Features Morrow's Micro-Stuff, POB 6194, Albany CA 94706, announces an Altair bus compatible plug-in processor board designed to expand the capabilities of existing 8080a microcomputer sys- tems. Available for $325 assembled or $250 as a kit, the board offers two spe- cial features. The first enables the user to step through a program at a rate variable from 1 to 65,000 steps per minute. The second feature prevents the 8080a processor from shutting off after a HALT instruction. While in this state, registers, memory and IO locations can be examined and altered. A built-in 12 pad keyboard and 10 digit readout are included on the board." Circle 654 on inquiry card. A New 6800 Microcomputer Evaluation Kit A new microcomputer evaluation kit for M6800 systems is now available from the Integrated Circuit Division of Motorola Inc. This kit will prove quite useful to those individuals with a min- imal budget and a keen interest in computers. The MEK6800D2 kit, when assem- bled, is a fully functional microcomputer system based on the MC6800 micro- processing unit and its family of asso- THE 8700 COMPUTER/ CONTROLLER An exceptional price on an applications oriented 6503 based micro-processor system featuring: ► IK bytes RAM locations (512 bytes supplied) ► IK bytes ROM(25G byte monitor included) ► 2 - 8 bit input ports ► 2-8 bit output ports (Hatched, 1 buffered) ► 24 key touch operated keypad (used by monitor to allow entry & execution of user programs also user definable. ) ► 2 - latched seven segment displays (used by monitor to display memory location & contents easily user programmed) ► Optional cassette interface ($22. 50) fits entirely on the processor board. THE IDEAL. LOW COST S0L0TI0N TO IMPLEMENTING ALL THOSE WILD COMPUTER BASED CONTROL SYSTEMS YOU'VE BEEN DREAMING OF! PAIA software currently available or under development includes: Music synthesizer interface: Home applications package including: multi-zone fire/burglar alarm, real time clock, energy saving heat/air conditioning control, computer generated 'tloor-beH": Model roalroad controller and more 8700 COMPUTER CONTROLLER KIT $149.95 (requires 5v. (» 1. 2A. ; 12v. @ 150 ma. ) Shipped direct from PAIA (add $3. 00 postage) ELECTRONICS • DEPT. 7 • 1020 W. Wilshire Blvd. • Oklahoma City. OK 73116 Also available at FULL- LINE Computer stores. Circle 49 on inquiry card. 140 ciated memory and IO devices. It is made up of two basic units, a micro- computer module, 9.75 by 8.3 inches (24.8 by 21 cm), and a keyboard and display module, 10 by 6.25 inches (25.4 by 15.9 cm). The keyboard and display module also contains audio cassette interface circuitry for the Kansas City Standard, 300 bps redun- dant phase encoding. The display consists of six 7 segment LED readouts that display four address digits and two data digits in hexadeci- mal format. The keyboard is hexadeci- mal with eight additional command keys. Also included in the kit's three-ring binder is an assembly manual that covers testing, schematics, "JBUG" mon- itor program listing and parts listing. An M6800 Programming Reference Man- ual and the M6800 Microcomputer A Summary Detail of the MEK6800D2 The eight command keys are: M Examine and change memory. E Escape from operation in progress. R Examine contents of processor registers P, X, A, B, CC and S. G Go to specified program and begin execution. P Transfer programs or data from memory to cassette tape. L Load memory from cassette tape. I\l Trace one instruction. V Set (and remove) breakpoints. The Microcomputer Module includes the following devices: 1 MC6800 MPU 1 MCM6830 read only memories with JBUG monitor (SCM44520P) 3 MCM6810 programmable memories (128 by 8 for 384 bytes total) 2 MC6820 peripheral interface adapters (PIA) 1 MC6850 asynchronous communications adapter (ACIA) 1 MC6871 B clock generator In addition, the board has been engineered to accept the following optional devices (not included with the kit): 2 MCM6810 programmable memories (128 by 8) 2 MCM68708 erasable read only memories 3 MC8T97 buffers 2 MC8T26 bidirectional buffers Custom expansion on the Microcomputer Module by the homebrewer is simplified by a wire wrap area that will accommodate two 24 pin and twelve 16 pin sockets. The JBUG monitor read only memory can be re- placed by a Mini Bug II read only memory for RS232 interface to other peripherals. System Design Data book are also part of this package. The kit may be used "as is" or expanded to a full 64 K system through addition of buffers (and minor modifications of on board memory decoding). Cost of the kit is $235, and it is avail- able from Motorola Distributors. The 5 V, 2 A power supply and cassette recorder required by this device are not included, and can be purchased locally." Circle 655 on inquiry card. A New Prototyping Board _JUfe ■ ■ , ! #MWH!|lllLi mih ma »HAig*Tny "• •" fiWHMBfl^^^MV ■ ■■■.\V.\. .:.'-: , ; •■• ■ .,...-..,-. ' ;; ''>: 3 ': ? ^-:^^^ggfflB9|l safe.. . . - -" SiiiiSBilHiil mm%M5!^*$*mii ^mmmmmmM\ life. :;rSii&i5iHf»tO&| ISliSItlfiSK;;: :. . .. ■ .:.:■. . :■ '..:... .' .. ' ,\ '. =■ eftaaM&fer ~ itmmnmmti A new general purpose printed circuit board for the experimenter is avail- able from World Wide Systems Corpor- ation, 8305 Private La, Annandale VA 22003, for $24.95 postpaid. The 100 pin board is Altair bus compatible and features two gold plated 36 pin IO strips. A portion of the board has been reserved for the installation of a voltage regulator and heat sink; the power bus, ground plane and pins are labelled. Board dimensions are 5.125 by 10 inches (13.02 by 25.4 cm). The board can be used with point to point solder connections, wire wrap or a combination of the two. With this tool the experimenter can try his hand at designing custom peripheral inter- faces." Circle 656 on inquiry card. 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 Your computer keeps time of 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 monilor four separate inputs under software control. Use your computer to call other computer syslems 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 1 10, 134.5. 150. 300, and 600 band. Hard/Software package which allows your computer to teachMorse 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 Eighl Bit Digital to Analog Converter Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call for detailed product brochures. $19.00 141 Circle 50 on inquiry card. Christopher D Glaeser 3904 NW 15th St Gainesville FL 32605 Programming Ouickies Novel 8 Bit Multiplication Here is a I byte multiplication routine that was submitted by Christopher D Glaeser for use on an Intel 8080 along with his idea on how to save memory space and execution time. Working on the premise that one of the main problems with many multiplication routines is that they must call another routine to perform a double byte shift, he uses the DAD H command of the 8080 to surmount this difficulty. The DAD H com- mand performs the double byte shift by adding the HL register pair to itself. This saves having to call another routine to perform this function. The operands are loaded into the C and D registers prior to calling the subroutine. The resulting answer is placed in the BC register pair. All of the numbers in this listing are in octal. Address Op Operand Label Mnemonic Commentary 006000 325 PUSH D 1 save original values of registers J on stack; 006001 345 PUSH H 006002 132 MOV E,D E:=first operand; 006003 026 000 MVI D.000 ) 006005 152 MOV L,D 006006 142 MOV H,D > initialize registers; 006007 006 010 MVI B.010 ) 00601 1 171 MOV A,C A:=second operand; 006012 037 LOOP RAR A:=A/2; 006013 322 017 006 JNCSKIP if CY:=0go to SKIP; 006016 031 DAD D else HL:=HL+DE; 00601 7 353 SKIP XCHG exchange HLwith DE; 006020 051 DAD H HL: = HL*2; 006021 353 XCHG exchange HLwith DE; 006022 005 DCR B B:=B-1; 006023 302 01 2 006 JNZ LOOP if CY:=0go to LOOP; 006026 104 MOV B,H else B: = H; [high order 8 bits of answer 006027 115 MOV C,L C: = L; [low order 8 bits of answer) 006030 341 POP H [ restore original value of register 006031 321 POP D 006032 311 RET return to calling program;" COMPUTER ENGINEERING THE MIDNIGHT SPECIAL . . . ... a full color limited edition poster Jones fantasies. for your Casey The poster is 1 6V2 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 Posters $3.00 each plus $ .50 mailing □ Check Enclosed $ Exp. Date Mame_ In unusual cases, processing may exceed 30 days. Address, City .State Zip_ I- J Circle 51 on inquiry card. 142 The volume we've been waiting for!' The Best Of BYTE, Volume I The answer to those unavailable early issues of BYTE. Best of BYTE, Volume I, 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 $11.95 and 50 cents postage and handling. Here is just a taste of some of the titles to be found in the Table of Contents, from the nearly 70 that appear there: The Shadow, Buck Rogers, and the Home Computer Gardner The State of the Art — Helmers Could a Computer Take Over? — Rush A Systems Approach to a Personal Microprocessor — Suding Programming for the Beginner — Herman Magnetic Recording for Computers Manly Assembling an Altair 8800 — Zarrella Build a 6800 System With This Kit Kay The Digital Equipment LSI-11 — Baker Flip Flops Exposed — Browning Keyboard Modification — Macomber Build a Television Display Gantt Build a Fast Cassette Interface — Suding Add a Kluge Harp to Your Computer — Helmers Write Your Own Assembler Fylstra Design a On Line Debugger Wier and Brown Processing Algebraic Expressions — Maurer Total Kitchen Information System Lau A Small Business Accounting System — Lehman Books of Interest Magazines Circle 51 on inquiry card. Best of BYTE, Volume 1 Send to: Bits, Inc. 70 Main Street Peterborough NH 03458 Check Payment method: My check is enclosed Bill my MC No.. -Bill my BAC No.. . Exp. date . Exp. date . ixiame Address Citv State Zip Code Signature . books You may photocopy this page if you wish to leave your BYTE intact. Price of book $11.95 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. 143 Gourmet Reading from BITS » M ^k> c%& ""t<:elfoi Software Gourmet guide | (^fcook ^KHW iwrtiw Scelbi Software Gourmet Quide < 5g ok i 9ook S HUM (WWIillU coNiuiMO mt. -Scelbi "6800" Software Gourmet Guide & Cookbook -Scelbi "8080" Software Gourmet Guide & Cookbook, both by Robert Find- ley. Have you tried cooking up a program lately on your 6800 or 8080 processor? Have you needed a dash of ideas on how to add spice to a program? Then the Scelbi "6800" Software Gourmet Guide & Cook- book and the Scelbi "8080" Software Gour- met Guide & Cookbook may prove to be quite useful additions to your library. Both books contain a wealth of informa- tion on the 6800 and 8080 instruction sets, plus general programming techniques ap- plied to the 8080 and 6800, conversion rou- tines, floating point routines, decimal arith- metic routines, and much more. Order yours today and get a taste of what your processor can do. Both books are priced at $9.95 each. ■■■■■■■■■ ■■■ BDMEDJCflL , ELECTRQNICSi IffiMBI ■ ■■■i ■ ■■■i ■■■■■■i !■■■■! II II ■nmmmnmBi ■■■■■■■■■■■■■■■■■■■■■i --■■■■■■■■■■■■■■■■i ■■■■■■■■■■■■■■■■- ^.Security Electronics by John E Cun- ningham. To catch a thief, apply liberal doses of ingenuity and a modicum of cleverness. Find out what's been tried in conventional alarm systems before you go off computerizing your home security sys- tem, though. New 2nd edition $5.95 Introduction to Biomedical Elect- ronics by Edward J Bukstein. What's been done in robot doctors? Nothing so far. But in terms of electronic aids to physicians and practices of health researchers, consult this background review of the field of biomed- ical electronics $5.95 -Practical Microcomputer Program- ming: The Intel 8080 by W J Weller, AV Shatzel, and H Y Nice. Here is a comprehen- sive source of programming information for the present or prospective user of the 8080 microcomputer, an architecture which ap- pears in the MITS Altair, 8800, Processor Technology SOL, I MSA I 8080, Polymor- phics POLY-88, and other popular micro- computer system products. After several preliminary chapters, the au- thors get down to practical details with top- ics such as moving data, binary arithmetic operations, multiplication and division, use of the stack pointer, subroutines, arrays and tables, conversions, decimal arithmetic, vari- ous 10 options, real time clocks and inter- rupt driven processes, and debugging tech- niques. Most examples are given in symbolic assembly form, with occasional listings of assembled code using a Computer Automa- tion software development system. This 306 page hardcover book is well worth its $21.95 price and should be in every 8080 or Z-80 user's library. Send to: BITS, Inc 70 Main St Peterborough NH 03458 Check payment method: My check is enclosed Bill my MC No. Bill my BAC No. Exp. date Exp. date Total for all books checked Postage, 50 cents per book for books Grand Total $ $ Name Address City State Zip Signature You may photocopy this page if you wish to leave your BYTE intact. In unusual cases, processing may exceed 30 days 144 The Thinking Computer: Mind Inside Matter by Bertram Raphael. Artificial intel- ligence, or Al, is the branch of computer science concerned with making computers "smarter." It is a growing, vital field that is, unfortunately, the subject of much popular misunderstanding. The Thinking Computer: Mind Inside Matter is a lucid introduction to Al that does much to overcome this mis- understanding. With a minimum of technical jargon, this book discusses the capabilities of modern digital computers and how they are being used in contemporary Al research. It discusses the progress of Al, the goals, and the variety of current approaches to making the computer more intelligent. S6.95. Projects in Sight, Sound, & Sensation by Mitchell Waite. Dedicated "to all space cowboys." Detailed theory and practice of seven fascinating amateur electronics proj- ects, along with a complete and detailed ap- pendix on how to make PC boards. The projects included in this book are: The Syntheshape, an art generator that can be used to generate innumerable complex and beautiful patterns on the screen of an oscil- loscope. An electronic music box that will play over 3000 possible melodies when the lid is lifted. A way to control muscle tension explained in chapter 4. A muscle-wave bio- feedback monitor can be used to achieve deep relaxation. The laser-light show trans- fers light into fascinating patterns in a dark- ened room. Other projects include a Kirlian camera, a digital ESP machine, and neon- light randomizer. $5.25. Mind Massagers from BITS The Great International Math On Keys Book, 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 time? This book is a compendium of simple explanations and step by step procedures for accomplishing numerical solutions to numerous com- monly 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 in- clined to manipulate numbers. $4.95. How to Solve Problems by Wayne A Wickelgren. When confronted by a problem, many of us spend more time puzzling over how to solve it than in actually doing so. This book analyzes and systematizes the basic methods of solving mathematical problems. The methods are described in terms of a modern theory derived from research in computer simulation of thinking. Examples illustrating these methods include chess problems, logical puzzles, and railroad switching problems frequently encountered in science and engineering. Whether your in- terest in solving problems is professional, recreational, or both, you will find this a helpful book. S6.50 softcover. CKESS SKILL mmm QdtMby PcturW.Frey ; * it k', | i IB Chess Skill in Man and Machine edited by Peter W Frey. This is a most fascinating book, concerning itself with the when, how, and why of computer chess. The when de- scribes past ACM computer chess tourna- ments, with the details of more than a doz- en games. The how consists of the basics of both human chess skill and computer chess theory. It includes a detailed description of the best computer chess program to date (Northwestern University's CHESS 4.5), an end game program called PEASANT, and of various search strategies and heuristic com- puter chess theory which should enable one to write his own chess program. The book ends with the why concerning the contribu- tions, now and in the future, of computer chess to understanding artificial intelligence, human intelligence, and learning. The only difficulty for the hobbyist's computer chess program is the need for a large computer for the fast processing of search strategies and large core storage for the program and its results. $14.80 hardcover. Send to: BITS, Inc 70 Main St Peterborough NH 03458 Total for all books checked Postage, 50 cents per book for books Grand Total Check payment method: My check is enclosed Bill my MC No. _Bill my BAC No. Exp. date Exp. date Name $ $ Address City State Zip Signature You may photocopy this page if you wish to leave your BYTE intact. In unusual cases* processing may exceed 30 days 145 Circle 51 on inquiry card. Continued from page 11 sets a very high goal for us. When your latest program crashes, a poster like this on the wall could give you the inspira- tion to hit the restart button and try again. I find that I can justify my activities in small computing a lot easier when I can point to an illustration like this than through the idea of the "ultimate toy." One picture is indeed worth a thousand BYTES. Robert J Retelle 2005 Whittaker Rd Ypsilanti Ml 49197 WHY NOT 8 TRACKS? I am curious to know why 8 track tapes are not used for memories instead of cassettes. I would think that by using one channel for a clock track you could have memory locations via a clock track counter. Also by moving from track to track, access time would be saved, would it not? Please elaborate. Kurt Kramer 8634 Lake Isle Dr Tampa FL 33617 Sounds like a good idea. I once saw a surplus automated cartridge turret mechanism which had been used by a radio station. This mechanism, which its owner intended to refurbish, would be used for an on line storage system of rather large capacity based on the wide tape cartridges similar to an 8 track stereo cartridge. Maybe a reader will pick up on this and try it out, reporting the results as an article. RETROSPECTIVE: BYTE'S PORNOGRAPHICPHOTOS MARCH ON Never thought that BYTE would go in for pornography. But without the benefit of a G-slring, you show on page 54 of the March 1977 issue a bare soldering iron. Soldering irons without G can certainly corrupt innocent com- puters. Since your local Sears or Radio Shack do not generally bother to stock properly grounded ones, beginners should be warned. Sholom Kass 567 Baden Av San Francisco CA 94080 The G-string mentioned in Sholom Kass's letter is the ground wire of a 3 wire 110 V interface for power. It is standard industrial practice to use such grounding, especially where delicate parts such as microprocessors, and other LSI or CMOS gates are being used. The static charge which a normal human being can build up in a dry room with rug and rubber soled shoes can drive a spark across a considerable gap, and is measured in many tens of thousands of volts. SOME NEWS FROM DEUTSCHLAND My involvement with micros began when one of your associates, Dan Fylstra, gave a talk at IFIP/IFAC in Paris last summer, in which he managed to men- tion the Motorola 6800, the MOS Tech 6502, and also gave an example of a pro- gram in PL/M. On coming back to Darm- stadt, I found two groups of people at our facility who were interested, nearly all professional computer engineers. One of them, Asbj0rn Smitt, had already worked on a 6800-based system which we use for simulating satellite telemetry data; another, Heimuth Werthmann, had his own business and had already built a 6800-based system. So our choice as a club was somewhat inevitable. Asbjflrn had bought the EVK 100 and the SWTPC AC-30 cassette controller, and we very nearly went EMI, but then the prices sort of doubled, so we went with OSI instead after our chairman, Graham NEW 8080 and 8085 REFERENCE GUIDE A TOTALLY NEW CONCEPT! SAVES TIME AND MONEY! MAKES YOUR JOB EASIER! A powerful new tool for every serious 8080 user — professional and novice alike. Priceless timesaver for engineers, technicians, and programmers. Saves time and money in the lab, on the production line, or in the field. Convenient pocket size — 3% by 7% inches — gives quick and easy access to all vital reference data. No more searching here and there for codes, instructions, or definitions. It's all there — at your finger tips — everything you need to successfully use the 8080A and — Intel's new 8085 microprocessor. Features cross listing, for rapid assembly and disassembly, of MACHINE CODES and MNEMONICS • Concise description of 8080 and 8085 OPERATIONS, SIGNALS, PINOUTS, and INSTRUCTIONS • Convenient cross conversion of OCTAL, HEXIDECIMAL, DECIMAL, ASCII, and EBCDIC codes • Easy-to-read tables of powers of two, eight, and sixteen . . . and much more . . . Sturdy • Handsome • Easy-to-use • Data Packed Your timesaver will give many years of professional service. $12.95 each (plus postage & California sales tax) — 25% discount for 4 or more. MoneyBack Guarantee: You must be fully satisfied or simply return the guide within 15 days for full and prompt refund. URBAN INSTRUMENTS 4014 CODY ROAD • DEPARTMENT C1 • SHERMAN OAKS • CALIFORNIA 91403 master charge BANKAMERICARD PLEASE SEND. NAME STREET .8080 ti mesa vers to: CHECK/M.O. ENCLOSED D BANKAMERICARD □ MASTER CHARGED CARD NUMBER C|TY GOOD THRU 4 DIGITS ABOVE NAME (MASTER CHARGE) STATE .ZIP SIGNATURE Circle 52 on inquiry card. 146 Else (whose main interest is biological monitoring), had convinced everyone we needed something which could be started off cheaply. (In the end Graham is at the Rolls-Royce end of the market, with a Digital Group Z-80.) I had bought a SCAMP, which to my astonishment worked first time despite some startup trouble which we attributed to the rather bulky socket for the CPU, and which eventually I hope to work up into a controller for the Selectric I'm typing this on. Our club is now about 40 strong, with considerable purchasing leverage since there are believed to be about 30 people actively buying components (25 OSI superboards, 16 Selectrics, which was all I could get in my Volvo the last time I went to England, and if you know anything about the quaint European cus- toms, avoid Belgium), and of course our own BYTE archive. We are also in contact with John Barnes, a founder and mem- ber of the British Amateur Computer Constructors' Association, and having heard of the success he has had in using standard 8 track cassettes with short endless loops and saturation recording, I have ordered a few for experiment. Graham and Helmuth in the meantime are working on Philips cassettes. Things would probably have started more slowly had it not been for the impact of BYTE and the fact that Jack Davies, the guy running PACS, lives in Darmstadt with a perpetual fount of goodies which are available for inspection and (usually) instant purchase. The only complaint we have about OSI is that they have never dished out the listing of the Superbug monitor; so this has now been decompiled using the Thomson Lister (running on the first of our club machines, built by Bob Dees of ICL), and another program running on our 4/72. (ICL, not Amdahl!) I guess our next move is to find out if Tom Pittman has an OSI version of Tiny BASIC yet. I suppose the next move would be for us to get some sort of European con- vention going. It would be nice if I could appeal through your pages for any hobbyist clubs in Europe who would be interested in attending such a thing, or indeed if anyone is prepared to offer a site which is fairly central. There have been two attempts to get Europe-wide hobby clubs formed, but in both cases the impulse has come from the hobby industry rather than the hobbyists, who tend to view (other people's) commercial bias with suspicion. If we forget the launches which are scheduled for this year ESA can probably be persuaded to host it if we hear from enough people, but obviously we are equally curious if anyone has a 72 character graphics cum VDU interface for 625 line TV receivers, or a meta-assembler capable of compiling code for more than one micro, and so forth. Incidentally, why use OMEGA when there are satellite systems, like LORAN-c? [Ralph Burhans is busy at work on a LORAN-c interface . . . CH/ Good luck to BYTE, may it grow ever heavier, and perhaps sprout a Euro- $699 builds Equinox 100™ ki*A^L*ir 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. EquinoxlOO 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. liTJ 37t1 ii rid II ITiTUfl IflTi I ■ **.\r. Li HTiril 3iTU "A trademark of MITS Inc. Circle 53 on inquiry card. 147 SUPER DENSE GRAPHICS 320 Horizontal by 200 Vertical V-»"**C0S<2tX/b) •■.•I, b-42.86 IF YOUR COMPUTER w 'O' CAN'T SHILE (OR PLOT) IT PROBABLY " NAB NERLIH DEFICIENCY V ANEHIA. \ ^j—^y Cook Qook Circle 55 on inquiry card. MULLEN COMPUTER R DAPrV; BOX 6214, HAYWARD, CA 94545 3 I m m » X m > CA CAVE :>i,iti> RELAT/OPIO ' s ISOLATOR CONTROL $H7 * 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. EXTENDER 2 BOARD 2 W/ LOGIC Z PROBE$35 < O 3 8 4L-. Boards are kit form only. Cal res add tax. ^ V *4TIBLE •AVAILABLE BY M* 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. enmptek. Boards DO Something m It ri.i i 1 1 1 i i i i i i CL2400 Real Time Clock S98 — 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 $360— Assm. PC3216 $189— Kit $240— Assm. PC3202 $39.50— Kit $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. 'Real World Electronics' P.O. Box 516 La Canada, CA 91011 (213) 790-7957 151 Circle 56 on inquiry card. Circle 57 on inquiry card. SOLD OUT! That's right, if everybody who read this ad for our BASIC SOFTWARE VOLUME 1 album would order one, we'd be sold out! Includes 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 inter- face (we coded all three ways). Or make cassette copies. Only 6 bucks. Don't be a dummy, order today! Satisfaction guaran- teed or money back. (fcg t0: SOFTWARE RECORDSl W^S po BOX 8401-B UNIVERSAL CITY, CA 91508 (CALIFORNIA RESIDENTS: PLEASE ADD 6% SALES TAX) PLEASE SEND ME N.J. RESIDENTS ADD 5% TAX □ KD11F □ 1MSAI KIT □ POLY 88 KIT NAME. STREET. CITY STATE . . ZIP_ I ENCLOSE □ CHECK □ BANKAMERICARD #_ □ MASTER CHARGE #_ INTERBANK*. □ M.O. AMOUNT. EXP. DATE. EXP. DATE. SIGNATURE . BE SURE TO INCLUDE $8.00 FOR SHIPPING & HANDLING Mini Computer Suppliers Inc. 25 Chatham Road • Summit, N.J. 07901 Dept. B (201)277-6100 Baudot, as well as the more usual BCD to and from binary. For me, the best was chapter 5, "Floating Point Routines." Although (as the author notes) there are places where the code could be shortened, it is not that bad: a complete add, subtract, multiply and divide package (with conversions to ASCII, and from ASCII to floating point) in about 1.5 K bytes of relocatable code. The entire package is assembled (the only assembly in the book) with a hexadecimal listing in an appendix. One reason the code is so short is the extensive use made of the index register. The stack, on the other hand, is not used at all (except for the automatic usage implied by each subroutine linkage). Since 6800 in- dexed addressing is relatively slow, do not expect the floating point package to be fast. Yet, it's not bad: Floating point multiplica- tion, for example, takes a little more than 800 cycles, not quite 2 ms on a SWTPC 6800 system. One curious feature of the 4 byte floating point word format used here is that the words are stored upside down, that is, if the least significant byte of the mantissa is stored at word N, then the rest is stored at N+1 and N+2 (with the sign being the most significant bit of byte N+2). The two's complement power of two exponent is stored at N+3. This is the wrong order for the 6800 for the following reason: One (tricky) way to increment a 2 byte word is to transfer it to the index register and increment that. The author knows this trick (as shown on pages 3 to 5), but apparently does not know that the index register load instruction LDX transfers the 16 bit con- tents at memory location M so that the most significant half of the index register contains the contents of M, and the least significant half contains what's in M+1. Thus, the least significant byte needs to have a greater address. The division program on page 5 to 19, for instance, might be shortened and speeded up by using this trick; to do so, however, would require storing the mantissa bytes in the opposite order, and rewriting the program. The book will be of most use to program- mers who employ an assembler program, since most of the ideas are presented in symbolic source language form. (The major exception is the floating point package.) The book is well written and, considering the diversity of topics, well organized. As a source of ideas, it is inexpensive at $10." Jack Bryant Mathematics Dept Texas A & M University College Station TX 77843 Circle 58 on inquiry card. 152 Circle 59 on inquiry card. Note. . . . Scelbi also publishes an "8080" Software Gourmet Guide & Cook Book dr. dobbs journal of $1.5© COMPUTER >alisthenics b Or fhodontia Running Light Without Overbyte f. JOURNAL (OR USERS OF HOME i YOU PIjv With 1: H(180 TECO inJ i l-'lojlmf! Pmr.i SpecifiCUbrfl Willum f "S0< SOFTWARE FLOATING point ROUTINES FOR THE aio; r Mentor for the 6502 Jitk Brjdiliiw Unit Laridn for Ihc 6502 (ASKmblcHcw] Gimt) Mffl) "APPLICaTIOSS SOFTWARE" ftrawl Cimn in Pinmin'i MOD tiny RASIC Till Ktlli Low-Gtn ftsoo SytKni 5oftw*« S c™« Tedium. Shooting Start (or Uiierwyk't 6800 Mian BASIC \). BBSS rf /7.V£5 MINOL: Tiny Trek - More DCOJll & A Corrcciiun MINO!. Errata & Priise Erik T Mlielltt . Phillip I- COMPUTED MUSIC BIBLIOGRAPHY John Sndi, PCC R. SMRT Will Hun Uroy Finkel Ijiu Fid.i'i Sttpnnw I" the Editor's Now io ihc SCCS AND - Dr Dobb's Journal of Computer Calisthenics and Orthodontia. Published by People's Computer Company, Box 310, Menlo Park CA 94025. Sinq/e issue, $1.50; one year (1 issues), $10. Published by the people who brought you the Computer Faire, this toothsome periodi- cal serves up an amalgam of filling software listings and highly spiced commentary to its monthly readership. Dr Dobb's Journal (Dr Dobb is disguised as editor Jim Warren ) serves as a clearinghouse for new software information and the publication of such royalty-free programs as BASIC interpreters for use by readers. Because it is a nonprofit journal, DDJ accepts no advertising but does print new product information as a service to readers. Editor Warren has attempted to bridge the gap between computer profession- als and amateurs, and does not eschew the occasional biting remark in doing so. In Robert Benchley's immortal phrase, the tooth, the whole tooth and nothing but the tooth about Dr Dobb's Journal of Computer Calisthenics and Orthodontia is that it can help make your computer an indentured ser- vant. That about caps off this review . . .CM Fundamentals and Applications of Digital Logic Circuits by Sol Libes, Hayden Book Co, Roche/ le Park NJ, 1975, 184 pages. Paperback, $6.95. If anyone were to ask me to pick a particular book from my computer book 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 GDITYPER SYSTEMS CORPORATION A SUBSIDIARY OF TYCOM CORPORATION 26 Just Road, Fairfield, New Jersey 07006 (201)227^1141 M6800 ADVANCED SYSTEMS SOFTWARE RT/68® RT/68 II, is mask-programmed on a 6830 ROM that 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, Sys, Bkpt) and made tape load and punch program-usable. RT/68® is designed so programs that use Mikbug* I/O don't require changes. • POWERFUL REAL TIME EXECUTIVE • 100% SOFTWARE AND HARDWARE COMPATIBLE • IMPROVED CONSOLE MONITOR • EXPANDED PROGRAM DEBUGGING FEATURES • SUPPORTS AUDIO CASSETTE I/O • COMPREHENSIVE MANUAL INCLUDES SOURCE LISTING • IMMEDIATE DELIVERY ORDER RT68MR $55.00 ppd. THE MICROWARE CORPORATION RO. BOX 954 Des Moines, Iowa 50304 Write or use reader service card for free brochure. Phone Orders (515) 279-9856 BankAmericard and Mastercharge give all info on card. Mikbug* is a trademark of Motorola, Inc. 153 Circle 60 on inquiry card. Circle 61 on inquiry card. Your Mail Order Computer Shop... IMSAI8080kitw/rr722s/o?s(limitedquantity) $645.00 TDLZ-80ZPU (the one with full software available now) 242.00 EdgeConnectorsandguidesforlMSAI 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 MASTERCHARGEOBBANKAMERICARD For phoneand 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 perorder. 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 Confused About Printers? MPI HAS YOUR ANSWER! TTY REPLACEMENT? The SSP-40 contains its own ....... THESSP-40 ;§o;r -...for easy connection COW COST BUSINESS SYSTEM? THEMP-40 The MP-40 connects to your parallel port for ASC11 data transfer *575 '425 $ 179 MINIMUM COST FOR HOBBYIST? THE KP-40 KIT " I I 5f -40 KIT contains mechanism and minimum electronics for connection to your parallel port. All of our 40 series printers use the same reliable 5x7 impact dot matrix mechanism with up to 40 columns per line on ordinary paper with a print speed of 75 lines/minute MASTER CHARGE WELCOME • UTAH RESIOENTS ADD 5% SALES TAX SEND FOR FREE LITERATURE Box 22101 Salt Lake City, Utah 84122 . (801)566-0201 Fundamentals and Applications of Sol Llbes 1 T / 1 n , Q 3 n : | 1 y 1 1 '' istttm | , library and say, "This book gave me my money's worth," I would have to say that the book would be Fundamentals and Appli- cations of Digital Logic Circuits by Sol Libes. Anyone who is just starting to learn about digital electronics or computers should make it a point to study this book. Mr Libes has taken a multitude of related subjects and blended them into a text that is easy to understand and just as easy to follow. In addition to the text, the book provides review questions at the end of each chapter and problems related to the text for the reader to solve. Rather than jumping right into digital logic, the author starts out with the prin- ciples of semiconductors to show, in detail, how they function. Then, after this short course on semiconductors in the first chap- ter, the second chapter familiarizes the reader with binary numbers and coding systems. This particular chapter also shows how to convert numbers from one system to another and touches on the Gray code. These first two chapters establish the foundation for a great deal of the informa- tion the reader will receive from the re- mainder of the book. During the next four chapters the reader learns the basic fundamentals of logic gates, flip flops, counters and registers, and arith- metic logic circuits. Throughout the book each fundamental is illustrated and discussed in great detail. Through these same well done illustrations the reader next learns about various pulse sources and clock sys- tems used in computers. Further, the author goes on to explain such devices as read only memories, as well as input and output equipment for computers. Continuing with this stage-by-stage pro- gression, the author then enlightens readers about the circuitry and theory of digital to Circle 62 on inquiry card. 154 Circle 63 on inquiry card. analog conversion. This tenth chapter also deals with multiplexing and digitally con- trolled analog devices. Finally, in the last two chapters of his book, Mr Libes shows the reader more of the applications aspect of digital logic circuits. These two chapters explain the different types of circuitry used in digital voltmeters, multimeters, calcu- lators and computers (the latter being a Digital Equipment PDP-8/E). Throughout the book the reader is taken in step-by-step fashion from the basics of transistor workings to circuit applications in working digital machines. As a result, this book is one from which the beginner will be able to learn the fundamentals and build on them afterwards." Michael P Reardon 17 Earl Ln RothsvillePA 17573 BYTE's Bits ACM Pacific 77 Conference Small computers, from piogram- mable handhelds through mini and micro networks, are the subject of technical papers sought for this year's ACM PAC- IFIC 77 conference of the Association for Computing's Pacific Region chapters. The San Francisco Bay Area meeting will be held at San Jose's LeBaron Hotel July 28 to 29 1977. "Exploring the Small Computer" is the theme of the conference which is ex- pected to range in coverage from per- sonal computing through small business applications and from computer parts and peripherals through bullet proof software. Papers will be presented on new developments in software and hard- ware in these areas and on minilanguage processors, miniperformance predictions, microoperating systems, multimicropro- cessor systems, packaging of software for sale, portable microsoftware and soft- ware engineering "in the small." Papers on trends in software and current appli- cation, on the future of minis, and on related small computer topics are also to be presented. Peter Szego, Ampex Corporation, is General Chairman of this year's re- gional conference, which is jointly co- sponsored by the Association's Pacific Region, Peninsula and Golden Gate Chapters. Informal symposia, workshops and invited papers are expected to be scheduled for the meeting in addition to the technical paper sessions. Special conference feature will be an evening "hobby computer" session, to be arranged by Jim Warren, editor of the home computer users magazine, Dr Dobb 's Journal of Computer Calisthenics & Orthodontia,' 21 START-AT-HOME COMPUTER BUSINESSES in the shoestring, start-at-home computer business handbook CONSULTING #PR0G RAM MING • SOFTWARE PACKAGES •COM FREELANCE WR I T I N G • S EM I N ARS • TAP E /D I S C CLEANING FIELD SERVICE • SYSTEMS H OU S E S • L EAS I NG©SU P P L I E S PUBLISHING* TIME BROKE RS • HARDWAR E DISTRIBUTORS SALES AGENC I ES • HEADHUNTI NG •TEMPORARY SERVICES USED COMPUTERS • F INDER' S FEES^SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME l*St AT-H8ME. 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 «II3 pp. •$12.00 DRTRSERRCH 730 WAUKEGAN ROAD • SUITE 10 DEERFIELD. ILLINOIS 60015 Rush copies of "The Shoestring Star At-Home Computer Business Handbook to me right away - NAME /COMPANY ADDRESS CITY /STATE /ZIP □ CHECK ENCLOSEDfJJBANKAMER I C ARD [JJMASTE RC H ARG E 155 Circle 64 on inquiry card. ^ START HERE, SCAN DOWN PAGE FRAME IDENTIFICATIONS 1 2 3 1 6 (i 7 8 9 10 II 12 13 14 15 16 17 IS 19 20 21 22 23 24 25 26 27 28 29 30 31 32 156 Dr Welles' Economy Floppy Disk Drivers: Machine Readable Object Code Last month, we published Kenneth Welles' article on the driver software for his Economy Floppy Disk. This issue, we con- tinue that article with the machine readable bar code representation of the object code for the programs. These programs were pre- sented as complete symbolic assemblies of the programs on pages 92-96 as "listing 1" of Dr Welles' article in June 1977 BYTE. The materials presented here are: Figure 1 : Bar code representation of the ob- ject code. This block of machine readable bar codes contains information in the fol- lowing format in each line of bars, which we call a "frame:" • Sync character, binary 10010110 • Frame checksum, 8 bit summation of all remaining bytes in the frame, ignoring carry out of the high order bit. • Relative frame indentification, 8 bit ascending integer enumerating frames in the block of bars printed here. • Length of frame, 8 bit number, "n", giving the number of data bytes to follow. • Data of frame, a total of "n" bytes as follows: • High order byte of 2 byte data address field. • Low order byte of 2 byte data address field. The bit level format of the data is as follows: Each bit is defined by a bar and its following space. If the bar width is equal to the follow- ing space width, the data is a bit; if the bar width is three times the following space width, the data is a 1 bit. And a Bar Code Bug. . . Thanks to the efforts of Ken Budnick, we found one fairly serious error in the gener- ation of the texts printed in the March and May BYTEs. Ken has implemented detailed scanning programs for several micropro- cessors and one antiquated second gener- ation machine and has tested them with a bar code reader design by Fred Merkowitz. The bug, which Walter Banks has since corrected in the phototypesetter driver pro- grams he used to create the texts, is as follows: the checksum field of the bar code frames printed in those two issues omitted the frame identification byte and the data length byte from the calculation. Thus, to verify the checksum actually generated in the object text of the Tiny Assembler and the Bar Code Contest string, only the data field should be used to calculate this sum. The present bar code text generated for Dr Welles' floppy disk driver routines calcu- lates the checksum properly, and future examples will reflect this fix as well." Table 1: Confirmation copy. This table, which was created by the same computer driven typesetter which prepared the bar code copy, contains a complete listing of the object code in tabular form. This table is not a direct mapping onto the bar code frames; it was set with fixed length lines, preceded by an address value for the first byte on the line. onnn E3 F5 C5 D5 71 2 3 F5 F5 21 18 00 CD 4 5 1)0 II ( 1) 0010 IF 00 II Dl CI Fl 13 C9 0D OA 45 52 52 41- D2 1-5 0020 0E 20 CD 00 00 II 15 ol- OF OF OF CD 3 3 110 II CD 1)030 33 00 C9 15 E6 OF (ft io IF 3 A D\ 3F 00 (ft 7 41 0040 CD 00 00 Fl C9 71- B7 (8 F5 Eft 7E 41- CD 00 on II 0050 F8 2 3 C3 4 5 00 in on F3 Oft 02 C5 CD 15 1-0 CD ftF in CI C8 05 12 01 10 1:0 10 CD 00 00 01 C9 3A ft 5 1-2 CD 2B 1:1 2 1 4H 1-2 Mr Oft in :n 10 77 2 3 05 C2 21 1-0 3ft Kl 2 A 6ft 1-2 22 48 1-2 2 1 E030 5B E2 CD F3 F0 IB 22 72 1-3 CD D8 Fl CD 09 1-2 I | 1-04 n 3ft 01 21 4B 12 ■\l D3 11 iA 4ft E2 Eft 0A 41 CD IA EOS0 E2 79 D3 13 Fft ID D3 F3 D3 1-4 71 D3 FO 2 3 IB 7A 1060 B3 C2 58 F0 J A 4ft E2 l-ft 1-7 D3 E.3 32 4ft 1:2 ("9 (D I 070 ■V3 E0 CO 2 1 75 1.3 1 1 5B 1-2 Oft 00 IA Bl- CO 1 3 2 3 F080 05 C2 7B i;o C9 F3 CD A3 1-0 C8 CD A3 II CD B2 II E090 CD A3 E0 C8 ('!> B2 El CD A3 El CD A3 1:0 (8 CD 00 E0A0 00 02 C9 3F 02 32 4 5 E2 CD B4 EO C8 21 45 1:2 15 E0B0 F8 C3 A 8 K0 IA 4A 1-2 CI) 2B Fl CD D8 El en 09 1:2 rocn 1 I 1A 01 21 7 5 F3 3E 81 D3 F2 CD IA 1:2 DB 1-3 DB eodo E4 DB E0 77 2 3 IB 7 A B3 C2 CF E0 21 75 1-3 CD l'3 E0E0 E0 3\ 3A F2 3 2 7F 1-3 2 A KC 1-4 C3 ED E0 7C 92 CO K0F0 7D 93 C9 01 Ift 01 1 1 00 00 7E E5 C5 AB 47 01- OF FI00 OF OF 4F A 8 Fft FO -VA ftF 79 07 Eft IF AD 6F 78 07 El 10 Eft 01 AS AD 57 79 Eft OF A8 5F 79 A 8 07 Fft 1:0 AB 1-120 5F CI El 2 3 0B 78 Bl C2 F9 F0 C9 IF 08 1-2 8 5 1:1 El 30 21 3A E2 BF ca F5 E5 3E 08 BF FA 46 El 4E Oft 00 E140 09 2 3 3A 47 F2 77 D3 Fft El El 77 4F OF OF OF 3 2 FI50 4ft E2 D3 F3 DB Fl Eft 04 C2 85 Fl 09 23 71-. 32 47 FI60 E2 FE 4D F8 DB Fl Eft 04 C2 84 El CD A3 Fl CD A3 inn El CD A3 El CD A3 1:1 CD B2 El DB Fl Fft 01 C2 77 FI80 El 3 2 47 E2 C9 CO 00 00 03 C9 3E FF 32 3A E2 3C FI90 F5 CD 9C El Fl 3C FE 08 C2 90 El C9 CD 2B El CD F 1 A0 fi4 El C9 21 47 E2 34 3A 4ft E2 Fft 04 3 2 4ft E2 C3 FIB0 BF El 21 47 E2 35 3A 46 F2 Eft FB 32 4ft E2 Fft 10 FIC0 D3 F3 Fft FF D3 F3 CD CA El O 01 FF 03 AF OB B9 Finn C2 CE El B8 C2 CE Fl C9 3A 48 E2 FF 4D FO 21 4ft E1E0 E2 7E F6 FE 77 3 A 48 E2 DI- 2C F2 Fl El 7E F6 01 FIFO 77 3A 47 E2 47 3A 48 E2 BS C8 F2 03 E2 CD B2 II F200 C3 Fl Fl CD A3 El C3 Fl El DB Fl Eft 20 D3 F5 CO F.210 CD CA El CD CA F.I CD CA El C9 DB Fl Eft 10 ("2 IA E220 E2 3A 49 E2 Eft IE 47 DB Fl Eft 08 C2 27 1-2 5 EB F230 DB Fl Eft 08 CA 30 E2 C3 27 F.2 00 6143 00 00 00 00 00 00 00 00 F25B 81 46 49 4C 4E 41 4D 4 5 58 54 00 00 00 00 00 00 E26B 00 E270 00 E375 81 46 49 4C 4E 41 4D 4 5 5 8 54 00 00 00 00 00 00 E385 00 F3 8A 00 157 BYTE's Bits National Student Programming Contest The First Annual National ACM/UPR Student Programming Championship Contest took place February 2 1977 in connection with the Computer Science Conference in Atlanta GA. The contest was sponsored jointly by the Committee on Student Chapters and Memberships and Upsilon Pi 'Epsilon (National Com- puter Science Honor Society). Teams participated from: Catawba College, Chattanooga State Technical Commu- nity College, Clemson University, Georgia Institute of Technology, Georgia State University, Louisiana Technical University, Manhattan College, Michigan State University, North Carolina State University, Purdue University, Taylor University, Texas A & M University, University of Georgia at Athens, Univer- sity of Missouri at Rolla, University of New Mexico at Albuquerque, and the University of Wisconsin at Platteville. The contest was conducted over a seven hour period from 5 PM to midnight on February 2. The facilities were provided by the Computer Center at Georgia Insti- tute of Technology and the department of Information and Computer Science. Machine time was provided by Control Data Corporation on the Georgia Tech Cyber 74 computer. The teams were given four problems to solve using ANSI FORTRAN. These problems consisted of a Conversion from Roman to Arabic Numerals, A Character Manipulation for Rearranging of Names and Titles, the Determination of Amicable Numbers, and the Automatic Scoring of the Game of Bowling. The winners were deter- mined by penalty points and the elasped time taken for each problem. Although many teams were close on several solu- tions, only four teams completed three of the problems. The National Champion Team is Mich- igan State University, who also won their regional competition. Second place went The OAE Model OP-80A quality en- gineered paper tape reader will read punched tape as fast as" you can pull it through (0-5,000 cps) Each unit includes a custom optical sensor array, high speed data buffers, and all required handshake logic to interface with any microprocessor parallel I/O port. Check our specs. AT OAE WE MAKE QUALITY AFFORD- ABLE! Available at quality computer stores everywhere. (Or, add $2.50 for domes- tic shipping and handling — CA res. add 6%.) $QC00 ^W a&T OAE Oliver Audio Engineering, Inc. 7330 Laurel Canyon Blvd. North Hollywood, CA. 91605 (213) 765-8080 to Purdue University, third place to the University of Missouri at Rolla, and the fourth place to Georgia Tech. Trophies and certificates were presented to the participants at an Awards Banquet held February 3 at a luncheon in the Marriot Hotel. The participating teams also re- ceived free registration to the Computer Science Conference and attended two nights of an informal social sponsored by the Committee on Student Chapters and Memberships. Plans have been made to make this an annual event in connection with the Computer Science Conference. In 1978 it will take place on February 22 at the Plaza Hotel in Detroit Ml. Regional con- tests will be scheduled for the fall of 1977 to qualify teams to compete in the National Contest. Teams and sponsors for these qualifying regional contests are being solicited from all regions within ACM. If you are interested in partici- pating or holding such a contest, please contact Dr Richard Newman, Academic Computing Services, Southern Illinois University, Carbondale IL 62901 , (618) 536-2323.* Attention Educators with a Message The National Association of Compu- ter Applications to Learning (NAUCAL) will hold its 1977 annual convention in Dearborn Ml on November 2 thru 5 1 977. The convention will focus on education- al computing, simulations in education, instructional materials and teaching strategies. Sessions that describe and illustrate computer applications in learn- ing will be given special consideration. Individuals who would like to present or who would like to suggest others who could present may write to John S Camp and Lary Smith, Conference Cochairmen, Wayne County Intermediate School District, 33500 Van Born Rd, Wayne Ml 48185." Repairing Torn Paper Tapes Translucent paper tapes are an inex- pensive, efficient way of permanently storing information for a computer. However, after pulling the tape through a hand held paper tape reader a dozen or so times the tape tends to get pretty rag- ged. Sooner or later the tape will tear and have to be repaired before it can be used again. I have found that transparent Mylar movie film splicing tape is perfect for the repair job. The splicing tape is clear, strong and will not crack or yellow with age. It is also quite thin and will not interfere with the passage of the paper tape through the reader. The tape sticks very well to paper but if necessary can be removed without causing any damage. Mylar movie film splicing tape is avail- able at any camera store. Richard E Hetherington 637D Pendleton Av Chicopee MA 01020" Circle 65 on inquiry card. 158 ^ Boardwalk Shelburne Hotel P.O. Box 1138 Atlantic City, NJ 08401 (609) 344-8131 Saturday night Banquet of Filet Mignon $17.50 Over 150 Exhibits and 60 hours of seminars Conferences being planned on; Clubs; Newsletters; Energy Conservation; Medical Applications; and more. Seminars being planned on; all aspects of Computing; Music; Basic Programming; Games; Education; Various Microprocessor Evaluations; Synthesis; S-100 Bus; and more. Another 1st, Personal Computing College ™ To be held at the Shelburne Hotel. Please rush Please rush Address City •••*••••••••••••• ••••••••••••••••••••••••••••••** % i * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Jf * * * * * * * * * * * * )f ••••••••••••••••••••••••• •••••••••^ WEDNESDAY-THURSDAY-FRIDAY, AUGUST 24-25-26 3 Day Micromputer Interfacing Workshop by TYCH0N Inc. A hands on experience for the participants where they will spend almost 50% of their time working on well documented Interfac- ing and Software experiments. Students deal with the microcom- puter at the bus level, interfacing the computer using solderless breadboarding techniques and assembly language programs. Presented by Jonathan A. Titus and Dr. Christopher A. Titus, Authors of the famous "BUGB00KS." For reservation information and complete brochure contact: TYCH0N Inc. c/o Shortess-Rawson, Dept PC77, P.O. Box 2203, South Hackensack, N.J. 07606. FRIDAY, AUGUST 26 6 Hour seminar by Dr. Adam Osborne "Microprocessors - Where they came from and where they are going. An analysis of all products on the market today." Dr. Adam Osborne will present a 6 hour seminar covering topics such as: Bringing order out of chaos; All microprocessors are not equal-each serves one market better than the other; Identifying those markets best suited to each microprocessor; Real sales volume anticipated for 1977; Comparisons including: 8085 vs. Z80, 8048 vs. F8, Etc. For reservation information and complete brochure contact: Osborne & Associates, Inc., Dept. PC77, P.O. Box 2036, Berkeley, Ca. 94702, 415- Inc, -548-2805. PC '77 Weekend admission at the door will be $10.00. Register before August 10th and SAVE 20% and AVOID WAITING IN LINE! Admission includes exhibits and seminars for both days, August 27— 28th. advance registration tickets for August 27— 28th @ $8.00 each. Banquet tickets for Saturday, August 28th @ $1 7.50 each. Send reduced Hotel rate information . Make all checks payable to "PERSONAL COMPUTING 77" and mail to: PC'77, Route 1, Box 242, Mays Landing, N. J. 08330. Name Amount enclosed State Zip 159 Circle 51 on inquiry card. Microcomputer Handbook by Charles J Sippl We often hear people say, "I'd like to find out more a- bout microcomputers. I'm not a technical type, but I feel I can handle a fairly rigorous approach as long as it's well written. What's available?" Charles J Sippl's Microcomputer Handbook is one answer to this question. The book covers the present state of computer technology very well, concen- trating on both hardware and software. Lucid and complete glossaries are combined with a variety of illustrations. Topics covered include: Microcomputers: where they are, what they are doing, and what is next; kits; distributed intelligence; and why the new systems are easier to use. The book was written by a computer industry lecturter and consultant and is highly recommended for the intelligent layman as well as for profes- sionals and experimenters. The glossaries alone are worth the price of the book-don't miss this one! This hardcover refer- ence is only $19.95, plus 50 cents postage. Send now to: BITS Inc 70 Main Street Peterborough NH 03458 Please allow six weeks for delivery Master Charge and Bank Americard Welcome BUILD THE CRATE! THE S-100 CARDFRAME THAT YOU CAN BUILD FOR LESS THAN $150 COMPLETE PLANS, INFO ON TOOLS, PARTS, SOURCES, ETC, ORDER THE CRATE BOOK $1 9.95 ENCOUNTER! FOR GAME LOVERS, REALTIME GAMEBOARD WARFARE ON A VDM. NO TAKING TURNS, JUST ACTION, STRATEGY, AND LOGISTICS. 8080 CODE ON P-TAPE + SOURCE, RULES $1 6.95 USE SYS 8/SOFT PKG 1? AUTO-LINE ENTRY. STRING EDIT, AUTO TABS. OCTAL NBRS, MULT, SECTION ASSEMBLIES. MORE ADDED BY OUR PROGRAM. source $1 4.95 add $5 for p-tape, $10 for tarbell tape OBJECTIVE DESIGN, INC. P.O. BOX 20325, TALLAHASSEE, FL. 32304 Qlubs and Newsletters Conducted by Peter Travisano Arizona Computer Society The Arizona Computer Society meets regularly on the second Tuesday of each month at De Vry Institute, 4702 N 24th St, Phoenix AZ 85063. A New Club in Boston With all the computer activity in the Boston area this should be welcome news. A new group called the Boston Computer Club is forming for people with both hobbyist and industrial interests. As of now the club provides access to a timesharing PDP-8 and an Altaic 8800a. For further information contact Jonathan Rotanberg, 17 Chestnut St, Boston MA 02108. DUMPS in Delaware A group of hobbyists at the University of Delaware recently formed the Delaware Users of Microcomputer Systems or DUMPS. The club is informal and the membership has a wide range of interests. Meetings are held on the third Monday of the month at 7:30 at New Central School, Academy St, Newark DE 19711. Long Island NY— Licus The Long Island computer group is a growing concern made up primarily of high school and college students. Meetings are usually held on second Tuesdays at Commach High School South. To find out more write LICUS, POB 322, East North- port NY 11731. State College PA The Nittany Amateur Radio Club of State College PA sponsored a one day micro- computer seminar, an introduction to inter- facing, programming and applications with an emphasis on real world situations. The Circle 66 on inquiry card. 160 New kid on the block! But watch out he means business PERSONAL COMPUTING EXPO COMES TO NEW YORK FOR BIG BUSINESS It's a brand new show in the world's biggest economic center specifically for manufacturers and buyers who are into personal computing. For the first time, this booming field will have a New York Coliseum showcase in the major population center in the east. It is planned as the largest public show of its type in the world that will attract enthusiastic buyers from a multi-state area. WHY NEW YORK? New York is the economic nerve center of the world. It also is the world's communications focal point, the one place that will put personal computing in a significant spotlight. New York is sur- rounded in depth by people who work in the computer field, by computer learning centers, universities, personal computing clubs, and thousands of others whose lives are affected by computers. From this vast potential, Personal Computing Expo will draw the hard-core hobbyist, the interested student, and, because of a highly-publicized program of introductory seminars, those who are attracted and fascinated by computing but have not had expo- sure to the ways and means of becoming personally involved. SHOW MANAGEMENT Personal Computing Expo is being produced by H.A. Bruno & Associates, Inc., a firm 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 currently 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. EXCITING SEMINARS FROM "BYTE" MAGAZINE Personal Computing Expo is endorsed by "Byte" magazine, whose staff is developing an exciting series of seminars and lectures for the exposition. Visitors to the show will be able to attend these meetings free of charge. They will hear from lecturers such as Louis E. Frenzel and Carl L. Holder. More importantly, visitors will be able to attend meetings aimed at their proficiency levels, from beginner through intermediate and advanced personal computing. FOR DETAILED INFORMATION CONTACT: RALPH IANUZZI, Show Manager H.A. BRUNO & ASSOCIATES, INC. 78 E. 56th Street New York, N.Y 10022 (212) 753-4920 PCE Endorsed by BYTE Magazine OCTOBER 28, 29, 30, 1977 PERSONAL COMPUTING EXPO • NEW YORK COLISEUM Circle 67 on inquiry card. Why Wait? Ufa-* m- an HMH HmM* PWI 1 ' :-PWv- ■.^^^3P^^^^',-/W^ 1 ^WiSSr 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. Mail 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 stock is available, we ship immediately (or payment by cashiers check or money order. Allow 3 weeks for 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 guest instructor was David G Larsen, WB4HYJ, from the Department of Chemistry, Virginia Polytechnic Institute and State University. Larsen is a member of a team that has toured the nation presenting similar seminars and has been published widely on the subject. One significant by-product of the seminar was the formation of the Center County Computer Club. Membership can be obtained from Carl Vesper, 131 Sowes St, Apt E-1 0, State College PA 1 6801 . SR-52 Users Club TheSR-52 Users Club is a nonprofit loose- ly organized group of SR-52 and SR-56 users who wish to expand their knowledge through information exchange. Activity centers around a monthly newsletter, 52 NOTES, published by Richard C Vanderburg, 9459 Taylorsville Rd, Dayton OH 45424. A membership fee of $6 includes a 6 issue subscription. Back issues are available for $1 apiece. Permian Basin Computer Group — Midland and Odessa Colleges TX The Permian Basin Computer Group has factions on both the Midland and Odessa College campuses. The Midland group meets on the second Monday of the month at 7:30 in the Student Union Building. The Odessa group meets on the second Saturday at 1 :30 in the Electronic Technology Building, Room 203. For additional information write John Raenaldt, POB 3912, Odessa TX or phone (915) 332-9151 Mondays through Fridays between 9:00 and 5:00 or (915) 697-4607 after 6 PM. Goodyear Computer Club The Goodyear Computer Club in Akron OH is off to an auspicious start: just a few months old and able to boast a member- ship of more than 150. Generally the members are associated with the Goodyear Aerospace Corporation or the Goodyear Tire and Rubber Company. Contact the Good- year Computer Club c/o J F Derry, D-109 Pit 1, The Goodyear Tire and Rubber Co, Akron OH 44316. Aloha Computer Club Don Henson, president of the Aloha Computer Club of Millani Town HI, has made an interesting offer. He's willing to give monthly seminars limited to six begin- ners. Sounds like the best possible way to share computer information and get more of Circle 68 on inquiry card. 162 SERIAL SYSTEMS MODEL 301 (The Black Box) Max performance at Minimum price- Serial data to FSK of FSK to Serial Communicate between uProcessor and cassette tape, or radio transceiver and RTTY, also easily adapted to phone-50 to 600 BAUD-Crystal controlled— Programmable for all standard freq's (Kansas City, Altair, Amature RTTY) Assy and Tested $49.95 Mew 90 Key keyboard Encoder Chip Hook Row and Column to your keyboard and select ASCII, BAU- DOT, ANSI TTY, or ASR-33 out- puts. $24.50 TMS9900 1 6 bit uP Chip $99.50 Serial Systems (Div. of ASC) P.O. Box 20330 Minneapolis, MN 55420 Circle 09 on inquiry card. SAW Mo«ev,& for 12. /s.su*s SH Heathkit is a registered trademark of Heath Company. re^s NOW HEAR THIS!! ALPHA DIGITAL SYSTEMS SELLS IMSA1 KITS AND TOTAL IN- TEGRATED SYSTEMS ASSEMBLED. CHECKED-OUT. AND WARRANTED AT KIT PRICES. ALPHA I SPECIAL DOS SYSTEM DEAL (includes) » IMSAI 8080 Computer • 22 Slot Mother Bd. with Conn. • 16 K RAM • 90 K Disk (with Controller) • Selectric typewriter (with Controller) » DOS-BASIC Software Assembled System Total $3995. ( Less Selectric )S2»5 Select any kit or system of kits from the IMSAI price list, order from us and receive the 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- clude freight. ( N.C Residents Add 4° Sales Tax ) How can ALPHA DIGITAL SYSTEMS do all this? Its simple. ALPHA DIGITAL WANTS TO BE YOUR COMPUTER COMPANY. ArtC ALPHA DIGITAL SYSTEMS •*■** RT. 4 BOX 171A BOONE, N.C. 28607 (704) 264-7946 Circle 70 on inquiry card. (301) 779-7998 7338 Bdli.more Ave.. Suite 700 ColleCJS Park. Maryland 70740 IMSAI made kits & assembled units . . 17% OFF LIST TEC-9900-SS-UF, 16 hit TI9900 mictoP. 32 hit 1/0 liatdwai 8. div, buffered bus. 20 ma or RS232, 8 interrupts & sockets S279.00 TEC-9900-32KB 32K bytes memory S649.00 TEC-990D-PP power supply S129.00 CR0MEMC0kitsSZ-l,Z-2 10% OFF LIST SANYO TV monitors 10% OFF LIST TDL ZPU & Z16K 12% OFF LIST SEALS 8K bat. backup Mem PERSCI Dual floppy & intelligent controller (#270 8,1070) .10% OFF LIST SHUGART MINI-FLOPPY 2U02 50Dns S1.90 21 L02 450 ns S1.50 21 L02 400 ns S1.99 Z-80 microP S45.00 Z-80 CTC S9.50 8080A 2.5 MH S17.00 8080 PPI SI 0.00 5% OFF LIST S375.00 $1.85 SI.95 S9.50 1702A EPR0M S8.00 21112 ',1111 n, 2102 400 ns Z-80 PI 80BOA30MH 80BOSCI 8224 Clock Gen. . B216/26 0river_ 8251 PCI 2102 050 ns 2708 EPR0M S29.00 ADM-3A tCRT 8. addressable cursor S925.00 list IMat. Multiplex Digital Tape recorders & kits _ MSI floppy 8. kits Pennywhistla modem _ 8212 I/O port 8228 Clock Driver - 8255 PPI . . S2.50 -S5.50 _S9.50 -S20.00 -S10.00 _S4.75 _S2.50 -S9.50 _S1.75 S799.00 10% OFF LIST 10% OFF LIST . 5% OFF LIST .5% OFF LIST Tl "silent 700" model 743, printer $1335 list Send S2.00 for newsleuer and list. 4%, with minimum S4.00 for shipping and handling. See flyer for policies and delivery times on group OEM buys and other products. Circle 72 on inquiry card. Circle 73 on inquiry card. PHOENIX Bits & Bytes COMPUTER SHOP • Lear Siegler ADM-3 Kit $849. • Vector-1 8080 16 K $968. • 9" Sanyo Monitor $159. North Star - EPA - Tarbell Act 1 Terminals - Cybercom IASIS Computer-in-a-book Vector Graphics - Per Com 6819-CN. 21st Ave. Phoenix, Az. 85015 (602) 242-2507 Circle 71 on inquiry card. But You Only Need 4i-THE COMPUTER CORNER : ~**~ •SOL - A New Dawn Is Here! "**"" •IMSAI 8080 "•*"" •POLY - 88 "►*- • TDL Z-80 "+*"" •Memories & I/O Boards -W- -H— •Computer Book Service _ frj... •Magnetic Tapes & Disks _ +\— • Full Line of Magazines _ ,-^j- • Brain Games & Puzzles _ ■H •Workshops & Club Information _ ~^~ Visit THE COMPUTER CORNER for ~ fc , all your computer needs. Stop in and browse — you'll like our personal service. *t - y THE COMPUTER CORNER White Plains Mall - Upper Level "W~ 200 Hamilton Avenue ™ -H- White Plains. New York 1 0601 Tel: (914) WHY -DATA Ample Parking 10-6 Daily & Saturday V/ 10-9 Thursday \ ^ Circle 74 on inquiry card. computer d - T.M. epOt inc. Parts galore in the Midwest for PROCESSOR TECHNOLOGY, IMSAI, POLYMORPHIC SYSTEMS, DIGITAL GROUP, WAVE MATE, CROMEMCO, VECTOR GRAPHICS, TDL, SEALS, TARBELL, MICRO DESIGNS, NORTH STAR, PERIPHERAL VISION; INTEL, NATIONAL SEMI- CONDUCTOR, FAIRCHILD SEMI- CONDUCTOR, MOSTEK, E&L INSTRUMENTS, SAMS, TAB, HAYDEN, WILEY, MC-GRAW HILL Catalog Free Computer Depot Inc. 351 5 W. 70th Street Minneapolis MN 55435 c40 IN SOUTH FLORIDA IT'S COMPUTER HUT FEATURING POLY 88 5905 NW 151 St. Miami Lakes, FL 33017 (305) 558-8080 COMPUTER MART OF 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 Circle 75 on inquiry card. Circle 76 on inquiry card. Circle 77 on inquiry card. the many, many interested people involved in personal computing. Aloha meets on the first Wednesday of the month at 7:30 at the Waikiki-Kapahulu Library, 400 Kapahulu Av. Seminars are held at various times throughout the month. New members are more than welcome. To learn more write 94-360 Hokuala St, Apt 187, Millani Town HI 96789 or call (808) 623- 1 78 1. Central Florida Computer Club A new hobbyist group has been formed in Orlando, jim Walton is the contact person for the Central Florida Computer Club. He can be reached c/o Data Entry Engineering, 1810 N Orange Av, Orlando FL 32804, (305) 896-4322. Electronotes - Newsletter of the Musical Engineering Group Those people interested in both electronic music and instrument construction will find Electronotes most valuable. An in-depth pre- sentation focusing on the ENS-76 is planned for the next several issues. Electronotes is published by B A Hutchins, 203 Snyder Hill Rd, Ithaca NY 14850. Routine orders should be sent c/o Electronotes, 213 Dryden Rd, Ithaca NY 14850. Pittsburgh Area Computer Club The place to share computer lore in Western Pennsylvania is the Pittsburgh Area Computer Club. Contact PACC at 400 Smithfield St, Pittsburgh PA 15222. -DRAWPICTURES -COMPOSE MUSIC -INPUT TO GAMES Attaches to any 8080 system with TTL input port and memory mapped video driver (PTC, Cromemco, Poly- morphic, etc.). Allows computer to interrogate the pen at any time and determine its location. $29.95 assembled & tested with software + $1.50 postage & handling Educ. Data System of Va., Inc. P.O. Box 2115 Newport News, Va. 23602 !mAg!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 localable) RAM card tor IheSIOObus The 4K PLRAM comes fully assembled, tested and burned in lor only $179. IN CANADA $199. Sorry - Blame Pierre Offl Residents Add 7% PST. EiflA industries ltd. P.O. Box 421 Simcoe, Ontario Canada. N3V 4L5 South Florida Sunny Computer Stores, Inc. South Florida's First Computer Store WE CARRY: •IMSAI, COMPUCOLOR, PROCESSO. TECH., SOUTHWEST, CSC, CROMEMCO, SEALS, VECTOGRAPHIC, MULLENS, MORROWS, VECTOR •BOOKS, MAGAZINES, NEWSPAPERS SOCKETS, CONNECTORS, IC'S, PRINTERS •DEBUGGING EQUIPMENT •SOFTWARE •TOTAL MAINTENANCE & REPAIR •WRITE OR PHONE US FOR PRICES UNIVERSITY SHOPPING CENTER 1238ASOUTH DIXIE HIGHWAY CORAL GABLES, FLA. 33146 (305)661-6042 Circle 78 on inquiry card. Circle 79 on inquiry card. Circle 80 on inquiry card. k LOGIC DESIGN INC QUALITY Support for those who wish to dig deeply into digital design. Breadboarding System, textbook on logic design, and complete schemat- ics tor an elegant CPU that will run the PDP8 instruction set . . . $1095 132 IC's $ 87 TTY Interface $ 20 Memory $26/k BOX 3991, UNIV. STATION LARAMIE, WY 82071 (307) 742-7977 Circle 94 on inquiry card. £x aeco THE ULTIMATE IN imsu tam bsasse: Precision machined tape guide Interface directly to a M«, or yflJUT Tri-state buffer output all handshake logic TtL compatable Pull thru tape- Reads 5 to 555-9 cps Interface thru a 14 pin IC plug „»,„», TPfj'5 ASSEMBLED 1 JESTED $38.00' M5A'1 p l-UG-IN HANDSHAKE ADAPTER ♦ 5.50' TO OHjJER^SE^O^^HECHClRM^O. TO: MICROCOMP PO BOX '" T "" «*«*■* " "• FOND DU LAC, Wl 54935 WE SPECIALIZE IN MICROCOMPUTER SYSTEMS FOR HOBBY- BUSSINESS- EDUCATION WE ARE EXCLUSIVE OSI DEALERS... WE KITS-FULL SYST SEND 00 A BETTER JOB. STEMS- PERIPHERALS-FLOPPY DISKS- ACCESSORIES IOOKS' MAGAZINES- CATALOG TODAY I 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 /A Box 1448, Calgary, Alta. T2P 2H9 Phone (403) 283-8076 Circle 95 on inquiry card. Circle 96 on inquiry card. A New Orleans Computerfest The Jefferson Amateur Radio Club and the Crescent City Computer Club would like to announce the New Orleans Hamfest/ Computerfest which will be held at the Hilton Inn in Kcnner LA (directly across from the New Orleans International Airport) Septem- ber 24 and 25. This is the ARRL Delta Division Convention for 1977 and is the largest "ham" outing in the deep south. This year's event will feature a banquet Saturday night with entertainment, two days of commercial exhibits, flea markets and forums. There will also be a hospitality room, ladies' events, FCC examinations and more. This year's grand prize is a complete Drake "C-Line" ham station, and many door prizes will be awarded each day. Information on tickets, room reserva- tions, etc, will be furnished upon request by contacting the New Orleans Hamfest/ Computerfest, POB 10111, Jefferson LA 70181. Important Notice to Clubs Hazeltine Corporation, Greenlawn NY 11740, has recently circulated a letter from Frank J Cirillo of their Industrial Products Division, announcing a special package price of $1400 for refurbished H-2000 model terminals with Hazeltine tape cas- sette drive. The letter is directed to com- puter clubs, so if your local club did not receive a copy, write or call Mr Cirillo at (516) 261-7000 and inquire about this excellent deal. This terminal is one of the world's largest selling video display terminals and has had application in universities, hopitals, business, finance and government. At a $1400 price you get a used commercial grade piece of equipment which will prove quite applicable to many home computer situations." Would your club benefit from a write-up in BYTE's Clubs and Newsletters section? It's easy enough to arrange, just drop a line to BYTE, 70 Main St, Peterborough NH 03458, c/o Clubs and Newsletters, with the information you 'd like published. Naturally we can't cover every club every month but we do make a special effort to mention new clubs and those that correspond regularly. Those people looking for a more com- plete listing of computer clubs should refer to January 1977 BYTE* The Speakeasy Interface all your I/Os with one low-cost board! Talk about easy interfac- ing for your Altair, IMSAI or Equinox 100! Plug in The Speakeasy' 1 ''" interface board and you've got 3 cassette I/O channels with individual motion control ... a bi-directional parallel port for keyboard, paper tape reader or printer . . . a serial port for teletype/ RS232 . . . and RAM/ROM software to drive it all. $120 kit by Morrow's Micro-Stuff ($4 handling; Cal. Res. add tax. Write for specs. Thinker 505 Arlington Berkeley, CA 94707 Tbys See it at your local computer shop, or place BAC/MC orders toll-free to 800-648-5311 TheWunderBuss End noise and cross-talk with our exclusive Noiseguard system Build your S-100 system on the WiinderBuss™ 20- slot bus-board with Noise- guard™ and you'll get "textbook clean "signals. The Noiseguard™ sys- tem's interlaced ground system shields all bus lines from cross-talk . . . and low- power active termination absorbs noise and signal reflections. The printed circuit board is double-sided and (of course) has a solder mask. And there's 3 un- committed positions for peripheral power. The incomparable Wiin- derBuss™, by Morrow's Micro-Stuff, is now avail- able for $76 alone. With 10 edge connectors, $120. With 20 edge connectors' $154. Add $4 handling. Thinker Tbys 505 Arlington Berkeley, Ca. 94707 See it at your local computer shop Place credit card orders toll-free to 800-648-5311 165 Circle 81 on inquiry card. Programming Quickies Gregory A Worth 115 Campbell, Apt 6 Rochester Ml 48063 BASIC Timing Delay When writing game programs it is often convenient to have a time delay to add some exciting real life feeling to the game. This subroutine, submitted by Gregory A Worth and written for a Motorola 6800, will cause delays between 7 and 255 seconds. Register B is loaded with the number of seconds you wish to delay before jumping to the subroutine. LOOP! is the basic time delay loop. This loop takes 20 clock cycles and is executed 50000 times giving a basic timing unit of 7 second, assuming a 7 MHz processor clock is used. If your system is using a different clock speed, appropriate adjustment of either the number of repeti- tions of the loop or the amount of time consumed in one pass through the loop will have to be made. The outer loop, LOOP2, allows the varying time delays by repeating the 1 second loop the number of times specified in register B. A II of the numbers In this listing are in hexadecimal unless otherwise specified. Address Hex 0000 0003 0006 0009 000C 000 D 000 F 0010 0012 0015 0016 0018 FF CE 76 79 09 26 5A 26 FE 39 Code 00 16 C3 50 00 03 00 03 F7 F1 00 16 Labels DELAY LOOP2 LOOP1 SAVE Op STX LDX ROR ROL DEX BNE DECB BNE LDX RTS RMB END" Operand SAVE C350 LOOP2 LOOP2 LOOP1 LOOP2 SAVE Commentary save the number of seconds to be delayed; load X register with decimal 50000; basic 1 second timing loop considering 1 MHz clock; decrement number of seconds delayed; if delay not over continue LOOP2; restore value of delay time; return to calling program; storage for number of seconds delayed; [g cybercom boards MB-1 MK8 Computer System Ram 4Kx8. Not lor S-100 Buss. PC Bd $22 MB-4Altair88004Kx8or8Kx8with Piggy Back. PC Bd. $30 MB-3 4K 1 702A EPRAM kit w/o PROM $65 MB-6 PC Bd. 8Kx8 $35 IO-2 10 for 8800 8 Bit Parallel I/O. 2/3 Kludge Area. PC Bd. . . . $25 Kit . . . $55 64 x 1 6 VIDEO BOARD Altair plug compatible display 32 x 16 or 64 x 16 switch selectable. Composite and parallel video ports, upper and lower case with software. PC Bd. . . . $35 Kit . . . $189.95 SP-1 Synthesizer Board Computer controlled wave forms 9 octaves 1vrms V2% distortion includes high level music language. Kit $250 Altair Compatible mother board . Room for 1 5 connectors 11" x 11 Va" (w/o connectors) $45 With 15 connectors $105 Altair Extender Board (w/o connectors) $9.00 With w/w connector $13.50 1 00 Pin spec WW or Soldertail both lit Imsai or SSM Mother Board $5.00 each 10/$44, WALNECO8Kx8Ram2102typefully buffered. PC Bd. $30 WALNECO Mother Bd. terminated 12 slot '/a" thick . .$40 419 Portofino Drive San Carlos, California 94070 Pleas* sand lor xlntor, IC and kit list * 21 02 AL-4 FULL SPEED MEMORY (500ns) * * Nearly Vi less power consumption of even a * * 21L02A PRIME FROM NEC • $2.00 EACH 64 -$1.70 32 FOR $1.80 EACH 128 FOR $1.60 EACH 1702AEROM programming send hex list AY5-1013 UART 2513 Prime spec, upper or lower case 8080A Prime CPU 8212 Prime latch buffer 8224 Prime clock gen 8228 Prime sys controller 82S06 82S07 82S12 82S17 82S23 82S123 MM5309 MM5312 MM5313 MM5320 MM5554 MM5556 MM5055 DM8836 DM8837 91L02APC 32 ea. 64 ea. 2.00 2.00 2.00 2.00 2.50 3.00 8.00 4.00 4.00 5.95 1.90 2.50 1.90 .60 1.50 2.10 1.95 1.80 82S126 82S129 82S130 82S131 74S206 MM5262 7489 74200 74S89 74C89 74L89 8T80 8T97 INTEL 8216 8214 8251 8255 3.50 3.50 3.95 3.95 2.10 1.00 2.00 4.95 3.50 3.50 3.50 2.50 2.00 4.95 8.30 14.50 14.50 74C200 8573 8574 8575 8576 8577 8578 1101 1103 2101 2112 2602 4002-1 4002-2 8131 M04044 1488 1489 2111-1 $ 8.00 5.00 6.95 11.00 25.00 4.00 5.00 8.90 5.50 4.50 5.50 4.50 4.50 3.50 4.00 1.25 1.25 4.50 4.50 1.60 7.50 7.50 2.50 2.25 1.50 1.50 3.75 For large orders please send money order or cashier's check to avoid delays in waiting for check to clear. Check or money order only. California residents add 6% tax. All orders postpaid in U.S. All devices tested prior to sale. Money back 30 day guarantee. Sorry we cannot accept returned ICs that have been soldered to. $10 minimum order. Prices subject to change without notice. The Proko Paper Tape Reader A fully TTL buffered optical tape reader for reading 8-level paper tape. It's compatible with nearly all parallel input ports and has bolh positive and negative strobe outputs. The power (+5V @ 20ma) is derived from your I/O board. ..just supply a light source (study lamp), grab the tape and pull! PTR-II Kit $54.00 Assembled $68.00 Now, add mass storage to your micro with the North Star floppy disk system. Comes with cables, S-100 controller with bootstrap rom, and powerful extended basic. (Basic supports sequential and random access disk files.) North Star Disk Kit $699 IMSAI 8060 Kit with 22 slots $650 IMSAI with disk $1325 I The S.D. Sales Co. Z-80 CPU Kit For S-1 00 Buss i $149 00 proko tronics 439 marsh street san /ills oblspo, California 93401 805/544/5441 Delivery: Slock to 45 days Irom receipt of order. We pay all U.P.S. shipping on U.S. orders. Check or money order accepted. No P.O. s except oy above terms. California residents add 6% tax. Prices subject to change without notice. Circle 82 on inquiry card. 166 COMPUTER- WAREHOUSE STORE DEPT B • P.O. BOX 69 • KENMORE STATION • BOSTON, MA. 0221 5 • 617 -261 - 2700 SPECIAL DISCOUNTS/ ON KITS & ASSEMBLED UNITS SAVE UP TO 20% OFF KIT PRICE WHEN A PERIPHERAL IS PURCHASED AT THE SAME TIME (S200 MAXIMUM DISCOUNT; PERIPHERAL(S) OVER $900^ 20%'OFF KIT PRICE PERIPHERAL^) OVER $250^ 10% OFF KIT PRICE PERIPHERAL(S) OVER $95^ 5% OFF KIT PRICE KITS SCAMP KIT FROM NATIONAL SEMICONDUCTOR $99 KEYBOARD KIT. ..$95 LEAR SIEGLER ADM-3A WITH CURSOR CONTROL • 12" CRT «RS232 • 2« LN x 80 CHAR •20 mA LOOP KIT $875 + $25 SHIPPING IMSAI 8080 MICROKITS IMM ROM CONTROL KIT LOW POWER DYNAMIC MEMORY EXPANSION TO I MEG. BOARDS KIT S299 32K RAM BOARD KIT S T<3 ASSEMBLED 399 ASSEMBLED 1099 16K RAM BOARD KIT 499 ASSEMBLED 679 8O8OA KIT 5 SLOT. .. 8080A KIT 22 SLOT.. 4K MEMORY KIT PIC-8 PRIORITY INT. SERIAL I/O KIT ..699 ..751 .. 139 PROM 4-512 KIT 165 .. 125 UCRI-1 KIT 59 ..125 CABLE A KIT 18 VIKING 100 PIN CONNECTORS, HEAVY DUTY S3. 00 SWTPC 6800 • 512 BYTES OF ROM • RS232 OR 20 mA MPA 145 MPB S 40 MPC 40 MPD 35 MPE 14.95 MPF 37.50 MPM 65 MPMx 35 MPP 42.50 MPL 35 MPS' 35 MPAb...l4.50 KPMb 14.50 4K memory — sioo CT 64 TERMINAL KIT.. 325 . • • $J7J •SERIAL INTERFACE • 4K RAM MPCb.MPSb.MPLb, EACH 9.50 4KBA 5.00 GT61 99 AC30 AUDIO INTERFCE 79-50 CTP 15.50 CTS 39.95 CONNECTOR SETS -MPU/MEMORY 2.50 -INTERFACE 2-00 PP40 PRINTER 250 SMOKE SIGNAL BROADCASTING I6K RAM $595 THOUSANDS OF KITS & PERIPHERALS HAZELTINE 1000 $795 35 lb SHIPPING 12 VIDEO DISPLAY TERMINAL LINES X 80 CHAR. 5x7 MATRIX, 525 LINE RAS TER. BUILT & TESTED; PLUG 8 GO! GREEN PHOSPHOR VIDEO MONITOR $150 + $ 25 SHIPPING 16 MHz BANDWIDTH, STANDARD RASTER SCAN, 24 LINES X 80 CHARACTERS, ONE ALL an ASR33 is and MORE $875 + 165 lb SHIPPING OLIVETTI TE318 - RS232 INTERFACE, 10 CPS, BUILT-IN PAPER TAPE, ELECTRIC TYPEWRITER KEYBOARD W/ ADDITIONAL 10 KEY NUMERIC PAD, YOUR CHOICE SPROCKER OR FRICTION FEED. COPE 1030 BUILT UNITS ICOMlMICROFLOPPIES .. $1095 649 PLUG COMPATIBLE FOR SIOO BUS. ..F024I1 . . SINGLE Dr. I VE FD2402. . ICOM FLOPPIES: FF36-I FRUGAL 1 1 95 FF36-2 DUAL FRUGAL 1895 360-58 BUILT; INTERFACE 8080 300 S171 POWER SUPPLY 250 FD360-2-5 DUAL SYSTEM 3000 FD37H DESK TOP SINGLE FLOPPY SYSTEM 2350 FD37I2 DESK TOP DUAL 2650 KIM-1 6502 $245 INTERCEPT JR;«p8°n KIM-2 4K 179 FROM INTERSIL, INC CHIP! KIM-3 8k 289 MANUALS PACKAGE 15 TARBELL AUDIO CASSETTE KIT 120 12K RAM 145 ROM/PROM BOARD 74.65 (YOU AOD MEMORY CHIPS) SERIAL I/O 81.50 AUDIO VISUAL BOARD.. 125 IBM 2741 COMPATIBLE - "SELECTRIC BASED" PORTABLE CONVERSATIONAL DATA TERMINAL, PRINTS UP TO 15 CPS. SEND $1 FOR OUR MICROCOMPUTING CATALOG THE ONLY ONE OF ITS KIND!! FULL DETAILS ON OUR COMPLETE LINE OF KITS AND UNITS, REVIEWS OF OVER 150 BOOKS, LISTS OF NEW AND SURPLUS PARTS AND "ALL ABOUT HOBBY MICROCOMPUTERS"-- AN INTRODUC- TION TO PERSONAL COMPUTING. TO ORDER EQUIPMENT 1. ENCLOSE CHECK FOR FULL PRICE PLUS SHIPPING CIWRGES (KITS - ADD $5 IF UNDER $100;' $10 IF OVER) VISA (BANKAMERICARD) & MASTER CHARGE ACCEPTED - SEND CARD #, EXPIRATION DATE, INTERBANK # 2. CLEARLY IDENTIFY SHIPPING ADDRESS .3. DESCRIBE ITEM BY MODEL NUMBER 4or 6 Digit Alarm Clock Kit Features: A. Fairchild 0.5" FND500 Series Display B. Display Board may be remote C. P.C Boards, Transformer, Speaker and all the parts needed (less case). D. Detailed Instructions 12 Hr.-6-Digit $16.50, with 10 min. timer $25.50 with timer and crystal time base $29.50 4-Digit $14.95 6-Digit-24 Hr. $14.95 (no alarm) 0.8" 4 Digit Jumbo Display Alarm Clock Kit Features: A. Fairchild 0.8" FSC8000 Display Array B. Fairchild Super-Chip - F-3817PC C. P.C. Board, Transformer, Speaker and all parts included (less case) D. Detailed Instructions $19.50 BOWMAR SLIDE RULE CALCULATOR Features: A. 8-Digit Display C. Comes with Batt. Charger B. Build-in Nl-Cad Batt. D. One full year warr. ONLY $32.00 (Limited Quantity) POWER SUPPLY KITS 5V 10A with OVP (Less Case, X'former, $7.95 Rect.&Capl-with X'former, Rect.&Cap $16.50 2-20V 1 ,3A continuously adjustable with current limiting. Includes Transformer, P.C. Board, 2N3055, Heat sink, and everything but the case. $10.95 BOURNS MINIATURE TRIMMERS 3292X 2K 55«ea.or 10 for $5.00 330PP 2K 75. ea. or 10 for $6.75 4" MUFFIN FAN-Slightly Used-$5.00 All in perfect Condition. Satisfaction Guaranteed MINIATURE SLIDE SWITCH DPDT .20 each 10 for $1.75 100 for $15.00 INTER-COM BOARD Fully assembled. Works on 9-15V D.C. 2 speakers make it work. With Schematic ONLY $3.00 ZENER DIODES 5V 14V 15V IN2979 15V IN 3029 24V IM3002 75V '/ 2 W y»w y.w 10W 1W 10W .12 .12 .10 2.50 1.25 2.50 COMPUTER GRADE CAPACITORS 18,500/jF 80 V $4.50 91,000/uF 20V $4.00 100,000/iF 5 V $2.50 1.000/J+200 50V $1.00 TANTALUM CAPACITORS 1/J35V 1/U10V 3.3/J35V 10/J50V 22/L/35V .15 .15 .20 .35 .25 MINIATURE TOGGLE SWITCH SPDT $1.00 DPDT $1.25 DPDT Center off $1 .25 PUSH BUTTON SWITCH Red, White, green and yellow 30s ea. 4/$1 .00 TRANSFORMERS All inputs 110 V AC 40 V CT. 10A 30V CT. 20A 20V CT. 10A 24V 1 .3A 2.4-6.3-9-12V 28V CT. 0.6A 1A4 in 1 $14.50 $13.50 $8.00 $3.50 $3.50 $2.00 WIRE-WRAP TOOLS from OK Hobby Wrap - 30 $5.45 Hobby Wrap-Model BW-630 Bat- tery Op. (less batt.) $32.95 OPEN FRAME POWER SUPP. 12V @ 1.8A with OVP 115V AC input $7.50 5V@3A with OVP 115V AC input $17.50 MODULAR POWER SUPPLY 5V @> 32A 1 1 5V AC Input with OVP (New) $69.50 24V @ 12A 115V AC input (used) $37.95 28V 3A (used) $19.95 RECTIFIERS IN 4001 .06 IN4002 .07 IN4003 .08 IN4004 .09 IN4005 .10 IN4006 .12 IN4007 .14 RCA House Mark. 1000V 3A .40 600V 5A .75 MOTOROLA IN1202A .65 IN1612 .75 MDA962-2 1.80 Bridge100V12A THIS MONTH'S SPECIALS! SN7400 $.12 LM741CH-TO-5 30 MH0026C (5 MHZ Clock Driver) 2.95 A Y-5-3600I Keyboard Encoder by G. I. )with Spec. Sheet 10.50 LM340T-12 .80 LM340T-5 .80 AN214-4.5W Power I.C. with Spec. 2.95 PANEL METERS 2%" X 2'A" 50L1A $3.50 150/JA $3.00 IOOjUA $3.00 300jUA $3.00 154" X 1K"-50/iA $4.00 L.E.D. 0.25" Red 25t 10 for $2.00 0.25" Green 30« 10 for $2.50 0.125" Red 20« 10 for $1.75 0.5" FND503CC $1.00 0.5" FND507CA. $1.00 0.8" FSC8000 C.C. $7.50 14 Pin 14 Pin 14 Pin 16 Pin 16 Pin 22 Pin 24 Pin 24 Pin 40 Pin I.C. SOCKETS Lo Pro Standard -Gold Wire Wrap-Gold Lo pro Wire Wrap-Gold Lo pro Lo pro Open Frame Standard -Gold Lo pro Open Frame $.30 .35 .45 .35 .50 .45 .45 1.00 .55 Zs TERMS: Money Back Guarantee CALIF. RESIDENTS ADD G^i SALES TAX Please add $1.00 for postage inside Calif., $2.00 for Out of State, Overseas add 10% of order. W^y!^ Minimum Order $5.00 CO.D. $20.00 {$1.00 handling) STORE HOURS: Mon.-Sai., 10-7. Sun. 10-3 PHONE 714/8210234 ELECTRONIC SUPPLIES 2669 W. LINCOLN AVE., ANAHEIM, CA. 92601 SPECIAL OFFER 100 STEPS PROGRAMMABLE SCIENTIST #4525 • RPN logic with "built-in" hierarchy for increased accuracy and speed in calculating sequences involv- ing arithmetic, trigonometric, logarithmic, power or exponential functions. • A rollable 4-level stack lets you review or use intermediate solutions. • Eight- digit plus 2-digit exponent LED display with full- floating decimal system. • Scientific notation for increased mathematical capacity. • Sine, cosine, tangent and inverse trigonometric functions. • Common and natural logarithms and antilogarithms. • Instant automatic calculation of powers and roots. • Single-key square root calculations. • Single-key Pi entry. • Separate storage memory. Square, square root and reciprocal calculations. Change sign and register exchange keys. • MOS/LSI solid-state cir- cuitry. • Includes 3 AA rechargable NiCad batteries. MANUFACTURED IN USA BY BY NATIONAL SEMICONDUCTOR ONE YEAR UNLIMITED WARRANTY 10 DAYS MONEY BACK GUARANTEE JVIodel #4525 @ 38.95 _ _Model #4520 @ 28.88 _ AC Charger® 4.95 Case(s)@2.95 Calc. Stand® 2.50 Cal. Res. add 6% tax Total _ ALSO AVAILABLE MODEL #4520 With the same features as above but without programming capability @ $28.88. Acces- sories same price as above. CirC | e 157 on inquiry card SAME DAY SERVICE IF PAID BY CASHIERS CHECK, MONEY ORDER OR CHARGE CARD. ASC II KEYBOARD NEW LOOK IMPROVED DESIGN $58.00 This 63 key ASC II Encoded Keyboard kit was designed and manufactured by Electronics Ware- house Inc. Features: Single 5 volt D.C. supply, utilizing onlyTTL Logic elements (no MOS devices to blow). TTL drive capability (each of the eight bits of ASC II output will drive the equivalent of ten standard TTL inputs without external buffer drivers), de-bouncing, upper and lower case fully ASC II, 8 bit parallel. In addition to the alpha-numeric and symbol keys available on a regular keyboard, the following keys are utilized: Escape, back-space, tab, line-feed, delete, control, shift-lock, shift (2 keys), return. All 1 28 ASC II characters are generat- ed. Kit includes: 63 key keyboard, P.C. board, all required components and assembly manual with ASC II code list. Optional: Parity bit -add 50$ • Enclosure -$25.00 • Serial output - add $2.00 • 1 8 Pin edge connector - $2.00 • Sockets - $4.00 Note: If you already have this teletype keyboard you can have the kit without it for $39.00. Dealer inquiries invited. FROM CONCORD THE FIRST FULL FEATURE LSI DMM KIT INTRODUCTORY PRICE 77 Reg. Suggested Retail: $149.00 AUTO RANGING AUTO POLARITY AUTO ZERO 3 Large Digits (1/2") Rechargable 77 MEASUREMENT RANGES: Voltage: (AC & DC) 1 MV- 1000V Current (AC & DC) 10JUA- 1A RESISTANCE 1Q-10MQ Basic D C Accuracy, better than 1% * 1 Digit Power 4 AA batteries (Recharg able batteries optional) NICAD BATTERIES: $6.00 • AC CHARGER: $4.95 • ENCLO- SURE: $12.95 • TEST LEADS: $1.95 • SHUNT KIT FOR 3 CURRENT RANGES: $4.75 • SOCKETS $2.50 ORDERING INFORMATION SHIPPING AND HANDLING - $3.00 + 50? Insurance California residents add 6% sales tax ELECTRONICS WAREHOUSE Inc. 1603 AVIATION BLVD. Dept. B REDONDO BEACH, CA. 90278 TEL. (213)376-8005 WRITE FOR FREE CATALOG You are invited to visit our store at the above address Circle 85 on inquiry card. COMPUTERS: circle desired kits, men show this ad to your owner. r 1 Active Terminator Board $25 •Plugs into your S-lOO bus to actively terminate lines •Minimize the crosstalk, noise, overshoot, and ringing you can find on improperly terminated busses "* 2 MOTHERBOARD(S) • Prices include edge connectors 10 Slots: $85 18 Slots: $118 Includes active terminations for unambiguous data transfer Uses glass epoxy , plate-through, double sided board 3 8K EconoRAM II $163.84 • Low current drain, zero wait states (1 wait with Z-80) • Tri-state outputs mate with any type of bus • Configured as two separate 4K blocks (with fully independent protect and address decoding to increase flexibility) • Includes low power Schottky support ICs and full buffering 4 4KEconoR0M $265 • NEW AND IMPROVED better listings; SP and PSW now implemented for more flexi- bility. Find out why Jay Bell, editor of Print-Out , said: "Without a doubt, this board is the best buy I have made for my Altair 8800 out of the $5000+ I've spent." (Print-Out, September 1976 issue) Now you can have editor, assembler, and monitor routines that make the 8080 a much nicer chip to work with. 5 CPU Power Supply $45 • 5 Volts @ 4 Amps with crowbar overvoltage protection • +12 Volts @ % Amp and -12 Volts @ % Amp • Adjustable bias supply, 5 to 10 Volts at 10 mA • Intended for use with small computer systems or as digital bench supply CAVE : irar* J BILL GODBOUT ELECTRONICS BOX 2355, OAKLAND AIRPORT, CA 94614 TERMS: Please allow up to 5% for shipping; excess refunded. Californians add sales tax. Street address must be included for COD orders. Place BankAmericard' B and Mastercharge® orders ($15 minimum) by calling our 24 hour order desk at (415) 562-0636. FREE FLYER: Just give us the word and we'll send out a copy of our flyer, which describes our complete line of products in greater detail. Circle 86 on inquiry card. ' H'rnrmi /400NTTL SN7400N SN74Q1N SN7402N SN7403N SN74Q4N SN740SN SN7406N SN7407N SN7408N SN7409N SN7410N SN7411N SN7412N SN7413N . SN7414N SN7416N SN7417N SN7420N SN7421N SN7422N SN7423N SN7425N SN7426N SN7427N SN7429N SN7430N SN7432N SN7437N 5N743BN SN7439N SN744QN SN7441N SN7442N SN7443N SM7444N SN7445N SN7446N SN7447N SN7448N SH7450N SN7451N SN7453N SN7454N SN7459A SN7460N SN7470N SN7472N SN7473N SN7474N SN7475N* SN7476N SN7479N SN7480N SN74B2N SN7483N SN7485N SN74B6N SN74B8N SN7489N SN7490N SN7491N SN7492N SN7493N SN7494N SN7495N SN7496N SN7497N SN741D0N SN74107N SN74121N' 5N74122N SN74123N SN74125N SN74126N SN74132N SN74136N SN74I41N SN74142N SN74143N SN74144N SN74145N SN74147N SN74148N SN74150N 5N74151N SN74153N SN741MN SN74155N SN74156N SN74157N SN74160N SN74161N SN74163N SN74164N SN74165N SN74166N SN74167N SN74170N SfJ74172N SN74173N SN74174N SN74175N SN74176N SN74177N SN74160N SN74181N SN741B2N SN74184N SN74185N SN74186N SN74187N SN74188N SN74190N SN7419IN SN74192N SN74193N SN74194N SN74195N SN74I96N SN74197N SN74198N SN74199N SN74200N SN74279N SN74251N SN74284N SN74285N SN74367N MANY OTHERS AVAILABLE ON REQUEST 20% Discount for 100 Combined 74O0's 2.49 4.00 15.00 6.00 3.95 CD4000 C04001 CD4Q02 CD4006 CO4O07 C04009 CD4010 CD401 I C04012 CD4013 CD40I6 (94017 C04019 CO4O20 CD-5022 CD4023 C04Q24 CO-1025 CD-1027 CD4028 CD4029 - CO4O30 25 CMOS .65 CO4035 CD4040 CD4042 C040J4 CD40-16 CD4047 CO4049 CD4050 CD-1051 CD4053 CD4060 CD4066 CD-IQ69 CO4071 CD4081 CD4511 CD45I8 MC14566 74C0ON nam 74C04N 74C10H 74C2DN 74C30N 7JC42N 74C73N 74C74 74C90N 74C95H 74C107N 74C15I 74CI54 74C157 74C160 74CI6I 74C163 74C164 74C173 74CI93 74C195 MC4044 MCUQ16 L.M3UDH BO LM301H 35 LM301CN .35 LM302H 75 LM304H 1.00 LM305H .95 LM307CN 35 LM308H 100 LM30BCN 100 LM309H 1.10 LM309K 99 LM310CN 1 15 LM3I1H .90 LM311N .90 LM318CN 1.50 LM319N 1.30 LM320K-5 1.35 LM32QK-5.2 1.35 LM320K-12 1.35 LM320K-15 1.35 LM320T-5 1.75 LM320T-5.2 1.75 LM320T-8 1.75 LM320T-12 1.75 LM320M5 1.75 LM320M8 1.75 LM320T-24 1,75 LM323K-5 9,95 LM324N 1.B0 LM339N 1.70 LM34DK-5 1.95 LM340K-6 1.95 LM340K-8 1 95 LM34QK-12 1.95 LM340K-15 1.95 LM340K-18 1.95 LM340K-24 1.95 LM340T-5 1 75 LM340T-6 1.75 LM340T-8 1.75 LM340T-12 1 75 LM340T-15 1.75 LM340M8 1.75 LM340I-24 1.75 LM350N 1.00 LM351CN .65 LINEAR 78MG LM370N LM373N LM377N LM380N LM380CN LM38JN LM382N NE501K NE510A NE531H NE536T NE540L NE550N NE555V NE560B NE561B NE562B NE565H NE565N NE566CN NE567H NE567V LM703CN LM709H 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 LM1556V 18 LM2111N 1.9 LM29GIN 2.9 LM3D65N 6 LM3900N .5 LM3905N .6 LM3909 12 LM5556N 1 B MC5558V 1.0 LM7525N 9 LM7535N 1.2 803BB 4.9 LM 75450 .4 75451CN .3 75452CN .3 75453CN 3 75454CN .3 75491CN .7 75492CN .8 75494CN .8 RCA LINEAR CA3013 2.1 CA3023 2.5 CA3035 2.4 CA3039 1.3 CA3046 1.3 CA3059 3.2 CA3060 3.2 CA3D80 E CA3081 2.C CA3082 2C CA3083 IE CA3086 ,( CA3089 3( CA3091 to.; CA3102 2'. CA3123 2.1 CA3130 1.3 CA3140 1.2 CA3600 1.7 RC419 RC4195 74LS0O 74LS02 74LS03 74LS04 74LS05 74LSD8 ?4LS10 74LS13 74LS14 74LS20 74LS26 74LS27 74LS28 741S30 74LS32 74LS40 74LS51 74LS55 74LS73 29 74LS00 74LS74 74LS75 74LS7B 74LSB3 74LS85 74LS86 74LS90 74LS92 74LS93 74LS95 74LS96 74LS107 74LS109 74LS11? 74L513? 74LS13G 74LS138 74LS153 74LS157 741S162 74LS163 74LS1B4 74 LSI 75 74LS1B1 74LS190 741S191 74LS19? MIS 193 74LS194 74LS195 74LS257 74LS260 74LS279 7415670 MM5309 MM5311 MM5312 MM5314 MM53I6 MM5318 CT7001 CLOCK CHIPS 6 Digit. BCD Outputs. Reset PIN. 6 Digit, BCD Outputs. 12 or 24 Hour 4 Digit. BCD Oulpuls, 1 PPS Output 6 Digit. 12 or 24 Hour. 50 or 60 Hz 4 Digit. Alarm. 1 PPS Output Video Clock Chip, For Use Wtlh {MM5B41 6 Digil. Calendar. Alarm, 12 or 24 Hour 1*1 DATA HANDBOOKS 7400 Pin-out & Description of G400/740O ICS CMOS Pin-oul & Description ol 4000 Surics ICS - Linear Pin out & Functional Description ^ ALL THREE HANDBOOKS S6.95 S2.95 S2.95 S2.95 I T201 Slack Bracelel S19.95 3, T237 wnim w/bratelel S29.95 TZ36 Vellnw w/bracelet S34.95 Tlmeband b y mmm/w — Watches — Men's & Ladies • Solid State • Displays hour, minute, second, month & day • Snap-out battery replacement • Free set ol replacement batteries • Choose LED or LCD styles • One year factory warranty TC441 While w/slrap S29.S5 TC440 Yellow w.sliau S34.9S T311 While w/slrap $34.95 T310 Velio* w slrap $39.95 CHANNEL F ^"$159.95 mt/KMMo nofo effTFurff/tnuem srsm* • Freeze Action • Speed Option • Automatic time and scorekeeping Battery-tree 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 XC2Q9 XC709 XC209 XC22 XC22 XC22 XC22 SSL -22 125" ma. Orange Yellow .200" dia Red i Green Yellow Orange .190" dia. Red 10 SI DISCRETE LEDS 4.-S1 XCS26 Red XC526 Green XC526 Yellow XC526 Orangp XC526 Cleat XC556 Red XC556 Green XC556 Yellow XC556 Orange XC556 Clear Green Yellow □range .0B5" dia. MV50 - Red - 6 SI INFRA-RED LEO '*' x'.«"xt/16" Flat SfSI.OO SPECIAL * — XC556 Red 100/58.00 1000/S60.00 — SPECIAL * DISPLAY LEDS TYPE MAM 1 MAN 2 MAN 3 MAN 4 MAN J MAN ?G MAN 7Y MAN 52 MAN G4 MAN 74 MAN 8? MAN 84 MAN 3f>20 POLARITY Cnminan Anode S i 1 Doi M,mu Common Cathode Common Caihode Cofnmon Anotle Cemmoti Annde-qieen Common Annde-yellow Common Annde-jreen Common Anode-ted Common Ctlliode Common Anode-yellnw Common Catliodc yellow n Ann nrPE MAN 3640 MAN 4r10 DL701 DL704 DL707 MAN 4-74G DL741 DL W OL 750 DL 33B FND70 FND503 TND507 POLARITY Common CaUtofle-orange Common Anode- Red Common Anode-fed - Common Caihode Common Anode Common Anooe-Hed Common Anode Common Anode Cu"inon Cainode Common Cathode Common Cathode Common CalrimlR 5U0 1 00 FACIORY flCJECTS BOARD A- 8V » 16" Over GO each reusable IC's Misc Transislors, Reststois. Diodes. Caps. Ciysiais. Switch, etc DELUXE BOARD B — 11V* U Over 100 each reusable 1C s Misc. Tranislors. Resislors. Diodes, Caps, Crystals. Switches, LEDS. etc ATARI GAME BOARDS S6.95 ea. ONLY 500 EA AVAILABLE S9.95 ea. ONLY 500 EA AVAILABLE HP 5082-7300 Multi-Digit Series Va" Ht. « Common Cathode • Dip Package 3 to 5 volts @ 5 mils per segment 7 segment Monolithic • Red Display 2 Digll $ .79 3 Digit .89 4 Digit .99 5 Digil 1.19 fC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS 1Bpin 22 pin It pin 16 pin 10 pin 14 pin 16 pin t; ' SOLDERTAIL STANDARD (TIN) SOLDERTAIL STANDARD (GOLD) WIRE WRAP SOCKETS (GOLD) LEVEL #3 24 pin 50 PCS. RESISTOR ASSORTMENTS $1 .25 PER ASST. ASST. 1 ASST. 2 J ^ ASST. 3 o -ASST. 4 C/3ASST. 5 ASST. 7 ASST. 8R 10 OHM 12 OHM 15 OHM IB OHM 22 OHM 27 OHM 33 OHM 39 OHM 47 OHM 56 OHM 6B0HM 32 OHM 100 OHM 120 OHM 150 OHM 1B0 OHM 220 OHM 270 OHM 330 OHM 390 OHM 470 OHM 560 OHM 680 OHM S?0 OHM 1K I 2K 3 3K 1 5K 3 UK 1 BK 4 /K 220K 560K 1 5M 3 9M 2 2K 5 GK ?7K 1/4 WATT 5% 50 PCS, GO 1/4 WATT 5% 50 PCS. ~& I 1/4 WATT 5% 5D PCS.] 1/4 WATT 8% 50PCS. Includes Resistor Assortments 1 -7(350 PCS.) $7.49 ea. SS.OO Minimum Order — U.S. Fundi Only California Rasldantt — Add 6% Salei Tsx Spec Sheets - 25c — Send 35c stamp tor 1977A Catalog Dealer Dltcounl Available — Reouett Pricing 1021-A HOWARD AVE., SAN CARLOS. CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097 All Advertised Prices Good Thru July WIRE WRAP CENTER HOBBY-WRAP TOOL-BW-630 1 1\ $34.95 * Iballenes no! mcludeol Batteiy Operated (Size C) Weighs ONLY 11 Ounces Wraps 30 AWG Wire onto Standard DIP Sockets (.025 inch) Complete with built-in bit and sleeve WIRE-WRAP KIT — WK-2-W WRAP . STRIP . UNWRAP • Tool tor 30 AWG Wire • Roll of 50 Ft. White or Blue 30 AWG Wire • 50 pes. each 1". 2". 3" S 4" lengths pre-stripped wire. $11.95 WIRE WRAP TOOL WSU-30 WRAP . STRIP . UNWRAP- 15.95 WIRE WRAP WIRE — 30 AWG 25ft. min. $1.25 50tl.S1.95 100ft. S2.95 1000h.S15.00 SPECIFY COLOR — White - Yellow - Red - Green - Blue - Black Plastic Push Button Switch ' IS AWG Solid Wire - 5" Long ' .50 (wide) X .60 Irtish) '■•-21 Thread ' 8 AMP @ 14 Volt - 1 AMP f§ .10 Volt 1-9 10-Up J-188-1 Push On-Push Off .59 .49 J-188-2 Normally Open 59 .49 J-188-3 Normally Closed .59 .49 DIP SWITCHES SPST Slide Action #206-4 ( 8 pin dip) A switch unit $1.75 ea. #206-7 (14 pin dip) 7 switch unit $1.95 ea. 1 #206-8 (16 pin dip) 8 switch unit $2.25 ea. TV GAME CHIP SET — $18.50 Includes AY-3-8500-1 chip and 2.010 mhz crystal — if purchased separately would cost S21.90. TYPE 1\746 1N751A IN 752 1N753 1N754 1N959 1N965B IN5332 1N5234 1N5235 1N5236 IN456 1N4SB 1N4BSA 1N4001 1N4O03 1N4003 IN40O4 ZENERS - VOLTS W 3.3 400mm 5 1 400m 5.6 400m 6.2 400m 6.5 400m 8 2 400m 15 400m 5.6 500m 6 2 500m 6.B 500m 7.5 500m 25 40m 150 7m 180 10m 50 PIV 1 AMP 100 PIV 1 AMP 200 PIV 1 AMP 400 PIV 1 AMP DIODES — PRICE TYPE 4/1 00 1N4005 4/1 00 1N4O06 4/1.00 1N4007 4/1.00 1N3600 4/1 00 1N414B 8/100 1M4154 4/1.00 1N4305 28 1N4734 2B 1N4735 1N4736 RECTIFIERS VOLTS W 600 PIV 1 AMP 800 PIV 1 AMP 1000 PIV I AMP 200m 10m 10m 10/1.00 10/1 00 6/1.00 1511.00 12/1 00 20/1.00 28 28 28 fJ4738 1N4742 6/1 00 1N4744 6/1.00 1N1183 12/1 00 1N1184 12/1.00 1N1185 12/1 00 1N1186 12/1.00 1N1188 1w 12 15 50 PIV 35 AMP 100 PIV 35 AMP 150 PIV 35 AMP 200 PIV 35 AMP 400 PIV 35 AMP SCR AND FW BRIDGE RECTIFIERS C36D C3BM 2N2328 MDA9B0-I MDA 9BO-3 35A @ 200V 1 6A@20OV FW BRIDGE REC FW BRIDGE REC MPS ADS MPS A06 2NJU19A 2M22I WIWA 2N23G3 2N:>:!i.'M 2N24B4 7N23D6A 2N2907A 2N2D25 2N3053 2N3D55 MJl31ft!i MJE2955 . 2N3392 i 2N3398 5:S I 00 3,'SI no 4/1 1 00 Mi oc TRANSISTORS ™«*» PM4ES0 3/S1.00 2N44DO 4.11 00 2N4401 ■I'SI 00 2N«0? musa PN3567 PN3568 , PNJ569 2N3704 2N37D5 2N3706 2N3707 2N371 1 2N3724 2N3725 2N3903 2N3904 2N3905 ?N3M5 2N4013 2N4014 5.'5I DO JQ, 2N4J09 5/SI 00 (T 2N50B6 S.-S1 00 i 2U5CB7 BS1 00 [| | ZNaOEIS 2N4123 10 SI 00 CAPACITOR 10 pt 22 p( 47 pi 100 pi 220 pi 470 pt .001ml .0022 0047ml 01ml 1 /35V .15/35V .22/35V 33/35V 47/35V 6B/35V 1 0/35V 50 VOLT CERAMIC DISC CAPACITORS 1-9 10-49 50-100 5 .04 .03 OOVF 5 .04 .03 .0047/^F 5 .04 .03 .OVF 5 .04 .03 022 M F 5 .04 .03 .047,iF 100 VOLT MYLAR FILM CAPACITORS .12 .10 .07 .022ml 13 .12 .10 .07 ,047ml 21 .12 .10 .07 .1ml .27 .12 10 .07 .22ml 33 + 20% DIPPED TANTALUMS (SOLID) CAPACITORS .28 .23 .17 1.5/35V CORNER t-9 10-49 50-100 .26 .28 .23 .17 2.2/25V .31 .27 .28 .23 17 3.3/25V .31 .27 .28 23 .17 4.7/25V .32 .28 28 .23 17 6.8/25V 36 .31 .28 .23 17 10/25V .40 .35 .2B .23 .17 15/25V .63 50 MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS t 0/50V 3 3/50V 4.7/25V 10/25V 10/50V 22/25V 22/50V 47/25V 47/50V 100/25V 100/50V 220/25V 220/50V 470/25V 1000/ 16V 2200/ 16V .13 .10 .47/25V .47/50V 1.0/16V 1.0/25V 1.0/50V 4.7/16V 4.7/25V 4.7/50V 10/16V 10/25V 10/50V 47/50V IO0/16V 10O/25V 100/50V 220/ 16V 470/25V Radial Lead 15 / -^(CRYSTALS ( as pm#" CV1A CV2A CV3A CV7A CY1ZA CY14A CY19A CY2ZA CY30B [THESE FREQUENCIES ONLY Frequency 1.000 MHz 2.000 MHz 4.000 MHz 5.000 MHz 10.000 MHz 14.31818 MHz 18.000 MHz 20.000 MHz 32.000 MHz Casa/Style HC33/U HC33/U HC18/U HC18/U HC18/U HC18U HC18/U HC18/U HC18/U S5.95 15.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95 XR-2206KB Kit $29.95 Special XR-2206KA Kit $19.95 EXAR WAVEFORM GENERATORS XR.-205 S3 40 XR-2206CP A 49 XP.-2207CP 3 85 STEREO DECODERS XR-1310CP S320 XR-131CEP 3 20 TIMERS S 39 XH-555CP XR-320P XR-556CP XR-2556CP XR-224GCP PHASE LOCKED LOOPS XR-21Q XR-215 XR-567CP XR-567CT 3 20 r '7<) CONNECTORS PRINTED CIRCUIT EDGE-CARD .156 Spacing-Tin-Double Read -Out Bifurcated Contacts — Fits .054 to .070 P.C. Cards 15/30 PINS (Solder Eyelet) S1.95 18/36 PINS (Solder Eyelet) $2.49 22/44 PINS (Solder Eyelet) $2.95 50/100 (.100 Spacing) PINS (Solder Eyelet) $6.95 25 PIN-D SUBMINATURE DB25P PLUG $3.25 DB25S SOCKET $4.95 3V 2 DIGIT DVM KIT This 0-2 VDC .05 per cent digital voltmeter features the Motorola 3% digit DVM chip set. II lias a .4" LED display and operates from a single + 5V power supply The unit is provided complete with an injection molded black ■ plastic case complete with Bezel. An optional power supply is available which tits into the same case as the 0-2V DVM allowing 1 17 VAC operation. A. 0-2V DVM with Case $49.95 B. 5V Power Supply $14.95 Etching Kits 32 X A : 1 " 27 X A-1 Plugboards 3662 8800V © Peelot P C. Etch Materials Kit enough lor 5 circuit boards Etched Circuit Kit Complete kit — only arJO water 6.5X4.5 X 1/16 Epoxy glass P-Pattem-44 P.C. Tabs-spaced .156" Universal Microcomputer/Processor plugboard — Epoxy Glass — complete with heatsink 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 B4P44 062XXXP HS9P4-I 02XXXP 64P44 062 1I4P44 062 I6QP4-1 062 1G9P8J 062 1E9P4.1062C1 2 -Up 3 32 205-CB BwyBtui 291-.36H Alummu 680-.75A .Black A; HEAT SINKS y Copper Meat Sink witfl Gl.ick Finish for TO-5 $ .25 ) Heal Sink lor TO-220 Transistors & Regulators S .25 irwed Aluminum $1.60 HEXADECIMAL ENCODER 19-KEY PAD .^> . .1-0 ^.tJOtfct . ABCDEF ME ,.;'-:,->; |jfc • Return Key ^H • Optional Key (Period) ■ Key $10.95 each 63 KEY KEYBOARD Tins keyboard leaTut r; Large Red Led Display l.B" hirjh) . AM/PM indicator i Seconds display at touch ot button . Power failure indicator i One year factory warranty DIGITAL AUTO INSTRUMENT SEVEN DIFFERENT INSTRUMENTS! MEETS OH EXCEEDS ORIGINAL AUTOMOTIVE SPECS. Please specify which one of the seven models you want when ordering - these do not a!! come in one unit. Each model must be bought separately. TACHOMETER 1 O-99O0 RPM 6 or 8 Cyclinders FUEL LEVEL 3 Percentage Low Fuel Indicator OIL PRESSURE 0-80 PSI BATTERY MONITOR ±1 Volts From 11-15 VDC BRIGHT YELLOW ORANGE .3" t FD DISPLAY! includes case, bracket and all components — complete. Nothing else to buy! 12 Volt NEG GFID. DIMENSIONS: 4Vj x4x2 KIT: $49.95 Add $10.00 lor required speed transducer. ASSEMBLED: $59.95 DIGITAL STOPWATCH • Bright 6 Digit LED Display • Times to 59 minutes 59.59 seconds • Crystal Controlled Time 8ase • Three Stopwatches in One Times Single Event — Split & Taylor • Size 4. 5" x 2.15" x .90- [AVt ounces) • Uses 3 Penlite Cells. Kit — $39.95 Assembled — $49.95 Heavy Duty Carry Case $5.95 Stop Watch Chip Only (7205) S19.95 ELECTRONIC 'PENDULUM' CLOCK ft • Swing Pendulum • .7" Hours and Minutes Display • 12 or 24 Hour Mode • Time Set Push Buttons • Alarm Feature Kit-unfinished $59.95 {case unassembled) Assembled -stained $69.95 (case assembled) QUARTZ DIGITAL AUTO CLOCK OR ELAPSED TIMER! Elapsed Timer: Hre, Mint anil Sect 12 or 24 Hr Capacity Simple Reset - Start Pushbutton Control Complete kit includes mounting bracket, case and all components, nothing else to buy. Features MM5314chip: Large .4" LED s. Accuracy better than ± min. per mo. in:ernal battery backup. 12 volt non-polar operation. x2' Kit: $29.95 Assembled: $39.95 CASE ONLY (includes hardware, mounting bracket and bezel) $6.50 JE700 CLOCK The JE700 is a low cosl digital clock, but is a very high quality unit The unit fea- tures a simulated walnnl case with di- mensions of 6" x f/t" X 1' It utilizes a MAN72 high brightness readout, and the MM531-I clock chip. $17.95 DM2 - QT PROTO STRIPS QT lyps OT-59S QT-59B QT-47S QT-47B 0T-35S OT-35B QT-18S OT-12S QT-BS OT-7S bus strip 350 bus strip 12.50 2.(10 4.75 3.75 Experimentor 300 Experimenter 600 S 9.95 S10.95 S5.D0 Minimum Order — U.S. Funds Only California Residents — Add 6% Sales Tax Spec Sheett - 25c — Sand 35c Stamp (or 1977A Catalog Dealer Discount Available — Requett Pricing 1021 -A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097 All Advertised Prices Good Thru July DIGITAL CLOCK KIT — 3% INCH DIGITS 4 DIGIT KIT $49.95 4 DIGIT ASSEMBLED $59.95 6 DIGIT KIT $69.95 6 DIGIT ASSEMBLED $79.95 This dock features big 3V?" high digits for viewing in offices, auditoriums, etc. Each digit is formed by 31 bright 0.2" LEO's The dock operates from 117 VAC, has either 12 or 24 hr. operation. The 6 digit version is 27" x ZW x 1 V»" and the 4 digit is 1B" x 3W x 114", Kits come complete wtth all components, case and transformer. Specify 12 or 24 Hour When Ordering JE803 PROBE The Logic Probe is a unit which is lor Ihe mosl pan indespensinle m trouble shooting logic families TTL. OTL. RTL. CMOS It derives the power il s to operate directly oil ot ihe circuit undei drawing a scant 10 mA mat II use; a MAN3 readoul 10 indicate any ot the following States by these symbols (H) ■ t (LOW) ■ o (PULSE) ■ P The Probe can deled high treguency pulses to 45 MHz ;an I be used at MOS levels or cuciiit damage . result $9.95 Per Kit printed circuit board PL 5V 1A Supply This is a slardard TTL power supply using Ihe well known LM309K regulator IC to provide a solid 1 AMP ot current at 5 volts. We try to make Ihings easy tor you by providing everything you need in one package, including ihe ior on $9.95 per Kit Circle 87 on inquiry card. computer display terminal This display terminal has an integral controller, B/W cathode ray tube and keyboard. The system has a serial I/O interface for communication and an I/O interface for a printer DISPLAY (P/N 4802-1095-501) FEATURES: • 17" B/W CRT • 41 lines of data • 52 characters per line • Characters are generated by a diode matrix "graphic" technique • 21 special push-buttons wired for a program call up • Brightness Control • Self-contained power supply KEYBOARD (P/N 4802-1115-501) FEATURES: • Reed switch technology • 54 data keys • 28 special keys detachable with cable LOGIC UNIT (P/N 4802-1157-502) FEATURES: • 1 024 by 6 bit core memory • Printer I/O interface • Communication I/O interface POWER: 115V, 50/60 Hz, 500 Watts WEIGHT: 210 lbs. (including logic unit, keyboard, display and cables.) FOB LYNN MASS (you pay shipping) Check with order please. $180.00 External logic & power pack not shown. u AS IS J? 4 way cursor control, graphics display. The story: These are unused terminals made for airport ticketing & seat assignment. After several years of storage they require tinkering to make operable. We have some hints printed such as cleaning PC fingers. One of our customers has this tied into his KIM-1, another has his running with his IMSAI. We have data on this. Should be useable on most common computers. A hell of a deal and all for a paltry $180.00- Don't be left out as many were on our past VIATRON deal. Sold "as is" all sales final. WITH COMPLETE DOCUMENTATION SPECTRA FLAT TWIST 50 conductor, 28 gauge, 7 strands/ conductor made by Spectra. Two con- ductors are paired & twisted and the flat ribbon made up of 25 pairs to give total of 50 conductor. May be peeled off in pairs if desired. Made twisted to cut down on "cross talk." Ideal for sandwiching PC boards allowing flexibility and working on both sides of the boards. Cost orig- inally $13.00/ft SP-324-A $1 .00/ft. 1 ft/$9.00 SP-234-A $1.00ft50cond. 10ft/$9.00 SP-234-B .90ft32cond. 10ft/$8.00 In tall TO-5 can TINY DPDT, 24 volts. Brand new. SWITCH cost $16.00 each TELEDYNE SP-134 $3.00 each 2/$5.00 WIRE WRAP WIRE TEFZEL blue #30 Reg. price $13.28/100 ft. Our price 100 ft $2.00; 500 ft $7.50. MULTI COLORED SPECTRA WIRE Footage 8 Cond 12 " 14 " 22 29 " 22 10' #24 $2.50 22 3.00 50' 100' 9.00 15.00 11.00 18.00 3.50 13.00 21.00 7.50 28.00 45.00 Great savings as these are about 1/4 book prices. All fresh & new. sTie&wuz Precision 16 pin DIP network as shown. Each resistor IK. For pull-up/pull down interface networks. Value over $1.00 each; New, CTS or Beckman J^AfiJ^U^LR, sp-320 pack of 6 $1 .oo 1 ^4^^^ Please add shipping cost on above. Minimum order $10 FREE CATALOG SP-9 NOW READY P.O. Box 62, E. Lynn, Massachusetts 01904 Circle 18 on inquiry card. I ITM II U I CrilWLE MICROCOMPUTING FOR HOME AND THE SMALL RUSINESSMAN The professional publication bringing microcomputing technology to the hobbyist, small businessman, educator, engineer and student. Every issue edited to bring technology and people together in the simplest manner. INTERFACE AGE is packed with HARDWARE ARTICLES — Product profiles, comparisons, applications, modifications and construction pro- jects. SOFTWARE ARTICLES — Microcomputer development software, short software routines, application software, off-line software storage formats, software communication standards and access to the microcomputer software depository for all INTER- FACE AGE readers. TUTORIALS — Fundamentals of micro processors, basics for microcomputing, professional to technical transition information, understanding software, elementary math for computing. • NEW PRODUCTS — Manufacturer profiles and latest product releases. USER COMMUNICATION - UPDATE - devoted to club and organization announcements and activities. — LETTERS TO THE EDITOR — Reader forum for expression of opinions and feedback on articles and features. MICRO-MARKET/FIFO FLEA MARKET - Low cost/no cost advertising for the new marketeer/garage sale enthusiast. If you need to know how to get started in microcomputing or need the valuable software once your system is completed then INTERFACE AGE is a must for you. Don't Delay — Subscribe Today! r INTERFACE AGE MAGAZINE 1 P.O. Box 1234 Cerritos, CA. 90701 12 Monthly Issues: $10 U.S., $12 Can./Mex., $18 International □ CHECK □ MONEY ORDER Name. Address. City Country . State- Zip. L MAKE CHECK PAYABLE TO: INTERFACE AGE MAGAZINE Circle 89 on inquiry card. J 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 Q Q 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 1 A 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 WITH EXPANSION A fantastic bargain for only with the following features: • 20 ma or RS 232 interface • 64K addressing range • Program control timers • • 1K of on-board static • memory • • Built in clock generator • BOARD KIT CAPABILITIES $99 00 64 Byte register Built-in priority interrupts Documentation Uses Fairbug PSU FOR FAIRBUG 4K F8 BASIC ON PAPER TAPE $25 00 2"?08 8K EPROM S24.95 2522STATICSHIFTRE6 S 1 95 2b13 CHARACTER GEN S 9 95 2518 HEX 32BITSR $3.50 2102 1 1024 BT RAM $ i.3g S2804 K DYNAMIC RAM . S 6-95 MM5202A UV PROM S 6 95 MM5203 UV PROM S 6 9b 1702A UVPROM S 5.95 5204-4K PROM S10 95 AY 5 1013 UART. ; «. ,y .- ,y ;, j 695 MINIATURE MULTI-TURN TRIM POTS 1G0, 500, 2K,5K,10K,25K.50K.tOOK,200K 1 Meg, S.75i;ach 3/S2.00 MULT I TURN TRIM POT S Similar to Bourns 3010siylc3/16"x5/8"x1 1/4". 50. 100. IK, I0K. 50K Ohms SI .50 mi. . 3/54,00 1.1(11 If ACTIVATED SCHs TO 18, 200V 1 A S 1.76 TRANSISTOR SPECIALS 2N3585 NPN Si TO 66 S .95 2N3772 NPN Si TO 3 S I 60 2N456A PNP GE S .75 2N4908 PNP Si 10 3 . . S 1.00 2N6056 NPN Si TO 3 Darlington S 1.70 2N5086 PMP Si TO-92 4/S 1.00 2N4898 PNP TO 66 S .60 2N404 PNPGE TO 5 5/S 1.00 2N3919 NPNS. TO 3 RF S 1.50 MI'SA 1 3 NPN Si TO 92 3/S 1 .00 2N3767 NPN Si TO 66 . . S .70 2N2222 NPN Si TO 18 . . . . 5/S 1.00 2N3055 NPN S. TO-3 S .80 2N3904 NPN S. TO 92 . . . 5/S 1 .00 2N3906 PNPSr T0 92 5/S 1.00 2N5296 NPN Si TO-220 S .50 2N6109 PNP Si TO-220 S .55 2N3G38 PNP Si TO-5 5/S 1 .00 2NG5I / NPN TO 92 Si 3/S 1 .00 C/MOS (DIODE CLAMPED) 74C10 22 4016 40 4029 1 10 MCI 93 '50 4017 1.05 4030 .22 4001 .22 4018 1.00 4033 1 50 4002 .22 4019 25 4035 1 10 4006 1 20 4020 1 05 4042 ?B 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 4012 22 402G 1 25 4066 SO 4013 40 4027 40 4071 .27 4015 95 4028 HE 4076 1.05 IN 4148 UN914) 15 SI 0U MCA 81 OP] ICAI ! [Ml i SWITCH SI -■>" LED READOUTS FND359C.C..4" S .55 HP 7740 .3" C.C. SI. FND 70 C.C. A" S .60 MAN-7-.3" C.A. S . END 503 C.C. .5" Si. 05 NS 33-3 dig. array S . END 510 C.A 5" SI 05 Dl 747 C A 6" SI Terms: FOB Cambridge, Mass. Send Check or Money Order. Include Pos Order $5.00, COD'S $20.00 PRINTED CIRCUIT BOARD 7 WATT LD-65 LASER DIODE IR $a95 2N 3820P FET S 45 2N 5457 N FET $ .45 2N2646. ... ... S .45 ER 9O0 TRIGGER DIODES 4' SI 00 2N 6028 PROG UJT S 66 8 PIN DIP SOCKETS . . . S .24 14PIN DIPSOCKETS . . S .25 16 PIN DIP SOCKETS $ .28 18 PIN DIP SOCKETS S 30 24 PIN DIP SOCKETS S ,40 28 PIN DIPSOCKETS $ .50 40 PIN DIP SOCKETS $ .60 VERIPAX PC BOARD This board is a 1/16" single si tied papei apoxy board, W'xBW DHILLED and ETCHED which will hold up io 21 single 14 pin iC's or 8. 16. ot LSI DIP IC's wiih busses lot power supply i:np n ec'or S4 00 MV5G91 YELLOW-GREEN BIPOLAR LED SI. 25 FP 100 PIIOl O THANS S .50 RED, YELLOW, GREEN or AMBER LARGE LED's 6/S1.00 1L-5 (MCT-2) S .75 MOLEX PINS 1 00/$ I 00 1000/ $8 00 10 WATT 2ENERS 3.9, 4.7, 5.6, 8.2, 12,15.18.22.100,150 or 200V e.i. S .60 1 WATT ZENERS4. 7, 5.6,10, 12, 15 18 or 22V ea. S .25 MC6860 MODEM CHIP $9.95 Silicon Power Rectifiers TANTULUM CAPACITORS Full Wave Bridges 22UF 35V 5/S 1.00 47UF 35V 5'$1.00 68UF 35V 5S1 00 1UF 35V 5.S1.00 2.20UF 20V5/S1 00 3 3UF 35V 4S1 00 4.7UF 15V 5/S1.00 3A 12A 50A 125A 100 0G .14 30 .80 3 /0 200 .07 .20 .35 1.15 4.25 400 .09 .25 .50 1.40 6.50 COO .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 2V diameter .4 V at 500 ma. $4.00 / . 2 V at 200 mils $2.00 309K S .95 340K-5.12.15 723 S .50 or 24V. ... SI. 25 LM 376 .... S .GO 340T-5, 6, 8, 12 320K 5 or 15V S1.40 15.18 or 24VS1 10 320T-5,12,15 78 MG 51.35 ot 24V . . $1.25 79 MG SI. 35 RS232 DB 25P male $3.25 CONNECTORS DB 25S female . . S3.95 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7416 7417 7420 7425 7426 7427 7430 7432 7437 7438 7440 7441 7442 CTS MIN1A1 URE DIP 206 4 Fori- SPST s SW VUll TCHES lies " one nmidip p.ick lie SI 75 CTS 2068 Eight SPST wit rfws in .i 16 I ii DIP package. SI 95 ALCU MINIATURE TOGGLE SWITCHES MTA 106 SPDT SI. 20 Ml A 206 DPDT SI. 70 SOLID STATE SALES P.O. BOX 74B SOMERVILLE, MASS. 02143 TEL. (617) 547-4005 WE SHIP OVER 95% OF OUR ORDERS THE DAY WE RECEIVE THEM Circle 90 on inquiry card. High quality sockets for IC's and PC interconnections. Check our price and quality and you will see why TRI-TEK Is fast becoming the leader in IC sockets. Low Profile DIP Solder Toil (Tin) 1-9 10-24 25-100 SKT-0802 8pin .15 .15 .14 1402 I4pin .18 .17 .16 1602 16pm .20 .19 .18 1802 I8pin .27 .26 .25 2002 20pin .29 .28 .27 2202 22pin .35 .34 .33 2402 24pin .36 .35 .34 2802 28pin .42 .41 .40 4002 40pin .60 .57 .53 3 Level Wire Wrap Gold 5KT-I400 1600 1800 2400 4000 ■ 1-9 .38 .42 .73 1.00 1.69 10-24 .37 .41 .65 .91 1.51 25-100 .36 .40 .59 .83 1.37 PRESTRIPPED WIRE WRAP WIRE Highest quality 30 ga. Kynar insulated silver plated wire For wrapping. Stripped 1" on both ends. Indicated lengths are lengths of insulated portion. Packed 100 per sturdy plastic vial or 1000 per poly bag. Compare our prices I II . Available in Slack, Red, Yellow and Green. State color desired. Length 1" 2" 4" 6" Price per tube of 100 SI. 48 (WW30VC-1) SI. 60 (WW30VC-2) $1.85 (WW30VC-4) S2.20 (WW30VC-6) Price per bag of 1000 S11.84 (*WW30BK-1) S12.80 ('WW30BK-2) $14.80 ('WW30BK-41 SI 7.60 (*WW30BK-6) ROLLS OF WIRE SAME AS ABOVE '30 ga. KYNAR) 100 Ft. ..$2.95 500Ft $8.95 ioOOft. ..$14.95 IC INTERCONNECT ASSEMBLIES SINGLE END No OF Pins GOPOBffiJ Says 78HGKC 5A VARIABLE REGULATOR NOW- at last, a high current adjustable regulator. Same simple circuitry as the popular 78GKC. Needs only two external resistors to program to any volt- age between +5 and 30V (? 5A output. 78HGKC $13.95 Spec 30 NEW BOOK NEW 1977 VERSION OF NATIONAL'S CMOS Greatly expanded now contains 530 pages of data on the 7AC series as well as the popular 4000 series. Also has data and applications on the more complex CMOS products far which National has become famous. CMOS DATA BOOK- 77 Edition by National $3.95 PROFESSIONAL TEMPLATES-LOGIC SYMBOLK-Stand MIL806-1 3/4 Size $3.50 1/2 Size (Handy shirt pocket size) $3.25 Conmijte^FlowChart^ynibols^^^^^^^^^^^$3^50 100 PIN MINICOMPUTER PC CONNECTORS 2X50 with . 125" spacing. Solder tall or wrap terminals. By Tl. PCC-100ST (solder). ...$4.99 PCC-100WW. . . . $4.99 4/S17.75 HCH6571A is an 8192-Bit Horizontal-Scan (Row select) character generator with shifted characters. It contains 128 characters In a 7X9 matrix, and has the capability of shifting certain characters that norm ally extend below the baseline, such as j,y,g,p and q. A 7-bit address code is used to select one of the characters. Features: .Static operation .TTL compatability .CMOS compatability (5V) .Shifted character compatability .Includes Greek alphabet .Maximum access time =500nS (See article in March '77 issue of 73 Magazine for applications including TV-Computer interface) MCM657IA $9.95 Specs $1.00 I MM5320 TV SYNC GENERATOR I.C. Generate all the sync pulses necessary for camera or video terminals. Use with MCM657IA in the TV-Computer inter- face. MM5320N SI 8 . 80 Specs 60c; C30-1 400V, 25A Stud SCR 52.25 SC45E 500V, lOAStudTrioc SI .59 Insulated Stud 400V, 10A TRIAC assembly with built-in diac. TRI-133 SI .85 TIP-30 40V, 1 amp PNP Plastic 50? TIP-33 40V, lOAmp NPN Plastic $1.00 LM1815 ADAPTIVE SENSE AMP CHIP. Used with motor control to adopt to variable input and noise levels. Applications include zero crossing switch, motor control, tachometers, motor testing. LM1 81 5N $5. 72 Specs 30? 1N5393 200V, 1.5A Diode. Sturdy replacem 1 N4003 at a good savi ngs :nt for . . 1 5/S1 2N2369 High Speed NPN switching transistor. Marked for a giant computer company with house number. TO-18 metal case. PRIME PARTS!! 1 1 *2501 -1 2 (2N2369 House Numbered) 8/$l LM7812KC/LM340-12. Brand new, industrial excess in- ventory brings you a real bargain in this +12V, 1A regula- tor. Made by Silicon General for one of those big 'puter companies. LM7812KC/340-12 SI. 49! I 2N3902. High voltage NPN. VCEX=700V, VCEO=400V, IC=3.5A, PD=100W. 2N3902 ... SUPER SURPLUS BARGAIN!! I S3. 00 1N2071. 600V, 750mA diodes 15/$]. 00 NUMBER CRUNCHER. MM57109N I.C. A scientific calculator chip programmed to work with BCD coded data and hard wired I/O instead of keyboard and display as usually found. .This allows an easy connect to data sources such as instruments and micro computer data busses. Provides you with full range of scientific comput- ation without the drudgery of having to program the detail- ed algorithm. MM57109N...with 22 pages of specs $21.92 Specs only $ 2.00 SIGNETICS 8000 SERIES TTL LOGIC These quality units are faster and have great) out capability than standard TTL. From a giai tory change-over you get real bargain prices, are house numbered, but we provide a referenci pin-out sheet. N8880A. N8822A. N8885A. N8890A. N8202A. .Quad-2 input NAND gate .Dual J-K master/slave F/F. .Quad 2-input NOR gate .Hex Inverter .10 bit "D" type register.. .8/$ A/$ .8/$ .6/$ .. $ All : and 1.00 1.00 1.00 1. 00 1.25 The following items are available in large quantities Dealer or manufacturer inquiry is invited. 2N3414.. NPN switch on reels 10/$1 1N753A.. 6.2V, 5%, ^W Zener 5/$l C106F2.. 50V, 4A SCR w/socket 3/$l 1N967B.. 18V, 57., %W Zener 5/$l 42501-1 Quad Hi speed NPN transistor in 14 pin DIP package. Similar to Motorola HPQ3303 5/$l MC14411 BIT RATE GENERATOR. Single chip for generating selectable frequencies for equip ment in doto communications such as TTY, printers, CRT s or microprocessors. Generates 14 different standard bit rates which are multiplied under external control to IX, 8X, 16X or 64X initial value. Operates from single +5 volt supply. MC14411 $11.98 4 pages of data 40 Crystal for the above $4.95 • Accuracy: 10.05% of Reading it Count • Two Voltage Ranges: 1.999 V and 199.9 mV • Up to 25 Converiions/t • Zj n > 1000 M ohm • Auto-Polarity and Auto-Zero • Single Positive Voltage Reference • Standard R-Senes CMOS Outputs-Drives One Low Power Schottky Load • Uies On-Cliip System Clock, or External Clock • Low Power Consumption: 8.0 mW typical @ ±5.0 V • Wide Supply Range: e.g.. ±4.5 V to ±B.O V MC14433 SINGLE CHIP 3JDIGITA/D Single chip combines linear and CMOS digital to bring you the simplest yet DVM approach. Requiring only 4 external passive parts, this subsystem gives you: Auto polarity, auto zero, single voltage reference, 8 mW operation, overrange, underrange signals, 25 conversions per second and .05% i 1 count accuracy! 100 uV resolution. 24 Pin DIP. MCI 4433P with specs $19.55 tm-tek, inc. 6522 noetri 43P0 Avenue. GlenoALe, ARizona swoi phone 602 - 931-6949 We pay surface shipping on all orders over $10 US, $15 foreign in US funds. Please add extra for first class or air mail. Excess will be refunded. Orders under $10, add $1 handling. Pleose add 50^ insurance. Master charge and Bank America cards welcome, ($20 minimum). Telephone orders may be placed 10AM to 5:30PM daily, Mon thru Fri . Call 602-931-4528. Check reader service card or send stamp for our latest flyers packed with new and surplus electronic components. Circle 91 on inquiry card. Header Service Inquiry No. Page No. 70 Alpha Digital Systems 163 14 Anderson Jacobson 50 7 Apple 22, 23, 24 1 1 Backer-Lorinq 32 51 Bits Inc 129,135,142-145,160 71 Bits and Bytes 163 41 BPI 131 72 Charles Floto 163 73 Cheap Inc 163 56 Comptek 151 4 Compucolor 6, 7 24 Computalker 87 74 Computer Corner 163 75 Computer Depot 163 61 Computer Enterprises 154 76 Computer Hut 163 77 Computer Mart of NH 163 47 Computer Room 137 31 Computer Land 107 68 Computer Store 162 83 Computer Warehouse 167 22 Continental Specialties 83 2 Cromemco 1, 2 39 DAJEN Electronics 128 63 Data Search 155 34 DataSync113 21 Digital Group 77 33 Digital Research 111 92 ECDCIII 78 Educational Data 164 59 Edityper153 85 Electronic Warehouse 168 79 EMA Industries 164 27 Extensis 99 To get further 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. *Correspond directly with company. Inquiry Nc i. Page No. 86 Godbout 169 # HAL Communications 134 18 Heath Company 60, 61 , 62, 63 28 Heuristics 101 80 HybirdTech 164 8 iCOM 26, 27 3 IMSAI 5 89 Interface Age 1 73 50 International Data Systems 141 87 James 170, 171 40 Kent Moore 130 94 Logic Design Inc 164 88 Meshna 172 97 Microcom 129 95 Microcomp 164 58 Mini Computer Suppliers 152 35 Micromation 115, 117 60 Microware 1 53 44 MSI 133 82 Mikos 166 38 MiniTerm 125, 148 93 MITSCIV 81 Morrow 165 6 Motorola 91 62 mpi 154 55 Mullen 151 29 National Multiplex 103 16 North Star Computers 57 66 Objective Design 160 12 OSI 40 20 OK Tool 76, 139 65 Oliver Audio Engineering 158 43 Omni 132 49 PAIA 140 53 Parasitic Engineering 47, 147 Inquiry No 23 54 48 5 17 37 96 26 19 15 69 32 57 13 90 1 80 25 67 10 42 46 84 91 52 9 36 64 30 Page No. PC 77 51,159 PerCom Data 11, 150 Peripheral Vision 85 Personal Computing Expo 161 Polymorphic Systems 33 Prentice Hall 149 Prime Radix 138 Processor Technology 8, 9, 10 Quay 59 RHS Marketing 120, 121 Rotundra Cybernetics 164 Howard W Sams 97 Scelbi 69 Scientific Research 35 Seals 55 Serial Systems 163 Smoke Signal Broadcasting 109 Software Records 1 52 Solid State Music 41 Solid State Sales 174 Southwest Tech CI I Sunny Computer Stores 164 Synchro-Sound Enterprises 88, 89 Tarbell Electronics 162 Technical Design Labs 31, 117 Technical Systems Consultants 132 Telpar 136 Trico 167 Tri Tek 175 Urban Instruments 146 Vector Graphic 28, 29, 95 Worldwide Electronics 116 Xybek 155 Ximedia 105 G0MG [ Y II V (Jnf,ci(if> Mtiniftip Etx The April BOMB, Exploded. . . There are risks associated with every action one can take, and occasionally the results fulfill the worst expectations. The April 1977 issue of BYTE bombed on con- tent with respect to the inclusion of several (ie: lour articles) on a fiction theme, and one intentionally outdated (as April Fool) microprocessor update on the 8008 (which became obsolete for new design with the On BOMB Card, Article No. ARTICLE 1 Brown: How to Computerize Your Model Railroad 2 Hall: This Circuit Multiplies 3 Borrmann: Condensed Reference Chart for the 6800 4 Hart-Badger: A Train Control Display Using the LSI-11 5 Barbier: The TV Oscilloscope 6 Boddie: Speech Recognition for a Personal Computer System 7 Maurer: How to Pick up a Dropped Bit 8 Grappel Give Your Micro a Megabyte 9 Simmons: An Introduction to Numbers 10 Zolman: A Machine Code Relocator for the 8080 11 Baker: BASICally BASIC 12 Pittet: How Far -Which Way? 13 McGahee: Add Cursor Control to Your TVT II 14 Grater: Giving KIM Some Fancy Jewels PAGE 12 36 42 44 52 64 72 78 82 92 96 118 122 126 introduction of the Intel 8080). The winner, by a large margin, was the article by Jack Emmerichs on the Tiny Assembler 6800, which came in the +2 a point relative to the mean for 1 3 articles. Second place went to a semifiction story by Steve Garcia (count- ering the trend just cited) entitled "Having a Private Affair With Your Computer." Steve's article came in at the +1 a point, just slightly ahead of a group of articles which clustered above the mean at approximately the same displacement. The remaining fic- tion articles (and numerous comments on the BOMB cards) clustered around the 1.5 a point of the observed distribution. These statistics were calculated with a program- mable calculator. The results should be taken with a grain of salt, since the standard deviation was 24% of the mean. Why did I put so many of a similar type of article in the April issue? It was, after all, the April Fool issue; and it provided a form of con- trolled experiment by tweaking the content a little far in one direction while observing the results in the tally of BOMB cards. The experiment has been concluded for the time being . . .C Helmets" 176 JD >in-i3 nteroiind Onlay praetmr aiaaiava fraafhcr mi Chiraefr Foriit — III tfiffarant I I 12* la/tairi dafmatla dat aatrti charactan, diaalavtd ■■ 21 ar I mas of IS to 121 charactara t*r imt, all ettaifflalla in raal tfaai flii EfiCAil — • bit aattirn mth a 121 m III tavir-i diapiav. «aeh nvara indiviiuaiiv atttahia. t af tavt* ana i touch it. Key Into Maxi-Power Micro-! 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, rf modulator, and connections for up to 4 tape recorders plus TV or monitor. An interconnect bus 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 Name. 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 /uM-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. 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 /x! ECD CORP. 196 Broadway, Cambridge, Mass. 02139 (617) 661-4400 €C1> Address . City/State . Zip. □ Fantastic! Check enclosed: $987.54. shipping paid by ecd D BankAmericard □ Master Charge Mass. Resident add 5% Sales Tax # Expiration Date . . Signature □ Send me your brochure. Actual unretouched photographs. Circle 92 on inquiry card. • It Comes Naturally With The Altair™ 8800b The Altair 8800b from MITS: the second gen- eration design of the microcomputer that started it all. The mainframe that has the abil- ities everyone is demanding from microcom- puters today Expand-ability: The Altair 8800b power supply and one- piece, 18-slot motherboard allow efficient and easy expandability for memory and I/O options All Altair PC boards are designed to live youn'tqxlmum capability /lowest power - possible per bqiard. This means that for each MOI used you get more features and require less power, than with any of the "off- brand" Altair bus-compatible boards. Whether you buy an enliie system up front or choose toMjfijhd gradually, it's easy to get the corcJtflj^qlWt you -.need with the com- plete fdJitW'Of Altair peripheral equipment, Including floppy disk, line printer, audio cassette record interfaoe, A/D converter, PROM program- mer, serial and parallel I/O boards, choice of foui different memory boards and many others. Reli-ability: The unique design features of the Altair 8800b, which have set the standard for the microcomputer industry, make it the most reliable unit of its kind. The Altair 100-pin bus, the now-standard design used by many imi- tators, has been "standard" all along at MITS. The unique Front Panel Interface Board on the Altair 8800b isolates and filters front panel noise before it can be transmitted to the bus. The all-new CPU board utilizes the 8080A microprocessor, Intel 8224 clock generator and 8216 bus drivers. Flex-ability: Meeting the diversified demands of an ever- increasing microprocessor markoi squires flexibility: not just hardware flev.r ■; ty but software flexibility as well. MITS software, including the innovative Altair BASIC lan- guage, allows the full potential of the Altair 8800b computer to be realized. 8K ALTAIR BASIC has facilities tor variable length strings with LEFT$, RIGHT$. and MID$ functions, a concatenation operator, and VAL AND STR$ functions to convert between strings and numbers. Extended ALTAIR BASIC allows integer, single and double precision variables, automatic line numbering and renumbering, user- defined string functions, PRINT USING for for- matted output and a powerful EDIT com- mand for editing program files during or after entry. Extended statements and commands include IF . . . THEN . . . ELSE, LIST and DELETE program lines, SWAP variables and Trace On and Off for debugging. Disk ALTAIR BASIC has all the features of Extended BASIC with the additional capa- bility to maintain sequential and random ;s disk files. Utilities are provided for formatting disks and printing directories. In all versions of ALTAIR BASIC you get the ease and efficiency of BASIC for the solution ot real world problems. Package II. an assembly language develop- ment system for the Altair 8800b. includes system monitor, text editor, assembler and debug. Afford -ability: Prices for the Altair 8800b start at $840.00 for a kit and $11 00.00 for an I assembled unit (all documentation included). For a complete listing of prices on all Altair products and a free bro- chure, contact: MITS, Inc. 2450 Alamo S.E. | Albuquerque, N.M. 87106 (505) 243-7821 NOTE: Altair is a trademark of MITS. Inc. Circle 93 on inquiry card. X