JUNE 1977 VOLUME 2, Number 6 $1.50 in USA the siru Cognitive a*V m§? $&* '** :m z*\ <£^ CT-64 TERMINAL SYSTEM 64 OR 32 CHARACTERS PER LINE UPPER AND lower case LETTERS FULL 8 BIT MEMORY 128 CHARACTER ASCII SET 110/220 Volt 50-60 Hz POWER SUPPLY SCROLLING OR PAGE MODE OPERATION CONTROL CHARACTER DECODING-32 COMBINATION PRINTS CONTROL CHARACTERS USABLE WITH ANY 8 BIT ASCII COMPUTER REVERSED BACKGROUND -I HIGHLIGHTING COMPLETE WITH Chassis and cover, cursor control, 1 10-1 200 Baud serial interface and keyboard. Optional monitor show in photo available. Now you can buy it. The terminal that has all the fea- tures that people have been asking us to include. The CT-64 has all the functions that you could want in a terminal and they may be operated by either switches, or through a software program. All cursor movements, home-up and erase, erase to end of line, erase to end of frame, read on, read off, cursor on, cursor off, screen reversal, scroll, no scroll, solid cursor, blinking cursor, page selection and a beeper to warn you of end of page; all are provided for your use in the CT-64. You may also switch from upper case only teletype style operation to upper-lower case typewriter style operation. You can reverse the field on individual words to high- light them, or you can reverse the whole screen. CT-64 is complete with keyboard, power supply serial interface and case. A matching 9 inch monitor with coordinated covers is also available to make a complete system. CT-64 Terminal Kit MM-1 Monitor (assembled) $325.00 $175.00 219 W. Rhapsody San Antonio, Texas 78216 Circle 29 on inquiry card. You are right, it's just what I have been asking for. □ Enclose is $325.00 for the CT-64 G Send the MM-1 monitor too. □ Send Data □ or B AC # □ or MC Ex Date NAME ADDRESS CITY STATE Southwest Technical Products Corp. 219 W. Rhapsody, San Antonio, Texas 78216 Meet the most powerful AtC 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 /xP board (Cromemco's highly regarded 4 MHz, 250-nanosecond cycle time board). • The power and convenience of the well-known Z-80 M P. • A power supply you won't believe ( + 8V @ 30A, + 18V and -18V @ 15A — ample power for addi- tional peripherals such as floppy disk drives). • A full-length shielded motherboard with 21 card slots. • Power-on-jump circuitry to begin automatic program execution when power is turned on. • S-100 bus. • Standard rack-mount style construction. • All-metal chassis and dust case. • 110- or 220-volt operation. DEDICATED APPLICATIONS The new Z-2 is specifically designed as a powerful but economical dedicated computer for systems work. Notice that the front panel is entirely free of controls or switches of any kind. That makes the Z-2 vir- tually tamper-proof. No accidental program changes or surprise mem- ory erasures. FASTEST, MOST POWERFUL p,C Cromemco's microcom- puters are the fastest and most powerful available. They use the Z-80 mi- croprocessor which Shown with optional bench 'kit f.l'r 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 juP 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. l-UOJ 96"W*UU TV DAZZLER O I g 13 To make ^ your computer more useful- a wide choice of memory, I/O, CPU Your computer's usefulness de- pends on the capability of Its CPU, memories, and I/O interfaces, right? So here's a broad line of truly useful computer products that lets you do interesting things with your Cromemco Z-1 and Z-2 computers. And with your S-100-compatible Al- tairs and IMSAIs, too. CPU • Z-80 MICROPROCESSOR CARD. The most advanced /xP 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 juP chip. Kit (Model ZPU- K): $295. Assembled (Model ZPU- W): $395. MEMORIES • 16K RAM. The fastest available. Also has bank-select feature. Kit (Model 16KZ-K): $495. Assembled (Model 16KZ-W): $795. • 4K RAM. Bank-select allows ex- pansion to 8 banks of 64K bytes each. Kit (Model 4KZ-K): $195. As- sembled (Model 4KZ-W): $295. • THE BYTESAVER — an 8K capa- city PROM card with integral pro- grammer. Uses high-speed 2708 eras- able PROMs. A must for all com- puters. Will load 8K BASIC into RAM in less than a second. Kit (Model BSK-0): $145. Assembled (Model BSW-0): $245. • 1 6K 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 41 on inquiry card. In the Queue 18 46 76 88 100 140 154 30 54 116 Foreground DESIGNING MULTICHANNEL ANALOG INTERFACES Hardware— Kraul INTERFACING THE IBM SELECTRIC KEYBOARD PRINTER Peripherals— Fylstra COME FLY WITH KIM Peripherals— Simpson SOFTWARE FOR THE ECONOMY FLOPPY DISK Systems Software— Welles ARTIFICIAL INTELLIGENCE: Part 2, Implementation Software— Wimble A 6800 SELECTRIC IO PRINTER PROGRAM Software— Guzzon A GUIDE TO BAUDOT MACHINES: Part 3 Construction-McNatt Background NEWT: A MOBILE, COGNITIVE ROBOT Robotics— Hoi [ is INTERFACING TO AN ANALOG WORLD: Part 2 Hardware— Carr INTRODUCTION TO MICROPROGRAMMING Software— Quek Nucleus 108 Clubs, Newsletters 126 BYTE's Bits 150 Desk Top Wonders: SR-52Card BLACKJACK 160 BYTE's Bugs 180 BOMB 180 Reader Service 4 In This BYTE 9 The Software Dilemma 12 Letters 16,24,144,158 What's New? 60 Ask BYTE 74 Technical Forum 85 Classified Ads BYTE is published monthly by BYTE Publications Inc, 70 Main St, Peterborough NH 03458. Address all mail except subscriptions 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 manuscripts 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. 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. For air delivery to western Europe, and for surface delivery worldwide, $25 for a one year subscription only. Worldwide air delivery available at additional rates. Please see subscription card. Single copy price is $1.50 in the USA and its possessions, $2 in Canada and Mexico, and $3 elsewhere. Foreign subscriptions and sales should be remitted in United States funds. Printed in United States of America. Entire contents copyright © 1977 by BYTE Publications Inc. All rights reserved. JUNE 1977 BITE Volume 2 Number 6 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 SUBSCRIPTIONS Kimberly Barbour Noreen Bardsley DEALER SALES Ginnie F Boudrieau ADVERTISING Elizabeth Alpaugh Debra Boudrieau Virginia Peschke CLUBS, PAPERBYTES Peter Travisano TRAFFIC Edmond C Kelly Jr Wai Chiu Li ART Mary Jane Frohlich Ellen Shamonsky SPECIAL PRODUCTS Susan Pearne Floyd Rehling RECEPTIONIST Jacqueline Earnshaw DRAFTING Lynn Malo Bill Morello Stephen Kruse TYPOGRAPHY Custom Marketing Resources Inc Goodway Graphics PHOTOGRAPHY Ed Crabtree PRINTING The George Banta Company Custom Marketing Resources Inc EDITORIAL CONSULTANT Daniel Fylstra ASSOCIATES Walter Banks Steve Ciarcia David Fylstra Portia Isaacson AFFILIATE PUBLISHER Southeast Asian Editions John Bannister FOREIGN DISTRIBUTOR Pan Atlantic Computer Systems gmbh Frankfurter Str 78 D61 Darmstadt (061 51) 29 29 23 page 46 In This Some uses of a microprocessor involve the connection to the outside world through an analog interface. When fooling around with such pro- jects from music generation to robotic control, however, it quickly becomes necessary to have a large number of inexpensive real world interfaces. To help point you in the right directions Douglas R Kraul supplied an article on Designing Multichannel Analog Interfaces. In the past, readers have seen some interest expressed in the concepts of robotics, the use of small computers as the brains of mobile automated mechanisms. Robots have long been fancied in science fiction literature and cinema, but only rarely have people taken any practical steps towards a "real" robot as opposed to paper romanticisms or stage dummies. One of those rare cases is that provided by Ralph Hollis and his associate Dennis Toms, both of whom are physicists at the University of Colorado, Duane Physical Laboratory, Boulder CO. Ralph has been pursuing the design of practical robots as an avocation since 1957, and lately has progressed to the point of a working mobile computer system called Newt, whose picture provides the theme of this month's cover. Turn to Ralph's article, Newt: A Mobile, Cognitive Robot for essen- tial background information on con- temporary robot design philosophies. KITE Hard copy is a most useful output, but it tends to be somewhat expensive. Dan Fylstra shows one very attractive option in his article on Interfacing the IBM Selectric Keyboard Printer. Dan purchased a used print mechanism late in 1976, and since then has success- fully interfaced the device to his KIM-1 system. Readers interested in using these printers (which are avail- able in significant numbers on surplus markets) will find Dan's article an essential guide to the art. How can hardware be used to accomplish the details of Interfacing With an Analog World? Turn to author Joseph Carr's second part of a two part series to find out some of the details of basic conversion circuits which use the outputs of sensors and preamplifiers discussed in last month's article. Much of the software that is avail- able on the market today is available on paper tape so as to be easily read into your microprocessor. The prob- lem is that most common paper tape readers are so slow that it seems to take forever to read a large program into memory. In the article Come Fly With KIM, Rick Simpson introduces us to a solution to this speed problem: the Fly Reader, which he uses with MOS Technology's KIM-1, Now that you've got the hardware built, how do you run it? Ken Welles answers this question in Software for the Economy Floppy Disk. His pre- vious article (February I977 BYTE, page 34) described how to construct an inexpensive floppy disk with min- imal hardware. This month he provides a series of subroutines to run it, which could easily be expanded into a com- plete floppy disk operating system. Last month in the first part of his article Artificial Intelligence, An Evo- lutionary Idea, Michael Wimble intro- duced us to the use of a simulated evolution technique by which it was possible for a program to alter itself and reshape its responses as a direct result of an outside stimulus. This month in Part 2: Implementation, Mr Wimble details how the computer ex- perimenter can implement this type of program on any small computer system. To many people the concept of assembly language is that of the funda- mental language of the computer next to machine language. However, each particular assembly language command must be broken down into a series of simpler command sequences. These commands are known as microinstruc- tions. In his article, An Introduction to Microprogramming, S M Quek de- scribes how the concept of micro- instructions is a great benefit to the user of a computer, allowing the easy change of basic instructions. In previous issues Michael McNatt has shown us the availability of Baudot teleprinters and the ways in which they can be interfaced with your microprocessor. In his concluding article, A Guide to Baudot Machines: Part 3, A Teleprinter Test Circuit, he describes a test circuit that can be used for generating Baudot characters for alignment and adjustment purposes. POWER. IMSAI 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, IMSAI presents an incredible memory system for micros 16 times more powerful than yesterday's best. Imagine, a full megabyte of power from sixteen 65K RAM boards. And, to control all this, the IMSAI 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 16 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, 32K and 16K RAM 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 12 on inquiry card. GENTLEMEN: I'm power hungry! □ Send 65K RAM Board Kit $2599 Q Assembled S3899 □ Scnd32K RAM Board Kit $749 Q Assembled $1099 □ Send I6K RAM Board Kit $449 fj Assembled $679 □ Send IMM ROM Conlrol Kil S299 □ Assembled $399 □ Send IMM EROM Conlrol Kil S499 □ Assembled S699 □ Send full catalog $1.00 Check/MO enclosed. Ami. $ Charge my: Q BAC QM/C ff Exp. Date: Sig □ Send name of my nearest IMSAI dealer Name Company - Address City Stale/Zip . IMSAI Manufacturing Corporation 14860 Wicks Blvd. San Leandro, CA 94577 (415) 483-2093 TWX 910-366-7287 Sol Terminal Computer iT.rrratogy ^^ ^■^^ • To do real work with any computer, big or small, it takes a complete system. Thats one of the nice things about the SoI-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 S1649 in kit form or S2129 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 Processor capacity 16,384 word memory. It sells for $1883 in kit form; $2283 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, $5037 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 fully illustrated 22 page cata- log. Or you may write or call us if more convenient. Please address Processor Technology, Box B, 6200 Hollis Street, Emeryville, CA 94608. (415) 652-8080. The functional beauty of Sol Computer Systems is more than skin deep. A look inside reveals a simple elegance of design and sturdy construction. CorporatK3n5J# See Sol Systems at your dealer ARIZONA Byte Shop Tempe 813 N. Scottsdale Rd. Tempe, AZ 85281 Byte Shop Phoenix 12654 N. 28th Dr. Phoenix, AZ 85029 Byte Shop Tucson 2612 E. Broadway Tucson, AZ 85716 CALIFORNIA Bits 'N Bytes 679 S. State College Blvd. Fullerton, CA 92631 The Byte Shop 1514 University Ave. Berkeley, CA 94703 The Byte Shop 2626 Union Ave. Campbell, CA 95124 Byte Shop Computer Store 6041 Greenback Lane Citrus Heights, CA 95610 Computer Center 1913 Harbor Blvd. Costa Mesa, CA 92627 The Byte Shop 16508 Hawthorne Blvd. Lawndale, CA 90260 The Byte Shop 1063 El Camino Real Mountain View, CA 94040 The Computer Mart 624 West Katella#10 Orange, CA 92667 The Byte Shop 2227 El Camino Real Palo Alto, CA 94306 Byte Shop 496 South Lake Ave. Pasadena, CA 91101 The Computer Store of San Francisco 1093 Mission Street San Francisco, CA 94103 Byte Shop 321 Pacific Ave. San Francisco, CA 94111 The Computer Room 124H Blossom Hill Rd. San Jose, CA 95123 The Byte Shop 509 Francisco Blvd. San Rafael, CA 94901 The Byte Shop 3400 El Camino Real Santa Clara. CA 95051 The Byte Shop 2989 North Main St. Walnut Creek, CA 94596 Byte Shop 14300 Beach Blvd. Westminster. CA 92683 Recreational Computer Centers 1324 South Mary Ave. Sunnyvale. CA 94087 Byte Shop of Tarzana 18424 Ventura Blvd. Tarzana. CA 91356 Digital-Deli 80 West El Camino Real Mountain View, CA 94040 COLORADO Byte Shop 2040 30th St. Boulder. CO 80301 FLORIDA Byte Shop of Miami 7825 Bird Road Miami. FL 33155 Microcomputer Systems Inc. 144 So. Dale Mabry Hwy. Tampa. FL 33609 Sunny Computer Stores University Shopping Center 1238A S.Dixie Hwy. Coral Gables. FL 33146 Delta Electronics 2000 U.S. Highway 441 East Leesburg, FL 32748 GEORGIA Atlanta Computer Mart 5091-B Buford Hwy. Atlanta. GA 30340 ILLINOIS The Numbers Racket 518 East Green St. Champaign. IL 61820 itly billy machine CO, 1316 Chicago Ave. Evanston, I L 60201 itty bitty machine CO. 42 West Roosevell Lombard. IL 60148 INDIANA The Daia Domain 406 So. College Ave. Bloomington, IN 47401 The Data Domain 219 West Columbia West Lafayette. IN 47905 The Data Domain 7027 N. Michigan Rd. Indianapolis. IN 46268 The Byte Shop 5947 East 82nd St. Indianapolis. IN 46250 KENTUCKY The Daia Domain 3028 Hunsinger Lane Louisville. KY 40220 MICHIGAN The Computer Store of Ann Arbor 310 East Washington Ann Arbor. Ml 48104 General Computer Store 2011 Livernois Troy. MI 48084 Computer Marl of Royal Oak 1800 W. 14 Mile Rd. Royal Oak. MI 48073 NEW JERSEY The Computer Mart of New Jersey 501 Route 27 Iselin.NJ 08830 Hoboken Computer Works No. 20 Hudson Place Hoboken. NJ 07030 NEW YORK Audio Design Electronics 487 Broadway. Ste. 512 New York. NY 10013 The Computer Corner 200 Hamilton Ave. While Plains. NY 10601 The Computer Mart of Long Island 2072 Front Street East Meadow. L.I. NY 11554 The Computer Mart of New York 314 Fifth Ave. New York. NY 10001 Synchro Sound Enierprises 193-25 Jamaica Ave. Hollis, NY 11423 The Computer Shoppe 444 Middle Country Rd. Middle Island. NY 11953 OREGON The Real Oregon Computer Co. 205 West 10th Ave. Eugene. OR 97401 Byte Shop Computer Store 2033 S.W. 4th Ave. Portland, OR 97201 Byte Shop Computer Store 3482 S.W. Cedar Hills Blvd. Beaverton. OR 97005 OKLAHOMA High Technology 1020 West Wilshire Blvd. Oklahoma City, OK 73116 RHODE ISLAND Computer Power, Inc. M24 Airport Mall 1800 Post Rd. Warwick, RI 02886 SOUTH CAROLINA Byte Shop 2018 Green Street Columbia, SC 29205 TENNESSEE Microproducts & Systems 2307 E. Center St. Kingsport, TN 37664 TEXAS The Micro Store 634 So. Central Expressway Richardson, TX 75080 Computertex 2300 Richmond Ave. Houston, TX 77098 Interactive Computers 7646 Dashwood Rd. Houston, TX 77036 Byte Shop 3211 Fondren Houston. TX 77063 WASHINGTON Byte Shop Computer Store 14701 N.E. 20th Ave. Bellevue, WA 98007 The Retail Computer Store 410 N.E. 72nd Seattle, WA 98115 WASHINGTON, DC. Area Media Reactions Inc. 11303 South Shore Dr. Reston.VA 22090 WISCONSIN The Milwaukee Computer Store 6916 W. North Ave. Milwaukee, WI 53213 CANADA The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1 Trintronics 160 Elgin St. Place Bell Canada Ottawa, Ontario K2P 2C4 First Canadian Computer Store Ltd. 44 Eglinton Ave. West Toronto, Ontario M4R 1A1 Pacific Computer Store 4509-11 Rupert St. Vancouver, B.C. V5R 2J4 sor Corporation ^# m Processor Technology, 6200B Hollis Street, Emeryville, CA 94608, Phone (415) 652-8080 Circle 24 on inquiry card. The Software Dilemma: How is it possible to simultaneously make software widely available (and low priced), yet reward the producers of good software with adequate compensation for their efforts? By Carl Helmers Conventional wisdom has it that propri- etary software must come at extremely high prices, commensurate with concentrated work on the part of a small number of dedicated and thoughtful programmers. After all, this wisdom has it, we'll only sell a few copies of package X anyway, so why not keep a tight lid on it and charge as much as possible? This conventional wisdom has worked well in the past, when the typical computer system might cost upwards of $10,000 or $100,000. But when the typical computer system comes in at a price on the order of $1000, paying prices which are of this same order of magnitude for software packages is not a very likely move on the part of the individual purchaser with his or her personal budget. In the personal computing field we are participating in a market phenomenon characterized by a change from the situation which supports the conventional software wisdom, to a new situation which has its own characteristics. More and more people are getting into the swing of things with computer use, and thus more and more people have needs which can and should be filled by specialized software products. Where computers are concerned, when we talk about a 100,000+ person active indi- vidual user market as we do today, we are for the first time talking about the potential for mass marketing of software in ways unheard of in the conventional wisdom of computing. Establishing a new "conven- tional wisdom" is clearly required; as a step toward that goal, this paper provides a survey of the prospects for mass marketing of software, and a solution of the software dilemma posed above. Let's Draw Some Parallels: Woodworking Like many individuals, I dabble a bit in the arts of crafting furniture. Suppose, for example, that I want to build a nice, neat contemporary rolltop desk for my study. As an individual with limited time available for such leisure crafts activity, I'd probably want to start with an existing design rather than working out all the details myself. In seeking the end product of a rolltop desk, I'd be in the same situation (as a wood craftsman) as the owner of a computer system desiring a compiler, assembler, appli- cation product or peripheral. I know in principle that rolltop desks exist and that in principle I could design then fabricate one, or use an existing one as a mental model with my own variations. But to save time and possible mistakes I might want to find some source of a "proven" design with detailed information on achieving the goal of a rolltop desk. Well, in the world of wood- crafting, as in the world of photography, the world of live steam model engines, or the world of backpacking, there are numerous sources of information including ready-made designs and techniques. I refer, of course, to books which are just published products with specific orientation or theme. Similarly, when I have a computer system and I know that some neat language or software development tool exists, I also know that in principle I could write such a package myself using my own design or general design concepts taken from any Continued on page 68 This editorial consists of the text of a paper de- livered at the First West Coast Computer Faire in April of this year. About those missing mailing wrappers and the May issue: A strike at the printing plant was responsible for May BYTEs arriv- ing late to subscribers and for May and June issues being mailed with- out the customary brown wrappers. The wrappers will be restored as soon as our printing situation is restored to normalcy. ■ Intel delivers micro ahead of the fast In 1971, Intel invented the microcomputer and quickly became the world's largest supplier of microcomputers and micro- computer support products. We still are. Over the past six years we've in- vested millions of dollars to make the microcomputer even more useful and more economical.Today there are over 195 Intef microcomputer hardware and software products available to help people like you keep ahead of costs, ahead of the competition and ahead of the fast changing world. We're now offering seven microcomputer families. Including the newest high performance 8085 and the single chip 8748 with resident PROM. And 81 LSI peripheral, memory and I/O support circuits to help you cut design time, do more and get to market first. To reduce design time even further, choose one of our SBC80 Single Board Computers or System 80 packaged microcomputer 7 microcomputer families ffnTTfTfnnnnTiT 33 software products, users' library with 235 programs 30 SBC 80 Single Board Computer products 81 LSI peripheral, memory and I/O support products Intellec Development System with 42 options and accessories 2 System 80 packaged microcomputer systems systems. But a wide selection of microcomputer components and systems is only half the story. We also provide program- ming support, including the PL/M high level microcomputer language to help you cut months off those big software develop- ment jobs. And Intellec' micro- computer development systems with ICE™ in-circuit emulation computers to keep you changing world and symbolic debugging to help reduce system integration and debug time. Then there's application assist- ance, training classes and regularly scheduled seminars available world- wide. A users' library with 235 programs and still growing. Intel's investment protects your * investment. Here are a few examples. Our new 8085 microprocessor offers r greatly improved performance over our industry standard 8080, with sub- stantial cost savings. Yet you use the same software, the same peripheral, memory and I/O circuits as the 8080. You don't have to go through a new learning experience or re-invest in software to upgrade your system to 8085 performance. And that same kind of protection comes when you invest in an Intel development system. Last year's investment in an Intellec system is preserved even when we introduce a new microcomputer. Our newest 8085 and 8748 microcomputers are now fully supported with development software for your present Intellec system. And you will soon be able to add low cost ICE-85 and ICE-48 in- circuit emulation modules. Let Intel help you stay ahead. Get started now by asking for our new microcomputer product line brochure describing the full line of Intel microcomputer products, systems and software. Use the reader service card or write: Intel Corporation, 3065 Bowers Avenue, Santa Clara, CA 95051. intgl delivers. Circle 117 on inquiry card. Letters AN APL LOVER'S STORY Regarding the two letters by APL enthusiasts in your February 1977 issue, let me lend my voice to this group. While still in high school, I got my first taste of APL from a friend at IBM via a long- distance line to Detroit, and got access to Xerox Sigma 9 APL while a junior in college. Since then I've written a lot of APL code — including a 7 page pattern recognizer program (imagine what that would be in BASIC!) and about five pages of n-dimensional optimization routines, and now I am running IBM 5100 APL where I work. Needless to say, I think APL is the greatest thing since left-hand Turing machines. I have just bought an ECD Micro- Mind computer (graphics) system with the explicit intent of buying 32 K of memory when the price comes down, and beg, borrow, buy, or if necessary, write an APL interpreter. (What about Tiny APL, analogous to Tiny BASICs being written now?) Since my computer will have graphics capability, I won't be interested in APL ROMs. (Might I sug- gest mnemonics, eg: $R for APL "rho," $QQ for APL "character quad.") I have used them "without hardly noticing." But in any case, put my vote in for APL, and I would be happy to hear from any APL enthusiasts. Gregg Williams 3439 Southern, #7 Memphis TN 381 11 SOME APL PERIPHERALS QUESTIONS You can add my name to the list of those who would be interested in an APL character generator chip (Letters, February 1977). Like a lot of people who have used APL, I caught the bug, and have been disappointed that there is no software for the 8080 to support APL. Though I suspect it's only a matter of time. A cost of $20 to $25 for a chip "feels" right to me. This would require about half the 500 buyers that Mr Montgomery postulates in his letter. I have a couple of warnings to add, though. First, a full upper and lower case keyboard is desirable, although it's certainly possible to use a spare control key to signal upper case and take care of the translation problem in software. Such keyboards don't seem to be as cheap and available as the surplus upper case ones. Second, I can attest to the fact that using little stickers on the keys to show you where the symbols are leads to a lot of frustration. Better to have keys imprinted with the letters and symbols. What would it cost to have sets of these made up for distribution with the character generators? I'm convinced that there's a real market for a "small" (not tiny) APL interpreter. The word would spread fast to those who haven't had a chance to use it and are putting up with the inade- quacies of BASIC (mainly the size of source programs) without much complaint. James C Wilson Ketron Inc 3250 Wing St #402 San Diego CA92110 We know of one interpreter which is nearly complete for the TMS-9900, plus several 8080 versions. Watch future BYTEs for some fairly extensive APL in- formation. Articles are now in prepara- tion concerning APL interpreter design, use of APL, etc. ON AUTOMATED BAROMETERS AND OBTAINING MERCURY I was very interested in Mr Firth's article on weather predictions (Decem- ber 1 976 BYTE, page 62), for there have been very few articles in BYTE on getting a computer to do things other than to play Star Trek. I was especially interested in his idea about getting baro- metric readings into a computer. Being a chemistry student I ran across an article in the Journal of Chemical Education (October 1976). Although the barometer in the journal is a little different, it's basically the same as Mr Firth's. Also, in Mr Firth's article he men- tions that you need a quarter pound of mercury, and many lab supply houses will not sell you mercury for any reason without a company's purchase order. Another way of obtaining the mercury, although it may take some time, is to remove the mercury switches from old washing machines. The mercury is not very pure, but it can be cleaned up some- what by passing it through a pin hole in filter paper. The mercury obtained by this method is good enough to be used in the barometer. This may seem a lot of work to go through, but it sure beats paying $13 for a quarter pound of mercury that you will probably use a quarter of. D Pasken 23 Farview Cir CamillusNY 13031 Mr Pasken enclosed a Xerox shot of the article he mentions, which can be found on page 670 of the October 1976 SWTP 6800 OWNERS-WE HAVE A CASSETTE I/O FOR YOU! The CIS-30+ allows you to record and playback data using an ordinary cassette recorder at 30, 60 or 120 Bytes/Sec! No Hassle! Your terminal connects to the CIS-30+ which plugs into either the Control (MP-C) or Serial (MP-S) Interface of your SWTP 6800 Computer. The CIS- 30+ uses the self clocking 'Kansas City'/Biphase Standard. The CIS-30+ is the FASTEST, MOST RELIABLE CAS- SETTE I/O you can buy for your SWTP 6800 Computer. PerCom has a Cassette I/O for your computer! Call or Write for complete specifications Kit - $69.95* Assembled - $89.95* (manual included) * plus 5% f/shipping PerCom Data Co. P.O. Box 40598 • Garland, Texas 75042 • (214) 276-1968 PerCom — 'peripherals for personal computing' TEXAS RESIDENTS ADD 5% SALES TAX 12 issue of the Journal of Chemical Educa- tion. The design is by John T Viola and William E McDermott of the US Air Force Academy. The design, in detail, is a recording manometer. Reference is made to a paper, circa 1953, by H T Svec and D S Gibbs (in Rev Sci Instr, 24, 202, 1953). The paper also gives a reference to a source of wire for the measurement: 28 gauge bare nickel chrome wire cable cord manufactured by Consolidated Companies, Chicago IL. SOMESR-51 CALCULATOR INTERFACE INFO I read with interest Ralph Getsla's (Letters of January 1977 BYTE) request for information on interfacing his SR-S2. My interests are similar, only my out- look evolves around the use of the SR-51 A terminal strip that can be seen upon removal of the battery pack of the 51. My plan here is to interface the 51 to the modified TV typewriter terminal that I am presently in the completion stages of building, I was able, so far, to track these lines back to their source by the use of a hand held flashlight after disassembly of the 51 (see interface diagram). If I can get any information on the two chips in question I believe I would be in business. William D Lewis 469 Heatherbray Ct San Jose CA 94136 15 TMC0523NS-5 "U1" Piggybacked over (?) TMC0501NL "112" U2-10- PS: Could this interface be the same as the SR-52? 1 will be writing Texas Instruments for any information they will be able to give me on these devices. If not, I will operate via the probe. Who knows? Continued on page 122 The new 2708 MB-8 8K-16K EPROM kit for just $85.00 .nouncing... /■AT IvJI LldL/lt? EPROM boar your S-lOO bus Both the MB-8 2708 and the MB-3 1702A EPROM boards offer these features: • Optional memory— option of 2K or4K 1702A's, or 8K or 16K 2708%. • Dip switch selection of addressing and wait cycles. • Reverse voltage protection. • On-board regulators for ail voltages. • All sockets included. • Gold-plated contacts. Contact your local dealer today for complete details. [\&j Solid State Music ^2102A Walsh Avenue Santa Clara, CA 95050 (408) 246-2707 The 1702 A MB-3 gives you lowest cost EPROM versatility. Board only $65.00 2K $105.00 4K $145.00 ■m msm.emit*i* ? '>* i ~" You've just run out of excuses for not owning a personal computer. Clear the kitchen table. Bring in the color TV. Plug in your new Apple Ilf and connect any standard cassette recorder/player. Now you're ready for an evening of discovery in the new world of personal computers. Only Apple II makes it that easy. It's a complete, ready to use computer, not a kit. At $1298, it includes video gra- phics in 15 colors. It includes 8K bytes ROM and 4K bytes RAM -easily expandable to 48K bytes using 16K RAMs (see box). But you don't even need to know a RAM from a ROM to use and enjoy Apple II. For example, it's the first personal computer with a fast version of BASIC permanently stored in ROM. That means you can begin writing your own programs the first evening, even if you've had no previous computer experience. The familiar typewriter-style keyboard makes it easy to enter your instructions. And your programs can be stored on— and retrieved from— audio cassettes, using the built-in cassette interface, so you can swap with other Apple II users. You can create dazzling color displays using the unique color gra- phics commands in Apple BASIC. Write simple programs to display beautiful kaleidoscopic designs. Or invent your own games. Games like PONG— using the game paddles, supplied. You can even add the dimen- sion of sound through Apple 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. ■ HflM [IK II -] I I 'H ! 'HI I »li '.'■! !'.| I kllM H INI, I'M ... .. "I'M' lltlM,? _|\! . i ! t •i ihc ■■ Apple II™ is a completely self-contained computer system with BASIC in ROM, color graphics, ASCII keyboard, light- weight, efficient switching power supply and molded case. It is supplied with BASIC in ROM, up to 48K bytes of RAM, and with cassette tape, video and game I/O interfaces built-in. Also in- cluded are two game paddles and a demonstration cassette. SPECIFICATIONS • Microprocessor: 6502 (1 MHz). • Video Display: Memory mapped, 5 modes— all Software-selectable: • Text— 40 characters/line, 24 lines upper case. • Color graphics— 40h x 48 v, 15 colors • High-resolution graphics— 280hx 192v; black, white, violet, green (12K RAM minimum required) • Both graphics modes can be selected to include 4 lines of text at the bottom of the display area. • Completely transparent memory access. All color generation done digitally. • Memory: up to 48K bytes on- board RAM (4K supplied) • Uses either 4K or new 16K dynamic memory chips • Up to 12K ROM (8K supplied) • Software • Fast extended 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). -«- cippkz computer inc. Circle 272 on inquiry card. What's CfWMVMCO Games are More Fun with Action Inputs a ill G A New Audio Tape Cassette Driver for the Altair Bus PerCom Data Company Inc, 4021 Windsor, Garland TX 75042, has just introduced a new version of Harold Mauch's Kansas City standard phase en- coding audio signal interface board, a version which plugs directly into an Altair bus slot. Harold's design allows phase encoding with redundancy at 300 bps (Kansas City standard), 600 bps, 1200 bps and 2400 bps. In addition to the tape interface function, the CI-812 product also includes a companion RS-232 terminal interface with data rates from 300 to 9600 bps. The kit price of this board is $89.95, and an assembled version is $1 1 9. 95.* Circle 602 on inquiry card. a This little truism can be confirmed by anyone who has implemented and played a space war with joystick control, or used joysticks for direct control of moving systems such as robots or other mechanical marvels. Cromemco, 2432 Charleston Rd, Mountain View CA 94043, has sent along this photo of the new model )S-1 joystick console adap- ters for their Altair compatible D+7A 10 board. What you get is two independent game control boxes with two axis joy- sticks, four game function buttons, and loudspeaker outputs for aural effects (such as photon torpedo or phaser sounds). The kit form of the box (in foreground) is available for $65. ■ Circle 601 on inquiry card. Inexpensive Wire Wrap Tools Hard Copy That's Hard to Beat for Speed The Digital Group, POB 6528, Den- ver CO 80206, has announced what is probably the fastest and widest line width matrix impact printer mechanism and electronics package yet to be mar- keted to personal computing users. In kit form (kit refers to the electronics, not the mechanics), prices for this printer start at $495. What you get is a fast 120 characters per second 5x7 dot matrix printer which gives 96 characters per line at 12 characters per inch pitch, and line spacing of six lines per inch. Since it is a true impact printer mechanism intended for computer sys- tems use, it will take up to four part forms and should prove most useful to business people for that reason. For the amateur computer person with software development in mind, the 120 character per second rate means listings of assem- blies and compilations which take one twelfth the time of a 10 character per second Teletype, but at a price for the mechanism and its interface which is lower than the new cost of a Teletype! Other features of the OEM mechanism selected by the Digital Group include built-in ribbon reinkers for a total ribbon life of 10,000,000 characters, use of 8.5 inch (22 cm) wide standard roll, fan- fold or sheet paper, an 8 bit parallel interface ready to plug into your com- puter's output port after you wire up the cable, and the option of double width characters. For those with idle curiosity, the inking life of 10,000,000 characters before replacement of ribbon cor- responds to over 23 hours of flat-out printing, or 250,000 lines with 40 non- blank characters per I ine. ■ Circle 603 on inquiry card. OK Machine and Tool Corporation, 3455 Conner St, Bronx NY 10475, has come out with a unique product line of wire wrapping tools and accessories for the amateur electronics person. These products include manual and battery powered wire wrtpping tools, precut and stripped wire, wire rolls, dual in line package sockets, and wire wrapping "kits." Of particular interest to people on a tight budget is a new low in prices for wire wrapping tools which are powered. The OK BW-630 battery powered wire wrap tool uses standard C size batteries and comes equipped with a bit and sleeve for wrapping AWG 30 wire for only $34.95 (less batteries). This is not a kluge, but a genuine wire wrap gun with positive indexing mechanism to return the bit to a well defined position after each wrap, and the usual "anti- backforce" spring loading of the bit to prevent overwrapping. Both of these features are standard items on the in- dustrial wrapping guns which have been used for years." Circle 604 on inquiry card. 16 Order your Apple II now. Use this order form to get your Apple II fast. As a special offer for those who order now, we will include free a custom vinyl carrying case (a $50 value). And we will also pay shipping charges to anywhere in the continental United States. Apple II Price List. RAM Complement Apple II System Calif. Residents Add Apple II Board-only Calif. Residents Add 4K $1,298.00 $ 84.37 $ 598.00 $ 38.87 8K 1,398.00 90.87 698.00 45.37 12K 1,498.00 97.37 798.00 51.87 16K 1,698.00 110.37 978.00 63.57 20K 1,778.00 115.57 1,078.00 70.07 24K 1,878.00 122.07 1,178.00 76.57 32K 2,158.00 140.27 1,458.00 94.77 36K 2,258.00 146.77 1,558.00 101.27 48K 2,638.00 171.47 1,938.00 125.97 Memory is offered at a 20% savings when ordered with the system-or board-as reflected in the prices above. Additional RAM can be easily added-in at a later date as your needs develop. One set 4K chips (4K bytes) $125 One set 16K chips (16K bytes) $600 Prices and specifications subject to change without notice. apple computer inc. 20863 Stevens Creek Blvd., B3-C Cupertino, California 95014 (408) 996-1010 Older Form D Please send me an Apple II System □ Board Only with K bytes of RAM (4K minimum) at $ . California Residents add 6.5% tax Total $ Name Address City. State Zip 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 272 on inquiry card. Designing Multichannel Douglas R Kraul 4373 Ashwoody Trl Atlanta GA 30319 ANALOG INPUTS i o- Analog interfaces to and from the per- sonal computer system can present a diffi- cult dilemma to the small systems user: The analog interface usually is a very expensive proposition, especially if more than one input and one output are needed. Schemes like that suggested by Roger Frank [page 70 of the May 1976 issue of BYTE], can greatly reduce hardware complexity, ahd thus cost, since much of the interface burden is left to the software of the com- puting system. Direct extension of this principle to the case of multiple input voltages and multiple output voltages can, however, result in a hardware cost that at the least rises linearly with the number of needed outputs and inputs. One alternative scheme requires an additional bit of input to the computer and one additional voltage DIGITAL TO ANALOG CONVERTER ANALOG MULTIPLEXER INPUT SELECT 10 PORT A VOLTAGE COMPARATOR > INPUT 10 PORT B OUTPUT Figure 1 : Block diagram symbolizing the hardware that is needed for a multiplexed analog to digital converter for eight inputs. The three outputs from 10 port B select the analog channel. The output from the multiplexer is fed to the negative side of a voltage comparator. An analog output from a digital to analog converter is fed to the positive side of the comparator. When the analog value from the converter is greater than the value being tested, the voltage comparator will output a 1 . Using successive approximations the input voltage can be determined. comparator for each additional analog to digital input up to a total of 8. On the output side each additional voltage output leads to an additional 8 bit output port and an additional 8 bit digital to analog converter. This results in a situation where a many input, many output analog interface requires an inordinate amount of hardware, which means money to the user. (We should not kid ourselves by saying that large numbers of analog channels are rarely needed. Many worthy applications, like control of analog music synthesis, automated test facilities or control of robots would easily push the number of channels needed beyond the point of no return for the previously sug- gested schemes of interface.) Thus one must turn to a modified philosophy of interface design in order to meet the necessary goal of a less expensive analog interface. Fortunately digital techniques provide us with a method of solution to the problem: time multiplexing. Time multiplexing is simply the process by which one device can be made to function as many logical devices. To the user these virtual devices appear as if they were full fledged dedicated devices. Thus our objective is to find some technique by which one analog to digital converter and one digital to analog converter can be made to function in many seemingly simultaneous conversions. Basics of Time Multiplexed Interfaces The basic principles are illustrated first for the analog to digital case. Figure 1 illustrates the hardware that allows multi- plexed analog to digital conversions. An output port, A, from the computer is used to provide the necessary eight bits to drive the digital to analog converter (DAC). The output of the digital to analog converter is connected to the minus input of the voltage 18 Analog Interfaces comparator. The output from the com- parator provides an input to the computer by way of the most significant bit of an input port to the computer. This structure thus far is identical to the scheme proposed by Roger Frank. The difference is that the positive input to the comparator is no longer connected directly to the voltage to be converted. Rather the comparator is con- nected to the voltage to be converted by way of an analog multiplexer. The analog multiplexer here is performing the needed function that allows one analog to digital converter to deal with many channels. A typical application might use an 8 to 1 multiplexer. Thus any one of the eight voltage inputs might become the volt- age to be converted if the multiplexer selects it. The selection is accomplished by a binary code applied to the select input of the multiplexer. In an 8 to 1 device the binary code 011 would pick the input labeled 3. The code which selects the input was set by the computer through an output port. For our 8 to 1 example three bits would be needed, possibly originating from the lower three bits of an 8 bit output port. This change results in almost no change in the software that would service the analog to digital conversions. In fact, the only neces- sary modification is to preload the channel selection word, which chooses the voltage to be converted in the proper output port. Then the analog to digital conversion routine can be called. Time Multiplexed Digital to Analog Conversion Multiplexing of the analog to digital conversion really only solves half of the analog interface problem. The problem of economically generating multiple analog out- puts from the converter still remains. We can apply the versatile analog multiplexer to solve this problem as well. (However, there are complications that can mask the simplic- ity of the method.) The basic hardware of the multiplexed digital to analog converter output is shown in block form in figure 2. Once again the source of the digital to analog converter's word is an 8 bit output port from the computer. The output is now connected to multiplexed sample and hold circuits. Much like the multiplexer used in the analog to digital conversion system the multiplexed sample and holds connect the output of the digital to analog converter to the desired analog output which is chosen by the select inputs to the multiplexer. The difference between the plain analog multiplexer and DIGITAL TO ANALOG CONVERTER Figure 2: Block diagram of the basic hardware needed for a multiplexed digilal to analog converter for eight channels of output. Three bits of output from 10 port B select the channel that is to be used. When a strobe is enabled the chosen channel is activated. Each analog channel has a sample and hold circuit which must be updated periodically due to the leakage of the capacitor. 19 HIGH IMPEDANCE BUFFER TO BE HELD SAMPLE | — .. COMMAND I — -"" A:»NUMBER OF CHANNELS SELECT CHANNELS SET OUTPUT VOLTAGE Figure 3: Functional schematic of a typical sample and hold circuit. The input switch can be mechanical or electronic. In the case of a multiplexed interface it is an analog switch. the multiplexed sample and hold is memory. The multiplexed sample and hold has the ability to remember the voltage that was applied to the desired output (for a while). Before proceeding, some background information on sample and hold circuits in general will prove instructive. A functional schematic of a sample and hold circuit is shown in figure 3. The major components of the sample and hold circuit are an electronic input switch, a memory capacitor and a high impedance buffer. The sample and hold circuit works as follows: The voltage to be remembered is applied to the input. The switch is closed, allowing the voltage to be applied to the capacitor. The switch is then opened and the input voltage can now be changed because the output of the sample and hold now reflects the formally applied voltage. This discussion assumes ideal com- ponents. There are a number of error sources. The majority revolve around the memory capacitor. The remembered voltage is stored as an electric charge in the memory capacitor. Because of this any variation of charge with time, ie: current, causes an error in the remembered voltage. This explains the need for a high input impedance in the buffer amplifier so that it doesn't drain away too much charge. A measure of a sample and hold circuit's ability to retain the voltage to within a certain percentage is its hold time. Another problem associated with the memory capacitor is acquisition time. This arises from the fact that charge cannot be delivered instantly to the capacitor. A finite amount of time is needed to deliver enough charge to change the capacitor to the new voltage. Thus we have two design para- meters: hold time and acquisition time. The multiplexed design is not much different from the principles outlined above. The sample switch is merely replaced by our friend, the analog multiplexer. The output to be changed is selected, the strobe then enabled (closing the switch) and after the acquisition time, disabled (opening the switch). The select word and the strobe will (return j Figure 4: Flowchart of a typical 10 driver for a digital to analog system. This program is called peri- odically to update the value that is being held by the sample and hold circuitry. possibly originate from the lower four bits, for an 8 output system, of an output port from the computer. This type of interface does represent a burden on the computer. The reason for this burden is the very finite hold time of the capacitor. No sample and hold circuit can retain its value forever. The time can be increased by using a larger capacitor, but a limit is reached because a larger capacitor leads to longer acquisition times. Thus, the sample and hold device must be updated periodically if the outputs are to remain accurate. This situation is not unlike that of dynamic memories which are effectively two state sample and hold circuits. Use of the Multiplexed Digital to Analog System Obviously this type of interface will require much more computer intervention. The software, though, is not difficult. A possible 10 driver is flowcharted in figure 4. For an 8 output system an 8 entry data file is needed to hold the current output values. Periodically (perhaps cued by the interrupt system) with a period less than the hold time a routine is executed to update the eight outputs. The main loop of this routine consists of the following: The value of the output presently being updated is sent to the digital to analog converter interface. The output is then selected and strobed. This action then repeats until all eight outputs have been updated. What Time Multiplexing Buys You For the small systems user minimizing hardware is essential. The potential saving of a time multiplexed analog interface is high. The reason for this in general is the reduced hardware. Another not so apparent reason is the ease of expansion. The most obvious hardware savings occurs in the digital to analog converter. This is because eight channels can be had for the cost of one converter, one 8 to 1 analog multiplexer, eight memory capacitors, eight output buffers, and two output ports. This is contrasted to the eight converters, and the eight output ports from the computer needed by the conventional brute force approach. On the input side the gain is not as obvious. Here we have replaced eight comparators with one comparator and a multiplexer. Both cases require an output port, an input port and a digital to analog converter. A check of prices reveals, though, that eight comparators cost more than one multiplexer. The clincher is when one considers up- dating the system to more than eight chan- 20 nels. The output channel needs only to increase the number of sample and hold devices which is cheaper by factors of eight. The brute force scheme required one more converter and one more output port per additional channel. Table 1 compares the number of components needed for a con- ventional and a multiplexed system based on 16 channels. The multiplexed analog to digital con- version process has an even more spectacular success. In the dedicated hardware approach each channel requires one comparator and one bit of input to the computer. The increment for the multiplexed approach is only one multiplexer per eight additions, and one bit of output. Table 2 compares the needed components, based on 16 channels. Thus overall we see that the multiplexed approach offers a multitude of hardware savings. What Time Multiplexing Costs You This design technique is typical of many that trade hardware for software. Obviously since we have taken so much out of the hardware, the software and computer effi- ciency will degrade. It is perhaps a truism that if the interface is designed intelligently these problems can be minimized. The analog to digital interface suffers the least. The main problem here is the amount of time spent doing the conversion routine. If fast changing inputs or a multitude of moderate inputs are to be converted then the computer is severely loaded. However, many applications only require moderate conversion rates. Foremost of these are interfaces to human operators. Maximum conversion rate needed here is around 100 Hz. Typically, this is around 0.001 Hz to 0.1 Hz. Examples of this are the propor- tional controls in games and operator set parameters. Control signals in electronic music also fall in these categories. Thus this type of interface can work well in many Component Digital to analog converter 10 ports 8 to 1 multiplexer Dedicated 16 16+16 bits Multiplexed 1 2 2 Table 1: Comparison of the amount of hardware that is needed for the direct method of digital to analog converter versus the multiplexed method of interfacing. The table is constructed for an interface con- sisting of 1 6 channels. Component Digital to analog converter 10 ports Voltage comparators 8 to 1 multiplexers Dedicated 1 3 16 Multiplexed 1 2 1 2 Table 2: Comparison of the amount of hardware needed for direct methods of analog to digital interfacing versus the multi- plexed method of interfacing. The table is constructed for an interface consisting of 1 6 channels. typical applications if the rates and the numbers are not excessive. The digital to analog interface suffers from a similar situation. Here the main problems arc extremely slow changing out- puts or large numbers of fast outputs. Here again an analysis of likely applications re- veals that a great number of output signals reside in the frequency spectrum between 1 Hz and 100 Hz. Sample and hold circuitry can be economically designed with hold times in the excess of one second. Also the whole refresh process can be made transpar- ent to the main program if it is done under interrupt control by causing the update routine to be executed at the rate of the fastest output in response to the request of a programmable timer. As with the analog to GLOSSARY Acquisition Time: The time required for a sample and hold circuit to change from its previous value to its new value within a prescribed tolerance. Analog Multiplexer: A solid state device that allows a multitude of connections to be accessed by a common line. The action is like an N position switch. High Input Impedance Buffer: A device whose input draws little current from any other devices connected to it. It is important in a sample and hold circuit since currents cause the voltage held in the memory capacitor to discharge. Hold Time: Amount of time that passes before the output from a sample and hold circuit changes from the originally held value by a prescribed tolerance. Comparator: An analog device whose output is logical 1 if the plus input is greater than the minus input and logical if the situation is reversed. Digital to Analog Converter (DAC): A device whose output analog signal (current typically) is proportional to a digital word at its input. Sample and Hold: Analog memory device which stores a voltage as electrical charge in a capacitor. Time Multiplexing: Process of combining several measurements for transmission over one signal path. In our case, this signal path is the IO port structure of a processor. 21 ANAL06 ici ^ O-^w-1— ^_ 2.2K 3? .I M F -VREF ICII MCI408L-8 LSB COMP VEE 200 1 lOOpF OUTPUT PORT -I5V SIGN BIT 10 PORT STROBE SELECT I -03 -02 10 -00 1-5V t_ m -0+I5V -0 + 5V JT ^tvIOmF ^tnIO^F ^rslO/iF ,-pOO/tF -X -OGND -0-5V -0-I5V Number Type +5 V GND -15 V + 15 V -5 V 1 to 8 CA3130 7 4 9 CD4051 16. 8 7 10 CD4051 16 8 7 11 MCI408L-8 13 2 12 LM311 1 4 8 13 LM318 4 8 Figure 5: Schematic of the multiplexed analog to digital and digital to analog interface. The parts were mostly chosen for speed and cost considerations. The integrated circuits are mostly CMOS. All resistances are measured in ohms and all resistors are 1 14 W. Be sure to bypass each power pin with a 0.01 [iF capacitor to help eliminate any stray spikes originating from power surges. digital cases this type of interface works well with a moderate number of medium speed outputs or a multitude of low speed outputs. Note that outputs which can be changed at a rate up to that of the acquisition time (if only one channel is used) can be had by using fewer channels in the output program loop. Outputs that meet these requirements are some automatic testing signals, mechani- cal devices and control signals for electronic music. To summarize, this type of interface burdens the computer system. Using it wisely for moderate types of signals does lead to a workable system. Conveniently these types of signals are quite prevalent in interfaces to humans, and many types of equipment. A Complete Design Example To illustrate these principles in more concrete terms a complete interface is des- cribed in figure 5. The 8 channel interface represents hardware well within the realm of most small systems users. It is optimized for signals from 0.1 Hz to around 100 Hz, though lower and higher rates are possible at the expense of efficiency. This type of interface is useful in interactive games, testing of equipment and electronic music. Parts used are neither exotic nor expensive. Figure 5 contains the complete circuit. The following comments on component selection are in order. The digital to analog converter was chosen for cost reasons. However, almost any state of the art current output converter can be used. Note that a 22 multiplying converter can provide for scaling of the output by a voltage, possibly from another interface. The LM318 operational amplifier was chosen to be the current to voltage converter to minimize response time of the DAC. As such, only an operational amplifier of similar speed should be sub- stituted unless you can tolerate slower response. Also care must be taken to isolate the amplifier from stray signals, or it could become unstable and oscillate. The multi- plexer chosen for both converters is one of the CMOS variety. In order to meet the specifications on this device and give an easy design, the voltages of this system are re- stricted to ± 5 V. This allows for adequate range for most 8 bit applications. 10 V full scale means one bit is 39.1 mV. This can be scaled down if needed. The sample and hold capacitor was chosen to satisfy the acquisition and hold time requirements. Changing its value can tailor the system to individual needs. Always use polystyrene capacitors since their char- acteristics are essential to a good interface. I used the new CMOS operational amplifiers for the buffers because of their high imped- ance and low cost. Notice that they operate on the same power supplies as the analog switches. The comparator was chosen for its low cost and speed. Similar devices could be substituted. The necessary power supplies are ±15 V and ±5 V. The ±15 V could be reduced to ±1 2 V if convenient. The software for such an interface is not difficult. Roger Frank's article and figure 4 contain the basics. A complete routine written for an MOS Technology 6502 based system is shown in listing 1. Listing J: Typical program written for a 6502 based system to update eight digital to analog conversion channels. The program sequentially addresses each channel, outputs the desired voltage to be held, disables the channel, and steps to the next channel. This is done once for each time that the program is called. This program could be set up as an interrupt handler which responds to a clock strobing an interrupt line. Label Op Operand Commentary UPDATE LDX #07 initialize pointer; LOOP LDA,zpa,X BUF get next byte for output; STA DAC output byte; TXA accumulator:=pointer; STA CONT select channel and enable sample and hold; ORA 04 turn sample and hold strobe off; STA CONT turn selected sample and hold off; DEX pointer:=pointer— 1 ; BPL LOOP if pointer >=0 then go to LOOP; RTS else return from subroutine; Data Definitions BUF: A string of output bytes DAC: Address of DAC output port CONT: Address of control port few software vs hardware trade offs are made. Though the multiplexed approach does impose some software burdens, for most applications the variation of the outputs and inputs is slow enough to make this type of interface transparent under the interrupt system. This type of interface should make many real world applications possible to the limited budgets of most experimenters." BIBLIOGRAPHY 1. Frank, "Microprocessor Based Analog/Digital Conversion," BYTE magazine, May I976, pages 70 to 73. 2. Graeme, Huelsman, Tobey, Operation Ampli- fiers: Design and Application, McGraw- Hill, 1971. Summary A multichannel analog interface can be designed with a minimum of hardware if a 3. Kraul, "Analog Interfaces for Microprocessor Systems," Electronotes, Newsletter of the Musical Engineering Group, volume 8, number 63, March 1976, pages 11 to 14. COMPUTER MUSK WITH OR WiTHOUT^-T^ _ THE COMPUTER EQUALLY TEMPERED DIGITAL TO ANALOG CONVERTER Based on a multiplying principle, the 8780 generates the exact exponential stair-step function required to make the simplest linear response oscillators and filters produce equally tempered musical intervals . 6 bits of data generate over 5 octaves control voltage. Compatible with PAIA synthesizer modules, easily interfaced to any processor with or without hand-shaking logic. #8780 D/A CONVERTER KIT. . $34. 95 (+$1 postage) THE PAIA HIGH LEVEL LANGUAGE FOR COMPUTER MUSIC DATA ENTRY (We call it a keyboard) An n key roll-over scanning matrix encoder tied to a 37 note AGO key board pro vides 6 bits of date and both STROBE and STROBE control output s. Input control lines to the encoder include SCAN (starts & stops the encoder clock), RESET, START & RANDOM' making the keyboard universally applicable to all computer/processors from the largesttothe smallest. #8782 ENCODED KEYBOARD. . $109. 95 (+ freight 20 lbs) WITH A COMPUTER Both the 8780 D/A and the 8782 Encoded Key- board easily interface to any processor providing capabilities and control never before possible with .music synthesizers? *;: W :*:***:-w:***-s~**« WITHOUT A COMPUTER An infinite hold, DIGITAL Sample & Hold and the heart of an entire system of mod- ules that will be introduced over the next few months including: Memories, ionic output modules and others. ELECTRONICS. INC. DEPT. 6-B 1020 WEST WILSHIRE BLVD. OKLAHOMA CITY, OK 73116 23 Circle 265 on inquiry card. 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. BA or MC card # with exp. „ _ Z. date and signature. Uncer- DISKETTES $4.50 ea. t jf ied checks require 6 FPB-A $359 weeks processing. Calif. (ASSEMBLED) . $499 residents add sales tax. NORTH STAR COMPUTERS, INC. 2465 Fourth Street i Berkeley, CA 94710 What's New? A High Performance Character Display Terminal Volker-Craig Ltd, 266 Marsland Dr, Waterloo, Ontario CANADA N2J 3Z1, has introduced a new data terminal intended for use in small business systems, timesharing and other small computer end user applications. The features of this terminal include RS232C interface at rates from 1 1 to 9600 bps, a 1920 character display (24 lines of 80 characters), 12 inch CRT display, com- posite video output for extra slave monitors, XY cursor addressing by computer or operator, 64 key ASCII keyboard with tactile feedback and auto- matic repeat, and an optional separate numeric data entry keypad. Options include upper and lower case ASCII keyboard and display, switched serial interface, parallel input and output inter- faces, and custom keyboard character fonts such as APL or French. The display is the model VC303A, and the price is $1595 in quantities of one, $995 to distributors and OEM quantity buyers." Circle 605 on inquiry card. Here's a Product That Counts E Barry Hilton, president of Auto- mated Industrial Measurement Inc, POB ' Circle 155 on inquiry card. 24 XELBi ttFCWiRE New books ... for everyone who's into their own computer. Programs. Fun. Games. Languages. Excitement. SCELBAL, the new microcomputer language that's simpler than machine language. Scientific ELementary BAsic Language for "8008"/"8080" systems. A complete, illustrated program book. Routines. Techniques. Source Listings. Flow Charts. And more. Took several years to develop. Now yours for many years to come. First time that intimate details of higher level language has been offered for such a low price. Only $49! You get 5 Commands: SCR, LIST, RUN, SAVE, LOAD. 14 Statements: REM, LET, IF. . .THEN, GOTO, FOR with STEP, END, INPUT, PRINT, NEXT, GOSUB, RETURN and optional DIM. 7 Functions: INT, SGN, ABS, SQR, RND, CHR, TAB. And, it runs in 8K and more. Here's all the data needed to customize a high level language for your system ... at a fraction of the cost! Order your copy today! Get $^ f% started advancing your system! ^F^7 A complete language for "8008"/"8080" systems including source listings, routines, flow charts and more! SCELBAL SUPPLEMENTS . . . SCELBAL has taken off so fast, two special supple- ments had to be printed. First, there's Extended Math Functions: SIN, COS, LOG (BASE E), EXP (BASE E) and ATN . . . only $5.00 ppd. The second supplement, String Handling Capabilities, includes the numeric functions LEN and ASC. It sells for only $10 ppd. Cook up mouthwatering programs for your "8080" or "6800"! Delectable "how to" facts, including descriptions of "8080" or "6800" instruction sets. How to manipulate stacks. Flow charts. Source listings. General pur- pose routines for multiple precision operation. Program- ming time delays for real time applications. Random number generators. And more. You even get float- ing point arithmetic routines! Input/output processing for basic I/O programming through interrupt processing. And so much more, we can't list it all here. Scelbi's Software Gourmet Guides and Cookbooks for "8080" or "6800". (Specify!) Order your copies today! $ Q95 Start cookin'! Bon Appetite. w each ppd. ftA M W Microcomputer Outer \MfII*IW¥ Space War Games . . . Captain your own starship on an inter-gallactic journey to adventure. Meet alien ships in realistic combat. Plan a painstaking journey filled with battles, refueling problems, weaponry, warp factors and more — all against your "8008"/"8080" or "6800" computer. Either complete book, written in machine language for 4K memory, is an ongoing, ever-changing interstellar adventure, including source listings, flow charts, routines and much more. Choose your copy today. Blast off to high adventure in outer space! Order either GALAXY today! $ 14 95 each ppd. Prices shown for North American customers. Master Charge. Postal and Bank Money Orders preferred. Personal checks delay shipping up to 4 weeks. Pricing, specifications, availability subject to change without notice. f CEUBI COMPUTER fONIUUlNft INC. Scelbi Books are available in many fine Computer Stores. Post Office Box 133 PP STN Milford, CT 06460 Circle 26 on inquiry card. END FRONT PANEL FIDDLING . . . Use a JUMP START 4KRfiM With a JUMP START 4K RAM board in your Altair/IMSAI, the system will jump to any preset byte of memory after power-up or reset. Never tog- gle a jump to your monitor or bootstrap again! Just power-up or hit reset— JUMP STfiRT automatically transfers con- trol to the selected address. The JUMP START 4K RAM board has these standard features: » 4K 450 ns low power RAM • fully buffered • DIP switch address selection • memory protect with POC • battery backup connector • fully socketed • disabled during INTA • optional wait state Prices: Kit $145 Assembled 190 Call toll-free anytime to place credit card orders: 800/648 5311 Prepaid mail orders shipped postpaid in USA. California residents add 6% sales tax. Hlllllllil MICROMATION INCORPORATED 524 UNION STREET SAN FRANCISCO, CA. 94133 415/398-0289 Dealer inquiries invited CIRCLE NO. 242 125, Wayland MA 01778, stopped by BYTE's offices in early February, toting an Altair 8800 under his arm and an interesting peripheral which his firm has designed and is marketing. The peri- pheral is the AIM-1005 frequency meter, demonstrated to us mounted upon a Vector prototyping card for the Altair bus. (This was a demonstration setup; his firm will soon have a $30 card with all the connections to the Altair bus made for piggyback mounting of the fre- quency meter on a permanent basis.) What this $ I 78 product does for its user is provide a programmable frequency meter with 13 bits of precision, and 11 different time base ranges allowing measurement over time periods from 10 MS to one hour. The input logic has scaling counters with an upper limit of 25 MHz, so it is possible to make a quite useful general laboratory frequency meter with outputs on a computer ter- minal by simply driving this peripheral with a simple assembly language or BASIC program. The device is interfaced through memory address space, decoding the high order four bits of the 8080's 16 bit address bus." Circle 606 on inquiry card. A New Brochure A Synthesizer Example .... Al Cybernetic Systems, POB 4691, University Park NM 88003, has sent along some new information on their Model 1000 Speech Synthesizer, which was first described in Wirt Atmar's article in August 1976 BYTE, page 26. The picture here is the production version of this device, which is an analog model of the human vocal tract, digitally programmed with commands that corre- spond to American English phonemes. Since the device works with coded phonemes, the maximum information transfer rate for speech which is required is about 50 bps. The device plugs directly into the Altair bus and cost is $325, with delivery from stock. A significant and interesting bit of literature which came with this picture was "Programming Example I," an EDUCATION AND DEVELOPMENT MICROCOMPUTER E & L Instruments, 61 First St, Derby CT 0641 8, has just released a new 8 page brochure describing the MMD-1 education and development micro- computer and its optional accessories. Copies of the MMD-1 brochure are avail- able from the company, as well as its representatives and authorized dealers." Circle 607 on inquiry card. Altair BASIC program with an 8080 machine language subroutine for details at a low level. The program is an implementation of the well-known Lunar Lander game, but with the novel twist that the "ship's computer" tells you your present height from the surface of the planet as you land. It will run on any Altair 8800 equipped with 12 K of memory. So, what you do is plug in the Model 1000, read in BASIC, type in this program and set up its machine language support routine, then proceed to use a new mode of interaction with the com- puter system." Circle 608 on inquiry card. 26 XililEDiA P=?E3EnCb The SOROC IQ120 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 ASC 1 1 . KEYBOARD. 73 keys including numeric key pad. REPEAT KEY. 1 5 cps repeat action. DATA RATES. Thumbwheel selectable 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 — $699 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 COMPUTER IST 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 220 on inquiry card. COD orders freight collect. Orders with payment shipped prepaid. Californi; residents add 6% sales tax. Please allow 3 weeks for delivery. 27 The Digital Group adds character®. J^^ ■ nj^j^jj 64, to be exact. The Digital Group's computer systems have a lot of character already. Just one quick look at any of our products in their unique custom cabinets con- firms that. But we believe it never hurts to add a bit more. So, the Digital Group has added character in a big way to give an added dimension to the opera- tion of our video-based com- puter systems. We are pleased to announce our new TV readout with a 64-character line. It will give your system a great deal more capability. Give it more character, if you will. Here are the specifics on the Digital Group TV Readout and Audio Cassette Interface: 1024 Character TV Readout • 64 characters horizontal by 16 lines • 7x9 character matrix (effectively 7x12 due to char- acter shifting) • IK on-board RAM for buffer storage — requires no main memory — completely independent • 128 character ASCII Upper case alpha Lower case alpha with base line extenders (g, h p, y) Numbers and extended math symbols Greek alphabet • Software driven cursor — forward and backward • Compatible with most microprocessors; Interfaces with 1 8-bit parallel output port • Timebase may be driven with an external timebase (may be synchronized to TV camera, TV set, etc.) • Readout timebase available at connector (can be used for graphic driver, etc.) • White characters on black, and/or black on white; software selectable • Plugs into standard dual 22-pin TVC connector on Digital Group Systems Improved Audio Cassette Interface: • Reliable FSK recording technique • Uses standard unmodified audio cassette recorder Write cassette system uses a digitally synthe- sized frequency shift system, derived from TV system's master crystal oscillator Read cassette system easily aligned using the write system as an align- ment aid. •Runs (100 characters/second) — loads 16K in 3 minutes at 1100 baud 512 TVC to 1024 TVC Upgrade Kit: As always, when the Digital Group extends the capabilities of our systems, it doesn't mean obsolescence for any products. We are offering an upgrade kit for present Digital Group system owners who wish to go to the longer line length. This kit uses most of the IC's from our TVC-F read- out. No unsoldering is required; all new sockets, capac- itors, resistors, PC board and other necessary parts are supplied. Prices: TVC-64— Full 64-character TV Readout & Audio Cassette Interface: Kit — $140 Assembled — $205 TVC-64UPG— Upgrade kit from TVC-F: Kit — $65 If you already own a Digital Group system, our 64-charac- ter line will definitely enhance its operation. If you're just looking, you might want to keep in mind that the Digital Group has a lot of characters. Write or call now for details on our new 64-character TV readout and all our other exciting products. box 6528 denver, Colorado 80206 (303) 777-7133 Circle 78 on inquiry card. Peripheral Vision impacts your computer. WITH A FULL-SIZE, LOW-COST IMPACT PRINTER. Until now, the hobbyist and small businessman have had one major problem in assembling a reasonably price microprocessor system with the capabilities found in the more costly computers. It was impossible to find a high-quality, high-output printer for hard copy needs at an affordable price. Peripheral Vision has come up with a solution. We are offering a full-size impact printer designed for microprocessors — and it comes with a mini price. Kit prices start as low as $495 for the printer and interface card. And that won't impact your pocketbook. Peripheral Vision's printer is loaded with capabilities. Take a look: • It's fast — 120 characters per second • 96 characters per line, 12 characters per inch horizontal, 6 lines per inch • Makes up to 4 copies simultaneously • Character set and pitch variable under software control • 5 x 7 character matrix • Ribbon has built-in re-inkers for a life of 10,000,000 characters • Paper can be either a standard 8 1 /2-inch roll, fanfold or cut page • Interfaces to 8-bit parallel ports Just remember, Peripheral Vision is committed to helping you get along with your computer. The new printer we are offering is another example. It is high quality, low in cost and will definitely impact your system. Write or call now to find out how to impact your computer. LJ/vPinc P.O. Box 6267 Denver, Colorado 80206 (303) 777-4292 Circle 194 on inquiry card. Newt: A Mobile, Cognitive Robot MAIN IMAGE - SENSOR MOTIVE SYSTEM GEAR BOX WALL FOLLOWER (RETRACTED) « — REAR FEELER (EXTENDED) Figure 1: The robot Newt as it will appear when completed. There are three main subsystems shown in this diagram which was supplied by the author: motive, manipulator and sensory turret. The entire machine is controlled by an on board microcomputer. The motive power subsystem is built around two precision drive wheels actuated by stepper motors. The manipulator, a simple hand capable of grasping, lifting and rotating, is also actuated by stepper motors and includes various sensors. The sensory turret at the top is a platform which includes a main image sensor, which can be tilted to look straight down or up at a slight angle using a stepping motor; other sensors are shown in outline form, and are a subject for future experi- mentation. Ralph Hollis Dept of Physics and Astrophysics University of Colorado Boulder CO 80309 In the late 1930s, a young man named Rossum began manufacturing industrial robots in a small factory on the outskirts of Prague. This venture was immediately suc- cessful and would have virtually guaranteed a second industrial revolution had it not been for a singular tragic circumstance: The robot workers became irrational and re- volted. They turned on their masters and burned the factory to the ground. Fortunately, the preceding scenario is only a work of fiction by the Czecho- slovakian writer K Capek. Since Capek's coinage of the word "robot" in his 1923 play R U R it has been the subject of a great many works of science fiction, including Isaac Asimov's /, Robot and the movies "Forbidden Planet," "Gog," "Silent Run- ning," "Westworld" and others. Alas, the imaginative stories of the science fiction writers have far outstripped the efforts of the robot engineers. Progress in building real robot devices has been painfully slow over the past several decades, although a few individuals and small groups have produced some very interesting results. It is not my purpose here to review these works, but rather to describe a project with which I have been personally involved for some time: the construction of a freely moving robot vehicle which will be capable of interacting with its environment in a rational way, and managing its own survival. I he work is being done by a small group of people in the Duane Physical Laboratory of the University of Colorado. The project is being financed through personal funds, and in this sense qualifies as an "amateur" undertaking. 30 What are the requirements for such a robot? It must be able to explore the environment in some orderly manner, mea- sure the attributes of objects and obstacles encountered, classify them according to some scheme, and incorporate them in its evolving internal world model. The world model must have a logical structure which allows modifications to be easjly made; it must be compact with respect to memory space, and it must use a design which can be consulted in some reasonable way. The roLot must be able to manipulate the world model (cognition), derive informed decisions from it, and carry out these decisions in physical action to achieve broadly defined goals. Figure 1 is a general view of the robot as it will appear when completed. Practically speaking, it resembles less a mechanical man than, say, a shop type vacuum cleaner. The machine is cylindrical, about 36 cm (14 inches) in diameter and 76 cm (30 inches) in height, weighing approximately 27 kg (60 pounds). All rigid mechanisms lie within the cylindrical boundary or can be retracted within the boundary if necessary. This de- sign greatly reduces the number and diver- sity of senses required. The robot will be fitted with a smooth cylindrical skin (not shown), removable in sections for easy in- spection and maintenance. Modular con- struction is used in the robot wherever pos- sible. There are three main subsystems: motive, manipulator and sensory turret. These are presided over by an 8080 based microcomputer with 8 K bytes of EROM and 24 K bytes of programmable memory. The entire system is powered by a 6 V, 84 amp-hour storage battery. How the Robot Gets Around The robot is given locomotion by two main diametrically opposed drive wheels. A third (unpowered) castoring wheel is located at the rear. This motive geometry has been successfully employed in several other robot vehicles constructed by other groups, and has been in use in the author's robot research since 1957. The vehicle's center of gravity is located well aft due to the place- ment of the battery and other heavy com- ponents, obviating the need for a front wheel. The wheels are constructed of aluminum with neopreme O-ring tires. The main wheels are driven by stepping motors through precision 3:1 gearing. A single com- mand step rotates a wheel 0.6 degrees, so there is a total of 600 steps per revolution. If both wheels are moved in the same direc- tion, the vehicle travels forwards or back- wards in a straight line. If the wheels are moved in opposite directions, the vehicle executes a perfect rotation about its vertical axis. By stepping the wheels at different rates, a circular trajectory is approximated having a radius which can range from zero to infinity. The hardware and software necessary to drive the stepping motors are discussed in some detail later in this article, since they have very general application. The robot navigates principally by open loop dead reckoning. That is, it depends largely on the precise control of the wheels during acceleration, deceleration, and con- stant speed motion to achieve accurate positioning of the vehicle. The robot's posi- tion and azimuth relative to a fixed origin are computed at the end of each motion segment by counting stepping motor in- crements and using trigonometry. The preci- sion attainable is limited principally by wheel slippage, unequal wheel diameters, nonplanar floors, round-off errors, and step quantization. In practice, all these errors are small for short distance movements. The robot's excellent open loop per- formance makes it unnecessary to have continuous closed loop servo systems, such as have been extensively employed in other robots. For example, consider the problem of having a robot view a small object on the floor a short distance away, and then go pick up the object. One approach would be to have the robot continuously view the object as it moves towards it, adjusting its motion in a continuous way to converge on the object and pick it up. In this approach, a rather crude motive system would suffice, since errors are always nulled. A heavy load, however, is placed on the sensor-computer system. An alternative approach, the one followed here, is to have the robot view the object once, and then compute exactly how to move to the object and pick it up. When the computation is completed, the machine simply carries out the proper motions in a blind fashion. There is a greatly reduced strain on the sensor-computer system, at the expense of having to build, rather precise motive machinery. Of course, this approach assumes the relevant environment will re- main fixed for the duration of the task. In this general spirit, by using high precision open loop movements throughout the robot, only intermittent feedback through the senses is 'required to close the control loop. In this way, the overall com- plexity of the robot can be kept at a reasonable level, allowing the required com- putations to fall within the abilities of an on board microcomputer. ' Epistemological Engineering With artificial intelli- gence, robotics and ap- plied cybernetics coming of age through the recent progress in the fabrication of computer systems, it is quite likely that the branch of philosophy call- ed epistemology will have a much more explicit role In technology during the coming years. Epistemol- ogy Is the study of nature and grou/ids of knowledge; understanding of episte- mology , is crucial to any attempt to realistically im- plement artificial intelli- gence systems. So in a fu- ture world of cognitive automata and advanced in- formation systems, we may Indeed find the new specialist who is the "epis- temological engineer. " 31 Scanning the Environment with Electronic Senses The sensory turret (see figure 1) provides a general platform on which to mount various senses, some of which might be quite experimental and temporary in nature. It can pan a full 360 degrees, and a small section containing the main image sensor can tilt from approximately 30 degrees above horizontal to 90 degrees below horizontal. Both of these motions are controlled by stepping motors. The main image sensor has a motorized focus control. The geometry of the "hand-eye" system allows orthogonal views of objects held in the manipulator jaws by using both image sensors under condi- tions of controlled focus and lighting. Each image sensor is a 32 by 32 element integrated array of photodiodes on a silicon chip measuring approximately 4 mm (0.1 inch) square. The array acts like a 1024 bit memory. Each element is precharged to a fixed voltage; then at some later time the voltage of each element is read out, de- creased in proportion to the amount of light which has fallen on it. Several milliseconds are required to digitize the image. Up to 16 levels of gray can be discerned, which means that 512 bytes of computer memory are sufficient for a single image. Once the image is obtained, it is analyzed by appropriate software. The extremely small size of these solid state image sensors, and the simplicity of their associated electronics, make them ideal for robot use. Higher resolution devices such as charge coupled sensors and miniature television cameras are available, but their cost and complexity make them unattractive for such applications. Besides, the amount of data generated would be too unwieldy to handle with a microcomputer. In addition to the main image sensor, several simple phototransistor light sensors are mounted on the tilting platform of the sensory turret. These enable the robot to locate and track point sources of light. Several other proposed senses are to be mounted on the turret. These are shown in schematic form in figure 1 . To the left of the image sensor is shown an ultrasonic ranging transmitter and receiver which should be ex- tremely useful for finding the range to walls at distances as great as 10 meters (33 feet). The idea is to transmit short bursts of 40 kHz sound and measure the time required for an echo to be received in order to com- pute the distance. Much of the necessary cir- cuitry is available in compact integrated form. Just to the right of the image sensor is shown a long wavelength infrared radiation detector with which it might be possible to locate sources of heat such as dogs, cats and humans. Located on an axis perpendicular to the main image sensor are shown two micro- phones which form part of a sound location system. The intent is for each sensor to acquire a short sample of sound. The com- puter then attempts to find a phase relation- ship between them, thereby locating the direction of the source. Many other possible senses can be imagined; the sensory turret is intended to provide a versatile platform and interface for experimenting with them. For example, using a helium neon laser, or perhaps a compact metal vapor laser, it may be pos- sible to provide an optical range finding system with high resolution if a suitable detector can be found. Eventually it is hoped to provide limited forms of speech synthesis and phrase recognition (using off line electronics with an analog radio link). This would make it possible to give general spoken commands to the robot in con- textual surroundings, and have verbal feed- back to insure that the commands were being properly interpreted. Sharing some space with the sensory turret system, and directly below the plat- form in figure I, is the necessary power conversion electronics. These modules con- vert the battery voltage to ±12 V and +5 V (regulated) for use by the electronics, and also house the battery recharging circuitry. Manipulating Objects in the Environment The number of tasks which a simple robot can do is greatly increased if it has some sort of hand with which to grasp and manipulate objects in the environment. The human arm and hand system, with its 27 degrees of freedom, is a marvelously versatile mechanism. Large industrial manipulators are fairly complicated and have six or seven degrees of freedom. For practical reasons, the present system is limited to a mere three degrees of freedom which, when combined with the two degrees of freedom of the motive system, should be sufficient for carrying out simple tasks. The manipulator is able to grasp objects, move up and down along the front of the robot by means of a rack and pinion drive, and to rotate about a horizontal axis. All three motions are controlled by stepping motors. The manipulator has a parallelogram geometry which permits the jaw faces to remain parallel regardless of their separation. This feature simplifies the problem of pick- ing up objects of varying sizes. When not in use, the jaws open wide enough to bring all 32 parts of the manipulator within the cylin- drical boundary of the robot, where it is out of the way and does not cause problems when the robot turns and maneuvers in tight places. An auxiliary 32 by 32 element image sensor with fixed focus lens is mounted directly in the manipulator assembly, pro- viding a view of whatever object is between the jaws. In addition to mechanical force sensors in the jaw faces, there are several infrared LEDs in one face with opposing phototransistors in the other face. These LED phototransistor pairs define beams of light between the two jaw faces. By scanning the manipulator up and down, and moving the entire vehicle forwards and backwards, these beams enable the robot to measure the height and depth of simple objects resting on the floor be- tween the jaw faces, as well as to determine when objects are correctly positioned for picking up. The widths of objects are mea- sured directly by counting the number of stepping motor pulses required to close the jaws on the object. A tactile sensor is mounted on the front of each jaw to enable the robot to sense and locate large obstacles such as walls. The robot can align itself accurately either parallel or perpendicular to the wall, after performing a simple series of maneuvers. This action is convenient for many of the tasks the robot might have to carry out. For example, a simple strategy of maneuvers allows the robot to "square itself off" from a corner in a room, thereby defining a precise origin for its navigational coordinates. The tactile sensors double as electrical contacts used for plugging into ordinary wall outlets for the purpose of recharging the robot's battery (more about this later). All electrical power and signals to and from the manipulator assembly are sent through folding ribbon cables which are not shown in figure 1. Auxiliary Senses In addition to the senses mounted on the manipulator and sensory turret assemblies, there are several auxiliary senses illustrated in figure 1. A pair of retractable feelers are provided in the rear of the vehicle and serve much the same purpose as the tactile sensors on the manipulator jaws. These rear feelers enable the robot to detect and square up from walls and corners if the manipulator is occupied with holding some object. In addition to the rear feelers, a pair of retractable wall-follower feelers located on the sides of the vehicle enable the robot to travel parallel to a wall by measuring the distance from itself to the wall. The rear feelers and the wall-follower feelers are both activated by double coil latching solenoids and contain "microswitches" consisting of movable masks and infrared LED-photo- transistor pairs. For all of the robot's varied and spe- cialized senses we have discussed so far, there is nothing to prevent the robot from accidentally running at high speed into a wall. To prevent just such a mishap, and to provide a "soft" broad area "sense of touch," the robot is equipped with a number of proximity detectors, several of which are shown in schematic form in figure 1. These detectors work on a simple, but elegant, principle. Infrared LEDs, amplitude modu- lated by a 20 kHz signal, send broad beams of light out from the robot. If a wall is nearby, some of this light is reflected back into phototransistor sensors located in the same module. The received signal is amplified and sent to a phase sensitive detector locked to the outgoing signal. The computer is notified if the signal exceeds some program- mable threshold. These proximity detectors are quite insensitive to ambient light condi- tions, not very sensitive to the color or texture of the reflecting surface, and have useful ranges extending from several centi- meters to perhaps one meter. With these detectors, the robot is free to travel at fairly high speed until a wall or other obstacle is encountered, and can then slow down and investigate it with caution. It should be mentioned that all of the senses interact with the processor through a vectored priority interrupt system. Robot Psychology Up to the present time, the environment of the robot has been intentionally re- stricted. The robot is permitted to roam freely within a large "playpen" constructed of plywood. As various sensory functions are added, and the robot nears completion, simple objects such as blocks of wood, and larger obstacles constructed from plywood will be introduced, and restrictions on the environment will be gradually relaxed. While this is happening, the complexity of the software will greatly increase. It is ex- pected to take several more years of effort before the robot reaches a form which can be considered "finished." Whether the robot will ever be able to cope successfully with a "general" environment, such as a typical research laboratory or home living room, is certainly an open question. The software will be developed as a hierarchy of modules. The bottom strata of 33 / Photo I: The feeding trough. This is a photo- graph of an ordinary wall outlet with a white con- crete block wall as a back- ground. The robot must be able to, seek out and plug into outlets such as this in order to periodically replenish its energy supply. this hierarchy will be occupied by hardware oriented routines for motor control, inter- rupt servicing, sensory data acquisition and the like. These routines will be relegated to EROM, where they will reside as powerful appendages for the higher level software. In the highest reaches of the hierarchy will be the planning algorithms: heuristic program- ming which will take into account goals, subgoals, behavior, the structure of pri- orities, and what may generally be called the "psychology" of the robot. If the robot is turned loose in a strange room, its immediate behavior will be to begin exploring the room in some systematic way, locating walls and the boundaries of objects with respect to a specific origin. As new features of the environment are en- countered, they will be incorporated into the world model. Particular interest will be shown in the positions and heights of rec- ognizable wall outlets, since these are crit- ical for survival. As the model of the room nears completion, the original intense curios- ity will subside, and will be replaced by an attitude of playfulness. The world model will be consulted to find out which objects (eg: wooden blocks) are small enough to be manipulated. The robot may choose to group together objects with similar charac- teristics, build simple structures by stacking blocks and so forth. When the energy supply nears exhaustion, the robot will interrupt its play, head directly for a convenient wall outlet, plug in, and recharge its battery. The recharging process might take several hours, during which all motors will be turned off, and all but one 4 K byte memory module will be powered down. After recharging, the robot will unplug itself and continue on its way. When the robot eventually "tires" of its environment, it will perhaps leave the room, wander down the hallway, and look for other rooms to explore. An interesting experiment would be to observe how long it takes for the machine to recognize a room in which it is arbitrarily placed, but has previ- ously explored. In addition to observing general behavior, one can give the robot general tasks to perform, such as picking up all small objects in a cluttered room and placing them in a box in the corner. (Mothers with small children, take note!) Many of the computing requirements for the robot will exceed the capabilities of its on board microcomputer. For example, the analysis of complicated scenes viewed by the image sensors can, at present, be done only by a very fast computer with lots of memo- ry. For this reason it is planned to equip the robot with a duplex radio telemetry link to a "black box" which connects with a tele- phone. The robot will then be able to initiate telephone calls to a large timeshared computer, and be able to communicate with it via the 2400 bps telephone lines. Control routines in the on board microcomputer will invoke large analysis programs stored on permanent disk files attached to the time- shared computer. A visual scene can be transmitted in less than a second, and the large computer can extract features of interest and send them back to the robot in several seconds. It will also be useful to take advantage of the off line disk files to store large data bases such as portions of the world model. When the robot has finished its transactions with the 34 large computer, it simply "hangs up the phone" and goes about its business, perhaps reinitiating the hookup at a later time. It is important to point out here that in no sense is the large computer "in control" of the robot. The robot is simply using the services of the large computer to perform calcula- tions that are too involved or too lengthy to do itself, much as you or I would use a computer to solve some problem. Also, it should be noted that if the large timeshared computer is busy, or if the computations are long, the robot is free to continue with other tasks until the requested analysis can be performed. This usage of an off line timeshared computer will permit access to a large amount of general robot planning software written in high level languages by other groups. The telemetry hookup will, as a side benefit, enable the robot to make calls to human researchers (hopefully not in the middle of the night) to report malfunctions or unusual conditions in the environment by means of coded audio signals. (The robot night watchman?) Finding Energy Sources It may be necessary for the robot to survive for weeks at a time without super- vision or interruption of its operation. To do so, it must manage its own energy supply. The battery voltage and current are sensed periodically and converted to digital form by a simple software driven analog to digital conversion system. This information, along with the battery's internal temperature (sensed with a thermistor probe), allows the state of charge to be determined. When this reaches some minimum level, the robot is obliged to renew its supply of energy by finding a wall outlet and plugging in. From the outset, it must be said that the robot will depend heavily on prepro- grammed strategies to accomplish this task. A standard wall outlet mounted on a white concerete block wall is shown in photo 1. The cover plate is of brushed stainless steel, and the receptacles are made of light colored molded plastic. From a distance of perhaps 10 meters (33 feet), with the turret image sensor focused on infinity, the "outlet ap- pears as a small spot. Any such spot, identifiable by the software as a few dark picture elements surrounded by a light field, is worth further investigation. If several spots are visible, a single one will be selected for closer examination. Using the motive system and the sensoiy turret in combination, the direction and distance to the spot is then computed by triangulation. After this is done, the robot Photo 2: Here is an oscilloscope display of the wall outlet shown in photo 1, as viewed by an image sensor. Theie aie a total of 1024 picture elements in this sensor, each with 16 levels of gray perceptible to the computer. The picture has 32 columns and 32 rows of elements. The outlet appears as a dark rectangle with a light background. The two receptacles can just be resolved at this range. Photo 3: As the robot moves closer to the wall outlet, more detailed features of the socket become apparent. This is an oscilloscope display of an individual receptacle, as viewed at close range by the image sensor. By applying pattern recognition techniques to images such as this and the image in photo 2, the robot can recognize outlets and determine the exact position and height of the electrical contacts, prior to its final maneuver to plug itself into the wall. 35 CONTROL \ MEMW 0~ (D7 C |_(SIGN BIT ) A3 £>■ 8080 ADDRESS ( BUS A2 O- L^ A0 O- s> AI5 |_^> (I/O SELECT) 74L04I4) 5 \ 6 l> > — H> 74LS04(4) 5 P\ 6 i> — •■> {>"t> ^ — ^S^ 12 13 \. > 1> ^O /z7 07 06 05 Q4 03 9334 02 01 E - 00 C A2 Al A0 Gl G2A G2B 74LSI38 Y7 Y6 Y5 Y4 Y3 Y2 Yl Y0 D07 D06 D05 004 D03 D02 D0I > LEVEL OUTPUTS P06 P05 P04 > PULSE OUTPUTS Figure 2: Output decoding logic used to create discrete (level) outputs and pulse outputs. This circuitry connects to an 8080 data bus through memory address space. The outputs are used to drive the various lines of stepper motor interfaces such as those shown in figure 3. Each stepper motor individually uses one discrete level output (for forward or reverse direction control) and one pulse output (to initiate one step sequence). Two discrete level outputs are also used to control the running versus standby, or off, status of the motors. drives to the approximate position of the spot, and with LED proximity sensors and the tactile sensors on the manipulator, it attempts to sense and recognize the exist- ence of a wall, which is hopefully associated with the spot. If this is the case, the robot moves out perpendicular to the wall for a fixed distance, sets the image sensor focus accordingly, and rescans for the spot which hopefully should now begin to have the shape of a wall outlet from this short range. By a series of small maneuvers, the robot positions itself exactly in front of the outlet at a precise distance away. At this time, the manipulator begins a vertical motion until the outlet is centered in the field of view of the auxiliary image sensor. The computer now has a straight on, in focus view such as that seen in photo 2. At this point, fairly simple pattern rec- ognizing algorithms are used to analyze the shape, size and topology of the image (feature extraction). These features are com- pared with known properties of wall outlets. If enough features match within certain error bounds, the recognition is successful. (In this respect, it is much easier to attempt to recognize a specific object than to try to analyze a general scene.) If the recognition is not successful, several more attempts are made at slightly different distances to over- come the granularity effects of the sensor. If a recognition is still not successful, the robot heads off to explore other spots. Assuming success at this point, the robot moves in for a high resolution image of a single receptacle (see photo 3). Again, the image is analyzed, and further recognition tests are made. If everything is okay, the exact height and distance to the electrical contacts are deter- mined, and the manipulator jaws close to the separation appropriate to the space between the two contacts. An attempt is now made to plug in, with the computer monitoring the voltage between the two plug prongs on the manipulator. Small searching motions are made until contact is established, whereupon the jaws open slightly to make good electri- cal connections. The computer then directs the recharging operation until the correct charge is reached. It is expected that the robot will normally be able to go about six hours between recharging operations. Stepping Motor Drives In order to execute all of the motions required of it, the robot must have precise control of the motors. This is accomplished by means of the stepping motor drive modules which constitute the interface be- tween the on board computer and the stepping motors. There is a total of seven 36 identical drives: two for the motive system (one for each wheel), three for the manipula- tor (grasp, lift and rotate), and two for the sensory turret (pan and tilt). Figure 2 illustrates the logic used to provide both pulse and discrete (level) out- puts from the computer. For simplicity, only eight pulse outputs and eight discrete outputs are shown. The scheme can be expanded to many more outputs, with the addition of suitable logic. Low power TTL provides the connection to the address, data and control buses of the microprocessor. Lines Afj to A3 select one of 16 possible outputs, with A15 acting as an input output select line. The sign bit, D7, is used to signify whether a one or a zero will be written into the selected discrete output line. Generation of the negative going output puls es and strobing of the data are done by the MEMW pulse. A 9334 addressable latch and 74LS138 binary to octal decoder provide the outputs to the system. If desired, one pulse output can be wired to the CLR line of the 9334 latch for simultaneous resetting of all the discrete outputs. Figure 3 shows an individual stepping motor drive circuit which is sufficiently sim- ple and general to permit many other non- robot applications where precise computer controlled motion is required. The circuit generates the 4 phase pulse sequence of high currents necessary to operate a Slo-SynTM bifilar type stepping motor manufactured by the Superior Electric Company. Inputs to the stepping motor circuit are connected as desired to the discrete and pulse outputs shown in figure 2. The forward or reverse input (FR) determines whether the motor shaft turns clockwise (FR ~ I) or counter- clockwise (FR = 0) as viewed from the shaft e nd of the motor. The forward limit input (FL) prevents the motor from moving for- wards (clockwise) if FL = 0. The reverse limit input (RL) prevents the motor from moving backwards if RL = 0. These inputs are generally not controlled by the com- puter, but are wired to simple limit switches to prevent excessive motion of the motor in a particular direction. In the case of the robot, these "reflex inputs" are independent to allow the computer to change the direc- tion of motion after a mechanical limit has been reached, and to establish "zero point" settings for the various possible motions. The pulse input (P) triggers on a negative going transition and causes the motor to ad- vance one step (1.8 degrees) in the direction specified_by the FR input. Thus, 200 pulses on the P input cause the motor shaft to rotate exactly one revolution. The maximum pulse rate is of the order of several hundred pulses per second without error, but this depends strongly on the motor size and the driven load. The clear input (CLR), when momentarily brought low, resets the count- ing flip flops to zero in case it is necessary to establish a standard shaft position whe n power is turned on. The off input (OFF), when brought low, removes all current from the motor windings, and frees the shaft except lor a small holding torque caused by the permanent magnets. If OFF = and standby (SBY) is brought high (SBY = 1), the shaft position is maintained, but at greatly reduced current. The off and standby inputs are critical for application in the robot, since they permit substantial power savings. In figure 3, series 7400 logic can be substituted for the 74L and 74LS series if desired, but at the expense of extra power. Resistance values in the drive circuits are typical, and might need to be optimized for a particular motor. The diodes in the emitter circuit of the 2N3055s should have a high surge rating, and moderate heat sinking for 2N3055s is advised. Connections to a Slo-SynTM stepping motor are shown in figure 4. In the robot, all motors arc powered directly from the main 6 V battery (+MV). Values for the resistance R can vary from zero lo several ohms and are selected to be compatible with the motor's maximum current rating and dynamic characteristics. Robot Control: Software Aspects The previous discussion dealt with several general and specific aspects of the robot system and how it is intended to operate, once completed. Of the three major subsys- tems, motive, manipulator and sensory tur- ret, only the motive subsystem is fully operational at present. The others are in various stages of detailed design and con- struction. Photo 4 reflects the current state of construction, which includes several tem- porary items such as the hand wired com- puter backplane and stepping motor drive modules, the crude "hand" made from sheet metal, and the cables leading to conventional power supplies. The 1 6 kg (35 pound) bat- tery is on board to maintain balance, but not used, awaiting completion of the power conversion electronics. The open area at the front of the robot will be taken up by the manipulator assembly when it is completed. The power conversion modules and the sensory turret will go in place above the computer. Software for the robot is created on the CDC-6400 computer using an 8080 cross assembler written in FORTRAN IV by Robert Mitchell. Object code for the 8080 is punched on 8 level paper tape by the 6400 37 Figure 3: Each stepper motor (there are seven presently incorporated into Newt's design) requires a drive circuit as shown here. This circuit contains counting logic and high current drivers needed to create the 4 step sequence of signals required by a •-^Wv-I HW^ a,0 ID CO _ ^ Q Q 6 6 -— • 1 -I c\i| o- ml m ° I 2 £!l in <-*A^ — 1 1 It* at it o o o § o =» "■ "- ^ 5 a: o o ° ° tr 2 ^ Lj. U- O^OO Q. LU i- — oj ro <}■ m< — Vv\ — l i ccm' 5 DC S S uj o - c£> £!£! OU llO u. tr _ o OU. _J li 1 LU =1 oa-i Z LL u - _ LU LU ^ If) a: stS O 5 Z a: =ui U 1 Ul 1 tt Z) Q. - _j „o 2Z ■Tq: oo W|_ SE: oo m2 — o U Si ■* ox OK- 5^1 gdE o u- o s -»■ f- a z Ol? URN OTC AIN < r- 1 ifi 1- S 5 X (J h Ll o - o - u vr in * m o o o (n a. 38 Slow-SynTM stepping motor. The inputs to this interface circuit include one level (FR) signal and one pulse signal (P) derived from an output port such as the one shown in figure 2. The forward and reverse limit inputs are used to override commands when a sensor detects that rotation of the motor has reached some mechanical limit of the motor's activity. The power control logic (summarized in the chart) is used to conserve battery power by allowing a "standby" mode for the motor when it is not being actively driven. This standby mode holds the motor shaft positon actively, but uses less current than the full torque state used to move the shaft from step to step. system, and is subsequently read into the robot's memory through an ASR33 Tele- type. A modest resident monitor program is stored in the first 666 bytes of EROM, which allows dumping and modifying of memory, punching and reading of paper tape, and branching to any memory loca- tion. The monitor is essential, because the computer has no conventional "front panel" with switches and lights. The current robot control program oc- cupies about 1000 bytes of programmable memory, not including table areas of vari- able size. It provides a method for exercising direct control of the robot for testing purposes. The coding, written by Dennis Toms, is very general, modular and compact. In order to start and stop the stepping motors without error, it is necessary to provide a profile of acceleration and de- celeration. This is most conveniently done by using a time-delay table giving the appro- priate time intervals between stepping motor pulses. The table is precomputed to yield a uniform acceleration over some time period. It is sufficient to have a single table for all motors. Each motor has associated with it a 14 byte motor status word (MSW) whose format is given in figure 5. The motor number and motor flag each occupy one byte; the other entries are two bytes (one word) each. The motor number byte is a fixed number which associates the MSW with a particular motor. The motor flag byte is a code which gives the current state of the motor (off, on, standby, accelerating, de- celerating, emergency stop, etc). The speed pointer word is an index which points to the current entry in the time delay table. The top speed word specifies the index to the delay table entry, giving the shortest per- missible delay between stepping motor pulses (maximum motor speed). The total steps word specifies the number of steps the motor is to execute. The acceleration, con- stant speed and deceleration counters speci- fy the number of steps to be taken in the acceleration, constant speed and decelera- tion phases of the motion, respectively. These counters are decremented appro- priately as the motion takes place, so that if necessary, at any time during the motion the state of the motor can be determined by CABLE FROM MOTOR DRIVE CIRCUIT (FIG. 3) o GREEN/WHITE o GREEN 1 VW /77 1 vw o RED o RED/WHITE Figure 4: Wiring and color code for the Superior Electric Slow-Syn TM bifilar stepping motors. The resistance R should be set (see text) to reflect typical operating characteristics of the motor's use. The wiring is shown by color designations, and is connected to the drive circuit of figure 3. The ground return to figure 3 can be via the robot's chassis or through an additional circuit in the cabling. interrupt handling routines. After all bytes of the appropriate MSW have been loaded with proper values, low level software takes over to carry out the motion. A pulse is issued to the selected motor causing it to advance 1.8 degrees. After a delay specified by the first entry in the delay table, a second pulse is issued, and the speed pointer is incremented to point to the second value in the delay table, and the acceleration counter is decremented. This process continues until the acceleration counter reaches zero. When this occurs, the acceleration phase is com- plete and the constant speed phase is en- tered. For this phase, the speed pointer is Figure 5: Format of the motor status word. There is one motor status word allocated to each stepper motor; an interrupt driven process updates and times the operations of the motors. The information includes motor identifica- tion, status flags and pa- rameters which specify the details of a cycle of opera- tion consisting of accelera- tion, constant running speed and deceleration. Motor Status Word (MSW) Motor Number Motor Flag Speed Pointer Top Speed Total Steps Acceleration Counter Constant Speed Counter Deceleration Counter 39 Photo 4: The robot Newt as it appears In the current state of construction. The hand wired computer backplane and stepping motor drive modules and sheet metal "hand" and power cables to an ex- ternal source are all temporary. held fixed, pointing to the time delay value corresponding to the top speed index, while the constant speed counter is decremented for each step. After the constant speed phase is completed, the speed pointer is decre- mented for each pulse, causing the motor to decelerate. The motor finally stops after a number of pulses have been issued equaling total steps. The motor is then placed in standby condition and this fact is stored in the motor flag byte. If unforeseen condi- tions arise which make it inadvisable or impossible to complete the motion as planned, the interrupt software stores the appropriate emergency stop code in the motor flag and the motor is halted. In all but extreme emergency cases requiring instant stopping of a motor running at high speed, 40 the software can recover the total number of steps actually taken, saving it for naviga- tional purposes. To exercise direct control of the robot, a simple interpretive command system was developed. The currently implemented com- mands are listed in table 1. Each command consists of the 1 byte ASCII character F, B, L, R, W, V or Q, followed by a 2 byte argument. In the case of the F, B, L and R commands, the argument is simply the num- ber of motor steps to be taken (less than or equal to 215 — 1), For the W command, the argument is the waiting time in units of 10ths of a second. For the V command, the argument specifies the new maximum speed of the robot in steps per second. For the Q command, the argument gives the 16 bit address of a sequence of commands stored in memory. Of course, many other commands, such as those appropriate for sensory turret and manipulator motion, will be added to the list of table 1. A program of robot activity consists of a simple sequence of these 3 byte commands, one after the other. For example, the following 15 byte se- quence (arguments shown in hexadecimal notation): F0A10 L000B B0010 W0066 B0002 would cause the robot to move forward 2576 steps (about 1.4 meters), turn left 11 steps (a few degrees), back up for 1 6 steps, stop and wait for 10.2 seconds, and then back up two steps. All accelerations and decelerations are taken care of automatically by the lower level software. Commands can be given to the robot in several different ways (command modes) which are specified in table 2. For the D mode, the robot simply executes the com- mands directly as they are entered on the Teletype. After each command is given, it is necessary to wait until it is carried out before entering another command. In the R mode nothing is executed, but each com- mand is recorded in sequence in the mem- ory. The N mode is a combination of the D and R modes. It permits a sequence of commands to be recorded as they are being executed. The P mode allows playback of any previously recorded sequence. In this mode, the Teletype cable can be discon- nected to allow the robot to roam freely. If the C mode is specified, the robot creeps along at a very slow pace under an F, B, L or R command for an indefinite number of steps. The motion is terminated by de- Table 1: Currently im- plemented commands. The demonstrations of opera- tion seen in photo 5 were created using an inter- pretive sequence including these seven basic com- mands. The command list is open ended in that many additions to the pos- sible operations are ex- pected as the software is developed further. ASCII Command Code F B L R W V Q Command Definition Move robot forward Move robot backward Rotate robot left Rotate robot right Make robot wait Set robot maximum speed Execute command sequence pressing any key on the Teletype, after which the number of steps taken is printed out. The T mode is a combination of the C and R modes. The E, L and O modes are "bookkeeping" in nature, and permit erasing, listing, and setting the origin of a command sequence, respectively. During the creation of a program of action for the robot (command sequence), any combination of modes can be used as desired. It is easy to think of many other useful modes which could be added to the list of table 2. Using the commands listed in table 1, it has been possible to do a number of pre- liminary experiments with the robot which serve to test both the hardware and soft- ware, and to prove some of the fundamental ideas. For example, one can place wooden alphabet blocks on the floor at random, and then program the robot (using the N and T modes) to "pick them up" by trapping them in its temporary "hand." After putting the blocks and the robot back in their initial positions, the playback (P) mode can be used to repeat the motions automatically. One such test, rather in the form of a demonstration, is shown in photos 5a to 5g. In the first frame, photo 5a, the robot is moving towards the nearest block from its Table 2: Command modes for the robot. The software presently implemented is used to try out various exercises of the robot's machinery. The software is structured into several command modes described by this list. Command Mode D R N P C T E L O Type of Operation Direct (simply execute the commands) Remember (record commands) Normal (combine D and R) Playback (run through a command sequence) Creep (directly execute motions at a turtle's pace) Teach (combine C and R) Erase List Set origin 41 (a) (b) (c) (d) Photo 5: A program of action executed by the robot. In this sequence, prearranged blocks are pushed to appropriate locations to spell out NEWT, which is the robot's name. (a) The robot's actions start with its movement from an initial position in the left corner of the playpen toward its first block. (b) As it closes in on the block, it maneuvers into position to entrap the block. Note that in this prearranged course, the robot is executing a fixed sequence of interpretive commands, and is not yet using visual inputs to find blocks at arbitrary positions. (c) After trapping the block and moving to the final position, Newt releases the block at its final position. (d) Here, a second block has been fetched and released next to the first block, and Newt is turning around in order to head for the third block. (e) Now Newt is ready to pick up the third block in the sequence. (f) A fter placing the third block and going to the fourth, Newt has picked up this last block. (g) Finally, the fourth block has been placed, completing the spelling of Newt's name, which is the end of the programmed sequence of approximately 100 interpretive motion commands. 42 (e) (f) initial position in the left corner of the playpen. In 5b, it is maneuvering into posi- tion for "picking up" the block. In 5c, the block has been picked up, moved and released in a new position. In 5d, a second block has been fetched and placed next to the first block, and the robot is turning around and heading for a third block. In 5e, it is about ready to pick up the third block. In 5f, the third block has been placed, and the fourth block is in the "hand." In the final frame 5g, the fourth block has been placed, spelling out N E W T, which is, of course, the robot's name. Approximately TOO 3 byte commands were required for this sequence. The program can be executed dozens of times without errpr, and the final positions of the blocks and the robot after the sequence is finished has a scatter of a few millimeters (±1/8 inch) in each direc- tion. Of course, when the robot is complete with all its senses, it will seldom have to execute such a lengthy sequence in a com- pletely open loop fashion. Perhaps it can eventually do tasks such as searching for and finding specific alphabet blocks in a random pile of blocks. This would require frequent closing of the feedback loops through the visual senses. As the robot goes through its motions, such as depicted in photos 5a to 5g, it seems to possess an almost uncanny grace and precision. Small children, when watch- ing it, are frightened at first, but this soon gives way to playful interest and warm curiosity. Even hardened computer experts are amazed to see a computer driving itself around on wheels! (g) Some Personal Remarks on Building Robots It will not be possible for one person alone to write the software for the robot. This is far too large a job. It is hoped, however, that as the hardware nears comple- tion, it will act as a focal point for many persons wanting to experiment with the robot by writing their own software. A 43 fascinating project would be to create a general "Robot Control Language" which would free each programmer from the de- tails of the hardware. What a rich experience it would be to work together, exchanging ideas in a highly interactive way. There are many tutorial possibilities for computer science classes and beginning student! KaiMMi;:.; tlUUUL cui M(JU lui :>. iiicic tiic piuu- lems in psychology, procedural languages, human-to-machine communication, func- tioning of parts of the brain . . . (Working with robots is certainly one way to gain a much greater appreciation for the complcx- SOME TERMINOLOGY Amp hour: A unit of energy for rating batteries. The battel y of NEWT, with its 84 Amp hour ca- pacity, can store enough charge to drive a steady 1 A load for 84 hours, or a 14 A load for six hours. The finite capacity of any practical battery means that any mobile robot must incorporate some pro- grams for seeking electrical outlets and recharging batteries periodically. Azimuth: As used here, an angle relative to a fixed direction in the horizontal plane. Cognition: As Webster has it, this is "the act or process of knowing, including both awareness and judgement." [Webster's New Collegiate Dictionary, 1976 edition.7ln the context of robots and artifi- cial intelligence, this term refers to programmed models which approximate the behavior of natural cognition. Degrees of freedom: The state of a robot mechan- ism (or any other system) can be described by specifying the current value of each variable para- meter. Thus, if a robot arm has seven joints, the position of its "hand" might be determined by the angular setting of each joint. Each such indepen- dently variable parameter of a system is called a "degree of freedom," so the seven jointed arm would have seven degrees of freedom. Heuristic: A heuristic computer program is one which starts out with an approximate method of solving of a problem within the context of some goal, and uses feedback from the effects of the solution to improve upon its own performance. Heuristic programming is one of the major contem- porary artificial intelligence techniques, and is a key to developing a cognitive robot. Manipulator systems: A generic term for any me- chanical device which a robot uses to directly ma- nipulate its environment. In the NEWT robot, this is currently (see photos) a simple sheet metal frame which can catch a block and slide it across the floor as the robot moves, with no active grasping; NEWT is intended to eventually have a much more flexible system of manipulation as described in the text. Most industrial robots currently in use consist of manipulators alone, without much in the way of sensory feedback or motive systems. Motive systems: A generic term for the mechan- isms used to convey the robot around its environ- ment. In the NEWT robot, this refers to the two drive wheels, balancing caster and stepper motors which propel the robot. Open loop, closed loop: A closed loop system is one which operates with feedback from errors. The feedback is intended to correct for the errors and thus approach the truth; an open loop system ig- nores error signals and operates on the sometimes naive assumption that no errors occur. The terms must be qualified by a reference to the time inter- vals involved in the system: NEWT, for example, is a closed loop system over long time periods, since it is intended to navigate using feedback from its sensors; however, due to the processing loads asso- ciated with sensors, NEWT operates open loop be- tween navigation sightings in a manner analogous to the dead reckoning method of navigation used occasionally by airplane pilots or captains of ships. Round off errors: In operations such as addition, multiplication or calculating transcendental func- tions, there is often some uncertainty in the least significant part of the result. In an extended calcu- lation in which these operations are repeated over and over, appreciable round off errors can accumu- late. In a digitally controlled vehicle guidance system such as that used for a robot, these numeri- cal errors are a major source of uncertainty in the vehicle position, and are just as important as more obvious sources of error such as step quantization or slippage in the drive mechanism. Senses: In a robotics context, senses are specialized peripherals which convert information about the environment into signals which can be analyzed by a computer or used directly by the electronics, as in a reflex. Sensory information may be obtained from devices as simple as a microswitch with a "feeler" arm, or as complicated as photoelectric imaging arrays with zoom lenses and pointing mechanisms. Stepping motors: An ordinary electric motor is characterized by continuous motion when ener- gized. A stepping motor uses a different design phi- losophy to achieve a motor which will move its shaft in small incremental angular steps on com- mand, and will actively maintain its position in be- tween each command. This type of motor is very well adapted to digital control of mechanical sys- tems, and is used by NEWT for all mechanical mo- tions in the robot. Step quantization: The stepper motors have a finite angular resolution built into their design. This means that any mechanical motion derived from the motor will have a certain minimum step size, so that any attempt to position to a finer tolerance must be approximated. Trajectory: The path of a moving object is its tra- jectory. In the case of the mobile robot, a trajec- ectory is planned before motion takes place, given a desired goal position and a world model which covers its course and objects which may be in the way. World model: A world model is the result of cogni- tion as implemented in robots. Formally, it is an information structure built up in the memory of the robot, based on both initialization and heuris- tic interaction with the environment. 44 ity and capability of the brain.) In addition, experiments can continue on sensor develop- ment and interfaces from sensor to com- puter. There are a great many practical spin- offs from this kind of work. Many people believe that as more and more advances are made in microelectronics, the prospects of mass producing robots will become attractive, and the prices of these hypothetical machines will plummet. (Let us hope we will have learned something from R U R.) If this occurs, many applications will open up. Besides such things as plane- tary surface exploration, such as already demonstrated by the Viking robots, one can envision undersea robots working on oil pipelines and well heads, coal mining robots, fire fighting robots, agricultural robots, robots on assembly lines producing cus- tomized articles, robot-like prosthetic devices, and many other types of robots for specialized and general service, doing jobs which are too difficult, too dangerous, or which arc otherwise undesirable for humans. I have been asked many times the ques- tions, "Why are you building a robot?", and "What will it do when it is finished?" The answer to the second of these questions is easy: I simply don't know what the robot will be able to do. This is the whole point of building the robot. Given a modest amount of hardware and a greater amount of soft- ware, thoroughly integrated to form a sys- tem, the idea is to find out just what such a system is capable of doing. The whole is likely to be far greater than the sum of the parts. The system is pushed as far as the available time, money and energy will allow in order to learn what can be done and what cannot be done; in other words, to explore the frontier of robot research, and to know and understand the problems involved. The necessary knowledge can neither be obtained by theoretical studies, nor by simulations using large computers. In regard to the first of the questions, I have been fascinated with robots since the mid-1950s and have constructed several robot devices prior to the one described in this article. The construction of such ma- chines presents many interesting challenges. A functioning robot is a most, curious blend of electronics, mechanics, computer design, computer programming and artificial intel- ligence. All these fields come together in the design and construction of a robot, and each must be explored in depth. Added to this are the challenges and excitement of locating obscure components in surplus store parts bins around the country, planning, building, and then replanning, rebuilding, and, of course, experimenting and learning. To me, About NEWT's Name and Family Tree The origin of NEWT's name is buried in an often quoted verse from Macbeth by William Shakespeare . . . In the cauldron boil and bake; Eye of newt and toe of frog, Wool of bat and tongue of dog, Adder's fork and blind-worm 's sting, Lizard's leg and howlet's wing, For a charm of powerful trouble, Like a he I I -broth boil and bubble. Newt I, the present robot's predecessor, was a light-seeking robot consisting of a large eye on a stalk rising above a motor driven platform. all these are fascinating aspects of endeavors which are perhaps best left to amateurs. I say this, because I strongly believe that the amateur computer enthusiast has a golden opportunity to participate in advances in the field of robotics. In fact, the amateur has several advantages over the professional. The research can be as abstract as the amateur wishes it to be and can be conducted without regard to immediate payoff poten- tial in the marketplace. There is no need to spend time writing elaborate proposals, no need to continually justify the direction of the work, and no need to get hard results every few months to write up and stick into quarterly reports. History has shown that precisely this atmosphere of freedom which surrounds the amateur is the atmosphere in which brilliant innovations and discoveries are sometimes made." Acknowledgment: The author wishes to express gratitude to Dennis Toms for his enthusi- astic help and interest in this project. 45 Photo I: The complete setup of the IBM Selectric Keyboard Printer, typing under the control of a KIM--1 microcomputer with a 4 K memory expan- sion. The Selectric inter- face described in this ar- ticle is housed in the equipment case in the center of this photo. Interfacing the IBM Dan Fylstra Hamilton Hall C 23 Harvard Business School Boston MA 02163 Photography by Carole Brock One of the most desirable forms of computer output is high quality typewritten text suitable for preparing letters, reports and other documentation. A word proc- essing system which speeds up the process of writing and revising text would be a very useful and feasible application for a small microprocessor based system, provided that a suitable hard copy output device can be found at a reasonable price. An ideal output medium for such a word processing system would be an IBM Selectric office typewriter. Selectrics are moderately expensive when compared to ordinary type- writers ($630 to $830 depending on the options chosen), but they are ubiquitous in the office environment, produce very high quality typed output, and can be used to print in many different type styles simply by changing the ball shaped typing element. Special typcballs are available for printing mathematical symbols and for the APL character set (see "What is APL?", by Mark Arnold, November 1976 BYTE, page 20). Unfortunately, the job of converting a Selectric office typewriter is made somewhat more difficult by the fact that (contrary to popular belief) the Selectric mechanism is entirely mechanical and not electronic in nature. The only use of electric power in an ordinary Selectric is for the motor which turns the drive shaft and various gears and cams. It is necessary to use solenoids to push levers and "bails" in the base of the mech- anism to achieve printing under computer control. Similarly, contact switches must be installed in order to use the keyboard for computer input. There is another alternative, however. A variety of computer terminals and other de- vices based on the Selectric mechanism are becoming available on the surplus market, often at a fraction of their original prices. These machines have their own built-in sole- noids or other means for mechanical control, and present some sort of electrical or elec- tronic interface to the outside world. The simplest, most commonly available, and of- 46 Selectric Keyboard Printer (Teaching KIM to Type) ten the cheapest of these are the Selectric Input/Output Keyboard Printers, Models 73, 731, 735 and others. They were manufac- tured by IBM, typically for use as IO devices in other companies' computer systems. As these systems have become obsolete, the Se- lectric Keyboard Printers have found their way into surplus channels. As a business school student and experi- enced user of computers, I have always wanted to build a word processing system around my own home computer. Hence I seized a chance to acquire a Model 73 Keyboard Printer for $450 from the Com- puter Warehouse Store in Boston. (These units were sold out in a few weeks; I have heard of prices ranging from $250 to $1500 through other channels, but as interest in the units increases, their typical prices are bound to rise.) Armed with a couple of old IBM manuals provided by the Computer Ware- house Store, I set out to accomplish what I expected would be a straightforward inter- facing process. This article is a report of my experience, and a detailed description of the interface which I built. Briefly, the interfacing proc- ess, while simple in principle, was not at all straightforward in practice. But it was suc- cessful, even for such a mechanically inept person and relative novice in electronics as me. For about $50 in parts (including such extravagances as a pretty cabinet and a $20 IBM connector to plug into the Selectric's peculiar 50 pin receptacle), and lots of labor, I produced the unit shown in photo 1. It's only an interface to the Selectric printer, since I'm content to use my existing ASCII keyboard for input. It has its limitations, but it works. This, of course, is hardly the last word on Selectric Keyboard Printer conversion. As a BYTE reader, I would be delighted to see information on mole comprehensive interface designs, as well as actual experi- ences with several of the units currently on the market. Since most of them are sold on an "as is" basis, these machines can bring 47 Photo 2: A closeup of the IBM Selectric ball mech- anism on its moving car- riage within the printer. The Courier 72 ball shown here is one of many balls available with the ' 'Correspondence ' ' coding arranaement. you a lot of grief (read on). So it's wise 10 report on problems, and how you overcame them. The Selectric Mechanism To appreciate what the interface must do (and what can go wrong), it is first necessary to understand basically how the Selectric mechanism works. The typing element is a ROO« IS. Kej&oora SecBon.wxi Character Select" Photo 3: This diagram, from the IBM manual number 241-51 59-3, shows how the various bails of the mechanism are connected in a typical case. The IBM manuals for the typewriter output unit are valuable reference materials and can be obtained by calling your local IBM office. golfball sized hollow sphere embossed with up to 88 characters, arranged in four hori- zontal rings of 22 characters each. Photo 2 illustrates the ball in its rest position in the mechanism. All the lower case or unshifted characters appear on the "western hemi- sphere," the side normally closest to the paper. The upper case characters are in corresponding positions on the back side or "eastern hemisphere." Pressing the shift key causes the whole typeball to rotate 180°, thereby allowing the upper case characters to be printed. Hence, the actual typing operation can select any of 44 characters, four half rings of 1 1 characters each, with five to the left and five to the right of the center or "home" position on each ring. A particular character is selected by causing the typeball to tilt up or down and rotate right or left; then the ball jumps forward to strike the ribbon and paper. These move- ments account for the peculiar "dancing" motion seen when the Selectric is typing continuously. The typeball is mounted on a carriage which moves across the page, as opposed to traditional pre-IBM typewriters where the paper carriage moves and the typing mechanism remains stationary. The actual tilting and rotation of the typeball is accomplished by an incredibly complicated system of latches, pulleys and levers which are driven by six moving "bails," or rods in the base of the machine. Although we need not understand the de- tailed mechanical linkages, we should appreciate the roles played by these six 48 II UCING THE COMPLETE CHALLENGER SYSTEM. OSI's DREAM MACHINE is a totally integrated computer system. Imagine a system complete with terminal, CPU, memory, floppy disk, software, and all the little necessities to make it work together immediately. Now imagine this complete system available not only fully assembled, but priced much lower than anyone else's kit. What you are dreaming of is OSI's "new" Challenger System! In the configuration shown above, the Challenger includes everything an end user needs for a complete small computer system. All you add is 110 VAC power and a desk to put it on. This fully-assembled system includes: HARDWARE: OSI Challenger 65 with 16K RAM, serial interface, system monitor PROM, and floppy disk bootstrap PROM. OSI Challenger single drive floppy disk formatted for 250K bytes storage per diskette surface. Stand-alone terminal and Sanyo monitor for 16 lines of 64 characters at 2400 baud (other terminal options are available). And all interconnecting cables! SOFTWARE: 2 diskettes containing over 100,000 bytes of software in- cluding OSI's powerful Disk Operating System with variable length sectors. 6502 DISK BASED RESIDENT ASSEMBLER/ EDITOR! A totally interactive Assembler/Editor which as- sembles up to 600 lines a minute and is completely compatible with MOS Technology's Cross Assembler format. This program also contains a powerful disk-based line editor with commands for general text editing. OSI'S EXTENDED MONITOR: A power- ful machine language debugging and utilities package including a Disassembler which is format compatible with the Assembler! OSI 6502 8K BASIC FOR DISK BY MICROSOFT: This powerful BASIC has all the features of Altair" 8K BASIC for the 8080 plus higher speed and disk storage. And it comes complete with a BASIC program library. DOCUMENTATION AND SUPPORT: We include over 600 pages of hardware, software, program- ming, and operation manuals. The Challenger is based on the well-proven OSI 400 system. The over 2,000 OSI 400s and Challengers now in use assure continuing hardware and soft- ware support for this system for years to come! EXPANDABILITY: The Challenger System can now be expanded to 192K of RAM and 16K of I/O and ROM. There are over 13 accessory boards including A/D, D/A, parallel and serial I/O, cassette interfaces, a dual drive floppy, a video graphics display, several RAM and PROM boards, and multiple-processor configurations. APPLICATIONS: The Challenger system is complete, fully assembled and configured so that the Disk Operating System can be booted in immediately on system power-up. Even a relatively inex- perienced operator can have a complex BASIC program on-line just seconds after the system is turned on. The ease of use, high reliability, and large library of standard BASIC applica- tions programs make the OSI Challenger System the first practical and affordable small computer system for small business, educational institutions, labs, and the personal computerist. PRICES: Challenger System, complete as stated above with terminal and monitor As above without terminal. Specify RS-232 or 20ma loop and baud rate $2599°° / RS-232 or 20ma loop $2099 IMPORTANT NOTE: One of the most important features of the Challenger System is that it is not really "new". OSI has been delivering the basic circuitry of the Challenger since November 1975 and the floppy disk since June 1976. The only thing new is the total integration of the components as a complete, simple to use, fully-assem- bled, small computer system. For more free information and the address of the OSI Computer Dealer or representative in your area, write to: OSI; Dept. S; Hiram, Ohio 44234 or enclose $1.00 for the full OSI catalog which contains kits from $134 and fully assembled computers from $439. I Ohio Scientific Instruments 11679 Hayden Street, Dept. S, Hiram, Ohio 44234 Circle 40 on inquiry card. moving bails. Two of the bails, referred to as T1 and T2, are moved or not moved in one of the four possible combinations to provide the proper degree of tilt necessary to select one of the four rings. Three more bails, called Rl, R2 and R2A, are moved or not moved in various combinations to provide 1, 2, 3, 4 or 5 increments of counterclockwise rotation, normally to select one of the five characters to the right of center on the given ring (as seen from above). Finally, when the bail named R5 is moved, the typeball rotates 90° clockwise so that the counterclockwise movement provided by R1 , R2 and R2A can select one of the five characters to the left of center on the ring. (When none of the rotate bails is involved the center position on each ring is selected.) To print a particular character, then, we need to know its position on the typeball (which can vary from ball to ball), as well as what combination of bail movements— T1, T2, R1, R2, R2A and R5 - will take us to that position. Figure 1 presents the "coordi- nates" of each character in terms of the six bail movements for the two most common character arrangements, the ones used on the "BCD" and "Correspondence" encoded typeballs. The Keyboard and Print Magnets In an ordinary Selectric typewriter, the keys are mechanically linked to the various bails, as shown in photo 3. Striking a key depresses an "interposer" bar with a particu- lar combination of fingers which arrest the motion of some of the bails. The interposer also moves a "cycle bail" which releases the drive shaft and allows it to turn 180°. On the drive shaft are a number of cams which control the series of movements necessary to print a character, as selected by the tilt and rotate bails. At the end of the cycle every- thing is back to normal, waiting for another key to be struck. In a Selectric Keyboard Printer, the tilt and rotate bails are also mechanically linked to six electromagnets. The magnets pull down armatures which otherwise would arrest the motion of the bails. To print a character, some combination of the six magnets must be energized, the particular tilt and rotate "code" for that character as found in figure 1. In addition, something TYPEHEAD LAYOUT T — #s = Tilt latches active R— #s = Rotate latches active - Upper C -1 — Lower Case - -1 +1 Til -5 -4 -3 -2 + 1 +2 +3 +4 +5 -5 -4 -3 -2 +2 +3 +4 +5 t T2 T2 ■ ■ ■ ■ @ > ■ ■ ■ V 1 3 5 7 8 2 4 6 9 t BCD TYPEBALL ■ ■ ■ t % \ ■ ■ ■ /•v^ 4tf / T V X Y ■t S U W Z , 1 CODES ■ ■ ■ I >'' ; ■ ■ ■ ] A J L N P Q - K M R S 1 ■ ■ ■ 7 a > ■ ■ ■ [ * A C E G H S. B D F 1 1 1 H < CC ,n o o o o o o o o o o o o DC g o o o o «- o o o o «- <- o o o o «- o o o o «- t- h- o X ^ o o r- «- «- o o «- t- t- <- o o <- >- r- o o *- >- t- «- oc or - o <- o «- O o «- o «- o «- o <- o - O o «- o >- o *- [ - & # $ Z @ % V ) ( ] 3 7 8 4 z 2 5 6 9 ^RESPONDEIMCE X U D C L T N E K H B X u d c I t n e k h b 1 TYPEBALL CODES M V R A O " I S W m V r a o i ' i s w 1 G F . ? J + P Q Y 9 f ; ■ / i = P q v - 1 1 ROinR KEY UJ O 1 1 I 1 J = Home Position of Ball J = Tilt Rotate Command Bits Figure 1: The graphic fonts of the BCD and Correspondence typewriter codes. The location of each character on the Selectric ball is described by a unique combination of case, tilt and rotate commands. The upper case versus lower case choice is made by a mechanical latch set up before printing, so the chart is broken down into two main sections for each code. The home position of the typeball is flagged in each case by a color shading. The binary command information for each matrix position is given by the rows in the center labeled "ROTA TE" and the columns at the right labeled "TILT. " Thus, to form the Correspondence code for the letter S, the tilt command bits are 01, and the rotate command bits are 0110 for a tilt rotate command code of 010110 to be used in the format described in figure 7. 50 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 Will/am 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 HANDBOOK I *'• "" I ! 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 3 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 □ 20715 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 NAME please print ADDRESS CITY STATE ZIP o c EJ630 □ 21398 □ 21035 □ 21168 •Include sales tax where applicable. Canadian prices slightly higher. & Howard W. Sams & Co., Inc. 4300 West 62nd Street Indianapolis, Indiana 46206 Circle 282 on inquiry card. 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 Keyboard Tilt Rotate Bails Drive Shaft Keyboard Lock Solenoid Upper and Lower Case Shift Magnets Photo 4: A detail of the underside of the Selectric Keyboard Printer with housings removed. The overlay shows several of the key points such as the location of various mag- nets, the switch contacts and interconnection receptacle. T2 „ ■ T1 ' R1 __ R Check R2A R2 Check R2A Print Magnets 50 Pin Receptacle must actuate the "cycle bail" to start the printing process. Hence a trip mechanism is provided which moves the cycle bail when- ever any of the armatures is pulled down. However, there is one character on each hemisphere which should be printed when none of the magnets is energized, for the code 000000. Hence the trip mechanism is connected to a seventh magnet, called "check," which provides an odd parity function for the other six magnets. It is energized whenever necessary to ensure that the total number of magnets energized is odd. Thus the check magnet is energized on the code 000000, and this serves to actuate the cycle bail. (I didn't realize this when building my interface, so I can't print those two characters yet. Don't make the same mistake!) Besides the print magnets, there are a number of other magnets and armatures inside the Keyboard Printer which control special functions such as space, backspace, tab, carriage return, index (ie: advance paper without returning), ribbon shift, and upper and lower case shift. Many of these magnets Control Magnets (tab, backspace, index, space, carriage return) can be seen in photo 4, which exposes the underside of the machine and outlines the positions of many components. The upper and lower case shift magnets are latching, and hence they lock the machine into the new case until the opposite magnet is ener- gized. Note that the operator cannot shift the machine back into lower case when the upper case magnet is latched! By Murphy's Law this is bound to happen whenever you are testing the interface, but it can be remedied by fooling around with the shift cam at the end of the drive shaft. No electric power is provided for any of these magnets inside the Keyboard Printer, but the coil connections are brought out to the 50 pin receptacle at the back of the machine. The magnets are rated for 43 to 53VDC at 125 to 300 mA, applied for at least 10 ms in order to pull down the armatures and cause the desired action. Switch Contacts The other major addition to the basic Continued on page 133 52 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 < PL) board I've put together. . . excellent parts Worked right ulf without trouble shooting." , .|RG Cambridge, Mas KMM Bella Vista, Ark. "... high quality dm uinrnt.it ion . . components f good engineering & complete WP Seattle, Wash. Col. DWW Santa Maria, Calif. SK-L Boston, Mass. alpha 1 When we combined our highly praised /PU board and ciur 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 I. By adding a CRT terminal and or teleprinter you will have a complete computer system. KIT: $769 ASSEMBLED 8, TESTED: $1039 alpha 2 By adding a 716 memory module and our PACKAGE A software to the alpha 1 we created a second XITAN system, thea/pha2. Thus, a complete and extremely powerful micro-computer system emerges well worthy of you who are operating at Ihe 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 BK Basic, the Text Output Processor, Ihe Zapple Text Editor and the Relocating Macro-Assembler. Add your own I O device and GO... with the most powerful and flexible micro-computer package ever offered. KIT: $1369 ASSEMBLED & TESTED: S1749 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. Circle 82 on inquiry card. ■ Write for descriptive brochure on the XITAN alpha series ^^1 TECHNICAL and system software. When you ask at your dealer, say "ZY-TAN." ^^ff| ^DESIGN ORDERING INFORMATION: Send check, money order or BankAmericard, Master Charge- current number and expiration date. Shipping is usually made via UPS or UPS Blue Label. Specify other arrangements if you wish. Prepaid orders are shipped postpaid. RESEARCH PARK BLDGH 1 101 STATE ROAD PRINCETON. NEW JERSEY 08540 (609) 921-0321 Joseph J Carr Bioelectronics Laboratory The George Washington Univ Medical Ctr 901 23rd St IMW Washington DC 20037 Interfacing With an Analog World Last month we discussed transducers and amplifiers. These are necessary portions of a signal processing system which result in scaled voltages of, for example, to 10 V corresponding to the original physical parameter being measured. But how can we convert these voltages into numbers inside a computer for computation, and use numbers from computations to control external voltages? In this article we'll see how some of the more common conversions are accomplished. We'll start with digital to analog conversion, even though this may seem at first glance to be backwards. The reason for starting with the output process is that digital to analog conversion is simplest, and that many analog to digital input conversion techniques require a digital to analog conversion as part of the process. There are several techniques for making a digital to analog converter (often abbrevi- ated DAC). In most cases these converters use some form of binary weighted current or voltage summation that is controlled by the digital word presented to its inputs. A typical example is the classical R-2R technique which is outlined in figure 1. The active element A1 is an operational amplifier of unity gain inverting follower configura- tion. Although an amplifier of the 741 general purpose family will suffice in many experimental situations, it is often better to select one of the more costly premium grade integrated circuit operational amplifiers. We have shown the digital inputs of the circuit in figure 1 as mechanical switches, a configuration which is most useful in a tutorial situation when teaching the concept of the digital to analog conversion. In practical digital to analog conversion applica- tions the switches are electronic, and are controlled by some form of n bit binary data source such as a counter or computer output port. A precision reference voltage source is required as well, and for many commercial and industrial system designs this will be a precise 10.000 ... V. The accuracy of the converter is largely dependent upon the precision of the reference voltage. Although any precise voltage regulator circuit may be used for the reference, I have found in laboratory instrumentation experience that commercial products such as the REF-01CJ or REF-01HJ (for severe applications) work quite well. In a homebrew experimenter's situation, where relaxation of tolerances is quite normal, a simple zener diode reference circuit will often prove quite adequate. Now let's consider the circuit in figure 1 in more detail. What happens when various combinations are presented to the digital input? Suppose that all the input bits are in the low state, which means that they are connected to ground by the electronic or mechanical switches shown. The value of the output voltage is given by the product li R. When all bits are grounded through the switches, the input current to the amplifier is zero, as can be deduced by tracing, noting that there are no nonzero inputs to the amplifier's feedback node. (In practical circuits, though, there may be some output voltage under these circumstances due to offsets in the operational amplifier itself. These undesirable offsets may be nulled out through an offset adjustment potentiometer arrangement, R|\HJLL ' n tn ' s circuit. See some of the tutorial design books on operational amplifiers for further elabora- tion of this detail.) If the most significant bit of the word is 54 vcc(+) r null f 20K •2R •2R ASN AS3 As2 i SI \ \ V \(MSB) I ► \ O V O \ O T3 "I" |"0" "l" "o" "l" "0" "l" |"0' I set to a logical 1 value, then the output voltage (assuming Rq is arbitrarily set) will be approximately one half the reference voltage, as can be verified with the operational amplifier gain formula shown in figure 3 of the first part of this article. (The remaining resistors in the R-2R network have no effect in this case since both ends are effectively tied to ground. One end is the real ground at the left, and the other end at the feedback node of the amplifier is its "virtual ground" for the signal.) The analysis of the next most significant bit and the remaining bits of the digital word is a bit more complicated, but the result is what might be expected. The bit controlled by S2 in figure 1 will contribute one fourth of the reference voltage to the output of A1; the bit controlled by S3 will contribute one eighth of the reference voltage. And for switch, or bit, n (where n starts at 1) the contribution will be E^r£p/(2 n ). Let us assume that we have an 8 bit digital to analog converter of the type shown in figure 1. The word at the input terminals is 11001011 and the reference voltage is precisely +10.000 VDC. What is the output voltage? The following calculation, which is easily generalized, shows how the value is derived: E = I0X II I \ 2 1 2 2 2 3 2 4 2 5 2 G 2 7 2 8 / -RCI- V Fraction Based on a Digital Word Output = (10/2) + (10/4) + (10/32) + (10/128) + (10/256) = = 5 + 2.5 + 0.3125 + 0.078125 + 0.0390625 " 7.93 V i-i rrr Rz -wv- 15V LOW PRECISION EXPERIMENTER'S VOLTAGE REFERENCE CHOOSE R z FOR +5V DROP ._l PICK ONE REFERENCE SOURCE 'E REF = +10.000 VOLTS HIGH PRECISION LABORATORY QUALITY REFERENCE + I5V t. I 1 6 PRECISION MONOLITHICS REF-OI 1 IOOK 5 io-turn : ' TRIM ft, IV L. But use of amplifiers and resistors as shown in figure 1 is hardly optimal in an age of integrated circuits. A number of manu- facturers offer convenient low cost 8 bit integrated circuit digital to analog converters that contain almost all of the electronics, except possibly the E^rfp supply and the operational amplifier used for output voltage conversion and level shifting. I have used those by DATEL, Analog Devices and Precision Monolithics with good results in laboratory instrumentation. Experimenters and designers will also find the parts in the Motorola MO 408 family, as well as several similar parts made by Signetics, to be quite useful. For my examples in this article I have selected the Precision Monolithics DAC-08. I found this product easy to obtain in low quantities (ie: one) through local distributors. Figure 2 shows the basic circuit for using the DAC-08, along with two voltage conversion schemes for its current outputs of pins 2 and 4. The integrated circuit itself contains the electronic switches, the resis- tance ladder, a reference amplifier and the current output buffer that drives pins 2 and 4. Two types of input are required to make Figure 1: A classical R-2R network digital to analog converter implemented as a circuit diagram with discrete parts and opera- tional amplifiers. The essentials of any digital to analog converter are present: a reference volt- age (two alternatives shown), a switched net- work that creates a binary weighted current con- trolled by the switches, and buffering and conver- sion amplifiers to create a voltage output which can drive other circuits. 55 Rref - r-^ 5K l4 DIGITAL INPUT LINES : REF o- o- o- + I5V A C2 .01 DAC-08 Bl B2 B3 B4 B5 B6 B7 B8 C3 .01 HhHh' /JF 5K -I5V CI .01 io TO OUTPUT VOLTAGE CONVERSION 10 OUTPUT VOLTAGE CONVERSIONS CONDITION FULL SCALE HALF SCALE ZERO BINARY CODE I I I I I I I I I 100000000 000000000 -OUT -9.96 - 5.00 0.00 FROM DAC-08 -Oe OUT ;Rp -VW — I I R N m NEGATIVE OUTPUT 4B CONDITION (+1FULL SCALE (+1ZER0 (-)ZERO (-)FULL SCALE BINARY CODE I II I I I I I 10000000 01 I I I I I I 00000000 ; 0UT + 9.96 + 0.04 -0.04 -9.96 2 - BIPOLAR OUTPUT 4C Figure 2: While the circuit of figure I could be constructed, it is usually more convenient to re- place it with a monolithic integrated circuit device such as the DAC-08 part by Precision Monolithics, which is used for this illustration. The integrated circuit contains all the components of the R-2R network of switches and buffering amplifiers. It still requires an output conver- sion circuit (two variations shown) and a reference voltage. Because the R-2R network is an integrated circuit, this form guar- antees the highest possible accuracy with none of the extra bother of hand wiring a circuit as in figure J. this digital to analog converter do its work. One is the reference current, Iref thru pin 14. This current can be generated by a precision voltage reference (see figure 1) and a precision low temperature coefficient resistor in the ideal cases. (For low precision applications, ordinary resistors will work just fine.) For the configuration shown in figure 2 and a reference potential of 10 V, this resistor should be precisely 5000 ohms, a number which is derived from the docu- mentation of the DAC-08. The second major type of input to the converter is the 8 bit digital word that is applied through pins 5 to 12. In the notation of figure 2 and throughout this article, the bits are numbered from 1 (most significant) to 8 (least significant). Bit 1 of the DAC-08 package is wired to pin 5, with bits 2 thru 8 wired to pins 6 thru 12. The logic levels at the inputs are the usual TTL levels, with a low voltage (approximately volts) sig- nifying a logical 0, and a high voltage signifying a logical 1. One of the output conversion circuits shown in figure 2 is a simple unipolar conversion which uses two resistors and no operational amplifier. With this conversion, the formulas discussed in figure 1 apply except for the fact that the voltage is negative with respect to ground. When the input word is binary 00000000, then the output of the converter system is 0.00 V. Half scale (—5 V output) is given by an input word of binary 10000000, and full scale output occurs when the input word is binary 11111111. The output under full scale conditions will not be 10 V, but approxi- mately 9.96 V. This slightly unexpected condition is due to the mathematics of the switching network. Evaluating the formula for the conversion given earlier, with a reference of 10 V and a binary 11111111 digital value, we find: L out 10 X (255/256) = 9.96 V Also shown in figure 2 is an output circuit which uses an operational amplifier as a level shifter and voltage conversion device. Wired with the components shown, this amplifier connected to the DAC-08 gives a gain of 2 and shifts the generation of output levels to a symmetric bipolar range of —9.96 to +9.96 V. Note that it is impossible to get an exactly zero voltage in this case, since the 256 possible states are split symmetrically about zero. If the level shifting reference resistor R|_5 were adjusted slightly off the 5 K value, the voltage range of the conversion could be pulled slightly (ie: 0.04 V) positive or negative so that a true zero would be possible for one of the binary states. There are other possibilities for the output conversion circuits and as in any design situation, a little bit of imagination always comes in handy. [Readers looking for more examples of typical applications should consult the applications notes of the various manufacturers. Of particular use is the excellent specification sheet and applica- tion notes on the MCI 408 DAC, published by Motorola . . . CH] 56 Analog to Digital Conversions With the concept of a digital to analog conversion covered, it is now possible to consider the opposite case: conversion of measured voltages from the sensor preampli- fiers into numbers which can be processed and used by a computer. Of the many techniques which are available for per- forming analog to digital conversions, we will only consider the details of integration, counter (or ramp), and successive approxi- mation methods here. These are the simplest and most universal methods. One of the basic parameters to be considered when talking about any analog to digital conversions is speed. This is not a major consideration in the output problem already discussed, since digital to analog current output conversions essentially take place at the switching speeds of digital logic, and are then limited only by the final operational voltage output amplifier's response. In the input case, however, some form of approximation cycle which con- verges upon the digital value is required; as a result, the conversion can be somewhat slower. Integration Methods At the slow end of the analog input conversion spectrum is the integration method. This is the type of conversion which is typically used in digital panel meters and similar instrumentation. These ANALOG I — ■>_ INPUT l — " *~ EREF O- can be useful in cases where you might mount the digital panel meter or multimeter in a system, both as a readout mechanism and as a measurement conversion device. Many such instruments offer parallel digital outputs on their rear panels, along with control and strobe lines. The appeal of this approach often is affected by two character- istics: relatively slow conversion speeds and binary coded decimal (BCD) encoding directly taken from the displays. The relatively slow conversion rates become a problem when looking at signals other than "slowly varying DC levels" of very low frequency sources. The coding character- istics may in fact be optimal for many computational schemes in a computer program, but it can be a nuisance if one attempts to use such a meter in a binary oriented hardware system. The typical "dual slope" integrator used in these digital panel meter circuits is illustrated in figure 3. The dual slope conversion circuit consists of five basic sections: an integrator, a comparator, a control logic section, a binary counter, and a reference current or voltage source. The integrator consists of an operational amplifier connected with a capacitor in a negative feedback loop. This capacitor is charged by the operational amplifier output voltage. The input to the integrator is taken from either the analog input or the reference source. The com- parator is made with an operational amplifier that has an open feedback loop. START E7> COMPARATOR V rh _TL OVERFLOW CLOCK XZ>- —I 1— [ — ^ EOC L- ^ (END OF CONVERSION) BINARY COUNTER o -o -o -o -o -o -o Figure 3: Analog to digital conversion by the dual slope integration method is often performed by slow devices such as digital panel meters. This method works through an analog integrator and a counter. The integrator has switch- able inputs. It first inte- grates the incoming signal for a specified time inter- val. Then it counts the time necessary to linearly discharge the charge just accumulated with a known slope. The result is a count which is proportional to the voltage which drove the integrator during the charging time. ) BINARY OUTPUT 57 ANALOGi — ^ INPUT I * START O CLOCK O 8 BIT DIGITAL TO ANALOG CONVERTER Figure 4: The ramp or counter method of analog to digital conversion is straightforward: A counter is initially zeroed and then allowed to count upwards until its binary code through a digital to analog conversion creates a volt- age greater than or equal to the input voltage. BINARY COUNTER O>E0C (END OF CONVERSION) ■Ol -o -o -o -o -o -OJ ) BINARY OUTPUT This makes its gain very high. If the two input voltages are not equal, then the operational amplifier output is high or saturated. In this case the comparator is ground referenced and uses just one active input. When a START command is received the control circuit resets the counter to 00000000, resets the integrator to V output (discharges C), and sets switch S1 to the analog input. The analog voltage creates an input current to the integrator which causes the integrator output to begin charging capacitor C. This means that the output voltage of the integrator begins to rise. As soon as this voltage rises a few millivolts above ground the comparator output snaps high. The high comparator output causes the control circuit to trigger the counter, which begins counting clock pulses. The counter is allowed to overflow and this outputs an overflow bit. This bit changes the state of switch S1 . The graph in figure 3 shows the integrator charging during the interval between START and the overflow of the binary counter (to to t-| ). At time t-] the switch changes the integrator input from the analog signal to a precision reference source. Also, at time t-j, the counter has overflowed and again it has an output of 00000000 (maximum count + 1 is the same as the initial condition). It will, however, continue to increment so long as we have a high comparator output. The charge accumulated on capacitor C during the first time interval is proportional to the average value of the analog input voltage between tg and t-] . Capacitor C is discharged during the next time interval (t^ to 12). When C is fully discharged the comparator will see a ground condition on its input and again it will change state to make its output low. This causes the control circuit to stop the counter but does not reset the counter. The binary word at the counter output at the instant it is stopped is proportional to the average value of the analog waveform over the interval Xq to t|. An end of conversion (EOC) signal is generated to let the microprocessor or other system know that the output data is stable, valid and ready for use. The speed limitations are based on the requirement for an accurate and stable analog integrator, and the need to average the input signal over a long cycle. Counter (Ramp) Analog to Digital Conversion A counter or ramp type analog to digital conversion circuit is shown in figure 4. Here we find a voltage comparator, a digital to analog converter with voltage output, a binary counter, and necessary digital control logic. Here is how the conversion works: When the START command is issued by a control system (for example, a computer output port) the control logic resets the binary count to 00000000 and enables the clock input to the counter, which begins counting upwards at the clock rate. Since the counter outputs set the voltage level out of the digital to analog converter, the DAC generated voltage to the comparator will begin to rise. As long as the analog input voltage is greater than the reference voltage generated by the digital to analog con- version, the state of the comparator output will enable counting via the control logic. However, when the rising reference level finally equals or exceeds the input voltage for the first time, the comparator output state will switch and stop the counter. At this time, the output of the counter can be read by the computer or other system, and represents the value of the analog input voltage. If the counter and digital to analog converter are both eight bits, the number in the counter will represent from (00000000) to 255/256 times the digital to analog converter's reference voltage level. The conversion time of this algorithm is proportional to the voltage being measured. Both the dual slope integration technique and the counter technique discussed thus far take far too long for many applications. On the order of 2 n clock cycles are typically required where n is the number of bits involved. Conversion time becomes critical in an application when the frequency 58 COMPARATOR R3 IK SUCCESSIVE APPROXIMATION SHIFT REGISTER UNIT-, OUTPUT LATCH AND CONTROL LOGIC START O- 2.25 TTL CLK O- ANALOG -CD INPUT (O-IOV) NOTE: NOT ALL PIN CONNECTIONS ARE SHOWN FOR DAC-08. REFER TO FIGURE 4. > BINARY OUTPUT SERIAL OUTPUT EOC (END OF CONVERSION) response must be high and a faithful reproduction is required. (For reference, consult textbooks in electrical engineering concerning the "sampling theorem" and Nyquist's criterion that says we must have a sampling rate of at least twice the highest frequency that is to be recognized, if a faithful reconstruction of the signal is to be achieved.) Successive Approximation In programming and software design, we often find use of a "binary search" stratagem instead of a flat out sequential search when trying to speed up the process of finding an item in a table. This same approach is just as applicable in hardware, where the "successive approximation" technique of analog to digital conversion provides a much higher speed of conversion than the sequential counting methods discussed so far. The successive approxi- mation technique typically requires only n+1 clock cycles to make an n bit conversion, and its hardware is no more complex than that of the dual slope or counter methods. The successive approximation converter, shown in figure 5, consists of a comparator, control logic, a shift register with output latches for this form of conversion, and a voltage output digital to analog converter. When a START command is issued to the converter circuit, it loads a binary 1 value into the most significant bit of the shift register, which in turn sets the most significant bit of the output latch. This sets the output of the digital to analog converter to half scale. In true binary search strategy, if the input voltage is less than the reference output provided by this half scale setting, the most significant bit is cleared from the latch on the next clock pulse; otherwise, the most significant bit is left unchanged at the next clock pulse. Then the internal shift register of the successive approximation register unit is shifted so that its single high level bit is opposite the next most significant bit. Again, the output register is modified, this time so that bit 2 is set to 1 for the trial measurement. This bit has a value of one fourth of the total voltage range, which is added to the half range or zero value still latched from the first measurement. At the next clock pulse, if this new trial value to the comparator is greater than the input value, the 1 bit is latched in the successive approximation register; otherwise a bit is inserted at the current position. This process continues with successively less significant bits until the shift register overflows indicating that the last bit has been tested. Some forms of this conversion have control logic to detect an equality condition and Figure 5: The successive approximation method, here illustrated with a practical circuit, uses a binary search strategy. The most significant bit is tested first, then the next most significant bit, and so on down the line until all n bits have been tested. If at each stage the contri- bution of the selected bit causes the trial approxi- mation output from the converter to exceed the input value, the bit will be stored as a zero. A fter all n bits have been tested, the result is an n bit binary representation of the volt- age of the input. Continued on page 62 59 Ask BYTE BRITISH COMMENTARY As one of the relatively small number of personal computing addicts in England, I'm very impressed with the rate at which the field is growing in popularity on the other side of the Atlantic. I've been subscribing to BYTE for the past six months and I promise it's always made fascinating reading. I wish I knew where in this country one could lay hands on any issues before last August's. (Hint, anybody?) The advertisements are fascinating, too. Anybody considering purchasing any sort of system is almost forced to import it from the USA. My query is about TV displays that most of these systems use. Naturally, they're designed for American TV standards, which differ from British ones. We have 625 interlaced lines per frame, repeating at 25 Hz. Is it, in general, possible to modify an American TV display device to work with a British TV? Or is all the timing generation usually performed in- side a special chip? Might I have more success if I tried to modify a TV instead? I know rather more about TTL logic than about televisions, but I'm game to learn if necessary. Otherwise, if the answer to all these questions is no, then the temptation to come and live in the States is going to be almost unbear- able .... I look forward to every issue of your magazine; I'm only sorry that I dis- covered it so late. Best wishes for the successful future that you deserve. Guy A Burkill Corpus Christ! College Cambridge CB2 1 RH ENGLAND Are there any other British readers who have experienced the problems of interfacing American video generation logic to European television designs? Some firsthand knowledge of the subtle- ties to be found would be the best way to answer Guy's query on that subject. With regard to back issues of BYTE, there are none left. However, much of the editorial content is now available in a book titled Best of BYTE edited by David Ahl, publisher of Creative Com- puting. This book contains reprints of numerous articles from the first 16 issues of BYTE, September 1975 thru Decem- ber 1976.' SACRED BUSES I am very curious about something. What is sacred about the Altair bus as opposed to others? Would it not be possible to install a peripheral designed for the Altair scheme to, for example, a Digital Group or Southwest Technical Products bus? I am confused on the issue since it seems to me that, functionally, lines must correspond between the sys- tems pretty well. Perhaps the answer lies in the fact that the Altair bus was based on the 8080 processor, which has some unique IO methods. Is that the problem? Is it really a question of 8080 versus other processor compatibility? I under- stand why a manufacturer would want to make plug compatible cards to the Altair bus, but why couldn't a simple conversion be available for any product? J C Chirigos 1601 Kentucky NE Albuquerque NM 87110 The main issue is one of plug-in compatibility. Whether you call it the Altair bus, or, as used by non-MITS suppliers, the S-100 bus, the key to the wide availability of the peripherals is nominal compatibility at the hardware level. Even here, there are occasional clashes between various manufacturers about the definitions of pins not origi- nally assigned meanings in the Altair definition of the bus. At the detail level, a 100 pin bus surely works, and in principal one could talk to any other similar computer at the memory and bus interface level sim- ply by simulating all the signals which would have been present on the bus in its Altair implementation. This is a quite workable procedure, as demonstrated by many products True, the IO structure of the 8080 is unique, and there are some 8080 specific features of the Altair bus as a result of this and other characteristics of the 8080. But for the most part, the partic- ular selection of the lines present on the 100 pin interface of the Altair bus is just a reflection of discretionary choices on the part of the designer(s) of the first Altair within the framework of the gen- eral design of a microprocessor with 16 address bits and eight data bits. ■ SOME TERMINOLOGY I have a problem. First, let me give you some idea of my background. I have spent 15 years in the computer industry as an applications programmer. I am fluent in BASIC, FORTRAN, PL/I and APL. Now that I have left the industry, I am getting interested in recreational computing. I have never been involved in logic design or in the details of hardware, nor do I feel that I want to get involved with it now. I would not mind building a kit provided that the instructions were of the "put tab A into slot B" type. However, when I read all the ads and literature furnished by the various manu- facturers, I have the following problem: What are you all talking about? I thought I knew what "read only memory" was. Now I come across "pro- Continued on page 67 60 BUY YOUR COMPUCOLOR8001 FROM THESE DEALERS. ARIZONA Phoenix: Phoenix Byte Shop West 12654 N. 28th Dr. (602)942-7300 Temps: Tempe Byte Shop East 813N.ScottsdaleRd. (6021894-1129 Tucson: Byte Shop of Tucson (602)327-4579 2612 E.Broadway CALIFORNIA l-awmtale: Bjyte Shop of Lawndale 16508 Hawthorne Blvd. (213)371-2421 Orange: Computer Mart of Los Angeles 625 W. Kalefla. No. 10 (714)6331222 San Diego: The Computer Center 8205 Ronson Rd. (714)292-5302 San Francisco: The Computer Store 1093 Mission St. (4 15) 431 0640 Son Jose: Amco Electronics 414 S. Bascom Ave. (408)998-2828 San Jose: ByleShop 155 Blossom HHJRd. (408)226-8383 Von Nuys: Computer Components 5848 Sepulveda Blvd. [213)786-7411 CONNECTICU r Windsor Locks: 'Hie Computer Store 615 S. Main SI. (203)627-0188 FLORIDA Coral Gables: SunlW Computer Stores 1238AS. Pixie Hwy. (305)661-6042 Tampa: Microcomputer Systems 144 S. Dale MabryHwy. (813)879-4301 GEORGIA Atlanta; Atlanta Computer Mart 5091-BBufordHwy. (404)455-0647 HAWAII 1 lonolnlu: Compact Computers P.O. Box IW96 (808)373-2751 ILLINOIS Champaign: The Numbers Racket 518 E. Green St. (2)7)352-5435 Kvnnston: Itty Bitty Machine 1316 Chicago Ave. (312)328-6800 Pork RMgE Chicago Computer Store l57TalcoltRd..Ilwy.62 (312)823-2388 INDIANA Indianapolis: 1 lome Computer Shop 10447 Chris Dr. (317)894-3319 MARYLAND Itockville: Computer Workshop. Inc. 5709 Frederick Ave. (301)468-0455 MASSACHUSE ITS Burlington: IhcComputer Store 120 Cambridge St. (617)272-8770 MICHIGAN Troy: Genera] Computer Company 2017 Livernois (313)3620022 MINNESOTA Minneapolis: Cos! Reduction Services 3142 Hennepin Ave. So. (612)822-2119 MISSOURI Kansas City: Computer Workshop of Kansas City 6903 Blair Rd (816)741-5055 NEWJERSEV Iselin: The Computer Mail 501 Route 27 (201)283-06(X) NKW YORK East Meadow: "Hie Computer Mart of Long Island 2070 Front St. (516)794-0510 New York: The Computer Mart 3 14 5th Ave. (212)279-1048 OHIO Columbus: Compulervtsion 894 W. Broad St. (614)228-2477 SOUTH CAROLINA Columbia: Byte Shop 201 8 Greene St. (803)771-7824 TI-IXAS 1 louston: Communications Center 7231 Fondren (713)774-9526 Richardson: 'Hie Micro Store 634 S. Central Expressway (214)231-1096 WASHINGTON Seattle: Retail Computer Store 410 NE 72nd St. (206)524-4101 WISCONSIN Bcloil: Austin Computers 1835 Northgate (608)365-6096 Walertown: General Precision Electronics 207 Rhine St. 1414)261-8148 Comrj Circle 38 on inquiry card. 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 2 IK 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 Continued from page 59 VOLTAGE 63 62 60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 4 2 01= stop the conversion ahead of overflow, but the worst case time is the n+1 clock pulses for n bits mentioned earlier. Figure 6 shows the sequence of voltages presented to the comparator by a 6 bit successive approxi- mation algorithm, as compared to a 6 bit counter conversion algorithm to show the time savings of this method. In the circuit of figure 5, the comparator is shown as the Precision Monolithics CMP-01C device, although faster conversions may be possible if a higher speed Advanced Micro Devices AM686 comparator is used instead. The Advanced Micro Devices AM2502 integrated circuit, which was designed for this successive approximations conversion application, contains everything needed for the logic described verbally above, except the digital to analog converter and the comparator. Other companies go even further with integration of the input conversion. Precision Monolithics, for example, makes an AD-02 circuit which contains all the complete 8 bit analog to digital conversions. It is relatively expensive, but its cost can often be justified by its utility and ease of use. It has a respectable conversion speed and has several input options that can accomodate analog voltage ranges of to 5 V, to 10 V, -2.5 to +2.5 V, -5 to +5 V, and -1 to +1 V. Software Approaches . . . As noted earlier, the software of a microprocessor can often implement the algorithms of digital to analog conversion. This is especially so with the successive approximation algorithm, since its inherent speed makes up for some of the slow facts of life concerning programmed execution. To rig a software approach to the problem, we need a digital to analog converter attached to an output port, an input comparator which drives one input line, and the software of successive approximation (or other methods for that matter). In this case, the successive approximation shift register is variable in a program, the output latch is an output latch connected to the DAC device, and decisions are made based on the single bit input. A previous article in BYTE [see "Microprocessor Based Analog I Digital Con- version, " by Roger Frank, page 70 of May 1976 BYTE J discussed both the ramp (counter) and successive approximation methods described here, but showed how to implement them in software. Whether the approach taken is that of pure hardware or software aided designs, adding analog input conversions to a per- sonal system can expand its capabilities to cover many interesting real world control and measurement problems." REFERENCE DAC OUTPUT VOLTAGES INPUT VOLTAGE REFERENCE DAC OUTPUT VOLTAGES SUCCESSIVE APPROXIMATION METHOD BECOMES READY COUNTER METHOD BECOMES READY Figure 6: Comparison of the successive approximation method with the ramp method of conversion for a 6 bit value. (Six is chosen for purposes of this illustration.) The successive approximation method takes a mere six cycles of testing to arrive at the best value, where the ramp method has to count up to the number which matches the input and causes the conversion to terminate. The ramp takes 44 cycles here, versus six for the successive approximation method. 62 rwAOfi/d Computing Notional uwipulM umfmmc^ Jum 13-16, W7 jyson/sketch pad / Personal Computing & the It's happening at the Dallas Convention Center Big Plans for "Big D" Innovation and relevance are key words for the 1977 National Computer Conference, the first NCC ever held in the Southwest and the year's largest gathering anywhere of data processing users, computer professionals and computer hobbyists. More than 25,000 people are expected to gather in Dallas for a conference program of more than 100 sessions and the year's largest display of computer hardware, software, sys- tems and services— plus the first National Programming Contest and a series of out- standing Professional Seminars. Largest Computer Exhibits Ever More than 300 major hardware and software companies will pack 1,143 booths into the Dallas Convention Center's modern 200,000-square-foot main hall — sur- passing the all-time exhibit record set at the 1969 Fall Joint Computer Conference in Las Vegas. Additional space for the Personal Computing Fair & Exposition is on the next level for a totally separate exhibit by commercial producers of Personal Computing hardware and software. For computer professionals and hobbyists with a need to know, the 77NCC offers a unparalleled opportunity to make close-up evaluations and comparisons of the latest in computer hardware and software, systems and service . . . with many of the offerings scheduled to be shown for the first time. Headquarters Hotel Personal Computing headquarters for the 77NCC will be at the Holiday Inn in downtown Dallas. Low-cost housing also will be available at Southern Methodist University. For information about NCC's Deluxe Travel Service, which can take care of all travel and housing reservations for you in one neat package, contact 77NCC, c/o American Federation of Information Processing Societies, Inc., 210 Summit Ave., Montvale, N.J. 07645, 201/391-9810. Registration Information! For registration at the conference: ] Full four-day registration for program, exhibits, Proceedings $75 [~~J Student registration, as above, without Proceedings $10 | | One-day registration, program and exhibits only $25 ~J Four-day registration, exhibits only $25 ~J One-day registration, exhibits only $10 ~J Proceedings only: members $30; non-members $60 ] Professional seminars, each $30 Checks should be payable to 1977 National Computer Conference for the exact amount only. Purchase orders will not be accepted. Great Computer Roundup during the 1977 NCC, June 13-16 Personal Computing Fair & Exposition The fast-growing field of Personal Computing will share the national spotlight in June, when the 77NCC will recognize the dynamic growth and promise of the field with the Personal Computing Fair & Exposition. In addition to the commercial exhibits of Personal Computing manufacturers, dynamic displays and demonstrations of non-commercial individual and group-owned projects will be featured at the Dallas Convention Center. The success of other hobbyists can give you new ideas for your own systems, "how-to" tips and dozens of clever solutions to everyone's problems. You might even find a joint-venture partner with a kindred spirit. More than 100 non-commercial small computing systems are expected, featuring hardware and/or software implementations, games, recreation, music, art, amateur radio, scientific, miscellaneous and general applications. Prizes and awards will be given in all categories. Personal Computing Program Two full days of panel sessions on June 15 and 16 will provide an in-depth look at Personal Computing: Past, Present and Future; The Future of Retail Computer Stores; Hardware of the Computer "Hobby" Market; and Personal Computing Software. Leaders in the Personal Computing movement will appear on each of the panels to let you know the latest developments in the field, point out trends you'll need to be aware of — and answer your questions. Special Interest Sessions In addition to the panel sessions, special interest groups will be able to gather informally for "how-to" programs on building a kit, debugging software, using assembly language, I/O interfaces, cassettes and disks, software standards and so on, into the night. If the special interest group you want is not organized when you get there, we'll do our best to help you get one started! National Club Congress Is a national personal computing association needed? If it is, what does it do, how does it do it, and who does it? To find out what's happening— pro and con— club reps from across the nation will gather to exchange ideas and discuss issues related to club activities and programs. Make certain your club sends an official delegate who can speak for you and vote vis-a-vis a national organization, establishment of national hardware/software standards, a national program library and interchange, educational seminars, meetings, ad infinitum. 1977 NATIONAL COMPUTER CONFERENCE Dallas Convention Center • June 13-16 77NCC: The Great Computer Roundup A record-setting roundup of the latest trends and developments in computing and data processing will be offered at the 1977 National Computer Conference, the first ever held in the Southwest. As a vital learning experience for people whose business, professional or personal activities relate to information processing technology and techniques, it will encompass 89 technical program sessions, 11 professional sem- inars, the largest computer exhibit ever held and many other special events. Timeliness and pertinence are key elements in the program, which will analyze latest developments and applications in computer science and technology, cost- effective computer usage, management concerns and public policy issues. A series of briefings and panel discussion will cover practical, up-to-date information important to effective management and professional development. Throughout, emphasis will be on personal interaction and the exchange of ideas. Underscoring the importance of NCC as a learning experience, the professional seminars will offer topics from system development and database technology to networking, planning and computer usage. Each will be covered in a comprehensive, one-day mini-course conducted by a nationally recognized authority. 77NCC will pay special attention to the fast-growing field of Personal Computing. Included will be two full days of program sessions, a Personal Computing Fair, a Personal Computing Exposition, a National Club Congress, plus additional activities of particular interest to hobbyists. Special plenary sessions will feature a keynote address June 13 by Mark Shepherd, Jr., chairman and chief executive of Texas Instruments Inc.; the AFIPS Presidential Address June 14 by Dr. Theodore J. Williams; and a special address June 15 by A. Douglas Murch, senior vice president, Prudential Insurance Company of America. Other highlights will include a Pioneer Day Program honoring members of the computing group at Los Alamos Scientific Laboratory; the first NCC National Programming Contest; the annual NCC Computer Science Film Theatre; special tours and an all-conference reception. Be in Dallas June 13-16, when the 1977 National Computer Conference will offer computer specialist and generalist alike a most outstanding opportunity to attend the year's most complete computer roundup. 1977 NATIONAL COMPUTER CONFERENCE Dallas Convention Center • June 13-16 Circle 248 on inquiry card. FRANKLIN ELECTRIC Co. "^ altair - IMSAI - S-100 BUS COMPATIBLE Check these features . . . ACCESS TIME - 450ns No wait states FULLY BUFFERED - for BUS reliability LOW POWER CHIPS - for long life and low power drain MEMORY WRITE PROTECT - Hardware, 2K segments POWER REGULATION - 4 Regulators for reliability ADDRESS SELECT - 1K boundaries - Dip. Switch LED MEMORY SELECT INDICATOR - Visual Check LED MEMORY PROTECT INDICATOR - Visual Check BATTERY BACKUP PROVISION - Saves memory during power failure OUTPUT DISABLE - Switch selectable for transparent loader application P.C. BOARD - Quality G10 material with solder mask both sides and silkscreen SOFTWARE - Diagnostic provided To Order Price Name . City _ Address State _Zip KIT - With IC Sockets S239 KIT - Without Sockets S225 Solder chips directly to PCB ASSEMBLED - With Sockets $295 ASSEMBLED - Without Sockets S280 Enclosed is S Check □ Money Order O Bill my BankAmericard □: Master Charge O: Card No. „___ Exp. Date Interbank No. , Signature ' Handling and Postage $2.50. California Residents add 6% sales tax. FE FRANKLIN ELECTRIC Co. 733 LAKEFIELD ROAD WESTLAKE VILLAGE, CA 91361 (805) 497-7755 Continued from page 60 grammable read only memory" (or worse yet, erasable programmable . . .). If it's read only, how can it be program- mable? What is static memory? Is there any other kind of memory other than "random access memory?" Is it possible for you to help me out of my dilemma? Something between "binary numbers are made up of zeros and ones" and "when the static EPROM is connected to the DMA using a 3P+S 10 module." Al Weiss POB 942 Alleghany CA 95910 Short of the tutorial article which may be inspired by your questions, here are a few notes on terminology and concepts in computer design and imple- mentation. Random Access Memory: For the pur- poses of discussing the present state of technology, a random access memory means some sort of reference to semi- conductor memory parts (excluding serial access devices such as shift regis- ters). A magnetic core memory is a form of random access memory, but is not used in modern small computer technol- ogy due to various manufacturing and economic considerations. A read only memory (ROM) is a random access memory part, as is an ordinary program- mable memory. The read only memory is distinguished from the fully program- mable memory by the fact that it is non- volatile (the information is retained when power is removed) and moderately difficult or impossible to alter once it has been set up with a program, A commonly used acronym found in technical jargon and advertising is RAM, referring to random volatile program- mable semiconductor memories. Since both read only memories and volatile programmable memories are random ac- cess devices, this term is misleading and ambiguous. In BYTE's editorial content, we do not use the term RAM intention- ally, because of this ambiguity, and refer instead to "programmable" and "read only" memory. Programmable empha- sized the volatile, user program oriented nature of parts which are often called RAMs in conventional engineering jour- nals, and read only characterizes the nonvolatile, permanent nature of the other type of random access memory part. (Of course, "programmable" is still not an optimal choice, since even read only memories are always programmable in the sense of "program it only once. ") Static Versus Dynamic: In brief, there are two types of volatile programmable memory parts, characterized by the in- ternal design of the basic memory cell of the circuit. A static memory typically has a cell with sufficient active transistor elements to create a true flip flop mem- ory register, A dynamic memory typi- cally has a smaller memory element size which is achieved by replacing the mem- ory flip flop with a capacitor which stores an electric charge. As a result of this smaller unit bit cell size, at the limits of technology the largest dynamic parts have historically had about four times as many bits as the largest static memory parts. At the present time, the largest static memories readily available are 4 K bits per chip, whereas the largest dynamic memories are 16 K bits per chip. There is a subtlety of design with dynamic memories, however. This is the fact that since the storage elements are capacitive in nature, sensing and support electronics on the chip tend to drain the charge with time, losing any information stored in the cell. The dynamic memory chips must thus be refreshed period- ically, an operation that is commonly performed by cycling through a refer- ence to the low order bits of the address inputs to the chip. Static memory chips have no such refresh requirement, and are often easier to use in prototype, small or homebrew circuitry; the manu- facturing economies tend to make dynamic memories the most attractive in larger systems products. ■ 67 Ill II I 9t)CUt it! If you could design your own computer system from scratch, you'd do it right. You'd want... The Ideal Model of a Published Software Product When we talk about publishing software at the present state of technology, we are talking about a product which is akin to the detailed design of the rolltop desk men- tioned earlier. It is a product which serves as the starting point for the home software craftsman, not a recipe which will fit with- out thought into every conceivable system. This will change a bit as the systems in the marketplace become more refined, but the nature of the computer as an intellectual amplifier tends to require a certain level of technical familiarity on the part of its user. (This is the element which distinguishes the general purpose computer from the applica- tions oriented dedicated computer such as a 4 function calculator or oven controller.) In order to make a software package which is optimally configured for the customer's standard or customized use, there is a certain minimal level of documentation which is required. This level of documenta- tion is not necessarily needed by all users all of the time, but is in many respects akin to the reference books for integrated circuits: When a question needs to be answered, it is good to have the information needed to zero Continued from page 9 number of existing computer science text- books. But I'd really like to somehow buy the design in a completely documented form so that like the plan of the hypothetical rolltop desk, I could implement it literally with custom modifications. Tutorial and "how to" plans books for specialized fields such as those mentioned above are widely available already, and at prices well within the range of an individual's budget. They are marketed in large quantities because large numbers of individuals use the information; outlets range from mail order book services to retail stores. Drawing out of this parallel between individualized computing and indi- vidualized "anything else," it should be obvious what the solution of the software dilemma is: Publish detailed plans and tutorial information for software, on a scale commensurate with the size of the market. Publishing ideas is an activity which has a long and distinguished history, and yields both personal and financial rewards to those who engage in the practice, as well as real benefits to those who purchase the products. Let's turn now to the application of this concept to the software designs of the computing world. Computers with more convenience and power for your money plus flexible memory and I/O expansion 68 published in BYTE, printing technology also covers machine readable representations as well. Varieties of Machine Readable Representations User convenience demands that a soft- ware product be made available in some form of machine readable representation. While it is certainly possible to take an object listing in printed form and type it into a processor by hand, this is a long, tedious and error prone process. To com- plete the functional definition of "adequate documentation" given above, we need a form of machine readable object code at minimum, along with machine readable re- location information. Fortunately there exist several technologies which can be employed for this purpose, which I'll review here. ROM Releases This is the most expensive medium pre- sently available for reproducing software; however, it has utility in the convenience of use provided by built-in software. In terms of practical products, however, this form of software will most frequently show up in manufactured products preloaded at the in on the answer. Here is what I consider to be adequate documentation: • Users' manual textual materials con- cerning the "standard" uses and limita- tions of the software. Here is where we find such information as standard 10 patch points, relocation tables, etc. • Complete object code, preferably machine readable along with machine readable relocation information. • Complete source listing of the package including source language and gener- ated object code for each statement. • Program logic manuals and tutorials on the design of the product are an excellent option. The idea is to include enough information to allow the user to do routine field altera- tions, including relocation. The idea of a published software product is to compile all this information together in a comprehensive book form, to be sold at prices characteristic of books, as opposed to the past history of software prices for applications and system software packages. The technology of print- ing covers all the portions of the "complete" package except machine readable code, at least in the minds of most people. However, as we have demonstrated with experiments Software and superior documentation to get your system up and running fast with practical applications and a well-organized user's group (more) factory, rather than user integrated software. A ROM program is difficult to achieve in a relocatable form, and has a certain per- manence which is both its advantage (con- venience) and its disadvantage (difficulty or impossibility of patching). This method has been successfully employed in several desk top calculator packages in the form of ROM software options, and in such personal com- puting products as built-in BASIC interpre- ters and monitors. For end user markets, this form of software can dispense with all but the user oriented manuals in most purchases, since modification is impossible. Magnetic Digital Media Releases As more and more floppy disk products, large and small, come to market, the use of the magnetic diskettes for software releases is becoming common. Similarly, the Philips and 3M digital tape media with standard digital recording techniques can be con- sidered as vehicles for release of machine readable data. However, the price of the media and the costs of digitally recording and verifying each copy tend to make this method of delivery limited. It is used, quite naturally, as the vehicle for delivery of floppy disk operating systems from the Service from experts at the factory and through a nationwide network of stores - real help if you need it Instruction ursc \ computer operation and programming to help you get more from your system, whether you're an expert or a novice manufacturers of drive interfaces, but there the writing and testing of a diskette full of data falls out of the expected quality as- surance tests prior to packing and delivery. The same is true for the other forms of hardware which have related operating sys- tem software products that can be recorded. Paper Tape This venerable medium has been in exis- tence longer than the modern electronic computer. No survey of distribution media would be complete without mention of it. Very reliable means exist for reading paper tapes into computers at quite economical prices, well under $100 for the peripheral. As a distribution medium, however, paper tape in my opinion suffers from several disadvantages: It is inconvenient to store, bulky, prone to create a messy tangle due to manual handling with inexpensive peri- pherals. Whether my opinion is supported in the marketplace is another question alto- gether. Audio Media Releases One of the most useful and practical vehicles for the distribution of software is likely to be the use of audio recording media. Here we can identify two principal 70 methods of distribution; recording on tape cassettes or other magnetic tape audio me- dia, and recording on the audio equivalent of a read only memory, the phonograph record. The technology of recording on tape results in a product with a fairly high unit cost for each copy of the information. To this must be added the cost factors assoc- iated with normal printing of the rest of the documentation. Cassettes, as a recording method, are a logical choice for custom soft- ware, or small volume situations, but the high degree of manual labor associated with each copy argues against the practicality of large production runs in this form. The technology of making phonograph records is, on the other hand, a well estab- lished mass production technique which can be adapted to the software distribution without much variation from standard methods. To illustrate the point and to test the concept, I made a test in the spring of 1976 at the suggestion of David Fylstra, an associate of mine who is also a homebrew record maker. He arranged for the cutting of a test record with the audio format of my personal monitor program, circa March 1976, to test out this method using a master record cut on standard recording industry equipment. Depending upon size and quan- ...but you don't need to design your own because our systems* are coming this Fall: icijrc ones jcifi/e been waiting for. 1 he Healh oo. benlon MarDor, Ml PTsserrtlj mortals that are by far the best and most complete in the world. You'd want illustrated, step-by-step instructions and a "we won't let you fail" pledge. tity of pressing, the costs per record run well under $1, which is hard to meet with the cassette duplication method. Machine Readable Printed Media As a final option, there is the use of machine readable printed formats for object code and relocation information in the release of software products. This is a form which was suggested to us at BYTE by Walter Banks of the University of Waterloo, and with which we have been experimenting in the pages of BYTE. In this method, an optical reader is used to scan printed mate- rials which have been formatted into a series of bars corresponding to the digital informa- tion. Because of constraints in the design of the layout and the method of scanning, it is possible to simplify the scanner designs to the point where a very inexpensive peri- pheral is used together with some adaptive software which takes care of the speed tolerant input scan. The beauty of this method is that it "comes for free" in so far as actual production costs are concerned. Why is this true? The reason is that the 200 to 300 pages of documentation needed to support a systems software product with perhaps 12 K bytes of object code require only an additional five to seven pages of 71 Circle 151 on inquiry card. Articles Policy BYTE is continually seek- ing quality manuscripts writ- ten by individuals who are applying personal systems, or who have knowledge which will prove useful to our readers. Manuscripts should have double spaced type- written texts with wide 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." machine readable bar code copy, hardly affecting the economics of the book at all. These 200 to 300 pages of documentation are required by the product concept, whether or not there is any other form of machine readable code made available. Economics of Publishing With media established, and a product concept outlined, what about addressing the problem of rewarding the producers of software products? Here, as in any area of publishing, the answer is quite simple. The publishing house judges whether the par- ticular software package is in its view a readily marketable product with a certain minimum press run potential. If so, the publisher puts up production capital, where the author puts up intellectual capital in the form of his or her work. It is a risk situation in which both parties are making a specula- tion that readers will purchase the product; as in numerous parallel situations through- out industry, authors and publishers work on an agreed upon split of any rewards from success in the marketplace. Applied to the software publishing var- iant of this business, the author's intellectual capital is in the form of the program, its source code, its object code, and its docu- mentation; the publisher's contribution is the marketing organization, the technical editing of the manuscripts, and the technical detairs of book preparation. Other than the specialized content, the method of operation and the details of the arrangement are not much different from publishing any item. Rewards to authors now become a small amount (in absolute terms) of royalty re- covered from orders of magnitude in sales for successful software book products. Proprietary Products The problem of protecting and keeping software proprietary is no longer a major "new" issue when publishing of software is contemplated. How many people extensively copy from books? Very few, and if they attempt to make a regular practice of it they would tend to be prosecuted by publishers under copyright law. In publishing software, an implicit or explicit license to copy the copyrighted materials for personal use and modification is part of the bargain; the price is low enough so that if you want your own user documentation, you buy your own copy of the book (even if you may have been using object code derived from your neighbor's computer). Since the docu- mentation is a necessary component of use, no sales tend to be lost in the long run due to the fact that object code can be swapped around. Conclusions What I have endeavored to show is that there is quite some potential for the sale and distribution of software using conventional publishing techniques with modifications to suit this type of product. By publishing software along with machine readable code, we end up with a way to make the products widely available, yet retain the desirability of compensating authors for their efforts in proportion to the success of the product." 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 WINDSOR • GARLAND. TEXAS 75042 ♦Assembled and tested, $119.95. Add 5% for shipping. Texas resi- dents add 5% sales tax. BAC/MC available. PerCom 'peripherals for personal computing 72 GET THE Wf man.. SEALS,,, ORDER FORM KIT ASSEMBLED I I 4KROM ~| 8KSC-Z 68KSC 8KSC [Write in each box the quantity of each part required] KIT □ ASSEMBLED WWC 88 EXT 68EXT-S KIT AS SEMB LED J 68EXT-L I I J 68WWC [ I I BBUC I I J ASSEMBLY AND OPERATING MANUAL $4.00 NAME. PLEASE PRINT OR TYPE ADDRESS. CITY . STATE . ZIP. SEND CHECK • MONEY ORDER • CODS ACCEPTED • CREDIT CARDS SEALS ELECTRONICS, INC P.O. BOX 11651 KNOXVILLE, TN 37919 MOST ORDERS SHIPPED WITHIN 10 WORKING DAYS I Ml __. iff:,!,,. 1 ..! i i u jjjjjjTjXlij. 1 1 SkE.* 1 I I I 1 5SV I I II I I [READ ONLY MEMORY] Will accept up to 16 ea. 1702-A or 5203 EProm Providing up to 4096 Aiords of non-volatile memory for Boot Loads to Complete Programs. Programming Available at Factory for $3.00 per EProm when accom- panied by binary formated tape. I Each 1702-A has its own Vgg clocked for Low Power Consumption. I Will work with the weakest power supply based S-100 buss computer. I Switched Selected Address in 4K Blocks. I Switch selected wait states so that even the slowest 1702-A can work in your system. 0-8 wait states. Solder Masked on both sides of PC Board. Component Screened on Component Side of PC Board. Kit Price: . . $119.00 Assembled Price: . . .$179.00 [STATIC MEMORY CARD FOR SWTPC 6800] 8192 Words of Static Memory Access Time: 500 nsec. (250 nsec on request) Memory Chip 91L02 APC Battery Standby Address Selected 8 Ea. SPST Dip Switch Low Power All Lines Buffered. All IC'swith sockets I Solder Masked on both sides of PC Board. Assembled Price: . . .$359.00 Kit Price: $269.00 [STATIC MEMORY CARD] ALTAIFr^lMSAI^and S-100 buss compatible. Access Time: 250 nsec max. Ziloa Speed Compatible up to 4 mhz. Memory Chip: 2102LHPC or 2102AL-2 Battery Standby :>1 .5 to 4 volts < Address Select: 8 ea. Spst. Dip Switch. Wait States: None Current Reg.: Less than 200 ma per 1K 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 Kit Price Assembled Price 8KSC 8K Static Memory Card 500 nsec WWC Wire Wrap Card 88 EXT 88 Extender Card 68 Ext S Extender Card (Small) swtpc eaoo com„.„i,i. p 68 Ext-L Extender Card (Large) jwrpoeaooc 68 WWC Wire Wrap Card swtpc esoo comp.ni... p.mui.. BBUC Battery Back-Up Card ORDER DELIVERY: FROM STOCK TO 10 DAYS $269.00 $369.00 $ 37.50 $ 47.50 $ 29.00 $ 38.00 $ 19.00 $ 25.00 $ 29.00 $ 39.00 $ 35.00 $ 45.00 $ 55.00 $ 68.00 SERLS^* ELECTRONICSJNC. TELEPHONE # 615/693-8655 Circle 236 on inquiry card. Technical Fcnum More on Using the 8x300 Jon Twichell 303-D Eagle Hts Madison Wl 53705 A short note concerning your note in the March 1977 issue of BYTE (page 100) on the Signetics 8X300. This processor was designed and sold as the SMS 300 (Scientific Micro Systems, 520 Clyde Av, Mountain View CA 94043). I used SMS's development system in a scientific data acquisition sys- tem. Two years ago it was the fastest thing on the market. I was building a two dimen- sional multichannel analyzer out of a Modcomp II, and used the microcontroller for the address mapping and handshaking. Pure blinding speed was our object, subject to the constraint of programmability. The observation is that this is the same criterion for a microprocessor used for emulation. True, the 8X300 is fast, but by today's standards, not that fast. It is rumored that SMS is working on an ECL version .... Anyway, if one examines the architecture of the 8X300, one finds two chokes, both fixable. The first is that the microcode is quite vertical, as one would expect with a 16 bit instruction. One can effectively double the speed of the system by simply extending the microcode width by eight bits. Make your program memory 24 bits wide; use 16 in the normal fashion. The extra eight are used as the address in working storage or IO space. The 8X300 must use an instruction to load the "memory address register" (IVR REG) and then another instruction to fetch the word at that address; by selecting an address for each instruction (the extra eight bits), most programs halve in size, and double in speed. The second choke is the time multiplexed IO bus. I seriously suggest the user extend the microcode and stay away from those Continued on page 110 theVECiCKI =+T null PROM/RAM BOARD from Vector graphic PROM: Space for 2K bytes, 1702A. Store bootstrap loaders and monitors. RAM: 1K bytes, 2102LIPC, 450 ns, low power. NO NEED TO RELOCATE STACK WHEN ADDING MEMORY. CIRCUITRY: Replaces memory write logic on ALTAIR™ and Imsai front panels. REGULATORS: Two regulators. No need for regulated power supply. JUMP-ON-RESET: PROM program execu- tion starts at any location in memory without interfering with programs in any other por- tion of memory. S-100 BUS; +8 and -16 VDC; P/C BOARD SOLDER MASKED BOTH SIDES WITH PLATED THROUGH HOLES; ALL SOCKETS INCLUDED. OPTIONAL FIRMWARE: 512 byte monitor for use with Tarbell tape interface on 2, 1702APROMs. PROM/RAM KIT WITHOUT PROMS $89 + OPTION A-SIORev. 1 or3P+S $129 + OPTION B-2SIO(MITS) $129 + OPTION C-SIO 2 (IMSAI) $129 + OPTION D- Poly Video Interface $159 (Includes Video Driver) California residents please add 6% tax. IMMEDIATE DELIVERY FROM FACTORY OR YOUR LOCAL COMPUTER STORE T.M. CO* G=tAPHC inc. LAKEFIELD ROAD. SUITE F • WESTLAKE VILLAGE, CA 91361 • (805) 497-0733 Circle 137 on inquiry card. 74 wm Deal yourself in ATlahtic City, N.J. August 27th-28th What its all 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 c Personal Computing 77 SPECIAL GROUP RATES FOR CLUBS AND ORGANIZATIONS TRAVELING FROM THE WEST COAST AND MID-AMERICA. contact Seven Seas Travel Dawn Corrigan 17220 S. Norwalk Blvd. (213) 924-8383 Cerritos. CA. 90701 Write for FREE TRIP-KIT to PERSONAL COMPUTING 77, Rt 1, Box 242, Mays Landing, New Jersey 08330 Consumer Trade Fair m*m EXHIBITION BOOTHS STILL AVAILABLE - CALL (609) 653-1188 Photo 1 : The Teleterminai Corporation Fly Reader for use with the KIM-1 microprocessor. Come Fly With KIM Rick Simpson MOS Technology |nc Valley Forge Corporate Center 950 Rittenhouse Rd Norristown PA 19401 Many computer hobbyists start with nothing more than a processor, a small amount of programmable memory, a small onboard monitor such as MIKBUG or KIM and some front panel switches. Those with more foresight, or cash, will have a keypad or even a full keyboard for data entry and processor control. But even with a good monitor and a full keyboard and display, loading programs is a tedious chore at best, and there is an awful feeling when you turn off power, knowing that twenty minutes of typing just evaporated. The next step in expanding the system is usually an audio cassette interface or a Teletype with paper tape reader and punch for the wealthy or fortunate. Now the tedious retyping is eliminated and a pro- gram, once written and recorded or punched, can be reloaded in a matter of minutes. Many people stop at this point. When hand assembly of programs is required, a program of more than a few hundred bytes is rarely attempted. But as the software gap is slowly filled, more and more systems are being implemented with assemblers or BASIC interpreters. More memory is pur- chased to expand programmable memory from a few hundred bytes to 4 K, 8 K, or more. [One firm now even markets a 64 K board! . . . CH/ Once again your memory has outrun your ability to fill it in a reasonable time. For instance, using the Teletype paper tape reader or audio cassette interface on the KIM system, a 2 K Tiny BASIC interpreter takes almost ten minutes to load. A 12 K BASIC source program would take an hour. Even a 30 character per second interface only cuts this to twenty minutes. The alternatives seem to be a Tarbell or Suding type high speed cassette system, a 3M drive at 9600 bps or a floppy disk. The floppy disk certainly solves the speed problem. We can now load 12 K in a few seconds, but at a cost of $1,000 to $2,000. The high speed cassette is reasonable in cost, about $200 including the high quality cas- sette unit required, but tricky to interface unless a manufacturer-supplied board or kit is available. Although some magnetic tape units have start, stop, and search functions under pro- 76 gram control, most users end up pushing the buttons. No hobbyist magnetic tape cassette unit can read a few (ie: one line or so) characters, stop and process the data, and then start and read some more, a real need when running an assembler with the source stored on the tape in a limited resource system. After this lengthy preamble, you may have suspected that I have an alternative solution in mind, and I do: a high speed paper tape reader, manufactured by the Teleterminal Corporation, called the Fly Reader, shown in photo 1. Although a bit more expensive than the high speed cassette system (about $350), it is far faster; reading at 300 characters per second, it can load my Tiny BASIC in twenty seconds, or fill that 12 K of memory in two minutes. It is easy to interface, requires little software, and is extremely reliable. It needs only a single +5 V, 2 A power supply and is operated completely under program control. You can read as little as a single character at a time and can read in either direction; try that on your cassette! Paper tape has always been the standard mass storage device for minicomputers, until floppy disks came along, and paper tape has been the most universal and inexpensive method of software distribution and inter- change in the minicomputer field. The basic problem is that it is only a reader; how do you punch the tape? There are several answers: Flexowriters and other similar low speed punches are becoming available, as are gobs of older 7 level ma- chines. I've also seen higher speed punches, typically 60 characters per second, adver- tised for under $100. The fact that the punch is slow is not so important; typically you punch a tape once and read it many times. Even if you have no punch, the reader is a useful peripheral because much software is available already punched. How it Works The Fly Reader can read at such a high speed because it transfers 8 bits in parallel and contains only a single moving part: a stepping motor connected to a toothed wheel which engages the sprocket holes in the paper tape. Sensing of the holes in the tape is done by photodetectors rather than the mechanical fingers used in a low speed reader. This is a method similar to that used in the manual reader sold by Oliver Audio. Figure 1 shows a block diagram of the unit. There are five control lines for the unit. All are compatible with standard TTL cir- cuitry. The "load status" line is a logic 1, +5 V, if the reader is not ready because the feed gate is not closed. When tape is inserted and the gate is closed, this signal goes to logic zero. In operation, the reader must be checked by software to see if the "reader ready" signal is at logic "I to indicate that the reader is ready to read another tape character. The software must then issue a pulse from logic 1 to logic whose width is between 500 ns and 500 us. This READ pulse will start the reader and drive the reader ready line to logic 0. The software then watches the "data strobe" line. When data strobe goes to logic 1, the data can be read from the eight parallel output lines. If the program needs to read another character from tape, it must wait until reader ready goes back to logic 1, issue another read pulse, and wait for another data strobe. Figure 2 shows the flowchart for such software and figure 3 shows the interface timing diagrams. Figure 2: Flowchart of the software for reading the paper tape with the Fly Reader. ( START J ( RETURN ) Figure I : Block diagram of the Fly Reader. The input is achieved through an incandescent lamp and a photodetector array. The tape is advanced by a step- ping motor allowing input of data either forwards or backwards. The reader open sense switch is closed when the paper tape is in the reader. PAPER TAPE (Q & PHOTODETECTOR ARRAY TOOTHHEAD SPROCKET DRIVE WHEEL AMPLIFIER AND SIGNAL CONDITIONING STEPPING MOTOR CONTROL LOGIC 8TTL OUTPUT LINES (TO KIM-I PAO TO PA7) DATA STROBE (PB4) READER READY (PB5) READ (PBO) FORWARD, REVERSE (SET TO DEFAULT STATE OF O OR I) READER OPEN SENSE SWITC 1 LOAD STATUS LINE (TO PBI OF KIM-I) 77 LOCATION LOAD READER READ FORWARD, 2 CHARACTERS REVERSE TAPE DIRECTION READ REVERSE, 3 CHARACTERS LOAD STATUS READER READY READ COMMAND FORWARD REVERSE SPROCKET DATA STROBE DATA OUTPUTS J3 P7 J3 P8 J3 P6 J3 P5 INTERNAL J3 P9 J3 PI2 TO PI9 20ms RISE AND FALL TIMES M~nf 500jts 500ns 20ms "DELAY" Ji n U IT ¥ ji n. LT n L^ DATA TRUE J3 PI2 TO PI9 Figure 3: Timing diagram generated by the software of listing I. The minimum width of the data strobe is 50 ids except when forced low by a new read command. The crossed out sections in the data true section indicate that the state of the output is unknown. A read command is issued only when the reader ready line is high. Interfacing to Kim As described above, the Fly Reader inter- face requires eight parallel input lines, three input control lines and one or two output control lines. Two output control lines are needed if the forward, reverse function is used; otherwise only one control line is needed. Since KIM-1 has 15 bidirectional 10 lines the interface is very simple. The A data port lines PAO to PA7 are pro- grammed as input lines and connected to the parallel output lines from the Fly Reader. PB5 is connected to the reader ready line, PB1 is connected to the load status line, PBO is connected to the read command line and programmed as an output line, and PB4 is connected to the data strobe line. A 5 V, 2 A power supply is connected to the reader and the interface is complete. When wiring the power connectors, you should make sure that separate power and ground wires are run back to the power supply for both the motor and logic connections. This will insure that current surges to the motor during stepping operations do not feed noise pulses into the control logic. Other Interface Possibilities (An Advertisement . . .) The interface described here uses most of the avail- able 10 lines on the KIM-1. Systems supporting several 10 devices may wish to interface the Fly Reader through a separate interface chip. The MCS6532 is one such interface chip for adding more 10 to KIM-1 as well as an additional 128 bytes of programmable memory and another interval timer. Two of these chips (with ROMs) are already built into each KIM. Since the 6532 is a MOS rather than TTL device it does not load the KIM-1 address or data buses significantly. The MCS6532 is available for $16 postpaid from National Electro-Sales, 12063 W Jefferson, Culver City CA 90230. Interface Details The fifteen KIM- IO lines are divided into two ports. Each port has a data direc- tion register and a data register. Writing a 1 to a bit or bits in the data direction register configures the corresponding 10 lines for output, writing a sets them for input. For instance, writing a hexadecimal 02 to the A data direction register configures the PAO line for input, PA1 for output, and PA2 through PA7 as input lines. Similarly, writing hexadecimal FO to the B data direc- tion register configures PBO through PB3 as input lines and PB4, PB5 and PB7 as output lines. Note that there is no PB6, and PB7 has no output pullup; it is essentially an open collector output. Reading the A or B data register will show whether the signal at each input line is 1 or and will show whether a or 1 was previously written to any lines configured as outputs. Writing to a data register will set the appropriate output lines to 1 or and does not affect lines pro- grammed as inputs. Hexadecimal address location 1700 is the A port data direction register, hexadecimal 1702 is the B data direction register, hexadecimal 1701 is the A data register, and hexadecimal 1703 is the B data register. The KIM Paper Tape Format The software to drive the reader uses the same paper tape format as that used in the KIM-1 Q (paper tape dump) and L (paper tape load) commands. Thus any paper tape punched on a low speed punch by KIM-1 can be read by the Fly Reader. The KIM-1 paper tape format ignores any characters 78 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 computer with at least 4K, NO other peripherals needed. ANY 9**.** 1 BASIC SOFTWARE ii* mm L ^L ^P VOLUMS , XjU 1 1 1 PS" | ky iP^iioww 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. IM.H BASIC ^^ SOFTWARE LIBRARY /VOLUME tit ;:;::::: *¥ *. *. beowh BASIC SOFTWARE LIBRARY VOLUME tl B. W. EKOWN 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 $ 1 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. VOLUME I 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 © 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 Circle 282 on inquiry card. hexadecimal address code label op. operand commentary $1C4F clear decimal mode; go toPTRINI; go to GETPTR; | if A not equal to 3B go to LOAD; else A:=00; | store checksum; go to PTRBYT; [get byte count) X:=A; compute checksum; get high address; store high address pointer; compute checksum; get low address pointer; store low address pointer; compute checksum; A:=X; if A:=0 goto LOAD3; get data; store data; compute checksum; get next address; X:=X-1; go to LOAD2; X:=X+1; get data; compare high order checksum; if different go to LOADER; else get data; compare checksum; if different go to LOADER; else A: = X; if A not equal to go to LOAD; else X:= location of 'KIM'; output message; go to START; X: = location of 'ERR KIM'; go to LOAD8; [initialization routine] A: = B port address; read flag: = 1; A:=B register; determine PB1; if reader ready go to OK; else A:= 'X'; output 'X'; goto PTRINI; return; [subroutine to input one character] get bit from B data register; if not ready go to GETPTR; > else output read pulse; I turn off read pulse; 1 get bit 5 from B data register; if character not ready go to CHECK; else get character; return; get character; pack character; get another character; pack character; A:=2 characters; return; goto PTRINI; go to GETPTR; go to LOOP; Listing J : The basic software needed to run the Fly Reader with the KIM- 1 microprocessor. The software uses the KIM-1 monitor routines and sub- stitutes the GETCH and GETBYT routines with routines GETPTR and PTRBYT. The new subroutine PTRINI properly configures the 10 lines used with the reader. Subroutine PTRINI will output an endless number of 'X' characters until the tape is loaded into the reader. The listing was set prepared from a cross-assembly provided by the author. A symbol table showing the values of the symbols used and where they are referenced follows the assembly and will prove useful when it is necessary to relocate a program at a different starting address. 1C4F START EQU 4000 D8 CLD 4001 20 57 40 PTRLD JSR PTRINI 4004 20 6F 40 LOAD JSR GETPTR 4007 C9 3B CMP $3B 4009 DO F9 BNE $LOAD 400B A9 00 LOADS LDA 00 400 D 85 F7 STA $F7 400F 85 F6 STA $F6 4011 20 8B 40 JSR PTRBYT 4014 AA TAX 4015 20 91 1F JSR $1F91 4018 20 8B 40 JSR PTRBYT 401 B 85 FB STA FB 401 D 20 91 1F JSR $1F91 4020 20 8B 40 JSR PTRBYT 4023 85 FA STA FA 4025 20 91 1F JSR $1F91 4028 8A TXA 4029 F0 OF BEQ LOAD3 402B 20 8B 40 LOAD2 JSR PTRBYT 402 E 91 FA STA FA,Y 4030 20 91 1F JSR S1F91 4033 20 63 1F JSR S1F63 4036 CA DEX 4037 DO F2 BNE LOAD2 4039 E8 INX 403A 20 8B 40 LOAD3 JSR PTRBYT 403 D C5 F6 CMP $F6 403 F DO 12 BNE LOADER 4041 20 8B 40 JSR PTRBYT 4044 C5 F7 CMP $F7 4046 DO 0B BNE LOADER 4048 8A TXA 4049 DO B9 BNE LOAD 404B A2 OC LOAD7 LDX OC 404D 20 31 1E LOAD8 JSR $1E31 4050 4C 4F 1C JMP START 4053 A2 11 LOADER LDX 11 4055 DO F6 BNE LOAD8 4057 A9 01 PTRINI LDA $01 4059 8D 03 17 STA $1703 405C 8D 02 17 STA $1702 405 F AD 0'2 17 LDA $1702 4062 29 02 AND $02 4064 DO 08 BNE OK 4066 A9 58 LDA 'X' 4068 20 A0 1E JSR $1EA0 406B 4C 57 40 JMP PTRINI 406E 60 OK RTS 406F AD 02 17 GETPTR LDA 1702 4072 29 20 AND $20 4074 F0 F9 BEQ GETPTR 4076 A9 00 LDA $00 4078 8D 02 17 STA $1702 407B A9 01 LDA $01 407D 8D 02 17 STA $1702 4080 AD 02 17 CHECK LDA $1702 4083 29 10 AND $10 4085 F0 F9 BEQ CHECK 4087 AD 00 17 LDA $1700 408A 60 RTS 408B 20 6F 40 PTRBYT JSR GETPTR 408 E 20 AC 1F JSR $1FAC 4091 20 6F 40 JSR GETPTR 4094 20 AC 1F JSR $1FAC 4097 A5 F8 LDA $F8 4099 60 RTS 409A 20 57 40 MAIN JSR PTRINI 409 D 20 6F 40 LOOP JSR GETPTR 40AO 4C 9D 40 JMP END LOOP CROSS REFERENCE TABLE Symbol Value Referenced CHECK 4080 4085 GETPTR 406 F 4004 4074 408B 4091 409D LOAD 4004 4009 4049 LOADER 4053 403 F 4046 LOADS 400B * # # # LOAD2 402 B 4037 LOAD3 403A 4029 LOAD7 404B **■»* LOAD8 404D 4055 LOOP 409 D 40A0 MAIN 409A #** * OK 406 E 4064 PTRBYT 408B 4011 4018 4020 402B403A 4041 PTRINI 4057 4001 406B 409A PTRLD 4001 # * # * START 1C4F 4050 read until a semicolon is found; the next two characters give the hexadecimal number of bytes on the current line to be punched. This is followed by four characters, two bytes, giving the high order and low order bytes of the starting address for the data to follow. This is followed by the data which KIIV1-1 software always punches 24 bytes per line, a 2 character checksum for the line, and a carriage return. The carriage return is followed by six null characters, and a semi- colon starts the next line. The last line punched contains for the number of bytes, for the address bytes and is fol- lowed by a four character checksum. When finished reading a paper tape, KIM-1 types 'ERR KIM' if the checksum does not com- pute (there has been an error in reading the tape), or just 'KIM' if the tape was read correctly. The software consists of a copy of the KIM-1 monitor routine for reading paper tape modified by removing all calls to the GETCH and GETBYT routines and substi- tuting two new routines, GETPTR and PTRBYT. A new subroutine, PTRINI is called at the beginning of the mainline program to properly configure the IO lines and check that the read head on the Fly Reader is closed. If it is not, KIM-1 will type out the character 'X' endlessly until the read head is closed. The software shown in listing 1 occupies 154 bytes starting at hexa- decimal location 4000. The Fly Reader is an excellent way to add a high speed paper tape reader to a microprocessor system. It is easy to interface and requires only a single +5 V supply. Asa fast paper tape device it is considerably faster than an audio tape cassette system and offers increased flexibility of operation." 80 THE HOME COMPUTER COMES OF AGE Beyond state-of-the-art capabilities, hand- somely housed in a fine piece of functional furniture. Noval Incorporated proudly introduces the finest personal computer ever offered, the NOVAL 760 COMPUTER. This fully computational, self-contained hardware and software package offers limitless expansion capabilities. NOVAL's extensive and expanding library of programs pre- sents exclusive oppor- tunities for educational applications, practical implementations and a world of fun. And you can develop low-cost end user products never before available at the small board level. The NOVAL 760 COMPUTER, in its hand- some desk setting will take you wherever your imagination wants to go. Introducing the NOVAL 76CrComputer m£ww The Ultimate in Home Computers $2995 includes a fully-assembled, fully-tested personal computer with: • Handsome wood desk, designed to complement any decor • Crisp black and white 12" professional display monitor • Full, easy-to-use Alpha- Numeric Keyboard • Printer • Extensive graphic capability • Fully remote-control, pro- fessional mag tape system • 8080 Microprocessor System 16K RAM 3K PROM • Display control, with additional 1 K Refresh RAM 2K Character generator RAM 1K Scratch pad RAM • 8 built-in I/O ports • Power Supply • System Software on mag tape, with Interactive Editor/Assembler I/O control for Printer Display (black & white or optional color) Mag Tape Unit Audio Tone Generator Keyboard Film Reader Paper Tape Reader Graphics On-line debugging technique E-PROM burner Copy-verify • Comprehensive and complete Operating Manual (also available separately) The NOVAL 760 COMPUTER Instant-Edit feature makes Assembly Language inter- active AS YOU WRITE IT! The computer corrects errors before they're entered. And Look at these Additional NOVAL Capabilities: • System Software on PROM • BASIC on Mag Tape • BASIC on PROM • Bright color display screen which converts for TV use • Second display screen • 16K additional RAM • E-PROM Burner • Bus-extender • Film reader • Paper tape reader • Dual hand-held keyboards for competitive game action and, for the first time on a home computer, • Basic Graphics! The NOVAL 760 COMPUTER Operating Manual This comprehensive, yet easy-to-understand, Noval Operator's Manual provides an exciting introduction to the capabilities and possibilities of microprocessor technology. In step-by-step, "how to" fashion, the intriguing inner-workings of the NOVAL 760 COMPUTER are revealed (included with your 760 Computer or avail- able separately for $20.00). Challenging Libraries Available Now Add the excitement of action- packed competition as your child learns the elements of math with Noval's extensive TELEMATH library. TELEMATH, a computer audio-video- graphic instructional system developed by Noval, presents challenging math problems to each of 2 players. The first player responding correctly moves one step closer to victory in this graphic game format. Our exclusive affiliation with Gremlin Industries, the leader in commercial computer videographic and wall games, offers you the opportunity to play some of the most sophis- ticated games ever developed at home! With the Gremlin library, your NOVAL 760 COMPUTER becomes a home entertainment center. The expanding libraries of TELEMATH and Gremlin are available to all NOVAL 760 COMPUTER owners. The NOVAL 760 COMPUTER. A fully-assembled, fully tested personal computer . . . not a kit! If you can imagine it, you can achieve it with the NOVAL 760 COMPUTER. NOVAL NOVAL INCORPORATED, 8401 Aero Drive, San Diego, California 92123 • 714/277-8700 Classified Ad FOR SALE OR TRADE: Issues 1, 2 and 3 of BYTE for $10 or exchange for May 1976 issue and $5. CPT William T Pace, 5433B Seay St, Fort Polk LA 71459. (318) 537-7198. FOR SALE: Computers in Laboratory Medicine. I have several copies of this book which are surplus to a class requirement. This excellent book is edited by Derek Enlander MD and is one of the most up to date and forward looking works on the subject of computerization in nuclear medicine, clinical pathology, anatomic pathology and diag- nostic data retrieval. The book was published by Academic Press in 1975-1976 and costs $14. David Johnson, 1473 Pine St, San Francisco CA 94109. FOR SALE: IBM 2311 compatible disk drive made by Marshall, plus disk pack, $425. Teletype ASR 33 with auto-answer modem, auto-dial, stand. Three MITS 4 K dynamic boards, operating. Signetics 3000 Microprocessor Designer's Kit. Make offer. Lenny Heath, Bob Turnage, 86 Village Grn, Green- ville NC 27834. (919) 752-7813. FOR SALE: Two MITS 4MCD memories, one S-4 K update kit, less RAMS. All assembled, all nonfunctional. First cashiers check for $145 takes it all. K K Tatlow, 303 S 4th St, Rockford IL 61108. FOR SALE: Friden Flexowriter Model 2303 with paper tape punch reader, 7 level, types 100 wpm in upper and lower case, works good, recently ser- viced, can be converted to ASCI I, $1 50 plus shipping. J E Upchurch, POB 1987, Sebring FL 33870.(813)385-2788. FOR SALE OR TRADE: One Cartrivision video tape recorder, camera and tapes, $650 cash or Altai r, I MSA I equivalent with memory. Doug Thurston, POB 1104, Silsbee TX 77656. (713) 246-3091. FOR SALE: Altair 8800 computer with 2 MITS 4 K Dynamic memory cards, 88-ACR cassette interface, 88-2SIO serial board, 88-PIO parallel board, 2 expander boards, 8 K BASIC on cassette. Not completely assembled. Original cost was over $1200. Will sell for $750. Bob Majdanski, 214 Coolidge Av, Hasbrouck Heights NJ 07604. (201) 288-3742 after 7 PM. WANTED: BYTE numbers 1, 2, 3, 8, 9 and 10. I will consider any offer, even partial ones. (One issue is better than none.) Send your terms and asking price to me and I'll get in touch with you. Tony Aiuto, 19 Old Field Ln, Lake Success NY 11020. FOR SALE: Sphere 340 system with 20 K pro- grammable memory plus 16 K memory board less memory chips, 1 K EPROM system monitor, full SIM board (one cassette and modem), 80 column line printer with tractor feed, dual floppy disk, 9 inch CRT in console, large power supply, 4 K EPROM board (1702A), no EPROM chips. Soft- ware includes assembler, editor, IO handler, mem- ory test and disassembler. This system is ideal for program development. Working perfectly, $6500. Wayne Smith, 227 S State St, Salt Lake City UT 84111. (801) 363-4941. FOR SALE OR SWAP: One Mohawk Data Systems 1 101 keyboard and tape unit. It's in good working condition with loads of electronics and it would even make a nice desk! Will trade for Altair 8800 interface, memory, terminal or best offer of cash. Write G Ryan, Rm 1-15, Off Campus Apts, Potsdam NY 13676. FOR SALE: HP-65, including a case, charger, manuals, programming forms, over 100 magnetic cards with tested prerecorded programs, and 40 blank magnetic cards for your new programs. Any of over 140 HP-65 Users' Library programs avail- able for copying cost. Remember, the HP-65 is faster than the HP-67; so is better for problems where speed is needed. $300. Delmer D Hinrichs, 2116 SE 377th Av, Washougal WA 98671. FOR SALE: IMSAI 8080 with 22 card mother board, new in box, $645. Also, will assemble and debug it for you for $120 extra. S Kim, 10190 Vicksburg Dr, Cupertino CA 95014. (408) 996-0537, after 7 PM. FOR SALE: Two PDP-12s (PDP-8 and Line); four 4 K 12 bit memory units; three DF 32 disks, 32000 words 16.7 ti$ access time; two PC-12 high speed tape readers, 300 cps; two PC-12 high speed tape punches, 50 cps; two AF01-AM08 analog converter systems; two IO bus converters; two Teletypes; Dual-MS and OS-8 software and a lot of Decus software for the PDP-8, BASIC, FORTRAN and 8 K assemblers. All this for $5,500. I'll sell the units as two or three PDP-1 2s separately or together. Contact Keith Elkin, Dianavagen 30, 1 1 5 43 Stockholm SWEDEN 08/67 35 68. FOR SALE: Model 15 Page Printer - Baudot Teletype suitable to OSI, MITS 680b computers. Excellent working condition, with current source and box of paper. Also, Friden Auxiliary Punch — Baudot paper tape punch. Could be modified to ASCII with additional parts, not supplied. Prob- ably works, not guaranteed, with stand and motor- ized tape take up spool. Make offers for either to GAR Trollope, 433 Cherry Ln, Lewiston NY 14092. (716) 754-7222. FOR SALE: M6800 cross assembler. A two pass cross assembler written in FORTRAN IV is avail- able for the M6800 Motorola micro. Input is in fixed format. Statements are similar to Motorola assembler language, most features of the language being supported. Additionally, a system symbol table is supported, enabling symbolic reference to system addresses and assembly of routines to contiguous memory locations. Send $1 for the manual, and $5 for the listing or $8 for a paper tape (state if XOFF needed) to G A R Trollope, 433 Cherry Ln, Lewiston NY 14092. (716) 754-7222. FOR SALE: CDP-1802 microcomputer software, Morse keyboard, 256 bytes, $3. WA6UYV, 4956 Andrea Blvd, Sacramento CA 95842. FOR SALE: Viatron System 21 in working condi- tion. Must sell to make room for 8080 system, $300; you pay shipping. Jim Williams, 4175 Walnut Ridge Dr, Columbus OH 43224, (614) 889-3836, (days). TIMESHARING SERVICES WANTED: Research and advanced degree level programs and routines of civil and mechanical engineering, or bio-engineering or bio-medical interest. Please send full informa- tion and price list to Donald Becnel, POB 14473, Baton Rouge LA 70808. WANTED: Someone who has or wants to write an 8 K version of BASIC for my COSMAC ELF, as in the Popular Electronics August 1976 construction article. It uses the RCA COP 1802 central pro- cessor unit. Please send any and all correspondence on this subject to Greg Watson, 9617 Jomar Dr, Fairfax V A 22030. FOR SALE OR TRADE: BYTE issues #1 thru #10, $50, or swap for first six issues of 73 magazine or first three issues of CQ magazine. Wanted: Flexowriter with upper and lower case type; will buy or swap for three upper case only machines, one designed for computer interface. Greggory S Walls, 5630 Ensenada Way, Riverside CA 92504. TELEPRINTER: Creed 7B. Serial input/output device. Swap for KIM-1 or similar microprocessor. Free delivery. All BYTE back issues, 1975 and 1976 (excluding numbers 3 and 10), included. T N Arthur, 30 Willingdon Av, Kloof 3600, Natal Republic of SOUTH AFRICA. FOR SALE: Vidar ^624 computer clock, 999 days, 23:59 hours, 23:59 minutes and 60 seconds, BCD output (like new), S200. Also, 1 Brpe (used) $100. FOB, Norwich NY 13815, (607) 334-4478. WANTED: BYTE issues, October and November 1975, (~2, 3). For sale or prefer to trade for the above issues, December 1975, June thru December 1976, (^4, 10, 11, 12, 13, 14, 15 and 16). David A Eastman, 46 Sable Av, N Dartmouth MA 02747, (617) 993-7098. FOR SALE: BYTE #1 in mint condition (never removed from mailing wrapper). Best offer over $20. Steve Saunders, 5400 Ellsworth Av, Pitts- burgh PA 15232. FOR SALE: MCS 6502 resident assembler. Uses 6530 TIM input and output routines. Can be easily modified to be used in systems not having the TIM chip. Resides in less than 2 K memory (4000-47FF). This software contains a text editor (TED) which sets up the source file, and a 2 pass assembler which assembles the source and gener- ates a symbol table. If an error occurs, an error code and line number are outputted which pin- points the error in the source file. Source file and symbol table can be located practically anywhere tn memory. Assembled programs can be executed via the TED R (Run) command. Hexadecimal listing and operator's manual, $15. Source code and manual, $25. C W Moser, 3239 Linda Dr, Winston-Salem NC 27106. FOR SALE: M6800 cross assembler written in FORTRAN and set up to run under any system with some minor modifications. Other M6800 programs available. Mid-Michigan Computer Club, T Preston, 15151 Ripple Dr, Linden Ml 48451. KIM-1 USERS: Am designing a universal PC board same size as KIM-1 board. Double sided, space for up to 70 16 pin and 12 28 pin chips, four regulator or power transistor packages with heat sinks. Need ten people to get cost to $30 each. Contact Gerry Houlder, 3832 Stevens Av, Minneapolis MN 55409. WANTED: The base for the CRT terminal en- closure that was offered by Tri-Tek. Will buy outright or swap for TTL chips or back issues of BYTE. If you have one of these bases for sale, write Larry Ingram, 20 Locust St, Cambridge MA 02138. AUCTION: Issues 1, 2 and 13 of BYTE. Good condition. Make your offer of cash or equipment for use with Altair 8800. Bidding closes last day of month this is published. Enclose SASE and you will be notified if you are not a successful bidder. Also for sale: DEC PDP-11 regulators 5 V 25 A, $30; 15 V 10 A, $20. H S Corbin, 11704 Ibsen Dr, Rockville MD 20852. FOR SALE: DEC PDP-8E with following options: MM8E EJ 8 K core memory, KM8E memory exten- sion and timeshare control, KC8E programmers console, KP8E power fail detect, KL8E console Teletype control, BE8A omnibus expander. Asking $3000. If interested contact David Kohl, 3002 Bedford Av, Brooklyn NY 11210.(212)952-4420 days. COMPUTER Paper tape punches and readers, 8 and 5 level. IBM 056 Verifier, ultra high speed paper tape punch (2400 ppm), 5 level. PDP- 8e/Lab8e software to exchange. 150 item list of ham, computer, test, hi fi, aircraft, photo, and antique gear for sale or trade. SASE. K2DCY, 1 1 Squire Hill Rd, N Caldwell NJ 07006. FOR SALE: Teletype Model 33 KSR, $250. Model 33 ASR, $350. Friden Program Btic Flexowriter Model SPD with tape punch and tape reader, $225. Friden Programatic Flexowriter Model 2201 with tape punch and tape reader, $325. Send SASE for small list. Ron Turnure, 206 S Highwood Av, Glen Rock NJ 07452. Readers who have equipment, software or other items to buy, sell or swap should send in a clearly typed notice to that effect. To be considered for publication, an advertisement should be clearly noncommercial, typed double spaced on plain white paper, and include complete name and address information. These notices are free of charge and will be printed one time only on a space available basis. Insertions should be limited to 100 words or less. Notices can be accepted from individuals or bona fide computer users clubs only. We can engage in no correspondence on these and your confirmation of placement is appearance in an issue of B YTE. Please note that it may take three or four months for an ad to appear in the magazine. ■ 85 synchro-sound enterprises "THE COMPUTER PEOPLE" se 9* "IN STOCK" NEW LEAR SIEGLER ADM - 3A KIT FULL ADDRESSABLE CURSOR CHARACTER GENERATION 5x7 dot matrix. DISPLAY FORMAT Standard: 1920 characters, displayed in 24 lines of 80 characters per line. CHARACTER SET Standard: 64 ASCII characters, displayed as upper case, plus punctuation and control. COMMUNICATIONS RATES 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19,200 baud (switch selectable). IMSAI 8080 MICROCOMPUTER POWERFUL • EASY TO USE • LOW COST $619.95/22 SLOT MOTHER BOARD 849.95/WITHZ-80CPU COMPUTER INTERFACES El A standard RS232C and 20 mA 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 ADM-3A ASSEMBLED 1099.95 LOWER CASE OPTION 89.00 (when ADM-3 kit is purchased from us .... 59.95) FOLLOWING MANUFACTURERS IN STOCK PERIPHERAL VISION, iCOM, TDL, OAE, PROCESSOR TECH., SWTP, APPLE, HAYDEN, TARBELL, IMSAI, LEAR SIEGLER, OKIDATA, DEC, JAVELIN, TELETYPE ASR-33, TRW. SPECIAL 9" JAVELIN HIGH RESOLUTION VIDEO MONITOR $159.95 ***************** * 2708 EPROM $59.95 * * Set of seven $350.00 * ***************** Circle 96 on inquiry card. 86 DECwriter II ($1099.00) OKIDATA MODEL 110 110CPS DOT MATRIX LINE PRINTER FRICTION FEED* $1099.00 TRACTOR FEED 1229.00 RS232C SERIAL INTERFACE 250.00 MOST ITEMS IN STOCK FOR SAME DAY SHIPPING. FULL MODERN REPAIR FA- CILITIES ON PREMISES-WE SERVICE WHAT WE SELL. * * -K * * $1769.95 synchro-sound enterprises Features 132 column printing 30CPS Full Keyboard Tractor Feed NEW COMMERCIAL QUALITY KEYBOARD The Model SS-1 Communications Terminal is a non-contact capacitive keyboard with a guaranteed life of over 100,000,000 operations. FEATURES • MOS/LSI Encoder with high reliability and low power consumption • n 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 193-25 Jamaica Ave., Jamaica, NY 1 1423 Phone (212) 468-7067 HOURS 9 - 4 DAI LY + SATURDAY BANKAMERICARD MASTER CHARGE VISIT OUR NEWSHOWROOM WORKING UNITS ON DISPLAY KEYBOARD KIT $ 99.95 ENCLOSURE 49.95 (WITH NUMERIC CUTOUT) NUMERIC PAD 34.95 COMPLETE KIT (with pad) 179.95 ASSEMBLED UNIT (with pad) 229.95 87 Software for the Economy Floppy Disk Dr Kenneth B Welles General Electric, Nela Park 2623 Fenwick Rd University Heights OH 44118 The two fundamental rou- tines needed for a floppy disk system are: Write a block of data to the disk, and read a block of data from the disk. As hobbyists are rapidly finding out, even the most sophisticated hardware is next to useless without the proper software to con- trol it. My previous article on the floppy disk drive interface (see February 1977 BYTE, page 34) described a hardware device of the simplest and, consequently, most software dependent type. This month's arti- cle describes the operation and use of the routines needed for transferring data between the computer and a disk drive (one of up to eight) connected to the interface. The two fundamental routines needed for a floppy disk drive system are: Write a block of data to the disk, and read a block of data from the disk. This sounds simple in theory but in practice much more information and many operations are needed. How many bytes of data are in the block to be transferred, and which disk drive should the block go to or come from? At which track and sector is the block to be located? How will an error be detected (and if detected what steps should be taken for correction)? These are some of the major questions involved, without even considering such specific details as data format, file structure, unrecoverable errors, directory structures, naming and dating conventions, and so on ad futilitum. A block read or write routine can be divided into four stages: • Set up for the data transfer • Transfer the actual data to or from the disk • Error detection • Error correction These stages must, by their definition, occur in the order listed, and in most disk systems all four stages are included. In some opera- ting systems the error detection and correc- tion stages are ignored during a write opera- tion. While this speeds up transfers by eliminating a reread or verify operation, it means that most write errors will be unre- coverable. Write Set Up Because this interface is quite unsophisti- cated, data to be written onto the disk must be prepared in memory in exactly the manner that it will appear on the disk. A preamble containing 16 bytes of zeroes (128 "0" bits) and a byte boundary synchroniza- tion signal (or sync byte) must precede the data. Before the data is written, the error detection bytes must be calculated and stored with the data to be written, since there will be no time to calculate them once the write operation has been initiated. This software uses a 16 bit cyclic redundancy check (CRC) word calculated from the data bytes by the binary polynomial: x 16+ x 12 + x 5+ 1 Because they are precalculated, the error detection bytes may be put in any position before, within, or after the data. I chose to place them directly after the data. The assembled block of data to be transferred (consisting of the preamble, sync byte, data and CRC bytes) is now in the proper format for transmission to the disk, but the disk drive itself is not yet properly set up for the 88 transfer. Because the interface may control multiple drives, the first action of the software is to select the proper drive and to assure that it is ready. "Ready" means that a diskette is loaded and revolving, and the power supplies are working. Next, the cur- rent track location of the data transfer head is determined and compared to the desired track. If the desired and current tracks differ, the software must step the head in or out at the proper rate (10 ms per track) until the correct track is reached, and then delay for the proper head settling time (10 ms) before continuing. If the head is not currently loaded, the software must load the head and allow time for the loading to be accomplished (30 ms). All that remains before initiation of the data transfer is to find the starting point of the proper sector. Because the timing is fairly critical between finding the sector and initiating the write operation, all of the parameters for the write data loop such as pointers, counters and output commands must be set up ahead of time in the 8080 registers. The software now searches. for the index pulse from the index hole of the selected disk drive and, having found it, begins to count sector pulses until the desired sector is found. When the leading edge of this sector pulse is sensed, the software transfers immediately to the write routines, using the values previously stored in the registers to speed the initiation of the write operation. This generates the proper timing relationship between the sector pulse and the start of the recorded data. 16 BYTES 10000001 DATA BLOCK 16 BYTES PREAMBLE SYNC BYTE N DATA AND HOUSEKEEPING BYTES > POSTSCRIPT Figure I : Floppy disk data transfer block format. The simplicity of this "hard sectored" floppy disk system requires that a specific format be used for the data. The first 16 bits act as a preamble to enable the interface to distinguish between data pulses and clock pulses. Next comes the sync byte used by the Universal Synchronous Receiver Transmitter (USRTj to find the boundaries between bytes. This is followed by the actual data and, finally, a 16 byte safety region to assure that no data is destroyed when the disk drive write head is turned off. See also table 2. Write Data Transfer If N bytes of information (including the cyclic redundancy check) are to be recorded on the disk, the software will actually send out N+33 bytes of data to the interface. Figure I shows that the first 16 bytes (a preamble of zero bytes) are recorded to allow the interface to correctly distinguish between data pulses and clock pulses when this data block is read. The seventeenth byte recorded is the sync byte, in this case a binary value of 10000001. This sync byte is used by the Universal Synchronous Receiver Transmitter (USRT) to find the boundaries between bytes during a read operation. The next N bytes are the block of data to be recorded, and finally there are 16 bytes as a postscript to assure that no data is destroyed when the disk drive write gate is turned off. Because the only use of this data is to maintain clock synchronization and protect the preceding data, the contents of the last 16 bytes are not critical, and may overlap data used for some other purpose. Write Error Detection After all N+33 bytes have been sent to the disk through the interface, the write gate of the disk drive is turned off and error detection may now be performed. Error detection consists of performing a single read operation of the block of data just written. The block of data read in is compar- ed byte by byte to the block of data written. If all N bytes are not the same for both blocks, an error has occurred. This process could be called a "verify" operation. Write Error Correction If error correction is necessary on a write operation that fails to verify, it is accom- plished by rewriting the same block of data to the same disk, track and sector. After this rewrite attempt, a verify of the rewritten data is performed and compared to the correct data to determine the success or failure of the error correction operation. If As block sizes increase there are fewer preambles and postscripts on any given track, thus maxi- mizing the usable data bytes per track. 89 In the very simplest sys- tem each block of data would have some form of error detection ranging from a single byte of checksum to a 16 bit cyclic redundancy code or even a complex Hamming code. Table 7: Characteristics of different data block sizes. Smaller data blocks have the advantage of not tying up large blocks of memory (a premium commodity in many small systems). Large data blocks, by com- parison, speed up data transfer, require fewer blocks per track, and max- imize the number of usable data bytes per track. the write operation fails four (or some other small integer) times in a row, all hope is abandoned, an error message is printed on the user's console device, and the write routine terminates. Manufacturers' recom- mendations for action taken at this point are as follows: Move to an unused sector and track on the disk in question, and retry the write operation. If the error persists, the disk drive has write circuitry problems; notify the user. If the error is eliminated, then the track and sector where the original error occurred probably has some damage to its oxide coating. In this case, relink the data file to reflect the new location of the data (the track and sector where the second attempt was made), and then record in some table the fact that the original track and sector where the write operation failed is an unusable area. But what do you do when the area that failed to write properly is the location of the table where the failed areas are stored? This is why operating systems designers have such a high incidence of insanity. The software in this article ignores the whole issue, the traditional ostrich solution. Read Set Up No data preparation need be done on a read operation because the only routines required are disk drive select, head load, track seek and sector seek. These are the same routines used by the write operation as described earlier. Read Data Transfer The USRT is reset to search for an occurrence of the sync byte within the incoming serial data, and the program is set to wait for the USRT to signal that the sync byte is found. When the sync byte is found, data is brought in from the interface and stored in memory. For a block recorded with N bytes of information as in the write operation, a total of N+1 bytes are read in. The first byte brought in by the software is the sync byte, accounting for the extra byte transferred. Data Blocks Usable B Per Track Per Bio 1 5127 2 2549 4 1260 8 615 16 293 32 132 Data Bytes Housekeeping Per Block Bytes Per Block 4096 2048 1024 512 256 128 1031 501 236 103 37 4 All Formats Store 315,392 Data Bytes Per Disk Read Error Detection The routine that calculated the 16 bit cyclic redundancy check (CRC) for the write operation is now used to calculate the CRC of the data block just read. The calculated cyclic redundancy check must match the CRC read in if the data is correct. If these values do not agree, an error has occurred during the read operation. Read Error Correction If a single read operation is unsuccessful, two more attempts are made to read the data. If the computed and read-in cyclic redundancy check values still disagree, the disk head is stepped in one track and then out one track, and up to three more read operations are tried. Continued lack of success causes the head to be stepped out and then stepped in one track, and three more attempts to read are made. If the error persists after all of this, then this software concludes that the data is unrecoverable. The jogging of the head one track in or out is recommended by the manufacturer to release any dust particles which may have lodged between the disk and head, and which therefore may be causing the read errors. Block Size The discussion of the software to this point has referred to the transfer of a "block" of data, but no definition has been made of the size of this block. The disk is divided physically into 32 different sectors by the presence of 32 sector holes. The combination of the rotational speed of the disk (360 rpm), the data rate (250,000 bps), variation in the timing of the sector hole detection (±500 us), and the necessity for the 16 byte preamble, sync byte and 16 byte postscript on each record determines that if each track holds 32 blocks of data, then each block has 132 usable data bytes. There is no electronic or philosophical reason that the disk must be recorded in a format of 32 data blocks per track, or even that a 32 block track must consist of full size 132 byte blocks. The proper operating system software could quite easily make use of a data format with only 16 bytes per block and 11 blocks per track. However, this would make the capacity of each disk less than 30 K bytes, a tenfold reduction in storage capacity. The software presented here can be easily modified to allow other block sizes and formats to be used, and the reasons for choosing different block sizes will be presented before attempting to justi- fy the block size used. 90 Smaller data blocks have three main advantages. First, because of the nature of a disk drive, data must be transferred one block at a time, never as a fraction of a block. If the data is not ready all at once (as is usually the case), then some area of computer memory must be dedicated to the storage of this data until a full block can be acquired. The size of this buffer area is the same as the size of the block, and a smaller data block consumes less memory than a large data block. Even with the dropping prices of memory, the average person cannot afford to dedicate large blocks of a compu- ter's storage solely to disk data buffering, especially in a sophisticated operating sys- tem that may work on many disk data files simultaneously and require a data buffer for each one. Secondly, when recording data files onto a disk device, the data file rarely contains the right number of bytes to be stored in exactly an integral number of blocks. An average of one-half of a data block is wasted on each different file re- corded on the disk. If one works with a data base that consists of a large number of short data files, this lost capacity of this disk can become significant. Smaller block size mini- mizes this loss of storage capacity. Last and definitely not least, the growing awareness of the need for standardization of data storage among the users is a motivation to seek out de facto (read IBM) standards to work with. Operating with somebody else's block and physical recording parameters makes it potentially possible to exchange data between different computer systems via diskettes. The most widely embraced stan- dard for floppy disk data operations is the IBM soft sectored standard. Unfortunately, this standard is incompatible with the inex- pensive interface I described in my previous article, and does not (at the time of this writing) lend itself to as cheap and simple an interface. However, the IBM standard uses 128 byte data blocks, and large amounts of software exist for it. Software for the hard sectored version of this format currently uses data blocks of 128 byte size, although the new double density disk drives are promoting software with 256 byte data blocks. Most existing software, then, is written with 128 byte blocks of data, 32 blocks per track on a hard sectored disk or 26 blocks per track on a soft sectored disk. This is an argument in favor of short data blocks, based on conventions of existing users of floppies. Larger block sizes also have three main advantages. First, because the software pre- sented here can only transfer one block of data per revolution, large data blocks greatly speed up data transfer. Dedicating a track to a single data block, a 5 K byte block of data can be transferred in 1/6 second. Second, large block sizes mean fewer blocks per disk. This reduces the data required in the ad- dressing of disk data blocks, and can reduce the complexity of directories and block occupancy bit maps. Table 1 shows the third advantage of large data block sizes. As block sizes increase there is less overhead on any given track, and so the maximum number of usable data bytes per track (and per disk) increases. While the overall amount of data storage increases by only a small percentage, the increase is important to certain data structures, as will be shown. In block structured random access data bases, such as disk storage, data is usually stored in blocks of 2 n bytes. An integral power of two is a handy size for organiza- tion of data in a binary computer and makes data manipulation easier than with some other sizes. With each block of useful data, there is some other data which is transparent to the user and of no real concern to him/her, but which is associated with file management and the operating system of the computer. This housekeeping or "overhead" data contains information about the status of the data within the block. In the very simplest system, for instance, each block of data would have some form of error detec- tion, ranging from a single byte of checksum to a 16 bit cyclic redundancy code or even a complex error correcting Hamming code. Most simple systems also record the track number and sector number of the block with Table 2: This is an expansion of figure I showing how the data block is laid out in memory prior to an output disk transfer or following a read operation from the disk. The "housekeeping" bytes mentioned in the text are used for error detection and error correction as well as for labeling files. No other peripheral device requiring direct memory access (DMA) operations should be active during the read or write operations of this software. In general, no interrupts or hold oper- ations lasting longer than two microseconds can oc- cur simultaneously with disk writing. Byte Number (Decimal) -17 to -2 -1 to 8 9 10 11 12 13 14 15 16 to 19 20 21 to 276 277 278 to 279 280 to 295 Value hexadecimal ASCII to 7 3 to 76 to 30 3 to 76 to 30 3 to 76 to 30 to 255 DATA CRC Function Clock synchronization 81 Sync byte for data synchronization 9 letter file name Drive number Track number Sector number (must be even) Track number of preceeding block Sector number of preceeding block Track number of following block Sector number of following block Future use Byte count of incomplete data blocks User data (256 bytes) Future use 16 bit CRC (cyclic redundancy check) Trailer bytes Bytes to 279 are shown as they exist in memory. Bytes —1 7 to 295 are shown as they exist on the disk. NOTE: The software in this article uses only bytes 9 to 1 1 and 278, 279. (All bytes numbered to 279 are transferred to disk and back.) See note at end of article concerning a complete floppy disk operating system which uses all the bytes. 91 THE FOLLOWING IS A GENERAL PURPOSE ERROR TVPEOUT ROUTINE THE VFILUE OF CO REFERS TO A USERS ROUTINE WHICH TVPES OUT THE ASCII VALUE IN THE C REGISTER ONTO THE USERS CONSOLE OUTPUT. ONLV THE A REGISTER AND FLAGS NAV BE DESTROYED BY CO. EQU ORG 10H ; THIS ROUTINE MAY BE ORG' D ANYWHERE IN MEMORY THIS ROUTINE TVPES OUT AN ERROR MESSAGE TO THE USER. IT IS CALLED INTERNALLY AS: CALL ERTVP DB X THE RESULT IS THE TVPING OF: ERROR X 0010 E3 ERTVP : XTHL Ban F5 PUSH PSW 0012 C5 PUSH B 0013 D5 PUSH D 0014 7E MOV A, M 0015 23 I NX H 0016 E5 PUSH H 0017 F5 PUSH PSW 0018 212800 LXI H, ERMES 001B CD5500 CALL TXTVP 001E Fl POP PSW 001F CD2F00 CALL BVTVP 0022 El POP H 0023 Dl POP D 0024 CI POP B 0025 Fl POP PSW 0026 E3 XTHL 0027 C9 RET 0023 0D0A4552 ERMES : DB 13. 10. ' ERRO' 002C 524FD2 002F F5 BVTVP : PUSH PSW 0030 0E20 MVI C. ' ' 0032 CD0000 CALL CO 0035 Fl POP PSW 0036 F5 HMTVP : PUSH PSW 0037 OF RRC 0038 0F RRC 0039 OF RRC 003P 0F RRC 003B CD4300 CALL HEXCHR O03E Fl POP PSW 003F CD4300 CALL HEXCHR 0042 C9 RET 0043 F5 HEXCHR : PUSH PSW 0044 E60F AN I 0FH 0046 C630 AD I '0' 0048 FE3A CPI ' 9' +1 004A DA4F00 JC HEX1 004D C607 AD I ' A' -' 9' -1 004F 4F HEX1: MOV C, A 0050 CD0OOO CALL CO 0053 Fl POP PSW 0054 C9 RET 0055 7E TXTVP : MOV A. M 0056 B7 ORA A 0057 C8 RZ 0058 F5 PUSH PSW 0059 E67F AN I 7FH 005B 4F MOV C, A 005C CDO00O CALL CO 005F Fl POP PSW 0060 F8 RM 0061 23 I NX H 0062 C35500 ..IMP TXTVP 0001 ERWRT EQU 1 ; IF 0002 ERRED EQU 2 i IF 0003 ERDKNM EQU 3 . IF : THESE ARE THE 19-AUG- FLOPPY DRIVE 76 IF THE DISK FAILS TO WRITE, TYPE "ERROR 1" IF THE DISK FAILS TO READ. TYPE "ERROR 2" IF NO SUCH DISK EXISTS, TYPE "ERROR 3" 1-0 ROUTINES 00F1 00F2 00F3 00F4 00F0 00F1 00F3 00F4 00F5 00F6 0001 0002 0004 FFFB INPORT OTPORT FDRED FDSTAT SRTSWE SRTRR FD I NWT FDWRIT SPTTFS SRTRSS FDOUT FDOTWT LOADHD HDUNLD EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0F0H 0F0H I NPORT INPORT+1 INPORT+2 INPORT+3 INPORT+4 OTPORT OTPOPT+1 0TP0RT+2 0TP0RT+3 0TP0PT+4 0TP0RT+5 0TP0PT+6 DATA FROM THE FLOPPY STATUS BITS OF THE FLOPPV READ THE SRT STATUS WORD INPUTTING THIS RESETS THE USRT TO LOOK KLUGE TO SYNCHRONIZE TO 32 MICRSECS ; DATA TO EE WRITTEN TO THE FLOPPY ; PORT OF THE DEFAULT CHARACTER SEND SIGNALS TO THE FLOPPY SVNC TO 32 MICROSECS THIS COMMANDS LORDS THE HERD FOP 3 SECONDS THIS FORCES RN IMMEDIATE HEAD UNLOAD , THESE ARE SIGNALS TO FDOUT (DIRECT FLOPPY CONTROLS:. WCSEL EQU 1 i 1=TRACK 0-43. 0=TRACK 44-76 FUREST EQU 2 > USE TO RESET A FILE UNSAFE CONDITION DIRIN EQU 4 i LOGICAL OR FOR IN TRACK DIROT EQU NOT DIRIN ; AMD FOR OUT TRACK WRTGAT EQU 10Q ; LOGICAL OR TO START A WRITE STEPP EQU 20Q ; LOGICAL OR TO START A STEP PULSE STEPM EQU HOT STEPP ; LOGICAL AND TO STOP THE PULSE ; THESE ARE THE DIRECT TRKZRO EQU 1 UNSAFE EQU 2 FDRDV EQU 4 ETRTUS LINES OF THE FLOPPY (IN FDSTAT > Listing J: Floppy disk drive input and output routines. As it stands, this listing is one step short of being a complete operating system, but could be used as a starting point for such an operating system. This program will run only on an 8080 with memory having a cycle time of 500 ns or faster; it will not run correctly if any interrupts or direct memory access (DMA) routines lasting longer than 2 ps occur during program execution. (See part I, page 42, February 1977 BYTE, "Software Timing.") the rest of the data on that block. When some track and sector is read, the track and sector numbers read must agree with the desired track and sector numbers. If these bytes disagree, then a seek error has oc- curred. The error detection information and the track and sector numbers are simple housekeeping data that the user need never be concerned with during data transfer. A more complex data base management system may store extensive housekeeping informa- tion with each block of data. Information such as forward and reverse linkages (point- ers to the succeeding and preceding blocks of data in a file), file name, number of valid bytes in a partially filled data block, date and time of the recording of this block of data, write or read protection, user identifi- cation, destroy date — all may be recorded as useful housekeeping data. If a format of 32 blocks per track, 128 data bytes per block is used, table 1 shows that this leaves only four bytes of data available with each block to record house- keeping data. Going to 16 blocks of 256 data bytes per block, the available house- keeping area increases to 37 bytes per block. 512 data byte blocks gives a substantial 103 bytes of housekeeping on each of eight blocks per track. The routines presented here were written as a first low level step toward a full floppy disk operating sytem, and the amount of housekeeping required for the full system necessitated at least the 256 byte block size. The 512 byte block size was ruled out because it consumed buffer space much too quickly, and because a single byte would no longer be sufficient as a buffer data counter. A DOS Block Format Table 2 shows the layout of the data block for my disk operating system (DOS) as it exists in memory and as it is written to and read from the disk. There are 280 bytes in the block, 256 of which are usable data bytes, and 24 of which are reserved for housekeeping. Of the housekeeping bytes, 92 five are not currently defined, and all but bytes 9, 10, 11, 278 and 279 are available to the user in the routines listed in this article. As of this writing, a full floppy disk opera- ting system for my peripheral interface to the 8080 has been completed (see note at end of this article). The format described here is that used by this operating system. In this format, the first nine bytes are designa- ted as the file name, ordered a la DEC as six ASCII characters of file name and three characters of extension. Having the file name associated with each block of a file is a great aid in data recovery from crashed systems (a not unheard of occurrence) and in trouble- shooting modifications to the operating system (a frequently heard of occurrence). Byte 9 is the number of the device (disk to disk 7) where this file was originally re- corded. This number does not have to match the number of the device that the file is subsequently read from. Bytes 10 and 11 are the numbers of the track and sector where this data block is stored. Valid values are any integer from to 76 for the track, and only even integers from to 30 for the sector. (With 256 byte blocks, we have to use every other sector.) Bytes 12 and 13 indicate the track and sector of the block of data preceding this one in a linked data file. If the current block is the first block, and no previous data blocks exist, then bytes 12 and 13 are set to zero. Since track zero, sector zero is reserved for the bootstrap copy of the operating system, no linked file can have this block address as a legal forward or reverse linkage. Bytes 14 and 15 give the track and sector of the data block following this block in the linked file. If this is the last block, values of and are again used to indicate an invalid linkage (end of file). Because no operating system is ever fin- ished and better ideas are generated as a continuous function of time, bytes 16 to 19 are reserved for whatever functions may become desirable in the future. Byte 20 is used when the last block in a recorded data file is not completely filled, indicating the actual number of valid data bytes stored in the data area. Bytes 21 to 276 inclusive contain the 256 bytes of usable data. The data in these bytes is usually the only data of final concern to a program retrieving data from a file. Bytes 278 and 279 are the cyclic redundancy check bytes, least significant byte first. This 16 bit value is calculated as detailed earlier, from the values of bytes to 276 inclusive. Now, the Software Listing 1 shows the software which con- trols the disk interface and performs the Listing 1, continued: 13008 0810 0020 9081 0100 0016 0117 0003 E00O E000 F3 EO01 0602 E803 C5 EO04 CD15EG E0O7 CD6FE0 E00H CI E0OB C8 EO0C 05 EOOD F203E0 E010 CD1000 E013 01 E014 C9 E015 E018 E01B E01E E01F E021 E022 E023 E024 E027 E029 E02C E02F E022 E035 E036 E03? E03C E03F E042 E045 E046 E04S E04B E04D E04E E051 E052 E054 E056 E058 E05R E05B E0SD E05E E05F E060 E061 E064 E067, E069 E06B E06E E06F CDH3E0 E072 CO E073 2175E3 E076 115BE2 E079 0600 E07B 1A E07C BE E07P CO E07E 13 E07F 23 E080 05 E081 C27BE0 E084 C9 E0S5 E086 E089 E08F1 EB8D E090 E093 E094 ES97 E09A E09C> E09E E0A1 E0A2 3H65E2 CD2EE1 214EE2 AF 0610 77 05 C221E0 3631 2A66E2 2243E2 215BE2 CDF3E0 EB 2272E3 CDD8E1 CD09E2 113601 214BE2 FIF P3F1 3A46E2 F60A E6FP D3F3 D3F4 IB 7FI B3 C253E0 3A46E2 E6F7 CDR3E1 CDB2E1 CDA3E0 CS CDB2E1 CDA3E1 CDA3E0 CS CDIOOO 02 C9 SCTP EQU INDX EQU HEADLD EQU 8 10H THESE RRE VARIOUS PARAMETERS SYNCB LNBUF XTRA LN2SNC DSKL I N EQU EQU EQU EQU EQU ORG DI MV I PUSH CALL CRLL POP RZ DCR. JP CALL DE RET 81H I THIS IS THE SVNC BVTE FOR STRPT OF TRUCK 256 i LENGTH OF THE BUFFER 22 ; EXTRA BYTES FOR HOUSEKEEPING LNBUF+XTRH+1 (DISTANCE OF SVNC TO CHECKSUM 8 ; UP TO 3 DISK DRIVES ON THIS CONTROLLER OE000H WRT256 CHKMRT B GDWR1 ERTYP ERWRT I THIS IS DISCONTIGUOUS RRM ; DISABLE THE INTERRUPT TO MAINTAIN CRITICAL TIMING I TRY THIS 3 TIMES BEFORE GIVING UP , FIRST, WRITE IT ; THEN CHECK FOR PROPER WRITE i RESTORE STACK, DON' T CHANGE FLAGS i SUCCESSFUL WR I TE. RETRIJN HOW I A BAD WRITE, TRY AGAIN ; IF WE STILL HAVE TIME, TRY AGAIN .ELSE, SIGNAL THE ERROR AND QUIT THIS ROUTINE A' AND THE DATA RT256; LDA CALL LXI XRA MVI UMES THAT THE TRACK AND SECTOR TO BE WRITTEN ARE IS ALL IN WRDAT CLRLOP ; MOV I NX DCR MVI LHLD SHLD LXI CALL XCHG SHLD CALL CALL LXI LXI XRH OUT LDA OR I MOV CALL MOV OUT AN I OUT OUT MOV OUT INK DCX MOV ORA LDA AH I OUT WRDEV DSKNUM : H, WRTBIJF A 1 B, 10H I M, A H B CLRLOP M, SYNCB I TRKWRT TRKWNT ; H. WRSHC9 CHK436 THIS MUST CONTAIN THE DISK NUMBER! PROCESS ANY UNIT NUMBER CHANGE ; CLEAR THE CLOCK SVNC BVTES BV FILLING WITH ZEROES 16 OF THEM STORE THE SVNC BVTE SET UP THE TRACK AND SECTOR POINTS J START OF THE CHECKSUM AREA WRCHKS ; STORE THE CALCULATED CHECKSUM TRKGET , GET THE DESIRED TRACK HEDLOD i LOAD THE HEAD D, LNBUF+XTRA+32 H, URTBUF , BUFFER AREA TO WRITE TO THE DISK A SRTTFS ; TRANSMIT A FILL CHAR OF ZERO FDBUF I THE OUT STATUS WRTGAT + FUREST i TURN ON THE WRITE GATE C, A ;HOLD THE WRITE COMMAND IN C SCTGET I GET THE PROPER SECTOR A, C FDOUT ; INIT THE WRITE GATE QUICKLY NOT FUREST I TURN OFF FILE UNSAFE RESET FDOUT FDOTWT ; KLUGE AND WAIT FOR. READY FOR DATA A, M FDWRIT A, D E WRTLOP FDBUF NOT WRTGAT FDOUT i NOW FDBUF ; THIS IS THE PRESENT STATUS TURN OFF THE WRITE GATE THIS ROUTINE PERFORMS A REREAD OF THE SECTOR JUST WRITTEN RETURN IS WITH Z=0 IF A READ FAIL OCCURRED, OR IF A READ DIDN'T MATCH THE IMMEDIATE PREVIOUS WRITE. Z=l IS A SUUCCESSFUL WRITE CALL RHZ LXI LXI MV I LDAX CMP RNZ I NX I NX DCR TRV3RD i TRY 3 TIMES TO READ IT .RETURN WITH Z=0 ON fl BAD ERROR H, RDSNCB D, WRSNCE B, I H E: CHKW1 , SET UP A 256 BYTE COMPARE ; 256 ISN'T ALL, EUT IT IS ENOUGH ; GET WHAT WAS WRITTEN ; COMPARE TO WHAT WAS READ I RETURN ON AH ERROR I UP THE POINTERS ; SUCCESSFUL RETURN, Z=l ;THIS ROUTINE TRIES 3 TIMES TO READ, THEN JOGS IN, AND OUT AND .AGAIN R.ED256: DI ; DISABLE THE INTERRUPT FOR CRITICAL TIMING TRV3RD ; TRY 3 TIMES TO READ THE BLOCK ; IF SUCCESSFUL, THEN RETURN CALL CALL CALL RZ CALL CALL CALL TRAKIN TRAKOT TRV3RD TRAKOT TRAKIN TRV3RD ERTVP ERRED JOG IN SCRAPE OFF FLIES AND FROGS THREE MORE JIG OUT SCRAPE OFF DIGITS AND DOGS LAST CHANCE COWBOY IF FIHALLV SUCCESSFUL, THEN RETURN IF NOT. THEN TYPE OUT THE ERROR THIS ROUTINE TRIES TO READ THREE TIMES, RETURNS Z-l FLAG IF OK. ON REA E0A3 3E02 E0H5 3245E2 E0A3 CDB4E0 E0AB CS MVI STA CALL REDTPY REDONC ACTUALLY TRY 3 TI HOLD ONTO IT TRV IT JUST ONCE 93 Listing 1, continued: E0AC 2145E2 E8AF 35 eobo fb E0B1 C3R8E0 E0B4 E0B7 E0BH E0BD E0C0 E0C3 E8C6 E0C8 E0CR EOCD EOCF E0D1 E0D3 E0D4 E0DS E0DS E0D7 E0DS E0D6 E0DE E0E1 E0E4 E0E7 EBEB 3R4RE2 CD2BE1 CDD8E1 CD09E2 111R01 2175E3 3E81 D3F2 CD1RE2 DBF3 DBF4 DBFO 77 IB 7R B? C2CFE0 2175E3 CDF3E0 3R3RE2 327FE3 2R3CE4 C3EDE3 E0ED 7C E8EE 32 EBEF C0 E0F0 7D E0F1 93 E0F2 C9 E0F3 E0FS E0F9 E0FR E0FB E0FC E0FD E0FE E0FF E100 E1B1 E102 E103 E104 E106 E107 E108 E109 E10A E10C E10D E10E E10F E110 E112 E113 E114 E11S E116 E118 E119 EUR E11B E11C E11D E11F E120 E121 E12 E123 E124 E12S E126 E127 E12A 011601 110000 7E E5 C5 RB OF 4F RS E6F0 RR SF 79 07 E61F 07 E601 57 79 E60F R3 07 E6E0 El 23 0B 78 El C2F9E0 C3 E12B FE08 E12D F285E1 E130 213RE2 E133 BE E134 C8 E135 F5 E136 E5 E'137 3E0S E139 BE E13R FA4EE1 El 3D 4E E13E 0600 E140 09 E141 23 LXI OCR RM JMP ; THIS ROUTINE PEDONC : LDR CRLL CRLL CRLL LXI LXI MVI OUT CRLL IN REDLOP: IN IN MOV I NX DCX MOV ORR JNZ LXI CRLL LDR STR LHLD JMP TRGP TRIES ONLY DSKWNT DSKNUM TRKGET HEDLOD D, LHBUF+: H, RDSNCB R, SYNCE SRTRSS SCTGET SRTRR FDINWT FDRED N, fi H D R. D E REDLOP H, RDSNCB CHK436 LSTDSK RDDEV RDCHKS COMPRR i IF TOO MANY, THEN RETURN Z=0 ; TPV TRV AGAIN, AGAIN ONCE (AND I DON'T BLRME IT RTHLL> THIS MUST CONTAIN THE DISK NUMBER!! PROCESS RNV UNIT CHANGE GET THE TRRCK LORD THE HERD TRA+4 ; POINT TO THE BUFFER AREA PROMPT THE USRT WITH WHAT TO EXPECT SHOVE IT GET THE PROPER SECTOR RESET THE USRT TO LOOK FOR THE SVNCB SPECIAL SVNC KLUGE TO HOLD ONTO THE BUD UNTIL DATA IS AVAILABLE ; POINT TO THE BUFFER AREA ;GET THE NUMBER OF THIS DISK, ; AND STORE IT IN THE READ AREA FOR FUTURE USE ; HL HAS THE CHECKSUM ;THIS ROUTINE COMPARES HL TO DE COMPPP : MOV A, H SUB D RNZ MOV R, L SUB E RET .THIS ROUTINE DOES R DOUBLE PRECISE CHECKSUM CHK436 CHKSUM CHKLOP LXI LXI MOV PUSH PUSH XRR MOV RRC RRC RRC RRC MOV XRR RNI XRR MOV MOV RLC RNI XRR MOV MOV RLC RNI XRR XRR MOV MOV RNI XRR MOV MOV XRR RLC RNI XRR MOV POP POP I NX DCX MOV ORA JNZ RET B, LNBUF+XTRA D, i GET THE BVTE TO SUM J SRVE RLL THE REGS L, R fl, C L, R A, B D. A A, C 0FH B E. A A, C B R. B C CHKLOP J NEXT BVTE IF NOT VET DONE THIS ROUTINE IS ENTERED WITH fl CONTAINING THE NUMBER OF THE DISK DRIVE UNIT ON WHICH THE DESIRED OPERATIONS ARE TO BE PERFORMED <0-DSKLIM-l>. IF THE LAST DRIVE USED HRS THIS DRIVE- THEN RETURN IS IMMEDIATE, AND NO ACTION IS TAKEN. IF R HEW DRIVE IS CALLED, THEN THE HEAD OF THE PRESENT DRIVE IS FORCED TO UNLOAD AND THE CURRENT TRACK NUMBER ASSOCIATED WITH IT IS STORED. THE NEW DISK'S LAST TRACK IS REMEMBERED, AND IF VALID, CONTROL IS RETURNED ELSE. THE NEW DISK IS INITED, AND THE TRRCK IS FOUND. DSKNUM: CPI JP LXI CMP RZ PUSH PUSH MVI CMP JM MOV MVI DAD I NX DSKLIM , 0- DSKR1 ; NO H, LSTDSK DSKN1 CM B, ACCEPTABLE IS CONDITIONALLY UCH DISK EXISTS! ! i POINTER TO THE LAST DISK ; NEW-OLD? i IF SO. THEN RETURN NO ACTION J ELSE, SAVE THE NEEDED DATA ; WAS THE OLD ONE LEGAL? i IF NOT. DON'T STORE THE OLD TRACK ) C=LAST NUMBER ; HL=LSTDSK+OLD DISK+1 operations described above. There are three main entry points to this software: DKINT, GDWRT and RED256. When called, these routines initialize a disk drive, write a data block, and read a data block, respectively. DKINT DKINT (for DisK INiTialize) is a subrou- tine called with the accumulator containing the number (0 thru 7) of the disk drive to be initialized. DKINT causes the selected disk drive to unload its data transfer head, step the head to track zero, and reset the track counter associated with that drive to zero. DKINT destroys the contents of all of the 8080 registers, so appropriate precau- tions should be taken when using it. This routine must be used after powering up the processor, and should be used both before disks are removed from the disk drives, and before they are referenced by programs after insertion. GDWRT GDWRT (for GooD WRiTe) causes a data block to be written to a specified track and sector on a specified disk. When the GDWRT subroutine is called, all of the data relevant to the transfer is assumed to already reside in the 280 byte buffer area from WRFLNM to WRFLNM+279. The number of the disk to be written on (0 thru 7) must be in location WRDEV (which is WRFLNM+9), the track number (0 thru 76) must be in TRKWRT (which is WRFLNM+10), and the sector number (an even number from to 30) mustbeinTRKWRT+1 (WRFLNM+1 1). The data to be stored on the disk may reside anywhere in bytes to 8 and 12 to 277 of the buffer area, but in the context of my operating system, the 256 bytes from WRFLNM+21 to WRFLNM+276 are specif- ically reserved for data. GDWRT performs the steps previously described for the write data block operation: generating the pre- amble, calculating the cyclic redundancy check, selecting the disk and positioning the head, writing the block, verifying the write operation and attempting to rewrite if nec- essary. Control will return to the program which called GDWRT after a delay of from 0.2 to 2 seconds, depending on the distance that the head had to travel and the occur- rence of any write errors. The user need not worry about the timing of the operation; however, no interrupts or hold operations longer than 2 jus may occur during GDWRT. Specifically, no memory slower than 500 ns response time may be used, and no device using direct memory access (DMA) opera- tions may occur during GDWRT. If such a delay happens at the wrong time, the data 94 will not be properly recorded, and following data blocks on the same track may even be overwritten and destroyed. Caution must also be observed when using both GDWRT and RED256 from the same program, since the write check operation of the GDWRT routine reads data into the buffer used by the RED256 routine, thereby destroying data previously present in the buffer. GDWRT performs the error detection and correction steps outlined above the returns with the zero flag true whenever the write operation was successful. If some write error occurs, the zero flag will be false (a JNZ instruction will jump). The contents of the 8080 registers are destroyed by GDWRT in either case, and only the Z flag returns with valid information. RED256 RED256 (for REaD a 256 byte block) reads a data block in from a specified disk, track and sector. When RED256 is called, it initiates the read operation, and assumes that the disk, track and sector of the data block to be read are stored in the mem- ory locations DSKWNT, TRKWNT and SECWNT, respectively, with the same re- strictions on the disk track and sector values as in the GDWRT routine. After being called, RED256 will return to the calling program after a delay of from 0.1 to 3 seconds. Upon returning, the zero flag is set (true) to indicate that the data block read in had the proper cyclic redundancy check bytes, and that the read operation was successful. The zero flag is cleared (false) to indicate that the read failed to produce the proper check value even after the multiple reads and head jogs described in the read error correction section. After a successful read, the block of data read will be present in the 280 byte buffer area from RDFLNM to RDFLNM+279, in the format shown in table 2. Because the buffer area is also used to check for errors during a write operation, as noted previously, the data read from the disk by a call to RED256 should be copied into another buffer area if the data is to be kept beyond the time of the next data block read or data block write. None of the 8080 registers are sacred during a call to RED256, and the programmer must take this into account. The three entry points described, DKINT, GDWRT and RED256, are sufficient for all operations involved in any data base manage- ment or operating system which uses the data block format of table 2. However, the personal computing enthusiast (by defini- tion never satisfied) may wish to use differ- ent data formats or different disk drives. Listing 1 , continued: E142 E145 E146 E143 E149 E14A E14B E14C E14D E14E E14F E152 E154 E156 E15S E156 E15C E15D E15E E161 E163 E164 E166 E1S3 E16B E16E E171 E174 E177 E17H E17C E17E E181 E1S4 77 D3F6 El Fl 77 4F 0F 0F OF 3246E2 D3F3 DBF1 E604 C285E1 09 F3 DBF1 ES04 C234E1 CDH3E1 CDA3E1 CDH3E1 CDH3E1 CDB2E1 DBF1 ES81 C277E1 3247E2 C9 E185 CD10OO E188 03 E189 C9 E13fl 3EFF E18C 323HE2 E18F 3C E190 F5 E191 CD9CE1 E194 Fl E195 3C E196 FE03 E198 C290E1 E19B C9 E19C CD2BE1 E19F CDS4E1 E1H2 C? E1H3 Eine E1A7 ElAfl E1HC ElflF E1B2 E1B5 E1B6 E1B9 E1BB E1BE E1C0 E1C2 E1C4 E1C6 E1C9 2147E2 34 3A46E2 FS04 3246E2 C3BEE1 2147E2 35 3A46E2 ESFB 3246E2 F610 D3F3 E6EF 03F3 CDCAE1 C9 E1CA 01FF03 E1CD flF E1CE BB E1CF B9 E1D0 C2CEE1 E1D3 B3 E1D4 C2CEE1 E1D7 C9 E1D8 E1DB E1DD E1DE E1E1 E1E2 E1E4 E1E5 E1ES E1ER E1ED E1EE E1F0 E1F1 E1F4 E1F5 E1F8 E1F9 E1FR E1FD E2O0 E203 E206 3R48E2 FE4D F0 2146E2 7E E6FE 77 3R48E2 DE2C F2F1E1 7E F601 C3 F203E2 CDB2E1 C3F1E1 CDH3E1 C3F1E1 GTRKS ■ DSKH2 LDA MOV OUT POP FOP MOV MOV RRC PRO RRC STA OUT IN RNI JNZ DAD I NX MOV STR CPI PM IN RNI JNZ CALL CALL CALL CRLL CALL IN RNI JHZ STR RET CALL DB RET MVI STA IHR PUSH CALL POP INR CPI JHZ RET PSW M, A C, A FDBUF FDOUT FDSTRT FDRDV DSKR1 A* M TPAKNO FDSTRT FDRC'V NODS!:' TRflKIN TRRKIH TRRKIN TRflKIN TRAKOT FDSTRT TRKZRO TRZLP TRRKMO ; STORE THE OLD CURRENT TRACK NUMBER i FORCE THE HERD TO UNLOAD > RETRIEVE THE OLD DATR i STORE THE NEW NUMBER RS THE OLD ONE i BC=NEXT DISK i fl=NENTRRCK*32 I CONSIDER THIS THE NEXT DRIVE COMMAND ;SET UP RHERD OF TIME TO DEGLITCH ; CHECK THE STRTUS OF THIS DISK i IS IT LORDED AND USEFUL? ; NO, TELL USER ABOUT IT! ;THIS IS WHERE THE DISK WAS LEFT I DECLARE IT THE CURRENT COUNT I 0-76? ERTVP iDISK NUMBER >7 ERDK.NM A, 255 LSTDSK PSW DKINT PSW fl DSKL I M IHI1 DKINT: CALL DSKNUM CALL QTRK0 RET THESE ROUTINE THESE ROUTINE ONE TRACK FOR TRAKIN: LXI INR LDA OR I STA JMP TRAKOT: LXI DCP LDR RNI STR TRRKMV : ORI OUT AN I OUT CALL RET 1 THIS ROUTINE TENMIL: LXI XRR TMLP . DCX CMP JNZ CMP JNZ RET ; THIS ROUTINE TRKGET : LDR CPI RP LXI MOV AH I MOV LDR SB I JP MOV ORI MOV S HOVE THE TRAM!: : MOVE THE EAD IN (TOWARDS HUB ) OR OUT (TOWARDS CIRCUMFER EACH CALL9 CRLL LASTS 10 MILSECS H, TRRKNO M i COUNT UP ONE TRACK FDBUF DIRIN FDBUF TRRKMV H, TRRKNO M FDBUF DIROT FDBUF STEPP FDOUT STEPM FDOUT TENMIL JU T fl 17770 . COUNT DOWN THE TRACK ; CLEAR FOR AN OUT MOVE I SAVE IT I SET THE STEP BIT I AND THE START BIT ; CLEAR STEP BIT I MBIT TEN N I LSECS SOFTWARE 10MS WAIT GETS THE DESIRED TRACK (FOUND IN TRAHNT) TRKWNT : GET THE DESIRED TRACK NUMBER 77 i ERROR H- FDBUF A, M NOT UCSEL M, fl TRKWNT 540 TRKG1 fl, M WCSEL M, R TRKG1 ' TGETLP : LDA MOV LDA CMP RZ JP CALL JMP INGIN: CALL JMP ; THIS ROUT I HE TRRKNO B, fl TRKWNT B ; GET THE PRESENT TRACK NUMBER ; B IS WHERE WE ARE AT ;fl IS WHERE WE WANT TO BE WE ARE THERE ; A>B THEN GO IN I fl. IS LOST'' E25C 81 46494C4E 414D4558 LSTOSK: DKTR8 : SCTNXT : REDTPV FDBUF TFRKNO TPt UNT SECWNT : DSKHNT HPTEUF : MRSNCS WPFLNM E260 E264 54 E265 00 E266 0088 E268 0000 E26A 0888 E26C E270 00 E271 E372 E275 E375 SI E376 46494C E37R 414D45 E37E 54 E37F 00 E386 8888 E382 0000 E3S4 0000 E386 E33A 80 E33B E4SC 0000 BVTVP 082F CHKW1 E07B CONPfl EOED Dl TR8 E23B DSKNU EPMES FDBUF FDPDV fupe: HDUNL 00F6 HEXCH 6043 I N I T EISA LGHDH 80F5 UTPOR 06F6 RDDEV E27F PEDLO E0CF RRVLH E382 SCTNX E243 SRTPS 0OF2 STEPP 0010 TMLP E1CE TPAKO E1B2 TRKRE E330 TRV3R E8R3 WCSEL 8601 URDAT E271 WRT25 E015 WPVLN E26S URDEV : TRKIdRT: NPVLNK L-JFL-JLrJK WRCNT : WRDAT : WRCHKS RDSNCB RDFLNM RDDEV : TPI'PED PRVLNK : RFNLNK RDCNT : PDDRT RDCHKS E12B 0028 0004 0002 CHK43 CHKHR D I R I N DSKL I DSKP1 ERRED FD I NN FC'RED GDUR1 HERDL INDX I NPOR LSTDS RDCHK PDFLN REDON SCTGE SCTP. SPTSU SVNCB TRRKI TRGP TRKWN TRZLP WFWLN IIPDEV WPTBU XTRA DB DB DB DB DB DB DS DB DB DB DB DE: DB DS DB DS EGU ORG DB DB DB DB DB DS DB DS EGU END E8F3 E86F 0884 0008 E18S 0002 00F4 0OF6 Eoa; 0020 6010 00FO E23R E4SC E376 E0B4 E21H 0008 80F2 0081 E1A3 E0R8 E248 E177 E26A E2S5 E24B 0816 SVNCB FILNRM NAM. ext. ? DEV I CE NUMBER CURRENT TRRCt- TRACK SECTOR I TRACK. SECTOR OF FOLLOWING BLOCK <0» IF THIS FUTURE USE BVTE COUNT OF INCOMPLETE DRTR BLOCKS 256 DRTR BVTES CVCLIC REDUNDANCE CHECK BVTES ; NUMBER OF THE LAST DISK TO BE USED I i UP TO 8 DISKS WITH SEPEPATE TRACKS TO KEEP ; TEMPORARY POINTER TO NEXT SECTOR i COUNTER FOR 3 RTTEMPTES I BUFFEPE TO THE FD CONTROLS ; CUPRENT TRACK i DESIRED TRACK I DESIRED SECTOR NUMBER I DESIRED DISK NUMBER .128 BITS OF SVNC S THE CLOCK I SYNC BVTE GOES HERE ■ EXT' .NRME OF FILE RS IT RPPERPS IN THE DIRECTORS' I ONE OF IS DEVICES OF 16 TYPES 0.0 TRACK, SECTOR THAT THIS WILL BE WRITTEN TO 0, , TRACK, SECTOR OF THE LAST BLOCK BEFORE THIS 0, I TRACK, SECTOR OF THE NEXT BLOCK AFTER THIS 4 .RESERVE 4 BVTES FOR EXPANSION 8 ;RERLLV ONLV USED BY THE BVTOT ROUTINES 256 WRSHCB+LN2SHi: WPCHKS+3 SVNCB I HERE FALLS THE INPUT SVNCBVTE FILNRM , EXT , SAME RS DIRECTORY ENTRY I INCONSEQUENTIAL J THIS MUST AGREE WITH THE TRACK, SECTOR DESIRED : LRST TRACK SECTOR READ ,NEXT TRACK SECTOR READ FOR THIS FILE . EXPANSION RDSNCB+LN2SNC CHKLO E8F9 CHKSIJ E8F6 CLRLO E021 CO 0888 DIROT FFFB DKINT E1SC DSKN1 E146 DSKH2 E166 DSKWN E24A ERDKN 0003 ERTVP 0010 ERWRT 0001 FDOTW 00F4 FDOUT 00F3 FDSTA 06F1 FDWPI 0OF0 GDWRT E000 GTPK8 E164 HEOLO E20S HEX1 004F INGIN E203 INI1 E190 LN2SN 0117 LNBIJF 0100 NMTVP 0036 NODSK E184 RDCNT E3SP PDDHT E33B RDSNC E375 PED25 E035 PEDTR E245 RFWLN E384 SCTL2 E236 SCTLP E227 SECMN E249 SRTRR 00F3 SPTTF 08F1 STEPM FFEF TENMI E1CR TGETL E1F1 TPRKM E1BE TPRKH E247 TRKG1 E1F1 TPKGE E1D8 TRKWR E266 TRKZR 0001 TXTVP 0055 UNSAF 0002 WPCHK E372 WRCNT E270 NRFLN E25C WRSNC E25B WPTGA 0008 WPTLO E053 The following subroutines, which are con- tained in this software, are useful for such purposes. WRT256 This subroutine performs all of the write operations: generate preamble, sync byte, cyclic redundancy calculation, head load and seek, and data write. This is all that is done; no verify operation is performed, and the write is only performed once per call of WRT256. REDONC This subroutine performs all of the read operations: head load and seek, data read, cyclic redundancy check generation and comparison. Control is returned to the call- ing program with the Z flag set if the calculated cyclic redundancy check equals the value read from the disk. The read is performed only once per call of REDONC, regardless of whether the checking informa- tion indicates a proper read or not. DSKNUM In a multiple disk drive system, when changing from a read or write operation on one disk to a read or write operation on another drive, this routine must be called. The number of the next drive to transfer data to or from must be in the accumulator (a value of to 7) when DSKNUM is called. If the number of the next drive to be used is different from that of the last drive, then DSKNUM will unload the head of the last drive, store the number of the track where the head of the last drive is positioned, enable the next drive, and recall the track where the head of the next drive is posi- tioned. If the next and last drives are the same, no action is taken. CHKSUM This routine is entered with the HL register pair pointing to the first byte of some block of data whose cyclic redundancy check is to be calculated. The BC register pair contains some number from I to 65,536, indicating how many bytes are used in the calculation. The 16 bit check value is returned in the DE register pair. The pro- gram used to calculate this binary poly- nomial is adapted from the Intel Users Library (program 80-41). TRKGET The desired track, from to 76, is stored in the byte labeled TRKWNT. When TRKGET is called, the selected disk (selec- 96 ted by DSKNUM above) will move its data transfer head in or out until it is over the desired track. The desired track number is compared to 44, and the proper write current is selected on the WRITE CUR- RENT SELECT line of the interface. Upon returning from TRKGET, the head is at the proper track and the required head settling time has transpired. Calling TRKGET when the head is already at the proper track causes an immediate return; this will not signifi- cantly slow down the calling program. TRAKIN Calling this routine moves the data trans- fer head of the selected disk inward one track and increments the track counter. A 10 ms track movement delay occurs before control returns to the calling program. TRAKOT TRAKOT performs the inverse of TRAKIN by moving the head out one track, decrementing the track counter and delaying 10 ms before returning. TENMIL This is a software delay routine which delays 10 ms before returning. When using an 8080 or Z-80 system with a faster cycle time than 2 MHz, the delay loop counter should be changed. Because this software will not operate properly in memory with a cycle time longer than 500 ns, no values for slow memory need be given. HEDLOD This routine generates a head load pulse which causes the head of the selected disk drive to be loaded for at least 3 seconds following the call to HEDLOD. If the head was not loaded when HEDLOD was called, a delay of 30 ms occurs before control is returned to the calling program. If the head was loaded when HEDLOD was called, then the return is immediate. SCTGET SCTGET is called with the desired sector value in the memory location labeled SECWNT. The routine waits for an index pulse to occur on the selected disk drive, and then counts the sector pulses that follow. The first sector pulse following an index pulse is the start of sector 0, and the last pulse preceding an index pulse is the start of sector 31. Control is returned to the calling program within 15 to 25 ms of when the leading edge of the desired sector pulse is found. Only registers A and B are used by this routine, allowing all other registers to be used by the calling program. Conclusion The software described in this article allows the advanced computer experimenter, who has implemented the economy floppy disk interface, to make good use of his/her floppy disk drive(s) for data storage and retrieval. These routines have been opera- tional for well over one year, and for the last year, GDWRT, RED256 and DKINT have formed the heart of my 4 K byte (including data buffer areas) 8080 floppy disk opera- ting system. This operating system allows machine language programs to be stored and retrieved, MITS BASIC programs to be stored and loaded (through the CSAVE and CLOAD routines), editing of text files (this article and my previous one were written and edited on the disk system) and batch stream processing (by assigning the keyboard input to be taken from a batch stream file on the disk). An unlimited number of files may be open for input or output simulta- neously, requiring only a 280 byte buffer area for each file. BASIC programs can create, read, write and modify data files in ASCII or binary. All files can be specified with a 9 letter file name and a disk number. The rest is up to you. This sytem can give you the extra bit of programming power you've been looking for!" NOTE: A floppy disk operating system is available for use with the interface described in February 1977 BYTE. The operating system runs in 4 K of 500 ns (or faster) user memory addressed at D000 hexadecimal. The operating system is available on a diskette with two bootstrappable copies of FDOS on tracks and 1, and the source code for the operating system is also supplied on the diskette. Programs supplied on the diskette allow the user to reconfigure the FDOS to use his own IO devices and to store and run any of the users programs by name. The diskette and documentation are avail- able for $40 (Ohio residents add 5.5% tax) from K B Welles, 2623 Fenwick Rd, University Heights OH 44118. Object Code in Machine Readable Form The bar code represen- tation of Dr Welles' floppy disk software is expected to be prepared in time for the July issue of BYTE, where it will be printed as a small feature supple- menting the information in this month's article. 97 NOW!! Z- 80 Power for the S-100 bus without getting rid of your CPU card $159.95 assembled ,® "Mf*34»*S-ft-J3JJ a leader in low cost, low power ram boards has just announced it's Zj oU — OU piggy back card. This plug — in board enables you to use your existing IMSAI, 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. Bryn Mawr, Penn. 19010 (215) 525-7712 BYTE OF PALO ALTO 2227 El. Camino Palo Alto, Ca. 94306 (415) 327-8080 HOBOKEN COMPUTER WORKS 20 Hudson Place Hoboken, N.J. 07030 (201 420-1644 BYTE OF WESTMINSTER 14300 Beach 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 B of A & MASTERCHARGE ACCEPTED 16384 BYTES for $485.00 assembled (with sockets) : tested - burned-in - guaranteed A new high in S100 bus memory cost effectiveness. Fully assembled (with sockets), tested, burned—in and guaranteed. 4Kxl dynamic memory chips (the same ones used by the ton in IBM compat- ible memory systems) combined with self contained control logic, yield a memory system with: • L ow 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 UyTlCluy t6 brings to the S—100 Bus a state of the art, industrial quality memory system. 16K on a single board for $485.00, Guaranteed for 1 year. BY Tli OF PASADENA 496 So. Lake Ave. Pasadena, Ca. 9 J 109 (213)684-3311 BYTE OF SANTA CLARA 3400 El Camino Real Santa Clara. Ca. 95051 (408)249-4221 BYTE OF WALNUT CREEK 2989 N. Main St. Walnut Creel,: Ca. 94596 (415) 933-6252 BYTE OF SAN MATEO 1200 W. Hillsdale Blvd. San Mateo, Ca. 94103 (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 219 on inquiry card. Artificial Intelligence, Part 2: Implementation Michael Wimble 6026 Underwood Av Cedar Rapids IA 52404 As described last month in part 1, there are five types of mutations that can be performed with the simulated evolution technique. A separate subroutine will be used for each mutation type. Four of the subroutines rely heavily on a subroutine which generates a random number between limits. (For those systems not already pos- sessing random number generators, a box (FROM FIG. 6) f ADDSTATE J mutation i: add state [mutate subroutine] (FIG. 6) SELECT RANDOM NUMBER OF MUTATIONS DETERMINE NEW STATE LINKAGE ENOUGH \ NO MUTATK BUILD NEW STATE INDICATE SUCCESSFUL MUTATION f GO TO \ I ISREM J I 1 ISELECT RANDOM I ILINKAGE AND I IREPOINT IT TO | I NEW STATE I I (FIG. 7) Figure I: Mutation type I, add a state to the model. This routine determines if there is room for another state. If there isn't enough room the model fails. If there is enough room the routine deter- mines a new state linkage and then builds the new state. This is a component of the MUTATE sub- routine. accompanying this article gives an algorithm to produce pseudorandom numbers by the power residue method.) Figures I through 9 are flowcharts of the basic modules which were extracted from a fairly sophisticated system of FORTRAN programs. These are intended to serve as a starting point for the reader in implementing his/her own program. If there is sufficient reader interest, I would be happy to program and publish program listings of implementa- tions for one or more small system proc- essors, in any popular computer language. The rest of this article then is a descrip- tion of the modules used to implement a 2 symbol gaming program using the artifi- cial intelligence technique. If more detail is needed I suggest you look first into the book Artificial Intelligence Through Simu- lated Evolution by L J Fogel, A J Owens and M J Walsh (John Wiley and Sons, New York, 1966) or send questions and a self-addressed stamped envelope to me. Although there are many flowcharts and the technical jargon may seem complex at times, I wish to emphasize that the programming is simple and the technique can be implemented on any personal computing system with sufficient memory. Mutation 1 — Add a State Figure I describes the first mutation type. As shown, the number of states is first compared to some maximum number. Most programs will have a fixed amount of mem- ory allocated for containing the model, and so a check is made to see if any memory is yet available for expanding the model. The 2 symbol version previously discussed can conveniently be implemented using two bytes per state with the maximum number of states being 127. The programmer must determine the internal representation of the model and the amount of memory available and then set a variable to represent the maximum number of states the model can hold. 100 An Evolutionary Idea The random number subroutine is called to provide an iteration counter. This counter is the number of randomly selected transi- tions that will be pointed at the new state. If no transitions were pointed to the new state then it would be an impossible state, ie: it could never be reached and could contribute no value to the model. Next, random transi- tions are changed to point to the new state which is to be created. Then, the new state is created. Finally 1SREM is entered to remove any impossible states from the model. Mutation 2 — Delete a State Figure 2 describes the second mutation type. As with mutation type 1, a check is made of the number of states currently in the model. If there is only one state in the model, the mutation fails, since to delete the state would totally eradicate the model. If there is more than one state then the mutation will be able to proceed success- fully. Next, one of the states in the machine is randomly selected to be deleted. The only state that cannot be deleted with this sub- routine is the state designated as the first state. To delete this state would result in the same mutation as mutation type 4 and is thus prohibited to this subroutine. The actual deletion is accomplished in a rather roundabout manner. Every transition in the model is checked to see if it refers to the state being deleted. If so, it is repointed to some other random state number. The result of course is the creation of an impos- sible state, one that cannot be reached and is thus useless to the model. Entering the ISREM routine, as explained in the descrip- tion of mutation type 1, will remove any impossible states from the model and so effect the actual deletion of the desired state. Mutation 3 — Change a Transition Figure 3 describes the third mutation type. The model is first checked for having more than one state. If there is only one state, then all transitions must necessarily point to that state, and so no change can be made and the mutation fails. Otherwise a (FROM FIG. 6) ( DELSTATE J MUTATION 2: DELETE STATE [MUTATE subroutine] C GO TO \ ^ ISREM J (FIG. 7) Figure 2: Mutation type 2, delete a state from the model. This routine checks to make sure that there is more than one state in the model or else it fails. If there is more than one state it deletes all references to a randomly chosen state thereby severing it from the rest of the model. This is a component of the MUTA TE subroutine. (FROM FIG. 6) MUTA RAND [MUTi TION OM 1 \TE ) 3: "RANSITION CHANGE SUBROUTINE] ( RANSTATE J ,/STATES\ * < s > \^ 1 jr Tno ES/' GOTO ^ MUTCHK (FIG. 6) CHOOSE AND REPOINT RANDOM LINKAGE Figure 3: Mutation type 3, change a transition. This mutation will fail if there is only one state In the model. If there is more than one state a transition will be randomly chosen and repointed to another INDICATE SUCCESSFUL MUTATION state from that to which it is presently pointing. This is a component of the MUTA TE subroutine. f GO \^ ISR (FIC TO N EM J . 7) 101 A Pseudorandom Number Algorithm 1. Test X, a 16 bit variable. If X is equal to zero, then set X to any number such as the time of day, or some other indeterminate number, and repeat step 1. This defines the initial seed of a pseudorandom sequence. 2. Multiply X by 259 to yield new value for X. Keep only the 16 least significant bits of the result. Increment X by 1. 3. If X is zero go to step 1 . 4. Divide X by the input argument but do not destroy original value of X. The remainder of this result is a pseudorandom number between zero and one less than the input argument. (FROM FIG. 6) mutation a: change initial state [mutate subroutine] (FIG. 6) CHANGE FIRST STATE TO ANY OTHER STATE INDICATE SUCCESSFUL MUTATION C GO TO *\ IisremJ (FIG. 7) (FROM FIG. 6) Figure 4: Mutation type 4, change the first state num- ber. This mutation fails if there is only one state in the model. If there is more than one state the first state will be changed to any of the other states. This is a component of the MUTA TE subroutine. f PSI STATE J mutation 5-. advance i state [mutate subroutine] (FIG. 6) SET FIRST STATE TO SECOND STATE INDICATE SUCCESSFUL MUTATION (GO TO N ISREM J (FIG. 7) Figure 5: Mutation type 5, advance model by one state. This mutation fails if the first state is equal to the second state. If this is not true the first state is set equal to the second state of the model. This is a component of the MU- TA TE subroutine. random element in the model is chosen and its transition pointer is changed to point to some other state. ISREM must be entered at the end of the routine since the changing of a transition may have resulted in the cre- ation of an impossible state. Mutation 4 - Change the First State Number Figure 4 describes the fourth mutation type. Again, if there is only one state in the model, then it must necessarily also be the first state, and the mutation would then fail. Otherwise the first state number is set to any other state in the model. Also it is possible that an impossible state was created as the result of this mutation, so ISREM is entered to remove such impossible states. Note that earlier discussion described the fourth mutation type as changing the cur- rent state number of the machine. The model must be driven by history from the first state when performing evolution, and it is seldom possible to work backwards from the current state number to determine the first state number. It is practical, therefore, to modify the mutation from change current state number to change first state number. The result of changing the first state number will usually end up changing the current state number. Mutation 5 One State Advance Model by Figure 5 describes the simple but power- ful mutation type 5. If the first state number is equal to the second state number of the model, then the mutation fails. Otherwise the first state number is set to the second state number. Earlier discussion of mutation 5 described it as advancing the current state number by one. As with the case of mutation type 4, it is impractical to change the current state number directly, so the first state is ad- vanced by one and evolution routines des- cribed later will run the model over its historical recall to result in the current state number actually being advanced by one state. Mutation Control Figure 6 shows the logic involved in con- trolling the mutation process. A random number is generated and used to select one of the five mutation types to be performed. Upon return from the mutation routine, a check is made for successful mutation. If the attempt was unsuccessful, a random selec- 102 tion is again made until a successful muta- tion is finally made. Finally, the routine OPTIMIZE is used to perform deterministic optimization and to assign a value to the model. For those who implement this artificial intelligence game and would like to improve the intelligence forming process, the muta- tion control routine of figure 6 offers the greatest potential for improvement. The mutation selection process shown is simple and effective, but is essentially a brute force method. One of the first improvements I made to the program was to allow dynamic altering of the probability of selecting a mutation type. That is, if ADDSTATE was called successfully and resulted in a model with a higher value than before, then the probability of selecting ADDSTATE in the future was increased slightly. Similarly, if any mutation type was performed success- fully and decreased the value of the model, then the probability of selecting that muta- tion type again was made slightly less. The most sophisticated versions of this artificial intelligence program use the very artificial intelligence process to optimize the selection of mutation types, thus aiding the evolution process. ISREM — Remove Impossible States Figure 7 describes the subroutine that removes impossible states. An impossible state is any state that cannot be reached. For example, the model: <£b Y f =X has the impossible state Z. An impossible state cannot contribute to the value of a model but can hinder the model. If a model already had the maximum number of states permitted, but five of these states were impossible states, then the ADDSTATE mu- tation could not be performed until some states were deleted to make room. The flowchart of figure 7 will not remove all impossible states. For instance, if in the figure above, the current state was changed from X to Z, then X and Y would now be impossible states instead of Z. The sub- routine described will only find those states which are impossible solely because they cannot be reached from another state of the current model. In practice, this has never yet failed to eventually find all impossible states. (CALLED FROM FIG. 9) (FROM FIGURES I TO 5) MUTATE SUBROUTINE ENTRY POINT f MUTATE J RANDOMLY SELECT MUTATION TYPE (do 60 TO SELECT^ MUTATION ^ (FIGURES I TO 5) f GO TO "N ^ OPTIMIZE J (FIG. 8) Figure 6: The MUTATE subroutine entry point. MUTATE chooses the type of muta- tion that will be performed using a pseudo- random number generator. At MUTCH K we check to see if the mutation was a success. If it was not then the MUTA TE routine con- tinues by choosing another mutation. (If at first you don 't succeed . . .) If the mutation was a success then the optimization process cleans up the mutation by transforming it to its most usable form before returning con- trol to the main program logic of PREDMUT. (FROM FIGURES I TO 5) impossible state removal [mutate subroutine] SET VECTOR TOO FLAG STATE I AS REFERENCED FLAG ALL NONSELF REFERENCES INTERCHANGE UNREFERENCED STATE WITH LAST STATE REPLACE REFERENCES TO OLD LAST STATE NUMBER OF STATES NUMBER OF STATES Figure 1: Routine ISREM removes any impossible states from the model. It performs this by checking all of the transitions to see that all of the states are referenced at least once. If it finds a state that is not referenced it will inter- change that state with the last state of the model and delete the last position as valid. This is a house- keeping component of the MUTA TE subroutine. 103 (FROM FIG 6) ( OPTIMIZE J deterministic optimization [mutate subroutine] SET MATRIX TO ZEROS DETERMINE MOST FREQUENT OUTPUT STEP THROUGH MODEL DETERMINE OPTIMUM PREDICTION | 1 | USING HISTORY STEP ITHROUGH MODEL AND 'COUNT REQUIRED OUTPUTS I [FOR EACH STATE LINKAGE I ( ! I CHAIN THROUGH EACH STATE LINKAGE I 'AND SET OUTPUT TO MOST FREQUENTLY ! REQUIRED SYMBOL, THIS IS OPTIMUM | IPREDICTION FOR THE STATE I I I STEP THROUGH MODEL USING HISTORY COMPUTE VALUE OF MODEL /return TO~\ V ^ PREOMUT J prediction ai symbol-] :tual occur symbo^ ence symbo^ symbol 1 value] ] value-] 2 value] 3 symbol value2l value22 value23 symbol3 value3i value32 value33 (FIG 9) Figure 8: Routine OPTIMIZE determines the optimum prediction for each state of the new model. Il will then evaluate the model using past history as a model to determine the value of the mutation. This is the final processing of the Mill ATE subroutine of the program. Table I: The matrix used to evaluate the optimized form of the new mutation. Each predicted input symbol is matched against the actual input. The value for that combination is then added to the total value of the model. In this manner, using historical methods, the new model can be compared to the older model to see if it is more efficient. Looking at the flowchart then, the proc- ess is simple. First a table is set to zero. Every transition is then examined. If the head of the arrow points to a different state than the tail, then the entry in the table corresponding to the state pointed to by the head of the arrow is flagged. After looking at all transitions, the table is examined. If any state in the model remains unflagged then it is an impossible state. If the impossible state is the last stale in the model, then one need only decrement the variable denoting the number of stales in the model to result in the deletion of the state. Otherwise the impossible stale is first swapped with the last state in the model before the variable is decremented. OPTIMIZE - Evaluate New Model Figure 8 describes the most important segment of the program. OPTIMIZE per- forms the deterministic optimization men- tioned previously, and evaluates the model with respect to the goal. Optimization and evaluation provide the criteria for the evolu- tion selection procedure. OPTIMIZE is conceptually simple, al- though often large of implementation. The model is made to perform with historical data. As each input observation is fetched and the appropriate transition made, the required output is noted. Thus for each transition we have a table of the number of times each output should have occurred for perfect prediction. The output symbol that should have occurred most frequently for a transition is then made the output for that transition. If the transition was never used during this historically driven run, then the transition is made to output the most frequently occurring output symbol over all of history. After optimization, the model is rerun using the same historical data. Now, how- ever, the optimized model is evaluated in terms of its ability to achieve the goal provided. The goal is expressed in a matrix of the form shown in table I . For each transition the prediction and actual occurrence are used to extract a value from the table. The sum of these values is the value of the model. For the purpose of predicting primes, the matrix is defined in table 2a, while for earthquakes the matrix is defined as in table 2b. You see then that each accurate pre- diction of an actual earthquake or no earth- quake adds 1000 to the value for the model. To predict an earthquake when one does not occur adds 500 to the value of the model, 104 IF you talk computer!, me ipeak qour language. 1. MICROPROCESSORS Technology, Architecture and Applications Daniel R. McGlynn This book explains how a microcomputer sys- tem is built and used.and also provides a unique survey of the specific models of micro- processors available today. Gives useful actu- al applications including automotive, telecom- munication, low-cost home computers, microprocessor selection criteria, microcom- puter system design techniques, a semicon- ductor technology review, software and the use of development systems. (0 47158415-2) 1976 207 pp. $1 1 .95 2. MICROPROCESSORS AND MICROCOMPUTERS Branko Soucek Here is a complete, detailed text and introduc- tion to the field beginning with the basics and taking the reader all the way to programming. Some of the book's features include: ■ Explanation of digital codes • Simple hexadecimal, assembly, and high- level programming • Logical systems and microcomputer orga- nization • Basics for design and use of microproces- sor-oriented systems, and the replace- ment of powerful minicomputers with the microchip set. (0 47181391-5) 1976 607 pp. $23.00 3. COMPUTER-AIDED EXPERIMENTATION Interfacing to Minicomputers Jules Finkel Providing practical guidance on all major topics needed in interface specification and design, this book shows you how to connect scientific instruments and experiments to computers and to analyze suggested criteria for the selection of system elements. Offers many examples of practical connections and how to overcome problems that are common- ly encountered. (0 47125884-9) 1975 422 pp. $28.00 4. INTRODUCTION TO MICROCOMPUTERS AND MICROPROCESSORS Arpad Barna & Dan I. Porat Presents a concise, basic introduction to microprocessors— what they are, how they work, and how to read the applications litera- ture. You'll find descriptions of the basic structure of a microprocessor, arithmetic operations and circuits, basic programming techniques, and information on input/output, memory, assemblers, loaders, data struc- tures, and subroutine linkages. (0 47105051-2) 1976 108 pp. $11.25 5. MINICOMPUTERS IN DATA PROCESSING AND SIMULATION Branko Soucek Explores basic principles of digital codes and logical systems, concentrating on program- ming, organization and interfacing. Soucek explains the elements of digital circuit design, the basic instruction set for a minicomputer, and data simulation necessary to design and use your digital systems. (0 47181390-7) 1972 467 pp. $24.50 WILEY-INTERSCIENCE a division of John Wiley & Sons, Inc. 605 Third Avenue, New York, N.Y. 1 001 6 In Canada: 22 Worcester Road, Rexdale, Ontario 6. A PRACTICAL GUIDE TO MINICOMPUTER APPLICATIONS Edited by Fred Coury Bringing together the work of leading experts, this volume provides information and examples of the application of minicomputer techniques, what is actually involved in the application and how to go about the selection and connection process. The five parts include an introduction to minicomputers, peripheral and software considerations, mini- computer selection, general applications and specific application. (0 47118051-3) 1972 211pp. $6.45 7. SCIENTIFIC ANALYSIS ON THE POCKET CALCULATOR Jon M. Smith Smith shows, in clear step-by-step proce- dures, how to use and apply numerical tech- niques, approximations, tables, graphs, and flow charts for performing quick accurate cal- culations, all the way to advanced mathemat- ics. Using few derivations and theorems, it's the best book for getting numerical results for scientific operations from your pocket calcu- lator. (0 47179997-1) 1975 380 pp. $13.75 Circle 214 on inquiry card. Please send the books indicated for 1 0-DAY FREE EXAMINATION. (Restricted to the continental U.S. and Canada.) Mail to: WILEY-INTERSCIENCE P.O. Box 092 Somerset, N.J. 08873 □ Payment enclosed, plus sales tax. Wiley pays postage/handling. We normally ship within 1 days. If shipment cannot be made within 90 days, payment will be refunded. [J Bill me. □ Bill firm or institution. NAME AFFILIATION ADDRESS CITY D 1. McGlynn (0 471 58415-2) □ 2. Soucek (0 471 81391-5) □ 3. Finkel (0 471 25884-9) □ 4. Barna/ Porat (0471 05051-2) □ 5. Soucek (0 471 81390-7) □ 6. Coury (0 471 18051-3) □ 7. Smith (0 471 79997-1) STATE /ZIP Prices subject to change without notice. 092 A 8071 -57 (a) prediction prime actual not prime prime 1 not prime 1 (b) prediction earthquake actual no earthquake earthquake 1000 500 no earthquake 1000 Figure 9: This is the main control logic of the simu- lated evolution technique. It first builds a dummy model, predicts an event, and receives the response. It then performs repeated versions and variations of the model looking for the optimum model to predict the correct answers. ( PREDMUT J MAIN PROGRAM BUILD DUMMY MODEL MAKE PREDICTION GET RESPONSE SAVE ORIGINAL MODEL ADVANCE MODEL ONE STATE ■*!' | REFERENCES I FIGURES I TO 8, | j PIECES OF MUTATE | REPLACE ORIGINAL WITH MUTATION NO /GENERATIONS YES LIMIT ^REACHED/ P. Table 2: Two tables which illustrate ex- amples of goals used to evaluate the models using historical data methods. Table 2a shows that when a correct guess of either prime or not prime is made a value of 7 Is added to the total value of the state. Table 2b illustrates another manner of weighting answers. A correct answer receives a weight of 1000. Predicting an earthquake when there isn't one only adds a weight of 500 to the model. Not predicting an earthquake when there is going to be one adds nothing to the model. This is a more subtle form of weighting since it not only allows a good and bad answer but also a not so good answer. while missing an earthquake prediction adds nothing to the value of the model. PREDMUT - Putting It All Together Figure 9 shows the mainline logic for the program. The flowchart should be obvious except perhaps for the use of the terms search limit and generation limit. In order to prevent the evolution proce- dure from taking hours or days, it is con- strained as to how long it can take. Each time an evolution cycle must occur, two variables are set. The search limit variable defines the number of times the parent may be serially mutated when searching for a better offspring. The generation limit vari- able defines the number of offspring to be generated. The result is that a fixed number of offspring are generated. Further, each off- spring can undergo a maximum series of mutations, since it is seldom that a single mutation results in a better model. To make the program more intelligent, one can in- crease these limit constants, but the result is a greater amount of computer time required between responses. Again, for those adventurous program- mers who want to make their programs even smarter, other methods can be employed to determine dynamically how many offspring and how many mutations are to be per- formed. There are other advanced evolu- tionary techniques that can also be em- ployed. Interbreeding, majority logic and second order pattern recognition are just a few terms describing the advanced tech- 106 Circle 136 on inquiry card. niques available in computer science literature. In Conclusion If you have the patience, sit down with a pencil and paper and attempt to perform the process I've just described. Many mathemati- cal books and papers contain random num- ber tables you can use. As a result you should quickly see how this mathematical technique results in the creation of a model of some process. From there it is relatively simple to program. Do not be afraid to try your own improvements, but do so intelligently as you get a feel for the underlying processes. The process described herein is the basis for many computer versions of this artificial intelligence technique and has worked with varying degrees of success for a wide variety of goals. I might conclude from personal experience: Be careful how and to whom you expose this technique. There are many people who fear computers as they fear anything they don't understand and their enthusiasm for your creation may not match yours. With a good enough program model, however, you should be able to predict who these people will be. [Hmm . . . our artificial life has defense mechanisms. ] ■ SOFTWARE All programs include: Complete assembler source listing, sample output, hex dump, sorted symbol table, plus com- plete instructions and thorough documentation. Text Editing System for 6800. The best! SL68-24 $23.50 NEW Mnemonic Assembler System for 6800. SL68-26 $23.50 NEW Stack Oriented Arithmetic Processor (6800) SL68-25 $10.00 NEW 8080 KUngon Capture Space game. SL80-7 $6.50 Special Game Packages Each containing 6 programs: 8080 PD80-1 $19.95. 6502 PD65-1 $19.95. 6800PD68-1 $16.50 Complete 6800 Software Pack 16 programs. PD68-3 $35.50 Battleship for 6800, like the board game. SL68-22 $8.00 Space Voyage'" TSC's 6800 Star Trek game. SL68-5 $12.00 Micro BASIC Plus The best 6800 "Tiny BASIC!' SL68-19 $15.95 Diagnostics for 6800. Very Important! SL68-23 $10.00 Stock Market for 6800. Lots of fun! SL68-7 $4.25 Complete Catalog of all of our programs. $ .25 Program-of-the-Month-Club'" Join the hundreds of hobbyists already enjoying this service. No obligation and no time valued cards to return. Discounts offered. One year for $2.00 To Order: Include 3% postage, $1.00 handling on orders under $10.00. Indiana residents add 4% sales tax. Check your dealer! TCP TECHNICAL SYSTEMS CONSULTANTS BOX 2574 W. LAFAYETTE, INDIANA 47906 ,,,.,,.:,:,■ I/O SPECIFICATIONS (now switch selectable) Data rate: 110, 300, 600, 1200, 2400, 4800, 9600, or 19200 baud Parity: odd, even or none Stop bits: 1 or 2 Logic Levels: RS232, TTL, source or sink 20 ma loop Price: $400 excluding monitor Optional features: the ad- ditional functions of cur- sor forward, backward, bell, screen roll up and roll down are available for $50. The ACT-I sets the standard for Affordable Computer Terminals. The ACT-I is the most economical method of alphanumeric com- munication at data rates all the way to 19200 baud. The ACT-I video computer terminal 1 manages a 1024 character memory orga- nized as 16 lines of 64 characters chosen from the standard uppercase ASCII set. Re- ceipt of more than 64 characters automati- cally scrolls the screen and initiates a new line The ACT-I comes fully | assembled and tested. MICRO-TERM products! are available in stock at discriminating computer! stores or factory direct! (30-45 days). Optional) video monitors are avail- 1 able from the factory be-| ginning at $125. Prices) FOB St. Louis, MO. MICRO -TERM INC. RO BOX 93B7 ST. LOUIS. MO 63117 ction rACT-l ON 107 Circle 77 on inquiry card. Circle 205 on inquiry card. THE PROM SETTER WRITE and READ EPROM 1702A and 2708 • Plugs Directly into your ALTAIR/IMSAI Computer • Includes Main Module Board and External EPROM Socket Unit • The EPROM Socket Unit is connected to the Com- puter through a 25 Pin Connector • Programming is accomplished by the Computer • Just Read in the Program to be Written on the EPROM into your Processor and let the Computer do the rest. • Use Socket Unit to Read EPROM's Contents into your Computer • Software included • No External Power Supplies, Your Computer does il all • Programs and Reads Both 1702 A and 2708 EPROMS • Doubles as an Eight Bit Parallel I/O • Manual included KIT COMPLETE — $165 ASSEMBLED — $275 Delivery Loss Than 60 Days SZERLIP ENTERPRISES 1414 W. 259th St. — Harbor City California 90710 California residents plebse add 6% Bales tax. 21 START-AT-HOME COMPUTER BUSINESSES in the shoestring, start-at-home computer business handbook CONSULTING •PROGRAMMING ^SOFTWARE PACKAGES «C0M FREELANCE WRITING »SEMINARS •TAPE/DISC CLEANING FIELD SERVI CE • SYSTEMS H OU S E S • L EAS I NG«SU P P L I E S PUBL I SH ING • TIME B ROKE RS • HARDWARE DISTRIBUTORS SALES AGENC I ES • HEADHUNT I NG ^TEMPORARY SERVICES USED COMPUTERS* FINDER'S FEES«SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME IMA1 .TUB" 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. r i ngbound • 1 1 3 pp . $ 12.00 730WAUKEGANROAD • SUITE 108 DEERFIELD, ILLINOIS 60015 DflTRSERRCH incorporaled Rush copies of "The Shoestring S t a r t -A t -Home Computer Business Handbook to me right away - NAME /COMPANY ADDRESS C ITY/STATE/Z I P □ CHECK ENCLOSED QB AN KAMERICARDrjMASTERCHARGE I (Ms and Newsletters KIM Users Notes Owners of KIM microprocessors should look into KIM Users Notes, published monthly by Eric C Rehnke, Apt 207, 7656 Broadview Rd, Parma OH 44134. The sub- scription rate is $5 for the first six issues. Alberta Microprocessor David Lavers, a member of the recently formed Alberta Microcomputer Society, has been in touch. Right now information at this end is a bit sketchy, but you can find out more through their acting president Dwight K Soloman, c/o The Computer Hobby Shop, 481 2 1 6th St SW, Calgary Alberta CANADA T2T4J5, (403) 243-6776. Diablo Professional Users Group — Pleasant Hill CA Here's a unique idea for a computer club. The word professional in this case in- cludes two categories: the computer novice who is an expert in another field, and the computer expert who can provide answers to the first group. This is an opportunity for budding technical types to get in on the ground floor of microcomputer consulting. The beginners include a wide spectrum of industries and professions. Anyone from the high school level up, with several years experience with hardware and/or software, can consider himself or herself an expert. Meetings are held in the Diablo Valley College library's large conference room from 8:00 to 9:00 PM on the fourth Wednesday of each month. Diablo Valley College is located near the Willow Pass exit of Freeway 680. For details write or call Bob Hendrick- son, Electronics Dept, Diablo Valley College, Pleasant Hill CA 94523, (415) 687-8373. South Florida Computer Group The South Florida Computer Group has apparently grown to the status of a major computer club. Meetings are held in both Miami and Ft Lauderdale. Meeting times seem so flexible that it would be best to contact them directly to get their schedule. Their newsletter I/O has improved substan- tially over the past six months to the point that it is far more than just a review and Circle 223 on inquiry card. 108 listing of club events. Volume 2, number 2 contains an in-depth look at resistors and capacitor color codes, and a piece on the new "minor loop" chips designed by Texas Instruments to be used with bubble memor- ies. To contact the South Florida Computer Group, write 1155 NW 14th St, POB 236188, Miami FL 33123, or phone (305) 324-5572. Looking for Computer Games? Try POPULAR COMPUTING POPULAR COMPUTING is a monthly compilation of computer games, puzzles and brain twisters. Most of the programs are fairly short, perfect for whiling away a spare afternoon. Among the games is up-to-date information on the micro field and a regular feature called "Schwartz on Calculators." To subscribe, write POPULAR COMPUTING, POB 272, Calabasas CA 91302. Subscription rate is $20.50 per year, or $17.50 if remit- tance accompanies the order. Add $1 .50 per year for Canada and Mexico; all other countries, add $3.50 per year. Back issues are $2.50 each. The Computer Hobbyist Group — North Texas The Computer Hobbyist Group of North Texas is the place for computer buffs in the Dallas-Fort Worth area to develop and share an understanding of the hobby. Meetings are held regularly at the Univer- sity of Texas, Arlington, and the University of Texas, Dallas. Contact the Computer Hobbyist Group of North Texas at 2377 Dalworth 1 57, Grand Prairie TX 75050. ON LINE - Hardware and Software Exchange ON LINE is a newsletter strictly limited to classifieds for computer hobbyists. You'll find page after page of hardware and soft- ware available to buy, sell or swap. A great place to find a bargain or an odd item. ON LINE is published every three weeks. Four issues are available for $1,18 for $3.75 and 36 for $7. For advertising rates and other information, get in touch with D H Beetle, publisher, 24695 Santa Cruz Hwy, Los Gatos CA 95030. Chicago Area Computer Hobbyist Exchange Looking through The Register, news- letter of CACHE, I came across what may prove to be an interesting series on lan- guages. In the coming months The Regis- ter is planning on a series of articles on BASIC, PL/I, SNOBOL, PASCAL, PILOT, FORTRAN, LISP, TRAC, CASUAL and FORTH. This should be a step toward clearing up language questions and miscon- ceptions. Write to CACHE at POB 36, Vernon Hills IL 60061. 77?e Register is available for $10 per year. Washington Amateur Computer Society The Washington Amateur Computer Society is a growing group of hobbyists in the nation's capitol. Meetings are held on the last Friday of the month in the second floor conference room of St John's Hall at the Catholic University of America. WACS is interested in exchanging newsletters with other computer groups. Correspondence should be addressed to Washington Amateur Computer Society, c/o 4201 Massachusetts Av, Washington DC 2001 6." Conducted by Peter Travisano BYTE's wide readership gives your club a unique opportunity to reach thousands of hobbyists. If you'd like to help your club develop or maintain a high profile, put us on your mailing list. Informa- tion about new clubs is es- pecially welcome. Address your correspondence to Clubs and Newsletters, B YTE Publications Inc, Peterborough NH 03458. Introducing Equinox 100 computer kit 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 100T M At $699, it's clearly The Frontrunner. Write for free specs to Parasitic Engineering, P.O. Box 6314, Albany, CA 94706. 109 Circle 63 on inquiry card. Thin Your single source for componen ■Ar Guard your Altair , IMSAI or custom system against program crashes with CONSTANT VOLT- AGE POWER SUPPLIES, special 12 and 20-amp models from Parasitic Engineering. * INTE- GRATED CPU/FRONT PANEL gives you access to all 8080 registers, I/Os and memory from octal keyboard and digital LEDs ... by Morrow Micro-Stuff. the most advanced S-100 ts available: -At WiinderBuss with Noise- guard™ is the only 20-slot S-100 bus-board with two- way squelching, -k TOTAL I/O BOARD for $120! 3 cassette channels with control, RS232/TTY port, parallel port, memory. * Write for specs. Thinker lovs , 505 Arlington Berkeley, Ca. 94707 photo - courtesy Peter Hollenbeek Byte Simp lierkele; STATE OF THE ART BOTH FORMS There are two forms of the "state of the art." One form is the personal growth attained by most professionals who realize they must stay in step, intellectually, with new concepts and new techinques. Too often, a tragedy occurs when the professional neglects the second form, his career development. The fatal mis- take occurs when working in an environment that provides a continuous parallel to industry but neglects to provide the pro- fessional growth that is necessary to insure career development and avoid potential future frustrations. To insulate yourself against this happenstance, check with our professional staff. They will advise you on your career development as it relates to your technical development. Our areas of specialization are: Software Development Computer Graphics Data Base Computer Design Simulation and Modeling Telecommunications Hardware/Software Interface For further information either call or send resume to: PERRI-WHITE ASSOCIATES 50 FRANKLIN STREET BOSTON, MASS. 021 10 PERRI-WHITE & ASSOCIATES, INC. (617)423-1900 5373 W. ALABAMA PLACE HOUSTON, TEXAS 77056 (713) 960-0350 Management Consultants Specializing in Data Processing/Systems Engineering All Replies Held In Strictest Confidence Continued from page 74 blasted- IV bytes. They are great if you never want to do anything fancy, but . . . .With the bus address coming from an extended micro- code, one may simply decode a la 8080 and use 8212s as your IO ports. Also note that for some instructions there are free bits, ideal for adding instructions. Interrupts will be painful, as the system doesn't have a stack, unless you use one of the aforementioned free bits to implement one (hint, hint). My reaction to your suggestion about emulation of a 360 is unprintable. /Quite reasonable evaluation . . . CH/ If you must, however, don't do it with the 8X300. Use Motorola's 10800 series. It's faster (50 ns, YES, 50 ns), and in the end would be less work. See, it's optimized for 360 type systems. Leave the 8X300 for the job it was designed for, a microcontroller. Which gets around to the point of this letter: As a controller, the 8X300 is unbeat- able. You neglected to mention what I consider to be the best feature of the system (after its speed). Every instruction operates on a bit string. You specify the starting bit and the length in bits of the field in the byte that you want the instruction to operate on. One can also do n bit rotates on any register to register instruction. Thus, you can add two registers and rotate right n bits in 250 ns or move bits 5 to 2 from memory to IV byte bits 7 to 4 without affecting the rest of the bits. This applies to all instructions. Thus, the 4 port kit can easily act as a front end to a busy computer for 8 Teletypes. Or con- sider a floppy disk. At double density, the bit transfer rate is 500 kHz, or a bit every 2 (us, or a bit every 8 instructions. Actually, as shift registers are so cheap, one might as well use them and free the microcontroller for other tasks like file handling. I have SMS's floppy disk controller interfaced to my 8080. At $640 it's not cheap, but they do provide the address and data bus on connec- tors for "maintenance." They are rather tight with the source code in the read only memories, though. It would be nice to have a parallel processing floating point processor when not doing disk transfers, particularly as it is practically free. In short, the hobby world should take a long look at this device. But keep in mind that it was designed as a controller, not a computer. Its architecture is optimized as a bit banger, and it does that superbly. As an emulator, it's the pits: Use a 2901 and a 2909, or any of the other bit slices and save yourself a bunch of time, trouble and hassle. Do use the 8X300 as a peripheral controller, Circle 281 on inquiry card. 110 fccN ^ .^ %W -AC« A« top values, professionalism Computerland stores are exciting, enjoyable places to visit. From the striking decor to the fun and challenge of the ComputerlandTM 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 Graphics to name a few. Every store is completely stocked with tools, books and a broad range of accessories. Franchise Opportunities available— Contact: Ed Faber, President Computerland Corp.TM 1922 Republic Ave. San Leandro, CA 94577 (415)895-9363 Circle 208 on inquiry card. 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. Watch for a Computerland store opening near you soon. now open: DeHart Street Morristown, NJ 07960 (201) 539-4077 6840 La Cienga Blvd. Inglewood, CA 90302 (213)776-8080 813 B Lyndon Lane Louisville, KY 40222 (502) 425-8308 104 W. First Street Tustin, CA 92680 (714) 544-0542 24001 Via Fabricante Mission Viejo, CA 92675 (714)770-0131 22634 Foothill Blvd. Hayward, CA. 94542 (415)538-8080 Opening Soon: Chicago, ILL. Gaithersburg, MD San Diego, CA Buffalo, NY floppy disk controller, unibus to Altair address mapper, DMA IEEE-448 bus inter- face, data acquisition controller, etc. If you use it for its intended purpose, you cannot be anything but delighted. Finally, a note about Scientific Micro Systems. They arc the only company to provide really complete documentation. Their products work as advertised. They gave me the shirt off their backs in helping with the nuclear instrumentation. It is truly refreshing to deal with such a company. I urge you to drop them a note as the microcontroller is only one of a large group of components they make. All are so pleasant to use, you kind of forget about them, which is the highest compliment I know how to give to an IC." In February 1977 BYTE, page 132, we published an article by Charles Howerton, giving the soft- ware of a package of utility routines for an 8080 pro- cessor. Joseph Newcomer of Carnegie-Mellon Uni- versity sends along this critique of the methods of coding the BARC rou- tines. It should be noted that within the context of an interrupt free single process computer, the BARC routines will work as described. The subtleties occur in cases where inter- rupts are allowed or one desires to put the program into write protected or read only memory regions. A Critique of Self-Modifying Code Joseph M Newcomer Computer Science Dept Carnegie-Mellon University Pittsburgh PA 15213 Mr Howerton's article in the February BYTE would have performed a much greater service to the community of programmers if he had coded it to allow recursion and pro- vided a few extra items of documentation. After having expended a great deal of effort and cleverness to fit his code into 256 bytes, he then compromises reliability by having it modify itself. The concept of code modify- ing itself is undoubtedly the worst single idea that neophyte programmers fall in love with. Since the most obvious thing in the world is to take his BARC package and put it in a PROM, my first critique is that he has carefully made sure that is not possible! Not only is self-modifying code useless in the world of read only memory, but ex- perienced programmers know that code which modifies itself is inherently harder to debug. I should like to offer the obvious solu- tion: Instead of storing the dispatch address in line in the code, store it out of line in the writable programmable memory. Thus, one must reserve a certain number of bytes for this address. However, since none of the routines in BARC call one another, only one dispatch address area is required. Then one only need do a "call indirect" through this address. Of course, the 8080 does not have a call indirect instruction, so one has to fake it; use a 3 byte dispatch area, and make the first byte the op code of a )MP NEW 8080 and 8085 REFERENCE GUIDE A TOTALLY NEW APPROACH! SAVES TIME AND MONEY! MAKES YOUR JOB EASIER! PLEASE SEND NAME STREET CITY STATE 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. This convenient pocket size guide (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 its replacement — 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-use tables of powers of two, eight, and sixteen . . . and much more . . . ' This handsome easy-to-read guide is printed on durable "lifetime" vinyl. Sturdy metal binding insures that your timesaver will provide many years of professional service. $12.95 each (plus postage & Calif, sales tax) — 25% discount for 4 or more. Money Back Guarantee: You must be fully satisfied or simply return the guide within 15 days for full and prompt refund. URBAN INSTRUMENTS • 4014Codyroad ■ departmentbi SHERMAN OAKS • CALIFORNIA 91403 8080 timesavers to: MAIL TODAY OR CALL ORDER DESK (213) 986-6958 CHECK/M.O ENCLOSED G BANKAMERICARD □ MASTER CHARGE □ CARD NUMBER GOOD THRU 4 DIGITS ABOVE NAME (MASTER CHARGE) Circle 270 on inquiry card. 112 instruction. This is, of course, "modifying code," but at least we now have the ability to put the program in read only memory. writeable space: GODO JMP rom, typical call: SHLD CALL Q'000000' GODO+I GODO Now, as to the issue of insufficient documentation: The functional documenta- tion is quite clear, but the crucial piece of information that I find to be missing is that the routines in the BARC package should never be called from an interrupt service routine. This is because the routines are not reentrant (and my proposal of the dispatch vector in programmable memory does not change this) ; if they are active when an inter- rupt is taken, and the interrupt service calls them, the dispatch address will be changed. Consider the following sequence (events are listed): CALLOCHR CALL DASXR CALL DASNT -- CA1 L XCHR t/i CD o "a <5 a fu O OQ DASFC: CALL where is expected to be OCHR but in fact is XCHR. The difference in time between the setting of the dispatch address and the use of it is (if I counted cor- rectly) 235 machine cycles: a very, very long time. Furthermore, this sort of bug is nearly impossible to locate at the "lights and switches" level because the act of single- stepping changes the relative timings and the error will not occur. Using a debugging system may have the same effect, and if it is a homebrew debugger which would use BARC, then it would destroy the very in- formation it was trying to analyze. Abso- lutely nowhere in the article could I find any warnings about this! Only my experience was an indicator: Whenever static data, either code or otherwise, contains state informa- tion, look for cases in which routines which use it can be called recursively. Note that recursion does not have to be explicit; calling a routine from interrupt level where the routine was active at the time the inter- rupt was taken constitutes a recursive call. Less Bread, f More Box. 2 New, complete Breadboarding/ Interfacing Station. Only $237.50 We took our economy Breadbox IV kit and did a complete design number on it ... to add accessories and give you far more hardware for the buck. For example: It plugs directly into your Altair/lmsai buss without special adapters . . . Gives you almost 3,000 connections for bread- boarding . . . Power supplies (+5&+/-15V) built in... Available in kit or assembled format. All that for just $237.50 each in kit form. And to top it off, monitor the buss with LED or 7 segment displays, add an LR-6/K LED indicator outboard - 4 individual LED's with driving circuits ($10.00 each). And LR-4/K seven segment display outboard with driver/decoder ($19.00 each). So bug out to your local computer store now and save substantial bread on this E&L deal. Or write us for the store nearest you. •Suggested resale price (U.S.A.). Dealer inquiries invited. C §• E&L INSTRUMENTS, INC. 61 First Street, Derby, Conn. 06418 (203) 735-8774 Telex No. 96 3536 Circle 56 on inquiry card. 113 Circle 222 on inquiry card. rt£_Jj . . : PRAMMER by XYBEK An extraordinary 2k memory board for your Altair-bussed computer ir On-board 1702A PROM programmer "A" Space for 1792 bytes of read-only memory (seven 1702A EPROMs) if 256 bytes of RAM if Supplied with one 1702A, pre-programmed with stand-alone programming software — no sense switches are used "A" Supplied with programming power supply "fc PRAMMER's own on-board clock makes it compatible with almost any Altair-bussed system. if All read and write sequences are generated via an on-board micro-programmed state machine, thus eliminating all one-shots. "A - Complete 1702A programming in 18 seconds COMPLETE KIT: $209 ($189 through June 14, 1977) Assembled and tested: $289 Immediate (off-the-shelf) delivery California residents please add sales tax. Master Charge and BankAmericard accepted. XYBEK • P.O. Box 4925 • Stanford, CA 94305 Telephone: (408) 296-8188 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-4141 The use of a single dispatch vector does make it possible, with care, to use BARC from an interrupt routine. Before invoking any BARC routines, push the current dis- patch address onto the stack; after using BARC, pop it off. If BARC was active, the program has correctly preserved state; if not active, only a few cycles have been lost. The requirement that the parameter lists be in line also seems to be a bad choice to me; it would be much better to simply store a pointer to the parameter lists, or even better pass a pointer in a register. Since speed was not of the essence and size was, it seems to me that something which reduces the size of the code at the call site would be more desirable. Furthermore, if the addresses or values of the parameters must change, in line parameters force the user to write self-modifying code. This means that the user cannot, after having developed some neat system, convert it to a PROM region of memory. A good criterion for evaluating a program is: Can it be put in PROM? If, after separating out the data areas, it cannot be put in PROM, then from my experiences I consider it to be badly written, no matter how useful or amazing its functions may be. Then ask: Can it be called recursively? If not, do not call it from an interrupt routine if it can ever be called from outside an interrupt routine. And don't forget multilevel priority inter- rupts, which are very easy to handle on 8080 architecture. Do not call the routine from outside an interrupt context if it can be called from within one, which is the com- plementary condition. Note that these are not always obvious errors to detect, since the interrupt routine may call something which calls something which eventually calls something else; and one day the "something else" is modified so that it calls one of the nonrecursive routines. The scenario is now set for disaster: Let an interrupt come in at the wrong time and you are set for a long, tedious and probably unrewarding debugging session attempting to locate a source of "random" behavior. Charles Howerton Replies In response to the critique of BARC by Mr Newcomer of Carnegie-Me/Ion Univer- sity, I should like to begin by saying that I agree with his comments without equivo- cation for the environment which he hy- pothesizes. I also agree that the concept of modifying running code is very "hairy. " However, even Mr Newcomer's proposed "fix" requires the modification of running code. Circle 269 on inquiry card. 114 The BARC routines were written for newcomers to the computer programming field. It has been my experience that the greatest problems the beginner has in writing programs are manipulating the registers (hence, the register preservation facilities of BARC), and writing routines containing loops which are designed to perform the functions provided by BARC. In addition, the newcomers to home computing or even industrial or business computing are rarely faced with program- ming an 8080 or Z-80 which is loaded with interrupt generating hardware. Those of us who work with interrupt driven hardware (and I do) would not use BARC for the simple reason that we are, presumably, sufficiently talented in programming arts that the creation of routines to perform equivalent functions is trivial. As for embedding the parameters in line with the code, the one type of code that the average beginner writes well is straight line code with a few conditional jumps where decisions are required. Also, this is a fairly standard practice in large machine operating systems. Relative to the comment, "... if the addresses or values of the parameters must change ... ", what is the difference whether they change in a work area or in the in line code? They must still be changed! BARC was not designed to be called recursively; it was designed to be used as a programming tool by someone who was using straight line code to solve a problem. As for debugging it: it works. Could BARC have been written to meet all of Mr Newcomer's criteria? Undoubtedly. However, not nearly as many functions could have been included in the same space. Charles P Howerton Digital Group Software Systems Inc POB 1086 Arvada CO 80001 ■ Thanks to Charles Howerton For BARC Thanks for the Howerton article in your February 1977 issue, page 132, "Add Some BARC to Your 8080." Now I can finally get rid of the needless duplication and generally sloppy coding of utility routines in my programs and turn the job over to BARC. What a great time and memory saver! D M Bell Vice President, Engineering Handi Kup Company 195Tamal Vista Corte Madera CA 94925 ■ THE COMPUTER RQQM SMALL COMPUTER SYSTEMS • SOFTWARE • AMATEUR RADIO EQUIPMENT 1455-ASo. 1100E. Salt Lake City, Utah 84105 Phone:801-466-7911 "WE TAKE THE Umm OUT OF THE MICRO " 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 RM EASY TO UNDERSTAND CATALOG COVERING IMSAI THE DIGITAL GROUP POLYMORPHIC SYSTEMS SOUTHWEST TECHNICAL PRODUCTS CORPORATION TECHNICAL DESIGN LABS ETC. 3. the COMPUTER RQQM -easy guide- to help you PICK THE RIGHT SYSTEM, PERIPHERALS, COMPONENTS, AND SOFTWARE FOR THE BEGINNER THE ADVANCED THE EXPERT THE SMALL BUSINESS 4. ACURRENTLISTINGOFPRESENTLY AVAILABLE SOFTWARE PUBLICATIONS PERIPHERALS 5. INFORMATION ON REPAIR SERVICE, LOW COST CUSTOM PROGRAMMING AND OTHER SPECIAL SERVICES. at the COMPUTER ROOM your written questions ARE HAPPILY RECEIVED AND PROMPTLY ANSWERED WE ALSO STOCK A COMPLETE LINE OF AMATEUR RADIO EQUIPMENT BANKAMERICARD MASTERCHARGE 115 Circle 141 on inquiry card. Introduction to S M Quek Stanford University POB 9647 Stanford CA 94305 Microprogramming REGISTER FILE REGISTER B ARITHMETIC LOGIC UNIT (2) ADD (31ACCUMULATOR OR REGISTER B RESULT 1± ACCUMULATOR TEMPORARY STORAGE (OTEMPORARY -•- REGISTER B Figure 7 : A block diagram with time notations for a sequence of events that might occur in a simple machine instruction such as: Add accumulator to register B. First (I ) register B is put into a temporary storage area. Then (2) this storage area and the accumulator are added together by the arithmetic logic unit. The resulting answer (3) is stored in the accumulator or register B. CENTRAL PROCESSING UNIT i 1 1 1 1 CONTROL UNIT REGISTER FILE ARITHMETIC LOGIC UNIT 1 l_ i i t • 1 ' , . J BUS J t ' ' MEMORY 10 DEVICE 10 DEVICE Figure 2: Block diagram of the architecture of a typical bus oriented digital computer. What is Microprogramming? When we consider the operation of a simple machine instruction, like add accu- mulator to register B on some computer, we often find that there is a sequence of even more elementary operations involved. For the example given, we may first have a transfer of data in register B to some tempo- rary register in the arithmetic logic unit. Next, we may then perform an addition operation and finally, return the result of the operation to either the accumulator or register B. Figure 1 illustrates this sequence of operations. Wilkes, an early pioneer in the field of computer design, called these elementary operations "microoperations." (See ref- erence 1.) By this token, a single machine instruction, like the add described above, would consist of a microprogram of these microoperations. Microprogramming is, then, the implementing of control logic for a computer's instruction set through the ordered storage of processor control information. Microprogrammable Computer Organization Figure 2 is a simplified block diagram of the architecture of a digital computer. The organization of a microprogrammable com- puter differs from that of a nonmicropro- grammable computer in the design of the control unit. The nonmicroprogrammable 116 machine uses a hardwired control unit. All control lines are fixed and cannot be changed easily. On the other hand, a microprogram- mable machine uses a changeable micropro- gram in implementing the control unit and thus by changing the microprogram, the machine can be altered within certain limits of its design. Let us now take a look at the control unit of a microprogrammable com- puter and figure out how it works. A typical microcontrol unit would consist of a mapper, a microsequencer, a microcon- trol storage and a decoder. The last item, the decoder unit, is optional and may not be found in some machines. The interconnec- tions between these units are shown for a typical design in figure 3. In operation, a machine instruction is fetched from main memory and is stored in the instruction register. The mapper converts this machine instruction into the starting address of the microprogram routine which is supposed to execute the instruction as a sequence of microoperations. This address is passed on to the microsequencer whose job is to step through the microprogram. As each microinstruction is read out, the de- coder translates it into control signals for the various control lines. Originally, the mapper was implemented using a decoder tree made up of discrete logic gates. Nowadays, array logic blocks in the form of read only memory and so called programmed logic arrays are used for this purpose. (It should be noted that pro- grammed logic arrays are especially suited for this task. Read only memories contain many more bits than are needed, and are thus more expensive than programmed logic arrays. The array is powerful enough to implement most functions needed and its lower cost makes it a very attractive candi- date for the mapper.) The function of the microsequencer is to provide a value for the next address of an instruction in the control memory. It can be thought of as having a microprogram counter and additional logic to test for conditional branches. Thus, in its simplest form, it could just be a presettable counter with associated circuitry for performing branches and conditional tests. However, most commercially available micro- L INSTRUCTION REGISTER MAPPER MICROSEQUENCER 1 MICROPROGRAM COUNTER " ~i CONTROL STORAGE (THE MICROPROGRAM) 1 1 1 BRANCH LOGIC CONDITION FLAGS 1 ~' ' 1 DATA REGISTER DECODER ' 1 r CONTROL SIGNALS SEQUEN CE INFORMA TION Figure 3: Block diagram of the connections between various parts of a microprogrammed central processor. The typical processor consists of a mapper, a microsequencer, control storage and an optional decoder. X X. X X X. X. X. X. X. CONTROL SIGNALS Figure 4: Typical diode matrix. A binary number is input on n number of lines. It is decoded into 2 n number of outputs. These lines are then decoded through the use of a diode matrix. The outputs of the matrix are at the control signals lines. 117 Figure 5: Typical micro- instruction word format. The instruction allocations are generalized but are found in almost all such data formats. The word format itself can be of any length. The usual length is from 24 to 60 bits al- though a field width of 100 bits is used by IBM in some applications. . n' n INSTRUCTION- DATA ROUTING ARITHMETIC LOGIC UNIT AND SHIFTER MEMORY 10 DATA SOURCE DATA DESTINATION NEXT ADDRESS USER FUNCTIONS sequencers (such as the Intel 3001 or AMD 2909) are more sophisticated than this; some (eg: AMD 2909) even to the extent of having a built-in stack for proc- essing microprogram subroutine linkages. The microcontrol store is usually some kind of read only memory. Wilkes en- visioned this as a diode matrix such as shown in figure 4. Of course, immense technologi- cal advances have been made since Wilkes' time and now the microcontrol store is usually implemented by read only memories, of which the discrete diode matrix can be thought of as the forerunner. In addition to read only memories, some microprogram- mable computers have a form of program- mable memory as part of their microcontrol store. This allows for dynamic changes of microprogramming which lead to an even more flexible and powerful machine. With such a configuration, the microprogrammer can easily rewrite, add or delete portions of the microprogram to suit the particular task at hand. From a consideration of the microcontrol store, we next proceed to a discussion of the microinstruction. It is the microinstruction that forms the control mechanism which causes each data register change. A typical microinstruction word format is shown in figure 5. Generally, there has to be a field to control the arithmetic logic unit and the shifter, one for memory, and one for 10 control. In addition, another field has to be reserved for information regarding the routing of data. Some kind of sequencing field which specifies the next microprogram address is usually also included. Finally, to •4 (n + I) 1 IF | D | INSTRUCTION- DF I E IF: INSTRUCTION FETCH E: EXECUTE D: DECODE T: TESTS DF: DATA FETCH TIME- Figure 6: Timing diagram for the sequence of interpreting an instruction. This process is divided into five stages: instruction fetch, decode, data fetch, execution and testing. As soon as the testing is finished, the instruction fetch cycle is again encountered to start the next sequence. suit the architecture of a particular machine, there is a field left for user definable functions. These vary from machine to machine but would usually include condi- tional tests and branches. From this brief discussion, it should be apparent that there is no fixed width for the microinstruction. Indeed, it varies from 16 bits for the Signetics 8X300, chip, to 24 bits for the HP21MX minicomputer to 100 bits for various models of the IBM360. However, the width of the microprogram word in most small and medium size computers ranges from 24 bits to 60 bits. If the microinstruction is wide enough, we can allocate a single bit to a single control line. In such a case, the micro- instruction is said to be unpacked or hori- zontal. However, if we want to save control memory space, we may want to encode the data so as to compress the word width. An external decoder can then be used to recover the data. This is the packed or vertical format. A machine seldom takes on a fully packed or unpacked format for its micro- instruction. Instead, most machines have microinstructions which lie somewhere be- tween the two extremes; some fields are encoded while others are not. When deciding on the width of the microinstruction, several factors have to be considered. The first and most obvious is cost: The wider the microinstruction, the higher its cost. This is so because memory is more expensive than a decoder. The penalty paid for having a vertical or packed format is a decrease in speed and flexibility. In the case of a horizontal machine, there are separate bits controlling the individual lines. Thus, there can be more parallelism in the control as more resources can be controlled simultaneously. However, for this same reason, horizontal machines are much harder to program. The microinstruction set of vertical machines resembles the assembly languages of minicomputers. Instruction Interpretation Let us consider the sequence for the interpretation of an instruction. In figure 6, we see that the process of interpreting an 118 TIME SAVED- IF D DF E T TIME instruction can be roughly divided into five stages. The first stage is that of an instruc- tion fetch. The contents of the program counter is sent to the memory address register and a read memory command is initiated. The program counter is now in- cremented and the microcontrol unit waits until memory is ready with an instruction. Once memory is ready, the instruction is loaded into the instruction register. This completes the first stage. On the time chart (figure 6), this corresponds to the segment IF. The mapper decodes this instruction into a microaddress which is passed on to the microsequencer. This is the decode phase, segment D on the time chart. As the microsequencer steps through the control memory, we have control signals coming out of the microcontrol memory. Depending on the instruction, we may need to initiate another memory read to fetch data. This would be segment DF. Once this is com- pleted, we can proceed to instruction execu- tion, segment E. Finally, upon completion of execution, a series of tests can be per- formed. These could include software tests for conditional branch hardware or software tests for interrupt, and hardware tests for direct memory access requests. The sequence for an add accumulator to register B (store results in accumulator) and skip if overflow may look like listing 1, Of course the listing has to be coded into micromachine language form. DMA. SERVICE, INT.SERVICE and INSTRUC- TION. FETCH would then be microprogram subroutines to service the various requests. A register, which holds data coming from memory, is assumed to be present. If no buffer register is used, then step 10 in the routine should be changed to: 10) IR: 1EMORY DATA. Figure 7: Timing diagram illustrating the time that is saved when implementing the changes of listing 2. This time saving occurs only when an interrupt or direct memory access re- quest does not have to be processed. If a request does have to be processed, the timing diagram of fig- ure 7 applies to the process. . sign, most computer designers had to rely on multiphase "hardwired" logic for their de- sign. Multiphase logic uses multiphase clocks to control the various register to register transfers and other functions. Hence, the designs are extremely complicated. Once the machine has been hardwired, it becomes virtually impossible to change the instruc- tion set without redoing the design once again, ie: rewiring it. Microprogramming overcomes these dis- advantages and provides a means for obtain- ing relatively simple and flexible designs. To illustrate, reconsider the microprogram for the add instruction. If we look at the time chart of figure 6, we see that waiting for Step Instruction 1 MAR:=PC 10 PC:=PC+1 [wait for memory] ; IR:=MDR TEMP:=REG B ADD, ACC:=RESULTS IF OV=1 THEN PC: = PC+1 IF DMA REQ=1 THEN JMP DMA. SERVICE IF INT REQ=1 THEN JMP INT.SERVICE JMP INSTRUCTION. FETCH Commentary memory data counter:= program counter; [read memory] increment program counter; enable mapper, load microsequencer; disable mapper; add and store results in accumulator; if overflow increment program counter; if direct memory access requested, go to routine; if interrupt requested, go to routine; fetch next instruction; Listing I : A program listing for the sequence: Add accumulator to register B, store results in accumulator and skip if overflow exists. Lines I through 4 are the instruction fetch routine. Lines 5 and 6 add register B to the accumulator and stores the result in register B. Line 7 checks for an overflow, and lines 8 through 10 check for interrupt and direct memory access requests. When the program listing is encoded into micromachine language form the DMA. SER- VICE, INT.SERVICE, and INSTRUCTION. FETCH will become micro- program subroutines to service the various requests. This will enable the mapper and load the microsequencer. Step Instruction 9 MAR: = PC 10 IF INT REQ=1 THEN JMP INT.SERVICE 11 JMP INSTRUCTION. FETCH + 1 Commentary read memory; if interrupt requested, go to routine; skip first step of instruction fetch; Why Microprogramming? Before microprogramming was developed and firmly incorporated into computer de- Listing 2: Revisions of the program of listing 1 which allow a savings of time in the execution of the program. This savings is shown graphically in the timing diagram of figure 7. 119 memory to be ready with an instruction takes up a good portion of our time. Thus, to speed things, we may want to initiate a read memory instruction before we proceed to the various tests. Accordingly, we rewrite our microprogram with the modifications starting on line 9 shown in listing 2. The new time chart obtained with this modification is shown in figure 7. Note that if no direct memory address requests or interrupts have been requested, then there is a savings in time. This is because we do not have to wait as long for the instruction fetch: a result of the early initiation of the read memory. If there has been an interrupt or direct memory access request, then no gain in speed would be obtained. However, since these requests are relatively rare, this new modification would result in an overall increase in speed. If hardwired logic was used for the control unit, it would be very difficult to make the modification just described. Thus, we see that microprogramming is a very powerful tool in the design of digital computers." REFERENCES 1. Wilkes, M V and Stringer, J B, Micropro- gramming and the Design of the Control Cir- cuits in a Digital Computer, Proceedings of the Cambridge Philosophical Society, Part 2, Vol- ume 49, April 1953, pages 230-238. 2. Mick, J R, AM2900 Bipolar Microprocessor Family, Micro 8 Proceedings, September 1975, pages 56—63. 3. Coleman, V and Rallapalli, K, A Versatile Microprogram Sequencer, Micro 8 Proceedings, September 1975, pages 52—55. 4. Intel, "3001 Microprogram Control Unit," data sheets, Intel Corp, Santa Clara CA. 5. Cook, R W and Flynn, M J, System Design of a Dynamic Microprocessor, IEEE Transactions on Computers, C-19, 1970, pages 213-222. 6. Stone, H S, editor, Introduction to Computer Architecture, Chapter 10, "Interpretation, Microprogramming, and the Control of a Com- puter" by Flynn, M J, Science Research Associ- ates Inc, Palo Alto CA, 1975, pages 432-471. 6800 OWNERS UNITE! FREE YOURSELVES FROM THE BONDAGE OF SLOW CASSETTE I/O. LOUDLY PROCLAIM YOUR SUPERIORITY OVER YOUR 8080 NEIGHBORS AND THE Z-80 SUBCULTURE. JOIN THE BFD-68 REVOLUTION. 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. The cabinet and power supply are capable of handling 3 Shugart Mini-Floppy Drives. One drive is included in the basic system price of $795 and other drives may be added easily at any time for $390. Or, you may save money by ordering a dual or triple drive sys- tem initially. The price for the BFD-68-2 is $1169 and for the BFD-68-3 triple drive system $1539. Remembering that we are prone to understatement, we must say that while the BFD-68 hardware is superb, the software is even better. Our Disc Operating System pro- vides the following advantages over most other systems. • ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONETIME • THE NUMBER OF FILES AND SIZE OF FILES IS LIM- ITED ONLY BY THE SIZE OF THE DISC • MERGING FILES REQUIRE NO EXTRA DISC SPACE • NO WAITING FOR THE DISC TO RE-PACK • LONGER DISC LIFE-MORE EVEN DISC WEAR NEED A FULL SIZE FLOPPY? Our P-38-FF is a plug-in interface card to the ICOM Frugal Floppy 1 ' 1 '. It includes all the features 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 soft- ware 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 select- able to any 8K location. Price $179. The P-38-1 contains all the features of the P-38 plus an interface to the Oliver Paper Tape Reader and our EPROM Programmer. 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 mod- ification to be made to the 8 volt supply that will increase its output by one volt. Price $24.95. Our M-16 is a 16K single power supply STATIC RAM memory system. The M-16 is fully buffered and requires only half the power of a similar size system using low power 2102's. With the M-16, you can expand your system to 48K and still have room left over for one of our EPROM boards. Price $595. ALL OUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY AS- SEMBLED. AVAILABLE AT MANY SWTPC DEALERS OR FROM US BY MAIL. BANKAMERICARD AND MASTERCHARGE WELCOME. SMOKE SIGNAL BROADCASTING P.O. Box 2017, Hollywood, CA 90028 Circle 169 on inquiry card. 120 Your microcomputer is only as good as its memory pin *"fSK TSSEWT _■, is*.* SBiTii 6800 COMPUTER system ' Your m icro- computer is... in a manner of speaking... capable of think- ing. The amount of information you can store, combined with the access speed, determines the bottom line capability of your microcomputer. The Midwest Scientific Instruments' FD-8 Floppy Disk Memory System will enable you to get the most out of your microcomputer. . .6800 or 8080. We have the most complete 6800 disk operating system available today, which interfaces to any microcomputer via a single PIA chip. When used with the MSI FDOS Operating System. . .included with purchase. . .the FD-8 gives your microcomputer a level of performance which can only be matched by larger computers. You can have program save and load with named, variable length, password protected files at three levels: object code files, source code files, and BASIC files. It has disk routines which can be used easily by low level assembler lan- guage programs as well as high level BASIC programs. The coresident assem- bler/editor saves and loads source files from disk, assembles and stores object code on disk, and creates assembly listings on a high speed printer. You get a full ANSI standard BASIC inter- preter* with program load and save, from disk as well as tape, with both random and sequential disk data files. BASIC also has multi-l/O port capability under software control. And all you need do to access any of these functions is type the appropriate commands on your terminal. The FD-8 is complete, including all power sup- plies, cabinet, cables, software, manuals, and documentation. You can order the FD-8 as a kit for $1,150.00, or wired and tested for $1,395.00. Visit one of our dealers for a demonstration, or send for our free Catalog of MSI products. American Microprocessors Equipment & Supply Corp. Chicagoland Airport, P.O. Box 515 Prairie View, Illinois 60069 (312)634-0076 Microcomputer Systems, Inc. 144 South Dale Mabry Avenue Tampa, Florida 33609 (813)879-4301 Micro Store 634 South Central Expressway Richardson, Texas 75080 (214) 231-1096 Vanguard Systems Corporation 6812 San Pedro San Antonio, Texas 78216 (512)828-0553 A-Vid Electronics Company 1655 East 28th Street Long Beach, California 90806 (213) 426-5526 Electronics for Yachting 1525 South East 16th Street Ft. Lauderdale, Florida 33316 (305) 525-3478 TWX 510-955-9484 High Technology 1020 West Wilshire Blvd. Oklahoma City, Oklahoma 731 1£ (405) 842-2021 Computer Workshop 174 Ifield Road London England SW10 9AG 01-373-8571 Tttidcve&t Scientific *)i€4fouinei€t4> 220 West Cedar • Olathe, Kansas 66061 • 913/764-3273 TWX 910 749 6403 (MSI OLAT) DDnnnnDnnannnnnDDanannnDD □ Before I forget. '-' Name D □ Address a a Cit y D State D .send me your catalog □ D □ D D D D BY577 Q □ □aooonQncinnQQnonaaaDnnaa *MSI BASIC is an additional $65.00 Zip MSI is a dealer for Southwest Technical Products • Mastercharge & BankAmericard Orders accepted 220 West Cedar • Olathe, Kansas 66061 • 913/764-3273 Circle 1 19 on inquiry card. TWX 910 749 6403 (MSI OLAT) ~ '- I MERLIN is the best ASCII/Graphics board now available for the S-100 bus . . . and at an unbelievable price! Compare these features to any other video interface: ft 160H x 100V resolution bit mapping graphics i, On-board ROM (Monitor/Editor) option * 40 characters by 20 lines, character ROM generated (hardware) it Keyboard interface (with power) it Programmable modes and display format ft Serial I/O port •ft Low power . . . only 6O0ma at +8V it Extremely fast (uses DMA) it Comprehensive User Manual . . . 200ps ft American 60HZ or European 50 HZ operation. Designed-in expandability means maxi- mum versitility at minimum cost. Add-on options now available (in kit form) include: it Super Dense Graphics (M320-K) $39 it Lower case characters (LC) $25 ■ti Serial-tc-parallel expansion Kit (MSEK-K) $45 is 1500 Baud (software) cassette interface kit (MCAS-K) $29 it 2K x 8 Mask ROM: graphics, cassette, & extended editing software (MEI) $35 ft 2K x 8 Mask ROM/256 RAM; Monitor Editor Software (MBI) ..$39 The MBI ROM software is designed to allow turnkey operation and sophisti- cated editing and scrolling. Ask to see a demonstration of MERLIN at your nearest computer store. Many dealers now stock MERLIN and there is nothing like a hands-on demo for really evaluating a product. We know you'll be sold. MERLIN Kit with Manual $269 MERLIN, assm'd& tested $349 MERLIN User Manual $ 10 For fast information, write us direct! MC and BAC accepted. MmiTerm Associates, inc. Mass 01730 1617) 648-1200 WBm Circle 1 1 2 on inquiry card. Continued from page 13 ELIZA INTEREST John Aurelius' letter (March 1977 BYTE, page 16) struck a resonant chord. When I succeed in getting my own system, I have plans to implement a version of the ELIZA program. ELIZA was first described by Weizenbaum in the Communications of the ACM (CACM), Volume 9, Number 1, January 1966, and has subsequently been dis- cussed by Weizenbaum and others too numerous to mention. ELIZA is still alive and productive, although not neces- sarily as a psychotherapist. I am referring to a version of ELIZA implemented by Shapiro and Kwasny (CACM, 1975, 18, pages 459 to 462) as an interactive consultant for a timesharing system. ELIZA is a very general program whose specific personality derives from a script she is given. Shapiro and Kwasny rea- soned that ELIZA would be a suitable mechanism for providing assistance to timesharing users. It was this application of ELIZA which intrigued me suf- ficiently to begin experimenting with her. Using their program as a point of departure, I have implemented my own (somewhat improved, I feel) version of ELIZA also designed to act as a time- sharing system consultant. This program is now free of bugs (I think); however, the script is not yet very sophisticated, so a dialogue with the program is not yet rousing. I would be willing to provide a reasonably well documented listing to anyone seriously interested. Before the idly curious drop me a card requesting a copy, I should warn them that the program alone consists of 500 lines of SNOBOL 4 statements and requires 60 K words (the equivalent of approximately 360 K bytes) of storage to run on the Honeywell 635 computer for which it was written. Now that everyone's enthusiasm has been dampened, I should admit that my choice of SNOBOL was expediency. ELIZA was originally written in LISP (also a memory hungry, slow, inter- pretive language). | ELIZA requires the ability to search input text for certain desired content (pattern matching) and ELIZA's internal data structures are best represented as some form of list struc- ture. These two attributes suggest that the most natural (but not necessarily most efficient) choice of a programming language is one that facilitates one or both of these ends. For implementing ELIZA on a small machine, I envision a relatively small core resident program to maintain the keylists and do the pattern matching, while the lengthy script is maintained as files on a secondary storage medium. These files would pre- ferably be kept as random access files on a relatively fast device such as a floppy. A sequential device like cassettes might do, but 1 fear it would be intolerably slow. Unfortunately, ELIZA needs to keep a great deal of text at her fingertips (core resident in my SNOBOL program) 122 for matching against input and for recon- structing into output. Again, I would gladly exchange ideas with anyone in- terested in implementing such a program. Glen A Taylor Wisconsin Research and Development Center for Cognitive Learning University of Wisconsin 1025 W Johnson St Madison Wl 53706 COMMENTS ON TURING MACHINES Jonathan K Millen's December 1976 article (page 1 14) on an actual hardware implementation of a universal Turing machine was very interesting. The relationship between the Turing concept of a universal machine (computer) and the capabilities of "real" computers con- tinues to be ignored or misunderstood by many persons who think they know what a computer is. Millen's hardware project may help to enlighten these persons who view the Turing machine world as totally separate from the "real computer" world. It may be of interest to note that Konrad Zuse appears to have investi- gated the Turing machine concept soon after World War II, hoping to find some ideas which could be used to simplify the construction of real computers. (My knowledge of this activity comes from a brief private conversation with Zuse at Los Alamos in June 1976.) He did not find any, of course, since we know now from experience that extremely simple machines in their primitive state are difficult to use in practice. Zuse's early work on computers was done without any knowledge of Turing's work, while it is known that von Neumann's input to early computers was not independent of such knowledge, (von Neumann became acquainted with Turing while Turing was at Princeton in 1937 and 1938 after the Turing machine work which was pub- lished in England.) Millen makes some statements regard- ing the Busy Beaver Game that should be corrected. This game was invented by Tibor Rado and is described in the article "On Non-computable Functions" in the Bell System Technical Journal, Volume 41, May 1962. Millen has taken the liberty of adding an additional state to his Turing machines which he counts as a state for the Busy Beaver Game. This adds behavior that effectively eliminates his machine example from being considered in the game. II goes into a nonstop loop instead of halting. This also distorts the rules of the game. His 6 counting "4 state" machine is actually a 3 state machine by Rado's rules. Millen then gives what he says are known results for 3 thru 7 states when he really should be saying 2 thru 6 states. In any case, the "known" results he mentions are still incorrect. The best results are as follows: Current Results (1975) Busy Beaver Game (Millen's Correct Number States:) of States Busy Beaver Score: Determined by: (3) 2 = 4 T Rado (4) 3 = 6 S Lin (5) 4 = 13 A Brady (6) 5 > 112 D Lynn (7) 6 > 117 A Brady from 5 state result of D Lynn 7 > 22,961 M Green 8 >3.(7.392-i)/i2 M Green While the summary I have shown here is in the process of being published, most of these results have been available in the open literature. Allen H Brady Univ of Nevada Computing Center POB 9068 Reno NV 89507 AUTHOR JONATHAN MILLEN REPLIES: I am grateful to Dr Brady for his update on the Busy Beaver Game results. The terminal "copy" loop on state 4 of the example program was necessary be- cause my universal Turing machine (UTM) has no automatic halt. A copy loop is an adequate substitute, because it is recognizable as such, and it does not change the contents of the tape. Readers may be interested in the alternative Turing machine hardware realizations described in the following two references: 1. I Gilbert and J Cohen, "A Simple Hardware Model of a Turing Ma- chine: Its Educational Use," Pro- ceedings of the ACM Annual Conference, 1972. 2. Wakerly, J F, Logic Design Proj- ects Using Standard Integrated Circuits, John Wiley and Sons, NY, 1976. Jonathan Millen 66 Main St Concord MA 01742 FURTHER SYS 8 EXTENSIONS Readers who have been following the two recent articles in the January and February 1977 issues on improving SYS 8 Software Package 1 by Willard Nico may be interested to know about one of our products. This product is called Software Package 0.5. This is a program in source code, plus a complete manual, for improving SYS 8 Package 1. In addition to the added commands and auto line capabilities discussed by Mr Nico, our program offers: insert, delete, and change string operations on a current line; string operations on a find first occurrence basis; page listing modes; reordering of line numbers; automatic tabbing; option- al suppression of line numbers; and more. For the assembler, we add the following: octal numbers are accepted; a global symbol table for often used symbols; an ASC pseudo op for in- cluding real time output lines; output of the symbol tables; an expandable table of pseudo ops; and still more. The program also adds the capability to assemble programs in sections as they are read in from a mass storage device. This means that program size is no longer limited by the amount of pro- grammable memory available for source code files! The source code translates to 1.75 K object code bytes. The user edits this in with his existing SYS 8 Software Pack- age 1, conforming it to the limits of his system. For this gem of a program, we charge a mere pittance, a token $14.95. Larry Weinstein Objective Design Inc. POB 20456 Tallahassee FL 32304 WINDMILL JOUSTING DEPARTMENT I'm just getting started in this field and have enjoyed and benefited from the past six or seven issues of your publica- tion. I will soon purchase and (I hope) have running a micro, both for personal use and as a fairly large data base device for a three man law office. What prompts me to write this is the use of such expressions as "his/her" and "he or she" which appear with increasing regularity in your magazine. The zenith was reached in the February issue. Let's be fair; you are leaving out a lot of readers. For example, there are cer- tainly corporations and schools which own micros. Surely, the inclusion of only the masculine and feminine gender must seriously offend these neuter users. [Let's start an "It" liberation front?] Please, then, include "it" in such expres- sions as "Whenever the user finally gets his/her/its machine running . . . . " Secondly, there no doubt are some partnerships or associations that own or use micros. Can you imagine the chagrin of the members of these bodies not to be included in all your pronouns! This will necessitate your saying: "Whenever the user finally gets his/her/its/their machine running . . . . " Don't offend, for God's sake. And to heck with grammar or readability. I am sure, if you really work at it, you could find even more ways to insure that your articles are hard to read — like, SUPER DENSE GRAPHICS 320 Horizontal by 200 Vertical K C0S(2iX/b> .■1. b-42 86 IF YOUR COMPUTER \Z/ \Z/ CAN'T 8NILE <0R PL0T> IT PROBABLY O HAS BERLIN DEFICIENCY V V ANEHIA. \\^y (EQUATION PLOTTED HITH BASIC) The MERLIN Super Dense add-on kit provides maximum resolution at a minimum cost. In fact, MERLIN with Super Dense has more capabilities than any other S-100 bus video interface at any price! Once you've seen 'Super Dense' graphic resolution you'll know there is nothing to compare it to . . . short of spending over $600 . . . and even then you'll not have all of the capabilities of MERLIN with 'Super Dense'. Super Dense provides true bit- mapping. Each and every point on the screen is controlled directly by a bit in memory. (Requires 8K of system memory.) ROM character-graphics looked good for a while; then came MERLIN'S 160 by 100 bit mapping graphics; and now . . . 320 by 200 bit-mapping graphlcsl ! I If you're looking for a graphic display, MERLIN with Super Dense Is the best there is. And if you hadn't considered graphics or thought it was out of your price range, consider what you could do with 320 H by 200V graphics and for only $39 extra. The Super Dense add-on kit to the popular MERLIN video interface is now available with off-the-shelf delivery. M320-K, Super Dense Kit $39 M320-A, Super Dense Assm. ..$54 See MERLIN ad on previous page. For information fast, write direct, or see 'Super Dense' at your nearest computer store. MC and BAC accepted. MimTerm Associates, inc. Bo, 268. Bedford, Mass 01730 (6171 646-1200 123 Circle 1 12 on inquiry card. .;, Made possible by the designed-in expansion capabilities of the impres- sive MERLIN Video Interface. Aside from general purpose uses, the designers at MiniTerm anticipated Graphics and Graphics games and the problem of control interfacing. The MSEK (MERLIN Serial Expansion Kit) provides: Three parallel Input ports Three parallel output ports These can be used for interfacing joysticks or game controllers or parallel I/O devices. And the price can't be beat! The MSEK mounts inside your keyboard and connects to MERLIN through the keyboard cable. WA Also available from MiniTerm is the first real raster graphics. "Space War" game for the personal/hobby market. "Space War" gives the user control of rotation, accelleration, and firing of missiles for two space ships. When used on the MERLIN video interface with 'Super Dense' add-on option (320 x 200) the game provides more excite- ment than any BASIC version of "Space War" or any of the standard TV games! A delux version of "Space War" is also available which allows selection of ship dynamics to simulate cars, tanks, boats, etc. and allows the user to draw his own 'ship'. Space War (SPW) $25 Delux Space War (DSPW) $35 (Add suffix -T for Tarbell tape, or -P for INTEL hex paper tape.) A complete source listing is available for an additional $10 for either game. Write for full description, or better yet, play a few rounds at your local computer store. But be prepared to stay a while. There is likely to be a line and you may become addicted. MC and BAC accepted. MiniTerm Associates, inc. Box 26B Bedlcrd. Mass 01730 (617) 648-1200 Circle 1 1 2 on inquiry card. "owner/user," for example — we have to be accurate, right? Or "hobby /personal/ recreation/small business" every time to describe (modify) the word "microcom- puter." That'll really screw up the read- ers and give more money to the authors, too. Be honest, folks; are you on some kind of a crusade? If not, please drop the abominal usage of English (even lawyers recognize the use of "his/her" and the like is bad) and get on with publishing valuable, concise and readable pieces for the benefit of your poor readers. It the gals are offended by the use of masculine pronouns, then fine — print 'em all in the feminine gender. Most men couldn't care less. But stop the foolishness, okay? WC Welborn Jr Caine and Welborn Law Office 2221 W Franklin St Evansville IN 47712 Its, you? Gesundheit! SOME COMMENTS ON MIKBUG The following letter reaches readers in two parts. The main body of the letter is found here; the information in one paragraph of the letter is noted in "BYTE's Bugs" on page 160, and is not repeated here. I was pleased to see John Rathkey's article "A MIKBUG Roadmap . . . " in February 1977 BYTE, page 96. The IO routines in this ROM are very useful and have saved me a lot of programming time. The following comments and addi- tions apply to table 1 : 1. BADDR alters the contents of both A and B. 2. OUTHL and OUTHR both de- stroy the contents of A. Thus A must be reloaded if one desires to output both nybbles. 3. INHEX puts a hexadecimal digit in the right nybble of A. 4. OUT4HS outputs the four hexa- decimal digits pointed to by X and X+1, then prints a space. X is incremented by 2 and the con- tents of A are lost. 5. OUT2HS also uses X as a pointer. X is incremented and A is altered. 6. OUTS is omitted from the list. This routine prints a space and begins at EOCC. The routine labelled PSTR in listing 1 duplicates PDATA1 in MIKBUG. The only significant difference between the two routines is that PDATA1 uses the code 04 (EOT) to mark the end of the string rather than 00 as used by Rath key. The indexed mode JSR command can occasionally be used to save a few bytes of code when using the MIKBUG IO routines to and from the A register. Simply load the lowest address of the routines you will be using into X; the 124 desired routines can then all be ad- dressed with the 2 byte indexed mode JSR rather than the 3 byte extended mode. Of course, this technique won't help if you want to use the routines that require X as a pointer. The MIKBUG program uses a block of programmable memory from A0O0 to A049. Since this is usually provided by a 128 by 8 RAM chip, the remaining 53 bytes from A04A to A07F are available to the user for data or short programs. In addition, space for a stack is provided from A014 to A042. Since many pro- grams won't require such a large stack, some of these bytes can generally be used for other purposes. The stack pointer is initially set to A042 and increments downward as more stack bytes are required. You have a fine magazine; keep up. the good work. D B Brumm dB Engineering 224 HeclaSt Lake Linden Ml 49945 NOTES ON ARTICLE CONTENTS I have been reading BYTE for about a year now. I would like to congratulate you on your very interesting journal. However, it disturbs me that you con- tinue to publish articles on programming and construction techniques only for the more well known microcomputer chips such as the 8080 and 6800. I contend that articles on microcomputers based on the 1802 and the 6502 would also be beneficial as they are also in popular use. Leonard P Jacobs Jr USF#1570 Tampa FL 33620 We've had numerous articles on the 6502, already, starting with a review of the processor in November BYTE 1975 by Dan Fylstra, and continuing with seve- ral about the KIM-1 and its application or modification. In the near future we'll have David Brader's Komputar, a home- brew 6502 system plan. As for the 1802, or any other processor, what we print to a large extent depends on what people are doing, since the majority of BYTE articles are unsolicited contributions from readers actively engaged in experi- mentation. Based on recent data from readers, authors and manufacturers, there should be a bit of an upswing in 1802 awareness over the next few months. THE EVOLVING LEXICON A thorough answer to W Buchholz's question I February 1977 BYTE, page 144] about words that have passed from computer jargon into the general vocabu- lary would probably require a master's thesis. The main reason is that several wholly new dictionaries have come on the US market in the past ten years or so. Among them are: American Heritage Dictionary (three editions), Doubieday Dictionary, Random House Dictionary (two editions). Several older dictionaries have been extensively revised; set in new type, or both: Webster's New World Second College Edition, Merriam- Webster Seventh College Edition, Thorndike-Barnhart Advanced Diction- ary. And that's not all. The Oxford English Dictionary has started work on a 3 volume supplement that will cover new words and meanings since about 1 91 4. The first volume came out in 1972. The Oxford English Dic- tionary seems to be doing a more thorough job on computer terms than on general electronics! The entry for "con- trol" in the new Oxford English Diction- ary supplement quotes the 1948 MIT glossary and the 1 955 glossary of the British Standards Institute. But the Oxford English Dictionary inexplicably skipped the electronic use of "emission" as the kind of signal (AM, FM, TV) a statidn sends out, although that word with that meaning has been around since at least 1927. Almost the first thing I did when I got interested in microcomputers was to build my own glossary, starting with the lists in the back of the IEEE Dictionary (and acquiring other glossaries as I went). So I had a list I could check against a brand new dictionary (Ameri- can Heritage Dictionary, College Edition of 1969) and a dictionary whose date of revision is known (Webster's New World Dictionary , Second College Edition of 1970). American Heritage Dictionary started with a clean sheet. It has excellent typography but fewer entries than Web- ster's New World Dictionary. It uses larger type, and has very wide outer margins on each page where the artwork is put. Its vocabulary of computer terms includes: accumulator, address, ALGOL, alpha- numeric, analog computer; base, bit; Boole, George; Boolean algebra; chip, computer, computer language, converter ("a device that trans- forms information from one code to another"); data ("Numerical information in a form suitable for processing by computer"), data processing, demodulation, digital computer; flip flop, FORTRAN; gate ("a circuit extensively used in computers that has an output dependent on some function of its input"); hardware ("a computer and the asso- ciated physical equipment di- rectly involved in the perform- ance of communications or data processing functions"); information, information theory, input; machine, machine language, memory, module, Murphy's Law; PL/1, printer, print out (verb), print- out (noun), program (noun and verb), programmer; readout, real time; software, storage. Webster's New World Dictionary has more entries and smaller type. The Col- lege Edition is its number 2 product. Some of the computer definitions are eyebrow raisers: accumulator, address ("the location in a computer's storage compart- ment of an item of information, identified by a number or other code"), alphanumeric, analog, analog computer; bit, Boolean Algebra; computer, console; data processing, decoder, digital com- puter; flipflop, FORTRAN ("a digital com- puter language similar to al- gebra"); gate; hardware; information, information theory, input; language ("a special set of symbols, letters, numerals, rules, etc, used for the transmission of informa- tion, as in a computer"), logic ("the systematized interconnec- tion of digital switching func- tions, circuits, or devices, as in electronic digital computers"); machine language, memory; printer, printout (noun), program (noun and verb, two definitions each), programmer and program- er (as shirttails, undefined, fol- lowing program); random access, read ("to obtain [in- formation] from [punched cards, tape, etc] ; said of a computer"), readout, real time, routine; software, storage, store, symbolic logic; throughput, track; word, write ("to record information in a computer's memory or on a tape, etc, for use by a com- puter"). Webster's New World Dictionary had a contributing editor who was then the head of the Electronics Engineering De- partment at Carnegie-Mellon University. American Heritage Dictionary had no electronics specialist identified as such on its I 969 masthead. If you know someone who is major- ing in computer and minoring in linguis- tics, you might set him or her on this. The sooner it's wrapped up thoroughly, the easier it will be to do thoroughly. One question that should be explored in any exhaustive treatment is why certain words were admitted to the general vocabulary, and others were not, in each edition of each dictionary. C J Mike Fern Jr, WA60WJ 1046S Westlake #1 Los Angeles CA 90006" 125 They can transform a hobby computer into a professional, useful tool. But why pay $300 for one? The MERLIN Video Interface is also a ROM Monitor board. The optional 2K x 8 MBI ROM Monitor/Editor is available for only $39. The MERLIN Monitor provides com- mands for turnkey 8080 or Z80 operation and program debugging and the Editor is the best there is. Any BASIC or user program is compatible with the MBI software. And now MiniTerm introduces the ROM/EROM kit so that you can put the rest of your operating system and general purpose routines in ROM for increased ease of use and reliability. Just Look at these features: i<')YnVii i ft'jsiv'. 8KM MEMORY BOARD KIT $295 PB-1 PROTOTYPING BOARD $28 EXT-100 EXTENDER CARD $24 ELECTRONIC CONTROL TECHNOLOGY P.O. Box 6, Union, New Jersey 07083 I201I686-B080 Circle 179 on inquiry card. Circle 209 on inquiry card. Circle 47 on inquiry card. BITE Article Index FREE 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: BYTE Index 70 Main Street Peterborough NH 03458 BVTESHDP the affordable computer store 7825 BIRD ROAD QF (305)264-2983 MIAMI DIAL264-BYTE MIAMI WE HELP YOU GET YOUR SYSTEM UP AND RUNNING. The word is getting around ... the Byte Shop of MIAMI is a remark- able exception to the rule among computer stores. We offer a truly delightful environment supported by * REAL courtesy * REAL expertise * EXPERT service * GREAT classes demo systems IMSAI 8080 BYTE-8 SWTP MP68 CROMEMCO PROCESSOR TECH INTERFACES (KITS or ASSEMBLED UNITS) Opening computer store #2 IN FORT LAUDERDALE MEMORY EXPANSION COLOR TV GRAPHICS LEAR SIEGLER ADM 3 PAPER TAPE READER DISCOUNTS! IMSAI 8080 KIT $599. assembled 750. IMSAI 8080 w/22 slot MB 645. assembled 795. RAM4A-4 125. assembled 225. MULTIPLE I/O Board (MIO) (both Tarbell and Byte modes one serial, two parallel, one control port) 175. assembled 275. EXPM (100 pin w/edge conn 6.50 assembled 11.50 (POLYMORPHIC SYSTEMS) 16x64 CHAR VIDEO BOARD 189. assembled 229. Keyboard — 63 key fully encoded ASCII, +5v only, positive or negative logic, repeat key, IC sockets. kit $54. assembled 69. *write for discount prices on other IMSAI products. *N.C. residents add 3% state sales tax CDfTlPUTER ELECTRDFItCS BOX 339 Cary, N.C. 27511 Circle 271 on inquiry card. Circle 253 on inquiry card. provide attendees with the latest infor- mation on new developments, trends, and the outlook for the future. Ample time will be allotted to answering questions from those in the audience. Plans are also under way to bring to- gether various special interest groups in personal computing for a series of infor- mal sessions on such topics as the build- ing of computing kits, debugging soft- ware, use of assembly language, pe- ripheral interfaces, cassette and disk storage, and software standards. In addi- tion, plans are being developed for a "National Club Congress" to enable representatives of clubs from throughout the nation to exchange ideas and discuss issues relating to their activities and pro- grams. Among expected topics will be whether or not a national personal com- puting association is needed, and if so, how it might be formed. Related topics are expected to include hardware/soft- ware standards, a possible national pro- gram library interchange, and the estab- lishment of educational seminars. In addition, the 1977 NCC will fea- ture a commercial exhibition by equip- ment manufacturers and suppliers of personal computing products and ser- vices. The Personal Computing Expo- sition will be in the North Hall of the Dallas Convention Center, one level below the main NCC exhibit hall. Information on the 1977 NCC may be obtained from AFIPS Headquarters, 210 Summit Av, Montvale NJ 07645, or by calling (201) 391-9810. ■ A Calgary, Alberta Store . . . The Computer Shop is the name of a new store which sells IMSAI, Digital Group, Interalia, Cromemco, Lear- Seigler, Polymorphic Systems, South- west Technical Products, Morrow, Mini- Term and TDL products to central Canadians. The shop sent us a flier, with a handwritten note that the typical prices are USA prices plus about 25%. The store is located at 3515 18th St SW, Cal- gary, Alberta CANADA T2T 4T9." Another Dallas Area Store KA Electronic Sales, a Dallas distrib- utor of industrial electronic components to both businesses and individuals, has opened a computer store at 1220 Ma- jesty Dr in the Brookhollow Industrial Pk, Dallas TX. The KA Computer Store currently expand your ^ S 50R 1tJ ^g % programmable ^>X4^v\ scientific €t#<^<^t".^. , calculator • Unlimited Number of Steps H . n .". n . . INCLUDES FREE . 14 Digit Readout • 44 page HANDBOOK • ONLY $189.00 • Users Group Membership • IN STOCK • Programming Sheets ARTISAN ELECTRONICS CORPORATION 5 EASTMANS RD., PARSIPPANY NEW JERSEY 07054 TELEPHONE: (201) 887-7100 markets central processing units and pe- ripherals by several manufacturers in- cluding IMSAI, Southwest Technical Products Corporation, Lear-Siegler Ter- minals, Solid-State Music and The Digital Group. KA also supplies electronic com- ponents and parts as an industrial and retail distributor, and has a second electronics parts walk-in store located at 1117 S Jupiter, Garland TX." How to Get a BASIC Source Listing Dr Dobb's Journal of Computer Calisthenics & Orthodontia, in its J anuary edition of this year, has published the complete source and object code as- sembly listing of the Lawrence Liver- more Laboratory BASIC interpreter developed by John Dickenson, Jerry Barber, John Teeter and Eugene Fisher. The interpreter is a 5 K byte program designed to be loaded in PROM or ROM. It includes a floating point arithmetic package. Dr Dobb's is loca- ted at People's Computer Company, POB 310, Menlo Park CA 94025. ■ Question: Dr Chuck Adams of the Texas A & M University EE Department posed the fol- lowing question in a recent phone con- versation: "Who invented the D flip flop?" Can a reader supply the answer to this query, for publication in a future issue?" Want to Find Out Who's a Professional Computer Scientist? The 1977 Association for Computing Machinery Roster of Members, an alpha- betic and geographical cross-listing of the names and addresses of more than 35,000 ACM members as of January 1 1977 is now available. The Roster may be ordered from the ACM Order Department, POB 12105, Church St Station, New York NY 10249. Prices are $7 to members and $25 to nonmembers, prepaid." Guide to Buzzwords "Sherry's Guide to Data Communica- tions Buzzwords" is the name of a 24 page booklet of words and definitions which are commonly used in the data communications field. Write for your complementary copy, available from: Public Relations Dept, International Communications Corp, 8600 NW 41st St, Miami FL 33166." Survey Sweepstakes Results . . . In November 1976 BYTE ran a ran- dom survey of readers, to gather data for editorial and marketing purposes about this crazy field. Of approximately 2100 survey questionnaires mailed, 1448 were returned prior to the deadline of Novem- Circle 275 on inquiry card. 128 ber 15 1976. As an incentive to return the survey, we offered five Life Subscrip- tions to BYTE, commencing with the expiration of the current subscriptions of the winners. The following five indi- viduals were drawn at random from the returned survey sweepstakes entry blanks (which were kept separate from the actual questionnaires in order to keep the questionnaires anonymous and private). Arthur H Bazell 50 El Camino Real Berkeley CA 94705 Allen L Curl Robert S Curl & Assoc 1555 Alum Creek Dr Columbus OH 43209 Dennis A Hewitt POB 8747 S Charleston WV 25303 Mark T Marshall 18229 Topham St Reseda CA 91335 Howard Rothman 86-25 Van Wyck Expy Briarwood NY 11435* in publication of a report late this year. An international advisory group will review the report before any moves to approach Third World nations about hosting the spaceport. Total cost of the study is estimated at $50,000, to be provided by contribu- tions from philanthropic, space oriented organizations and individuals. Although the project is at an early stage, it has drawn support from leading aerospace figures. Among the advisors are Prof Freeman Dyson of the Institute for Advanced Studies, Princeton; Dr Philip K Chapman, a former astronaut; Dr Raymond Bisplinghoff, past NASA associate director and research director; and Dr George Robinson of the Smith- sonian Institution. Three study groups will be responsible for preparation of the final report. The Government Launch Activities Commit- tee will examine ways that governmental organizations could use an equatorial spaceport to their advantage, and the Private Users Committee will investigate opportunities for nongovernmental groups. The Freeport Design Committee, chaired by Stanford freeport specialist Dr Avlin Rabushka, will recommend possible sites and alternative legal and economic configurations of the site. Copies of an eight page brochure describing Earthport are available for $.50 per copy. Suggestions about the project are welcomed by the founda- tion. For further information, write Mark Frazier, Space Freeport Project, Sabre Foundation, 221 W Carrillo St, Santa Barbara CA 93101. Project Members (Partial Listing) Advisory Board: Dr George Robin- son, Smithsonian Institution; Dr Philip Chapman, former astronaut; Prof Free- man Dyson, Institute for Advanced Studies, Princeton; Pat Gunkel, Hudson Institute; Dr Larry Smarr, Harvard Astro- physics Center; Prof Alvin Rabushka, Hoover Institution, Stanford; Dr Ray- mond Bisplinghoff, former NASA asso- ciate director, NASA research director, and dean of engineering at MIT; Robert Prehoda, consultant. Study Groups. Government Launch Activities Committee: Arthur M Dula J D, chairman. Private Users Committee: Robert W Poole Jr, chairman; Raymond L Kendall, program development mana- ger, Motorola Inc; Paul Siegler, president, Earth/Space Inc. Freeport Design Com- mittee: Prof Alvin Rabushka, chairman; Michael Bader, assistant director, NASA- Ames; Jerry Glenn, consultant. Executive Director: Mark Frazier." Technology Fact Attention S2Btre«-RcQ5nJ_overs . . . Another Far-Out Technology How About Running a Real World Enterprise Instead of a Computer Driven Simulation Game? A group of aerospace specialists has begun to investigate the prospects for a satellite launch center at the equator. Sponsored by the Sabre Founda- tion, the group hopes to determine the extent of interest by government and private organizations in an "Earthport" that would be open to peaceful users from every nation. Equatorial sites offer cost savings for most satellite launches because the earth's spin gives rockets a boost into orbit. Several nations now operate equatorial launch sites of varying sizes, but none are international. "In the past six years, aerospace companies such as Boeing and General Dynamics have explored the possibility of providing commercial launches from the equator," said the director of the study, Mark Frazier. "We plan to work with representatives of private organiza- tions as well as governments to determine what environment would be best suited for them." The initial stage of the study is intended to assess international interest in establishing a "space freeport," and will be completed within the next four months, according to Frazier. Project members will then evaluate the economic, technical, legal and political aspects of establishing an international launch site, culminating Make the HAL Connection • 8080A MPU • 1K Monitor/Debug Software in 2708 EPROM or 2-3624 PROMs • On board space for: 4K ROM (2708), 2K RAM (2102A-4) • TTY Current Loop or RS-232C serial I/O (8251) • 24 lines of Parallel I/O (8255) • Hardware "front panel" on board • Optional Accessories: m CRT Terminal Board, BASIC in — EPROM, Audio 1 Cassette Interface, 7K RAM Expansion Board/ EPROM Programmer, Power Supply. MCEM-8080 from$375 (2-3624 ROM/1K RAM) or$445 as shown (2708 EPROM/2K RAM) and solve your lab or OEM computer problems 1. Connect to the 24 lines of Parallel I/O and ASCII or Baudot Serial I/O. 2. Connect to processor bus to add mem- ory expansion board/EPROM program- mer, I/O devices, or our unique CRT Terminal Board. 3. Connect to our power supply or use your own. Lab users and OEM's alike will find solu- tions to their computer problems with the MCEM-8080 computer. All essential com- puter system elements are incorporated in this fuily 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 l/Oon the board; and very reasonable prices. Cal I 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 129 The Midwest Affiliation of Computer Clubs invites you to attend the Second Annual, Midwest Regional Computer Convention and Exposition.... J UNE 10,11,12 COMPUTERFEST 77 BOND COURT HOTEL 777 St. Clair, Cleveland, Ohio > Manufacturers' Reps & Exhibits stmoniy > Roofed Flea Market iJi > Seminars & Tech Sessions per ticket > Club Congress > And Prizes, Games, Media Duping, and more.... The M.A.C.C. Convention is Where It's At in the Midwestern region. See you there! And if you plan to attend NCC, why not fly with us? Ask for information about the charter flight to Dallas. Drop a line to: A. WiPoMPUTER^^LUBS IDWEST ^"AFFILIATION OF ^M^OMPUTER P.O. BOX 83, CLEVELAND, OHIO, 44141 BITS TM Game Playing With Computers by Donald D Spencer, published by Hayden. What does it mean to play games using a computer? Read this book to get an introduction into numerous recreational uses of the computer to program and play mathematical and logical games. Topics include numerous mathematical problems, casino games, board games, unusual gam- bling games, and miscellaneous logic games. Numerous BASIC language programs and listings are included to show details. $16.95. Scientific Analysis on the Pocket Calculator by Jon M Smith, published by John Wiley & Sons. This book is another in a set of source books for mathematical analysis using the contemporary products of technology. It is oriented to the pocket calculator, yet it will provide you with algorithms and methods useful with any personal computer which implements the scientific and analytical functions found on a good pocket calculator. For a more complete description, see the book review on page 120 of the December 1976 BYTE; or order its 392 pages of detailed technical information and review its use for yourself. $13.75. ■ \ Build Your Own Working Robot by David L Heiserman, published by Tab Books. This book will not tell you how to build Robbie, the robot of Forbidden Planet, or a classical android of science fiction. What it will introduce you to is the problems of making a robot mobile device called Buster III, using pre-microprocessor TTL integrated circuits for all logic functions. It is a must book for background reading, but much of the logic can be extremely simplified using today's micro- processor technology. Use this book as a first look at these problems from which you can build further and more elaborate solutions. Softbound, $5.95. A Dictionary of Microcomputing by Philip E Burton. In the opinion of BYTE's editor, Carl Helmers, "This is one of the best designed and executed dictionaries of computer related terms yet seen on the market. It is of particular relevance to those individuals who want a good general reference to numerous technical terms, broadly covering hardware and software fields as currently practiced," This new hardbound edition is part of the Garland Reference Library of Science and Technol- ogy. $12.50. Software Design for Microprocessors. This stand alone guide to microprocessors has been designed by the people at Texas Instruments to convey knowledge to the first time user of microprocessors. This excellent source book of computer concepts begins with an outline of the basic principles of the general purpose computer, its machine architecture, software, and meth- ods of addressing. It proceeds to discuss how to build software, what is involved in documenting what you've done once you've done it, the mechanics of programming, and specific examples using the Tl TMS-1000, TMS-8080, TMS-9900 and SBP0400 de- signs. You'll find a thick hardcover text- book filled with over 370 pages of useful information including a comprehensive glossary of microprocessor terminology, among several other detailed appendices. $12.95. 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, 25 cents per book for books Grand Total $ $ Name Address City State ^ip_ Signature You may photocopy this page if you wish to leave your BYTE intact. Please allow six weeks for delivery. Circle 4 on inquiry card. Digital Computer Fund- amentals by Jefferson C Boyce. The way to a world of learning is through books. A great place to start, and to return from time to time, is the classical textbook. This new book from Prentice Hall is in- tended as just that. Topics covered include digital computer operation, basic computer circuits and concepts. Boolean algebra, implementing com- puter operations in hardware, com- municating with the computer and related issues of coding schemes, detailed discussions of the control section, memory functions, arithme- tic and logic functions, input and output functions of a classical com- puter, a chapter on computer pro- gramming and a final summary chapter on the details of a typical minicomputer design interpreted in the light of the more theoretical general concepts in the book. This book is excellent background infor- mation for the literate and well read hacker. Order yours today. $15.95 hardbound. Adam Osborne's books An Introduction to Microcomputers, Volumes 1 and 2, are a concise compendium of the technical details of microprocessors at the component (engineering) level. These are the source books for the system designer who plans to employ the microprocessor, or the advanced homebrewer who wants a dash of custom- ization not found in commercial products. Volume 1 is subtitled "Basic Con- cepts." This is the book which presents a framework of ideas concerning the design and use of small computers implemented with LSI. Topics include definitions of the microcomputer, fundamental concepts of logic and numbering characteristics of instruction sets, etc. $7.50. Volume 2 is a much thicker (895 How to Buy and Use Minicomputers and Microcomputers by William Barden. People have often asked us where to turn to get an introductory book about computers for personal use. One excellent place to start is How to Buy and Use Minicomputers and Microcomputers, William Barden Jr's instant summary of the small computer revolution, published by Howard Sams in mid- 1976. This is one of the first books of the "general introduction to computers" genre to be published with an emphasis towards the small computer and personal computing as it is being practiced these days, the book, written for the novice as well as the expert, surveys the technical details of the field in nine chapters and 10 appendices. This book is light (but essential) reading for the experi- enced computer person, and worthy of serious, concentrated perusal by the novice. $9.95. HowmBuY&UBO 1 KIOCOIHPUTEAS fi MICRQEQIilPliTEnS page) detailed volume which complements the information in the first volume. This is the volume which fills in many of the details left out of the conceptual treatment in Volume 1. Here you'll find 19 detailed chapters on the engineering and logical specifications of products made by 16 different manufacturers, including in many cases reprints from the manufacturers' documentation as well as new materials provided by the author. Published in 1976, it even includes such processors as the MicroNOVA by Data General and the Texas Instruments TMS-9900 as well as the older 8 and 16 bit machines. Organization is by design type, and where parts of several manufacturers were intended for a given processor design such as the 8080, these are grouped into a single chapter. $12.50 ■fnUncnHiiHi COMPUTER POWER AND HUMAN REASON FtoMJUDGMBJI 10 CALCULATION Computer Power And Human Reason by Joseph Weizenbaum. This book is one which should be purchased or read for several reasons. If you're presently a programmer by trade or skill, you'll see a philosophy of computer use and abuse pro- pounded. It's genuinely interesting, and definitely provocative if you reference the storm of letters, coun- ter letters and counter counter letters which this book produced in the Association for Computing Machin- ery's SIGART newsletters during 1976. If you're a novice to the field, the tutorial and explanatory chapters of this book, which are aimed at the layman, will serve as an excellent background source which is also eminently readable This includes an excellent and low level explanation of what an algorithm is, and how computers go about executing effec- tive algorithms. $5.95 softbound. Send to: BITS, Inc 70 Main St Peterborough NH 03458 Total for all books checked Postage, 25 cents per book for books Grand Total fflB Check payment method: My check is enclosed Bill my MC No. Bill my BAC No. Name Address $ City Exp. date Exp. date State Jip_ S ignatur e You may photocopy this page if you wish to leave your BYTE intact. Please allow six weeks for delivery. Circle 4 on inquiry card. Continued from page 52 Selectric mechanism found in the Keyboard Printer is a set of switch contacts which are closed by movement of the tilt rotate bails, and by movement of the cams in various stages of the printing cycle. These contacts can also be seen in photo 4. Again, no electric power is applied to these contacts inside the Selectric, but six of them, called C1 to C6, are wired together thru certain pins in the receptable at the back of the machine (more on this later). For printed output, these contacts can be tested to determine when the printing cycle is complete. For keyboard input, there is another set of contacts which must be tested at the proper instant in order to capture the code for the key just depressed. Other contacts are provided which make it possible to determine whether the machine is cur- rently locked in upper or lower case, whether the end of line margin stop has been reached, and so on. According to the documentation, the contacts are rated for 40 mA at 10 V (minimum) to 300 mA at 48 V (maximum). BCD and Correspondence Machines At this point, I should clear up the mystery surrounding the differences be- tween the so-called "BCD" and "Corre- spondence" versions of the Selectric Key- board Printer. There are differences in three areas: 1. The arrangement of characters on the lypcball that is used. 2. The arrangement of the fingers on the interposers connected to particular keys. 3. The code obtained for keyboard input at the 50 pin receptacle when a key is pressed. The Correspondence version is the simpler of the two. All of the office type- writers are built this way, and nearly all the typeballs available from IBM use the Corre- spondence arrangement of characters. In a Correspondence encoded Keyboard Printer, the tilt and rotate bail contacts are wired directly to the 50 pin receptacle, and so the code obtained when a key is pressed is the actual tilt rotate code. Note that the tilt rotate code is the same for, say, an upper case A and a lower case a, so the current state of the shift contacts must be checked whenever a character is read. Many Selectric Keyboard Printers were built for use in equipment which employed a 6 bit byte and the old BCD (binary-coded decimal) character code, and so IBM developed the "BCD" version of the Selec- tric. In this machine, the tilt and rotate contacts (there are several sets of contacts for each bail) are wired through a maze of diodes and shift contact connections to yield a unique 6 bit code for all of the essential characters in the BCD set. Hence the code which reaches the 50 pin receptacle can be read directly into a 6 bit byte, and the shift contacts themselves need not be tested. Of course, a 6 bit byte can represent only 64 different characters, and after allowing for the digits and various special characters, there was room for only the upper case alphabetics. In fact, because of the limita- tions of wiring through diodes and switch contacts, only 48 distinct codes are actually produced. Even so, in order to accomplish this wiring feat, it was necessary to move some of the essential characters to con- venient spots on the typeball, and hence the interposers with certain finger combinations also had to be moved around in order to preserve the usual layout of the keyboard. This is why the characters are all mixed up when you type manually on a BCD machine with a Correspondence typeball. Indeed, just to make everything fit together, IBM puts only the upper case characters on most of the typeballs intended for use with the BCD machine. (An exception is the Model 963 typeball which is used in many timesharing terminals.) But, in fact, the mechanism is still capable of tilling and rotating to any character position. What docs all this mean for the computer hobbyist? If you are using the Selectric as a printer only, it makes no difference whether you have a BCD or a Correspondence machine, since in either case you have direct access to the tilt and rotate magnets. By energizing the proper combinations of the seven magnets, you can use both BCD and Correspondence typeballs with cither machine. (My Selectric is a BCD machine and I regularly use it with a Correspondence encoded Courier 72 typeball.) If you want to use the Selectric keyboard for computer input (and you want upper and lower case), or if you want to use the machine off line with a variety of Corre- spondence encoded typeballs, you are con- siderably better off with the Correspondence version of the Keyboard Printer. But, since most of the units available through surplus channels (at least at reasonable prices) are BCD machines, you may have to settle for one of these. With some mechanical and electronic skill (and lots of courage), you could convert a BCD machine into a Corre- spondence version by: I . rearranging the interposers to match the Correspondence typeball arrangement. 133 Figure 2: A very simple power source for the un- regulated DC used to power the solenoids of the Se lee trie Keyboard Printer. 2. tearing out all the wiring for BCD code generation and replacing it with direct connections from the bail switch con- tacts to the 50 pin receptacle. So much for the theory of operation of the Selectric mechanism. Now let's get on to the design of an interface unit which will let us control the Selectric printer using stand- ard TTL level signals from a computer output port. Mindful always of our potential exposure to Murphy's Law, we will keep this interface as simpleminded as possible. Readers with more sophistication in elec- tronics may use this approach as a jumping- off point (so to speak) for their own designs. Interface Design To control the operation of the Selectric printer we must provide three types of functions: 1. Signal conversion of TTL levels to magnet currents. 2. Code conversion of ASCII codes to tilt rotate code. 3. Control and timing to type successive characters, wait for carriage return, etc. It seemed to me that the most appropriate division of labor was to provide the first function in hardware, and the second one in software. Signal conversion requires an ex- ternal power source, while code conversion requires some flexibility to accommodate different typeballs. For the third function, I have experimented with both open loop control (realized entirely in software) and closed loop control (which uses a hardware feedback signal); both approaches will be discussed briefly here. SIGNAL • V> (7400) — [_ y Signal Conversion For signal conversion, we simply need a power source for the Selectric magnets and a means of switching the power on and off using TTL level signals. For the power source, we need a maximum of about 1 A of DC (for seven simultaneously energized magnets at 125 mA per magnet) in the range of 43 to 53 V. The source need not be regulated nor even ■ filtered. (See "Watts Inside a Power Supply," by Gary Liming, January 1977 BYTE, page 42, for a further discussion.) Figure 2 is a circuit diagram for the power supply which I built around a $4 surplus transformer. The only really essential element is the full wave rectifier. The capacitor was included simply to jack up the voltage of the particular transformer I was using to the point where it would energize the magnets. To switch power on and off, I used a set of reed relays (optoisolators or power tran- sistors could be used instead). These par- ticular reed relays have a coil resistance of 290 ohms, so they can be driven by an ordinary TTL gate (17 mA at 4.8 V, or 10 TTL loads). They are available from Digi-Key Corporation, POB 677, Thief River Falls MN 56701, for $1.70 each (part number 5VRR). I used a total of 12 relays, six for the print magnets (since I forgot about the "check" magnet) and six for the most important control functions (space, backspace, tab, carriage return, and upper and lower case shift). The reed relays were each connected to a computer output port and a Selectric magnet through the circuit diagram shown in Figure 3: Switching of the solenoid actuator magnets in the Selectric Keyboard Printer is accomplished by this basic circuit. A reed relay which is within the drive capabilities of TTL is driven from a TTL logic gate, with protection against back EMF provided by the diode A. The reed relay, in turn, drives the magnet in the printer from the 48 V (nominal) supply of figure 2. Diode B provides back EMF protection for the relay contacts to prevent arcing which would shorten the life of the relay. The dotted line outlines the detailed circuit repeated many times in figure 4. 134 figure 3. Here the 1N4001 diodes protect the TTL gate and the reed switch from voltage transients in the two coils. Since I needed a standard TTL buffer to provide enough current for each reed relay, and since I wanted to economize on my use of output ports, I used a seventh control line to switch between the six print magnets and the six control function magnets. The resulting circuit diagram is shown in figure 4. The lettered squares which terminate the reed switch contact lines refer to pin designations on the Selectric's 50 pin receptacle (see below). Photo 5 shows the physical layout of the components of figure 4 in the interface which I built. Most of the wiring is Vector Slit n' Wrapped on the other side of the square piece of Vectorboard. This construction layout is not recom- mended! Allow yourself much more room for repairing, replacing or adding compo- nents (like a seventh pair of reed relays!). A length of scrapped telephone cable makes a good connection between the interface and the Seleclric itself. Also shown in photo 5 is a 50 pin connector which plugs into the Photo 5: Physical layout of the components of the interface box which houses the circuit described in this article. COMPUTER OUTPUT PORT [el (71 [71 1 3 : : n.'.'l CONTROL DRIVERS rft TAB JTfTL -e — r * j t-§c Gl£' SPACE _/"YYY~i_ -H 1 BACKSPACE -0 — r ~ r ~ s °C^E^" CARRIAGE RETURN r r**rrs [p] 1 W UPPER CASE I 1 /• LIS ■ — rr ™ S — i * t— s \ 3C [sT LOWER CASE r ° rYY ^— 1 ICI 7400 izCEXi-*-] ]j zb )°M~ * j— H- PRINT DRIVERS I— 0- Tl T2 I— & Rl \ zs~^y^~[_ * ~y~& R2 '.z^y^-- i—0- R2A mh> R5 *COPIES OF THE RELAY DRIVE CIRCUIT IN FIGURE 3 Figure 4: The complete interface schematic. The 7400 NAND gate logic is used to select either the drivers for the miscellaneous control functions, or the drivers for the print commands. The basic drive circuit of figure 3 is repeated once for each magnet in the printer. 135 Pin Function A X- T2 B C1 N/C X -> Contact Common a -» Feedback N/C b -> Feedback N/O e -* End of Line N/C f -> End of Line N/O n -> C1 N/O r,s,t,u,v,w -> BCD Bit Lines Figure 5: The Selectric Keyboard Printer receptacle pin identifications. This receptacle can be purchased as a spare part through an IBM office. The arrows in this table indicate direction of the signal: A left arrow indicates drive to the printer (typically a magnet) from a source in the interface; a right arrow indicates a sensor contact in the printer. O O O H E n n Q r-ilil.-.Q QnQn B B D 0000 n D n D o o o receptacle at the back of the Selectric, which I obtained from my local IBM branch office for $20 (IBM part number 1167134). The more important pin designations on this connector are shown in figure 5. INTERFACE TO SELECTRIC Figure 6: Table structure for the conversion of ASCII to Selectric coding. The table base pointer identifies the start of the table. There should be one table for each different ball coding scheme employed. The ASCII character value is added to the base address giving an address in the table. At this address is found the code which is sent to the output port. The logic of sending the code to the output port is given in detail by figure 8. Code Conversion Assuming that the ASCII code is used for characters inside the computer, the process of code conversion is basically just a simple table lookup: The 7 bit ASCII code is used as an index into a 128 byte table to obtain the 6 bit tilt rotate code. Since the tilt rotate code for a given character may vary depend- ing on the typeball that is used, it should be possible to switch between several I 28 byte tables. This is easily done by indexing from a pointer to the base of the table as shown in figure 6. The main complication in code conver- sion is the handling of upper and lower case. At any given time the Selectric Keyboard Printer is locked into one case or the other. If the machine is locked in upper case and the next character to be printed is an upper case A, we need only send out the appro- priate tilt rotate code. But if the next character is a lower case a, we must energize the lower case shift magnet, wait for the machine to shift into lower case, and then send out the tilt rotate code. This is easily accomplished by using a seventh bit in the table entry byte for each ASCII character to indicate whether it is to be printed in upper or in lower case. 136 7 6 5 4 3 2 1 ULC Tl T2 Rl R2 R2A R5 CL HEXADECIMAL TABLE OFFSET 41 »■ UPPER/ i— TILT-ROTATE CODE— 'CON- LOWER FROM FIGURE I TROL CASE LINE OD ■ 09 1 1 1 1 ASCII "A" 1 1 1 1 1 ASCII 'a" 1 ASCII "CR' 1 Figure 7: The coding scheme for each conversion table entry is given by the general box at the top of this diagram. Bit 7 tells the software whether the mechanism should be in the upper or lower case mode. (The need to shift explicitly in a Selectric is reminiscent of the shift requirements of Baudot Teletypes.) The tilt rotate code contained in bits 6 thru 2 is derived from figure I for each character in the table. (For other ball arrangements, a version of figure I would need to be generated.) The low order bit of the word is used to indicate to the logic of figure 4 whether a control command (0) or print command (J) is being sent. ASCII HT The last problem in code conversion is the handling of control functions such as carriage return, tab, backspace, etc. Fortu- nately, the ASCII character set assigns unique 7 bit codes for functions such as these. For example, the ASCII carriage return character (hexadecimal code OD) can be used for carriage return, and the ASCII horizontal tab (hexadecimal code 09) can be used for the tab function. Since in my interface a special control line determines whether the six output ports affect the print magnets or the control function magnets, I can use the eighth bit in each table entry byte to set the control line appropriately. The table entries for the printable characters have this bit set to 1, with six bits providing the tilt rotate code; the entries for the control characters have this bit set to 0, with the bit corresponding to the given control function magnet set to 1 and the other five bits set to 0. This encoding is illustrated in figure 7. Once we have this encoding of the infor- mation needed for code conversion, the actual program logic to accomplish the conversion is straightforward. A flowchart of the logic is presented in figure 8, and an Figure 8: A flowchart giving the logic of a simple open loop driver program which takes a given ASCII character, looks up its table entry, and then takes appropriate printer actions. As an open loop program, each time delay in this chart (the L\Ts) is picked to reflect the worst case response time for the action involved. This makes the Selectric type successfully, but does not optimize operation for the maximum speed, since as everyone knows, the worst case is often not identical with the typical value of a parameter. SINGLE CHARACTER PRINT ROUTINE UPPER CASE WAIT AT SUFFICIENT TO COMPLETE OPERATION SEND CONTROL CODE FOR DOWN SHIFT SEND CONTROL CODE FOR UP SHIFT WAIT AT SUFFICIENT TO COMPLETE SHIFT WAIT AT SUFFICIENT TO COMPLETE SHIFT WAIT AT SUFFICIENT TO COMPLETE PRINTING NOTE: SENDING A NONZERO 7 BIT PATTERN TO THE INTER- FACE PORT WILL ENERGIZE ONE OR MORE SOLENOIDS, INITIATING A MECHANICAL OPERATION. SEE FIGURES I AND 7 l__ .J ( RETURN J 137 CHARACTER OUTPUT ROUTINE FOR SELECTRIC KEYBOARD PRINTER OUTCH TAY ASCII character to index register LDA (TABPT), Y get code byte from table LSR A test low order bit BCC CTL means control character ROL A test high order bit BMI LOWER 1 means lower case character LDX #4 code for upper case shift LDY CASE check current case BEQ OK means upper case INC CASE indicate shift to upper case JMP SHIFT go initiate shift operation LOWER LDX #2 code for lower case shift LDY CASE check current case BNE OK —1 means lower case DEC CASE indicate shift to lower case SHIFT STX PORT send shift code to port JSR ENERG for 10 milliseconds LDY #60 delay for 60 milliseconds JSR WAIT until shift operation is done OK STA PORT send tilt rotate to port JSR ENERG for 10 milliseconds LDY #50 delay for 50 milliseconds JSR WAIT until print operation is done RTS return to calling program CTL ROL A restore control code STA PORT send to output port JSR ENERG for 10 milliseconds LDY #120 delay for 120 milliseconds JSR WAIT until control operation is done RTS return to calling program ENERG LDY #10 set up for 10 millisecond delay JSR WAIT loop for that long LDY #0 send 0s to output port STY PORT to turn off magnet current RTS return to caller WAIT LDX #200 number times thru inner loop LOOP DEX decrement inner loop count BNE LOOP loop until count is DEY decrement outer loop count BNE WAIT loop until count is RTS return to caller Listing 1 : 6502 assembly language source code of a program which imple- ments the logic of the flowchart in figure 8. This program is a subroutine which will drive the Selec- tive Keyboard Interface in an open loop mode and is run on a KIM-1 system. equivalent assembly language program for the MOS Technology 6502 used in my system is shown in listing I. In this simple version of the program, delay loops are used for timing purposes, and sufficient time is allowed either to print a character or to complete the worst case control function (carriage return across the entire length of the page). Of course, this version of the program will operate the Selectric at far less than its maximum rated speed, and will monopolize the processor's time while wait- ing for completion of each operation. In order to improve on this, we turn next to the subject of control and timing. Control and Timing Now that we have a working Selectric interface, we can turn our attention to two major improvements: driving the Selectric at maximum rated speed, and minimizing use of the processor's time for Selectric control. To drive the Selectric at full speed we can adopt an approach of "open loop" control or "closed loop" control. Open loop control involves keeping track of the carriage posi- tion, margin, tab stops and similar informa- tion in software (changing the margin and tab stop information via software inter- preted commands), and calculating the delay time necessary for each operation. Closed loop control involves testing the Keyboard Printer's switch contacts to determine when each operation has been completed. The worst case delay approach used in the program of listing 1 is a simplified version of open loop control. For full speed operation, the closed loop approach is much simpler and more reliable; so let's consider it here. Nearly every mechanical operation opens or closes some set of switch contacts inside the Selectric. Sets of contacts are wired to the 50 pin receptacle in a variety of ways to reflect operations such as printing, tabbing, backspacing, etc. We will not consider all the possible methods of achieving feedback con- trol using these contacts, but will outline one particularly simple approach, which remains to be tested in my own system. The pin labeled a on the receptacle is wired through a set of normally closed contacts, and the pin b through corresponding nor- mally open contacts, associated with the set of common contacts connected to pin X. Figure 9 shows how these contacts may be debounced to yield a clean TTL level signal (ignoring the nominal voltage ratings for the contacts). Here we use the last half of the 7400 package left over from figure 4. During any printing or control function operation, pin a will go from ground to +5 V and back to ground again, while pin b does the reverse. Hence the feedback line will go from logic 1 to to 1. By sensing this change in software through a loop testing the feedback input port after energizing the magnets, we can closely control the operation. When the line goes to logic 0, we can turn off current to the magnets, and when it returns to logic 1, we are ready to start the next operation. The second problem we face in control and timing is how to minimize use of the processor's time for Selectric control. Here, of course, is where the interrupt system comes into play. If we are using the circuit outlined in figure 9 for closed loop control, we can tie the feedback line to a processor interrupt rather than to a data input port. If we are relying instead on open loop control, we can use a programmable interval timer which is capable of causing an interrupt as an alternative to delay loops. The software to handle interrupts from the Selectric is slightly complicated by the need to shift between upper and lower case prior to typing the next character, but this can be handled by initiating the shift operation and 138 then arranging to retry the character printing operation on the next interrupt, at which time the Selectric will be locked into the proper case. Actual Experience Hopefully this article has given the reader all the information he or she needs to build a Selectric Keyboard Printer interface similar to, or better than mine. Lest you are unduly emboldened by the foregoing discussion, however, consider what can go wrong. I carefully tested the interface in stages, by using an ohmmeter to verify that bit patterns sent to my computer output port closed the proper combinations of reed switches, and by testing the power supply on some of the Selectric's magnet coil con- nections. Nevertheless, when I first tested the entire setup, I thought I saw a blue flash around one of the reed relays when I tried to pulse the R2 magnet. Nothing seemed to happen when I tried again, except that the R2 magnet wasn't being energized. Then, listening carefully, I heard a telltale sim- mering sound that sent me leaping for the electric outlet. The R2 reed relay had stuck closed, and on further examination I found that most of the arc suppressing diodes inside the Selectric had been destroyed. After painstakingly replacing the R2 reed relay and installing the diodes visible in photo 5, I tried again. This time I found out why the reed relay, like its replacement, was sticking closed! The R2 magnet in the unit I purchased had been burned out and was a short circuit. No wonder the unit was a surplus item. Not willing to give up, I managed to remove the coil from the R2 magnet core, and replace it with the coil from the unused (by me!) check magnet. After this feat, I found that when I typed manually on the keyboard, only @s, Os, and a few other characters could be printed! Only after hours of reading and experimentation did I discover that the adjustment of the plate holding the magnet armatures in place (which I had removed to change the coils) was critical, and could be set only by considerable trial and error. These are the kinds of things that can go wrong. You cannot be too careful in playing with these machines! Readers certainly should investigate the possibility of an IBM maintenance contract on at least the mechan- ical portion of the Keyboard Printer, which need not be too expensive. And, to conclude, although I probably never would have undertaken this project had I known at the outset what it would ultimately entail, it certainly is satisfying to have that Selectric typing away under the FEED BACK CONTACTS SELECTRIC KEYBOARD PRINTER PLUG PINS ^v 7400 NC NO n +sv 00061 189A Fl 18CA SKIP CMP B CASE NEW CHAR. SAME KALFBALL 00065 •AS THE PREVIOUS ONE? 00066 189D 27 13 BEQ PRINT1 YES GO AND PRINT IT 00067 189F F7 8000 STA B PIAOUT NO, ROTATE BALL 180 DEGREES 00068 18A2 F7 18CA STA B CASE AND RECORD IT 00069 18A5 FE 181A LDX COUNT1 SETUP TIMER FOR SHIFT CYCLE 00070 18A8 FF 18CB SIX COUNTR 00071 18AB 8D 16 BSR TIMER 00072 18AD 7F 8000 CLR PIAOUT 00073 18B0 8D 11 BSR TIMER 00071 18B2 81 7F rniNTi AND A #$7F RESET CASE BIT AND 00075 18B1 FE 181E EX 2 LDX COUNT3 SETUP TIMER FOR PRINT CYCLE 00076 18B7 FF 18CB STX COUNTR 00077 18BA B7 8000 EX1 STA A PIAOUT NOW PRINT 00078 18BD 8D 12 BSR HAITI 00079 18BF FE 18CD EXIT LDX SAVEX RESTORE X REG 00080 18C2 39 RTS GO AND FETCH NEXT CHARACTER 00081 18C3 FE 18CB TIMER LDX COUNTR 00082 18C6 09 LOOP DEX OOO83 18C7 26 FD BNE LOOP 00081 18C9 39 RTS 00085 8000 PIAOUT EQU $8000 00086 8002 PIACHK EQU $8002 00087 18CA 00 CASE FCB 00088 18CB 0000 COUNTR FDB 00089 18CD 0000 SAVEX FDB 00090 18CF 1800 TABLEP FDB $1800 00091 18D1 8D FO WAIT1 BSR TIMER 00092 18D3 a 01 LDA B 11 SETUP MASK 00093 18D5 F5 8002 BIT B PIACHK PRINT CYCLE STARTED? 00091 18D8 27 F7 BEQ WAIT1 NO 00095 18DA 7F 8000 CLR PIAOUT YES ON IT'S WAY 00096 18DD 8D El WAIT2 BSR TIMER 00097 18DF F5 8002 BIT B PIACHK READY FOR A NEW ONE? 00098 18E2 26 F9 BNE WAIT2 NO 00099 18E1 39 RTS YESI 00100 18E8 ORG $18E8 SHIFT START OF SYMBOL TABLE 00101 •TO NEXT PAGE 00102 18E8 CI FCB $C1 00103 18E9 18EA 18EB 20 20 20 FCC 5, 18EC 20 18ED 20 00101 18EE FFFF FDB *FFFF 00105 18F0 C2 FCB $C2 00106 18F1 18F2 18F3 18F1 18F5 20 20 20 20 20 FCC 5, 00107 18F6 FFFF FDB tFFFF 141 Listing J, continued: 00108 : L8F8 D8 00109 : L8P9 20 18FA 20 L8PB 20 L8FC 20 L8FD 20 00110 18FE FFFF 00111 START 17CD START1 17F4 CR 17FF CR1 1803 SP 180E CONV0 1817 C0UNT1 181A C0UNT2 181C C0UNT3 181E CONVRT i860 C0NV1 1886 CASECK 1892 caselw 1898 SKIP 189A PRIHT1 18B2 EX 2 18B1 EX1 18BA EXIT 18BF TIMER 18C3 LOOP 18C6 PIAOUT 8000 PIACHK 8002 CASE 18CA COUNTR 18CB SAVEX 18CD TABLEP 18CF WAIT1 18D1 WAIT2 18DD TOTAL ERRORS 00000 SWTPC M-68OO ASSEMBLER ENTER PASS : 1P,1S,2P,2L,2T 00001 00002 00003 00001 1821 00005 1821 FE 00006 1822 Dl 00007 1823 BE 00008 1821 CE 00009 1825 D6 00010 1826 D8 00011 1827 51 00012 1828 86 00013 1829 C6 00011 182A 9E 00015 182B BO 00016 182C 18 00017 182D 01 00018 182E 31 00019 182F 18 00020 1830 16 00021 1831 7E 00022 1832 36 00023 1833 3E FCB $D8 00021 1831 IE FCC 5, 00025 1835 56 00026 1836 16 00027 1837 5E 00028 1838 IE 00029 1839 06 FDB $FFFF 00030 183A D8 END 00031 183B 58 00032 183C 00 00033 183D 30 00031 183E 00 O0035 183F C8 00036 1810 B6 00037 1811 9C 00038 1812 82 00039 1813 9A 00010 1811 DA oooll 1815 D2 00012 1816 B8 00013 1817 F8 00011 1818 C2 00015 1819 91 00016 181A FO 00017 181B 92 00018 181C CA 00019 181D FC 00050 181E B2 00051 181F CC 00052 1850 DO 0053 1851 90 00051 1852 DC 00055 1853 CI 00056 1851 F2 00057 1855 BA 00058 1856 BC 00059 1857 81 00060 1858 FA 00061 1859 CO 00062 185A F6 'T 00063 185B 00 00061 185c 00 NAM TABLE 00065 185D 00 OPT L 00066 185E 00 OPT S 00067 185F 81 ORG $1821 0068 1860 00 FCB $FE 00069 1861 1C FCB $D1 00070 1862 02 FCB $BE 00071 1863 1A FCB $CE 00072 1861 5A FCB $D6 00073 1865 52 FCB $D8 00071 1866 38 FCB $51 00075 1867 78 FCB $86 00076 1868 12 FCB $C6 0077 1869 11 FCB $9E 00078 186A 70 FCB $B0 00079 186B 12 FCB $18 00080 186C 1A FCB $01 00081 186D 7C FCB $31 00082 186E 32 FCB $18 00083 186F 1c FCB $16 00081 1870 50 FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB $7E $36 $3E $1E $56 $16 $5E $1E $06 $D8 $58 $00 $30 $00 $C8 $B6 $9C $82 $9A $DA $D2 $B8 $F8 $C2 $91 $F0 $92 $CA $FC $B2 $CC $D0 $90 IDC $C1 $F2 $BA $BC $81 $FA $C0 $F6 $00 $00 $00 $00 $81 $00 $1C $02 $1A $5A $52 $38 $78 $12 $11 $70 $12 $1A $7C $32 $1C $50 interface is set to select a machine com- mand. Only one input line of the PI A is used to sample the status of the printer READY or BUSY. Since the shift feedback and interlock contacts were missing, a timing loop pro- vides for the timing here; however, for the carriage return it has been necessary to build an interlock contact to lock out the printing function till the completion of a carriage return which takes a variable time. A commented assembler listing of the program driving the printer was written for a 6800 and assembled with output to my Selectric (see listing 1). It can be loaded after the original SWTPC tape has been read in. A refinement which could be added is to provide for motor on or off via software as the printer can be powered up only after the program is running. This is because the power up reset of the computer leaves the PIA LINES all programmed as inputs, ie: open circuited and this simultaneously turns on all the machine magnets. Another refinement could be to sense via an unused input line if the motor is on or off and steer the output to a TV terminal when the printer is off. To probe into undocu- mented programs like the SWTPC assembler or editor, I used a little program which searches the memory for a particular string of bytes and prints out the address of the first byte when and if found. I think it can save lots of time. Fulvio Guzzon c/o L Alessio Via Anassagora 63 Casalpalocco 00124 Rome ITALY" 00085 00086 00087 00088 00089 00090 00091 00092 00093 00091 00095 1871 10 1872 5C 1873 11 1871 72 1875 3A 1876 3C 1877 01 1878 7A 1879 10 187A 76 FCB $10 FCB $5C FCB $11 FCB $72 FCB $3A FCB $3C FCB $01 FCB $7A FCB $10 FCB $76 END TOTAL ERRORS 00000 Table 1 : Assignment of bits. BIT6 ROTATE+1 BIT 5 ROTATE+2 BIT4 ROTATE+2A BIT3 ROTATE-5 BIT2 TILT 1 BIT 1 TILT 2 BIT0 CHECK when energized removes the ROTATE+1 latch when energized removes the ROTATE+2 latch when energized removes the ROTATE+2 supplementary latch when energized activates the ROTATE-5 latch when energized removes the TILT 1 latch when energized removes the TILT 2 latch this one unlatches the print clutch (and so does every one of the previous six) 142 When you get your home or office computer, will you know what to do with it? The typical home or small business computer system starts with a microcomputer, keyboard, cassette recorder, and TV set. From there you can add the peripherals, sensors, controllers, and other devices you need for your own special applications. Music, Sp sech keyboard Color TV Set Synthesis Cassette Recorder Printer Microcomputer r i / / V V Jc jystick s Input Sensors Output Con rol Li nes Creative Computing Magazine is dedicated to describing applications for home, school, and small business computers completely and pragmatically in non-technical language. You won't need a Ph.D in Computer Science, or a technical reference library, or a computer technician beside you to get these applications up and running. We give you complete hardware and software details. Typically, applications utilize commercially available systems. However, if an application needs a piece of home-brew hardware, we tell you how to build it. Or if it requires a combination of high-level and machine language code, we give you the entire listings along with the flowcharts and algorithms. We also run no-nonsense reviews of computers (assembled and kits), peripherals, terminals, software, and books. We're frank and honest, even if it costs us an advertiser, which it occasionally has. Here are just some of the applications you'll see fully described in future issues of Creative Computing. ■ Building Management and Control 1. Alarm monitoring/police notification 2. Environmental control (heating, air conditioning, humidifica- tion, dehumidification, air purity, etc.) 3. Fire and smoke detection 4. Appliance control (microwave oven, gas oven, refrigerator) 5. Perimeter system control (sprinklers, outdoor lights, gates) 6. Solar and/or auxiliary energy source control 7. Watering system control based on soil moisture 8. Fuel economizing systems 9. Maintenance alert system for household devices (key | component sensing and periodic preventative maintenance) Household Management 1. Address/telephone file 2. Investment analysis 3. Loan/annuity/interest calculations and analysis 4. Checkbook maintenance 5. Periodic comparisons of expenditures vs. budget 6. Monitor time and cost of telephone calls i 7. Record incoming telephone calls and select appropriate j response to caller 8. Recipe file 9. Diet/nutrition analysis 10. Menu planning 11. Pantry inventory/shopping list \ Circle 87 on inquiry card. Health Care 1. Medical/dental record keeping 2. Insurance claim processing 3. Health maintenance instrumentation control (EKG, blood chemical analysis, diet analysis, self-diagnosis) Education and Training 1 . Mathematics drill and practice 2. Problem solving techniques 3. Tutorial instruction in a given field 4. Simulation and gaming 5. Music instruction and training 6. Music composition and synthesis 7. Learning to program 8. Software development 9. Perception/response/manipulation skills improvement Recreation and Leisure 1 . Games, games, games 2. Puzzle solving 3. Animation/kinetic art 4. Sports simulations 5. Needlepoint/stitchery/weaving pattern generation 6. Computer art 7. Library cataloging (books, records, etc.) 8. Collection catalog/inventory /value (coins, stamps, shells, antique auto parts, comics, etc.) 9. Model railroad control 10. Amateur radio station control 1 1. Astronomy; star, planet, satellite tracking 12. Robotics 13. Speech recognition and synthesis Business Functions 1. Small business accounting 2. Word processing/text editing 3. Customer files 4. Software development 5. Operations research 6. Scientific research 7. Computer conferencing 8. Telephone monitoring 9. Engineering calculations 10. Statistical analysis 11. Survey tabulation 12. Inventory control 13. Mailing lists e> * * & W * ** SUBSCRIPTION ORDER FORM I Type Term USA Individual 1-Year □ $ 8 3-Year D 21 Lifetime □ 300 Institutional 1-Year □ 15 3-Year □ 40 □ New 3 Renewal Foreign □ s 10 □ 27 D 400 □ 15 □ 40 D Cash, check, or M O. enclosed i iBankAmericard Card No □ Master Charge Expiration date n Please bill me ($1 00 billing tee will be added) Name Address . City _ Zip. Send to Creative Computing. Attn: Becky P O Box 789-M, Mornstown. NJ 07960 The New Programmable Clock Kit CO Trom uigiiai v^oncep lb \J>^li7.v70 CD CM SYSTEM 5000 is (he programmable clock kit that makes kii-huild- WW"^ ■■ ^^^H OJ ing a new experience. The system hat been designed to meet a var- ■'-^^ u iety of particular requirements anil tastes, and programming , ■ ■ .. ■ .. . , : . "' '""""'" ■ ■ ! techniques are used to create a truly individualized timepiece. , , "T - is O Numerous functions and features are provided for maximum flexi- h' , 9 S 1 bility and adaptability, arid any or all can he used to construct many different lypc-s of time-keeping and timing devices. liiii » id:3S i SYSTEM 5000 ii not a simple LEO lime of day clock, but a full feature digital timing system. Programming is accomplished by if; ; , i connecting the appropriate jumpers and switches to produce the desired system configuration. Complete assembly and program- B^; !;,: : ^^^^^^^m ming manuals are included. SYSTEM 5000 has a fluorescent readout panel with lour 0.5" to 7D0 Watts by adding the optional relay. Plug in your radio or numerals that brighten and dim automatically according to the stereo to construct a full function clock radio that puis you to sleep ambient light This unique digital display provides optimum read- with gentle music and wakes you to music, a tone, or both The ability at all limes from almost any viewing angle. system will also control TV's, small appliances, or other accessories. SYSTEM 5000 cm be built as a desk clock, alarm clock, calendar SYSTEM 5000 can be used to construct timers for a variety of clock, or all of these in one full-feature timepiece. The Duplicate applications. It is ideal for automatic process timers and controllers Time Register can monitor elapsetl time or another Time Zone such in laboratories, workshops, and engineering facilities. as GMT. A ten minute "ID" reminder capability is included far SYSTEM 5000 includes all components, speaker, two time setting Radio Station use. A Quartz time base is available for high precision, switches, and comprehensive instruction and programming manuals stability and uninterrupted operation if the AC line should fail. Case & switches for programming additional functions are not SYSTEM 5000 can automatically control AC or DC accessories up i eluded but available as options $29.95 FEATURES AND SPECIFICATIONS Timekeeping Functions Display General ■ Time of Day Register ■ Bright 4-DHfit Fluorescein Panel . Forward or Reverse Tim*! Setting ■ Duplicate Time Register ■ Automatic Brightness Circuit ■ Reset and Count Inhibit Controls . True 24 Hour Alarm ■ 12 or 24 Hour Display Format ■ Seconds Display ■ Duplicate 24 Hour Alarm ■ PM and Power Failure Indication ■ Single 9 Volt Battery Backup . 10 Minute Snooze on Alarms ■ 1 Hi Activity Indicator ■ 700 Watt Relay Optional • True Four Year Calendar . Pnwer-On Clear ■ 50 or 60 Hz, 117Vac, 3 Walts . One Hour Down Counter . Direct Drive Eliminates all RFI ■ l.S"H.x4"W,x4"D. RELAY OPTION - $4.00 SWITCH OPTION -S3.75 Includes 700 watt relay and all interface components. Will control Contains A black SPST pushbuttons. 2 black DPDT pushbuttons. AC or DC accessories such as appliances, stereos, etc and 2 hi. ck SPST slide switches. Programs all major features QUARTZ TIME BASE OPTION - S6.95 CASE OPTION -$11.00 Generates precise 60 Hz. buffered output with exceptional stability, reliability, and accuracy. Direct interface to System G000 and most other clocks. Includes Quartz Crystal, IC Divider, trimmer, compact G 10 board, all necessary components-, instructions, and inMallation This del Sl.OOea •sing for the complei-'tl system Includes ie.ii panel and blue faceplate; extra faceplates (hlue or grcenl are Cabinet dimensions - 5'i" x 6K" x 3". ORDER THIS EXCITING KIT TODAY AND PUT Send your check or money order today ^^^^^ 1 for fast delivery Add S% 10 total order 1 | to cover shipping ami insurance. N.J fli— .jy 07662 • (201)645-7101 ty? digital concepts MULLEN COMPUTER R QAPrv; BOX 6214, HAYWARD, CA 94545 3 £ Eti »fffB« CAVI uraix RELAY OPTO" ISOLATOR CONTROL BOARD $117 mm 8 fast reed relays respond to an 8 bit word: Feed ■■» the relay associated with its bit a " 1 " and it closes, give it Sa "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- ^ m mated display applications, this board goes wherever wl you need a general purpose 1/0 switching gizmo. EXTENDER BOARD W/ LOGIC PROBE $35 Whether for troubleshooting or analysis at some point you'll need an extender board. Ours offers a built-in logic probe, special edge connector that allows clip lead probing, jumper links in all supply lines, a non-skid probe. . . plus good instructions and a realistic price. Ill i 5 S I A. Boards are kit form only. Cal res add V *4TIBLE •AVAILABLE BY tax. MF What's New? A Full Size Floppy Disk with Altair Interface Peripheral Vision, POB 6267, Denver CO 80206, has announced this full size floppy disk for the Altair bus. Prices start at $750 for the interface card kit and one assembled and tested drive. A 24 V at 2 A power supply is also avail- able in kit form for $45 or assembled for $65; and a cabinet is offered for an additional $85. The Peripheral Vision floppy disk interface card supports eight drives and according to the press release, stores over 300,000 bytes per floppy. A bootstrap EROM is included to make system start-up automatic. The floppy is completely Altair bus compatible, and interface cabling is in- cluded. The Peripheral Vision floppy disk drive itself is manufactured by Innovex, and comes assembled and tested. A disk operating system with file management system is included on a floppy disk cartridge." Circle 61 5 on inquiry card. New Technology for the 9900 Family Texas Instruments Inc has introduced a new version of the 9900 architecture in the form of this SBP 9900, which uses integrated injection logic (called I L in much of the engineering and design literature). The key features of this new product are in the subtleties of using the chip at a hardware level (software is identical to the previous TMS 9900 and Texas Instruments' 990 line of mini- Computers which use this architecture). For the hardware designer or homebrew hacker, this new premium version of the design gives a wide (-55°C to +125°C) operational temperature range, infinitely variable clock rates from DC to 3 MHz (power consumption levels vary with the rate) and TTL compatibility with wide tolerances on power supply voltages. This is, however, a premium device intended for applications which require ruggedness. The ceramic packaged SBP 9900 starts at a $386 price in 100 piece quantities. Reader inquires should be directed to Texas Instruments Inc, In- quiry Answering Service, POB 501 2, M/S 308 (attn: SBP 9900), Dallas TX 75222. ■ Circle 616 on inquiry card. A Rugged Z-80 Product Cromemco has sent along this press release picture of the new Z-2 processor which is the latest product of then- laboratory. This processor uses their Z-80 processor board which according to the company is available in a fast 4 MHz version. Coupled with Cromemco's other peripherals which also work at this speed, in principle this one has one of the fastest processors yet available in a commercial product. The basic box con- tains the processor card, a mother board with 21 card slots for Altair compatible cards, and a heavy duty power supply intended to suffice for all system needs including floppy disk drives. Naturally, in addition to the $595 kit version of this processor, you'll want to have some dedicated monitor ROM and extra peripherals, but the price makes it an attractive way to start building a system. Cromemco has software of a monitor, assembler, and a BASIC with processor control extensions. The firm also makes numerous peripherals including digital to analog interface cards, ROM memory cards and a color graphic product. Cromemco is located at 2432 Charleston Rd, Mountain View CA 94043." Circle 617 on inquiry card. A 16 K Byte Memory Board RHS Marketing, 2233 El Camino Circle 278 on inquiry card. C IMSAI 8080 kit WITH 22 SLOT MOTHER BOARD 00 plus $10.00 shipping Sk blank RAM board Featuring OFULL BUFFERING ON ALL DATA, AND ADDRESS LINES OMEM0RY PR0TECT/UNPR0TECT for 2102 type memory SELECTABLE WAIT STATES $25.00 oDIP SWITCH ADDRESSING SPECIAL LIMITED QUANTITY ^ SUPERIOR TRP-125 PAPERTAPE READER (125 cps) $275.00 FACIT4070PAPERTAPE PUNCH (125cps) $350.00 Complete with all documentation, including field service . manuals and schematics. WAND READER $75.00 Reads PAPERBYTE®or any 2- or 3-color bar code. Pen is fiber-optic, which plugs into analog decoding board. All documentation is included. i 3 laoooio POBOX91 ITHACA, N.Y. 14850 Pleasecall (607)273-3271 for technical assistance and toorder. BankAmericard and Master Charge orders welcomed. Confused About Printers? MPI HAS YOUR ANSWER! »575 TTY REPLACEMENT? THESSP-40 ^3# t «9 The $SP-40 contains its own microprocessor for easy connection .to your serial port *-v : LOW COST BUSINESS SYSTEM? THEMP-40 *425 The MP-40 connects to your parallel port for ASCII data transfer MINIMUM COST FOR HOBBYIST? . . . THE KP-40 KIT *l79 All of our 40 series printers use the same reliable 5x7 impact dot matrix mechanism up to 40 columns per fine on ordinary paper with a print speed of 75 lines/minute. MASTER. CHARGE WE JTAH RESIDENTS ADO. SEND FOR FREE LITERATURE MICROPROCESSOR SYSTEMS AND PERIPHERALS P.O. BOX 22101/SALT LAKE CITY/UT. 84122 (801) 566-0201 145 Circle 71 on inquiry card. Why Wait? 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. 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 $16.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 ONLY. SPKG. 5 $1 4.95 OBJECTIVE DESIGN, INC. P.O. BOX 20325, TALLAHASSEE, FL. 32304 •»»..M-;;";;:.:i"&--w». I Real, Palo Alto CA 94306, sends this picture of a new Altair compatible, assembled and tested 16 K byte memory board with a price of $485 or $30 per installed 1024 bytes. The board contains its own refresh control logic and uses 4 K dynamic memory chips with a total board power consumption of 5 W. Ex- ternal to the board, this product looks like a static memory board and has no wait states since the refresh is trans- parent. The number of personal com- puters with a saturated 64 K memory address space is likely to go up as more and more products such as this reach the market." Circle 618 on inquiry card. Controlling Those Necessary Bells, Whistles and Other Goodies Comptek has designed and manu- factured this interesting array of com- ponents with the needs of the real world interface in mind. The heart of the con- trol setup is of course a typical micro- computer, an Altair bus compatible machine into which the main "control logic interface" board plugs. Out of the board comes a ribbon cable to a DB-25 connector at the back edge of the cabinet. The DB-25 is in turn the recip- ient of a cable which goes to your remote power unit, the box shown in this picture. This box, which is one of many which may be driven from one control logic interface board, contains the optically isolated 400 W controller for 1 10 VAC. The costs of this interface in kit form are $189 for a 16 channel Circle 260 on inquiry card. 146 Circle 127 on inquiry card. PC3216 control logic interface card, plus $39.50 for each PC3202 400 W power control unit kit. Other options include fully assembled versions at higher prices and a 32 channel PC3232 control logic interface card. A product like this is needed when you want to have your computer drive 110 VAC appliances, lighting circuits and other household electrical loads. Comptek is located at POB 516, La Canada CA 91011. ■ Circle 619 on inquiry card. Morrow Tape Interface Morrow's Micro Stuff, POB 6194, Albany CA 94706, has introduced this Altair bus plug-in unit which generates and reads data on up to three channels of audio recording in the Kansas City standard of recording, at 300 bps. Also thrown into the board is a serial port to allow communication with a Teletype with reader control, as well as any RS-232 serial device. Also included is an 8 bit parallel board for use with parallel interfaced peripherals such as keyboards or tape readers. A ROM on the board holds 512 bytes of programming for the cassette interface, UART simulation, and transfer to or from your 8080's memory or the 512 byte programmable memory region on the board. This board is available in kit form for $120 or assem- bled and tested at $165 with warranty. The product is marketed by mail or through computer stores." Circle 620 on inquiry card. Matrox Video Display with External Sync Capability One fascinating possibility for the use of small computers is in combination with standard video signals for various purposes. (An example might be display of product feature data along with digital messages in a merchandising situation such as a department store.) comptek. Boards DO Something IV f si in lit. .., ,, . ■„,... .. ,, ii ill it CL2400 Real Time Clock $98— Kit $135— Assembled If your system needs to know what time it is, our CL2400 is the board for you. The present time in hours, minutes, and seconds is always available for input, and is continuously updated by the highly accurate 60 Hz power line frequency. Need periodic interrupts? The CL2400 can do that, too, at any of 6 rates. Reference manual with BASIC and assembly language software examples included. PC3200 Power Control System PC3232 $299— Kit PC3216 $189— Kit PC3202 $39.50— Kit $360— Assm. $240— Assm. $52 — Assm. If your system needs on/off control of lights, motors, appliances, etc., our PC3200 System components are for you. Control boards allow one I/O port to control 32 (PC3232) or 16 (PC3216) external Power Control Units, such as the PC3202 which controls 120 VAC loads to 400 Watts. Optically isolated, low voltage, current-limited control lines are standard in this growing product line. P.O. Box 516 La Canada, CA 91011 (213) 790-7957 'Real World Electronics' 16 K STATIC RAM For ALTAIR / IMS Al / POLY 88 $459 kit ASSEMBLED $529 • USES 4K STATIC RAMS -NO REFRESH • VERY LOW POWER -LESS THAN 1 AMP • Z80 FAST -200ns ACCESS TIME • PROVISION FOR BATTERY BACKUP • LOW PROFILE SOCKETS FOR ALL CHIPS • EACH 4K ADDRESSABLE TO ANY 4K SLOT • HARDWARE/SOFTWARE MEMORY PROTECT FOR EACH 4K • SPECIAL PAGING OPTION ALLOWS UP TO 1 MEGABYTE ADDRESSABLE MEMORY • LOW COST CONSTRUCTION MANUAL $1 .75 PAGING OPTION $9.00 QUANTITY DISCOUNT 5 BOARDS — 5% 10 OR MORE — 10% DEALER INQUIRIES INVITED OMNI SYSTEMS INC. P.O. BOX 7536, UNIV. STATION PROVO, UTAH 84602 READER SERVICE NO. 198 147 Circle 143 on inquiry card. computer enterpn/c/ Your Mail Order Computer Shop... IMSAI 8080 kit with 22 s/ofs (limited quantity) $645.00 TDLZ-80ZPU (the one with full software available now) 242.00 EdgeConnectorsandguidesforlMSAI each 4.25 Edge Connectorsandguides for IMSA1 10 for 40.00 Vector Graphic 8k RAM kit with 500 ns chips 225.00 Seals 8k RAM kit with 250 ns chips 260.00 North Starcomplete Micro-Disk System kit 599.00 WETAKE MASTERCHARGEORBANKAMERICARD For phone and mailorders... (Add 4% of TOTAL ORDER for service charge) TERMS: Shipping charges — $10. per CPU or large units, $1.50 per kit, $2. minimum per order. Provided stock is available, we will ship immediately for payment by cashiers check or money order. Allow 3 weeks for personal checks to clear. New York State residents add appropriate sales tax. PRICES SUBJECTTO CHANGE WITHOUT NOTICE. For the best prices available on: IMSAI • TDL • NORTH STAR • POLYMORPHIC TARBELL • SEALSELECTRONICS CALL: (315)637-6208 WRITE: P.O. Box 71 • Fayetteville, N.Y. 13066 Teach your DUMB TERMINAL to display lower case! ADM-3 Lower Case Kit by Northern Valley Systems • Add Lower Case character display to your ADM-3 or ADM-3A CRT • Installs in under 10 minutes with NO MODIFICATIONS to PC board. • Custom programmed character generator ROM included. • Save $70 off Lear Seigler Kit price - yet get the same results. Price: $27.50, 25% deposit required on all COD's. Non- COD orders sent Postpaid. Dealer Inquiries Invited. y\\f( Send to: Northern Valley Systems, J XI P.O. Box 687, Englewood, N.J. 07631 Enclosed find $ for units. MC/BAC# Signature: . Name (N.J. Residents add Sales Tax.) Expires Interbank # Street City, State . Zip. Matrox Electronic Systems, POB 56, Ahuntsic Sta, Montreal, Quebec CANADA H3L 3N5, has just announced the new member of its video RAM family of devices. Th(s is the MTX-1632SL, shown here in front of a television driven by a mixed signal generated from another video source and the character generator. Since the hori- zontal and vertical synchronization can be slaved to the external source, such as the standard television video picture in this case, it is possible to combine the displays. The application of this $225 module (lower prices in larger quantities) provides ample opportunities for the imagination." Circle 621 on inquiry card. Ruggedized Power Supplies Calex Manufacturing Company Inc, 3305 Vincent Rd, Pleasant Hill CA 94523, has come out with this sealed power supply black box which is designed for use with small dedicated microprocessor systems using the 8080. The supply transforms an AC input at 110 V (or several other voltages) into + 12 V at 225 mA, -5 V at 20 mA, and +5 V at 1.25 A. These voltages are sufficient to run a typical 8080 system with 8080, 8024, 8228, two 2708s and several programmable memory parts with about 500 mA of TTL logic power left over on the +5 V lines." Circle 622 on inquiry card. A Splice in Time Saves Nine? Master Digital Corporation, 1308-F Logan Av, Costa Mesa CA 92626, lias come out with this $60 tape splicing jig which can be had with various options for tapes from 5 to 8 channel widths. The company also makes pressure sensi- tive mylar tape patches in lengths from one to 1 2 inches, opaque or clear." Circle 623 on inquiry card. Circle 280 on inquiry card. 148 New kid on the Mock! But watch out he means business .*>._ z\ 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 (■ 1 H _ j — , ,____ — _^- - f£ nc | orsec l by BYTE Magazine OCTOBER 28, 29, 30, 1977 PERSONAL COMPUTING EXPO • NEW YORK COLISEUM Location Code Key 000 01 1 001 51 SBR 002 32 SIN 003 42 STO 004 00 005 03 3 006 02 2 007 51 SBR 008 32 SIN 009 01 1 010 51 SBR 011 32 SIN 012 41 GTO 013 12 CB 014 46 *LBL 015 32 SIN 016 42 STO 017 00 018 00 019 22 INV 020 57 ♦fix 021 43 RCL 022 09 9 023 09 9 , 024 40 *X 2 025 52 EE 026 00 027 09 9 028 22 INV 029 52 EE 030 42 STO 031 09 9 032 09 9 033 75 — 034 53 ( 035 42 STO 036 55 o/o 037 01 1 038 03 3 039 75 — 040 93 041 05 5 042 54 ) 043 57 *fix 044 00 045 52 EE 046 22 INV 047 52 EE 048 65 X 049 01 1 050 03 3 051 85 + 052 02 2 053 75 — 054 42 STO 055 00 056 05 5 057 01 1 058 01 1 059 95 = 060 90 *if z 061 33 COS 062 22 INV 063 80 *if p 064 34 TAN 065 01 1 066 00 067 41 GTO 068 65 X 069 46 *LBL 070 33 COS 071 36 ♦IND 072 43 RCL 073 00 074 00 075 75 — 076 01 1 077 01 1 078 95 = 079 22 INV 080 80 ♦if p 081 34 TAN 082 01 1 Commentary Deal card to dealer Store as face down card. Deal card to player. Deal card to dealer. Jump around subroutine Begin "Deal Card" subroutine Listing 1. QeskTcp Wonders SR-52 Card BLACKJACK Generate random number in R99 Convert random number to a card value. Store card value Is card = 1 1 [ACE] ? If so then go to COS Is card in range 2 to 10? If so then go to TAN. Force card value of 10 if outside legimate range Blackjack Logic: Would hand go over 2, if ace counted as 1 1? If so then ACE = 1 else ACE = 1 1 Michael J Garvey, vice president and systems consultant with General Computer Services Corporation, 2308 Central Av, Mid- dletown OH 45042, sends in a game program for the SR-52, which was accompanied by this note: / appreciate your article in your December issue on the "buried gold" in Operating Procedure For "SR-52 Card BLACKJACK": 1. Load the program card, both sides, after it has been prepared. 2. Prime the random number generator with a 9 or 10 digit number as its seed. A good choice of a priming number is the current time of day (24 hour clock), followed by the date. This gives 10 digits total in the format. Enter: hhmmyymmdd Then press: STO, 9, 9 3. Enter the amount of your bet and start the game: Enter: bet amount Then press: A 4. Outcome: If the display flashes, then the game is over. The display shows the total of dealer and player hands. Press: CE to stop flashing. Then press: RCL, 9, 8 to read out the cumulative score if desired. Go to Step 3 to restart game. If the display is not flashing, the dealer's face down card is not shown. 5. Player options: To take a "hit," Press B Then go to step 4. To "stand," Press C Then go to step 4. To "double down" (if player's hand is 10 or 1 1 and not initial deal). Press D Then go to step 4. Notes on operation of the game: The player always wins at 21 . House always draws to 16 or lower, stands on 17 or higher. On a "push" (both hands equal) neither side wins unless player has 21 . 150 Advanced 8K EPROM Memory Module Doubles As Programmer Q |> AwL Introducing pnanoM » Holds 8K BASIC Plus System Monitor I S-IOO Bits Compatible » So Special Software Requhrd-Write to EPROMs Just Like RAM » 512 Bytes of On-board KAH for Stack or Scratch Pad < Shipped With One 256-Byte RAM and One 512-Byte EPROM pre-programmed with a System Monitor COMPLETE KIT S164 MO UNTAIN HARD WARE Box 1133B, Ben Lomond, CA 95005 NOW HEAR THIS!! ALPHA DIGITAL SYSTEMS ELLS IMSAI KITS AND TOTAL IN- EGRATED SYSTEMS ASSEMBLED HECKED-OUT. AND WARRANTED AT KIT RICES. TYPICAL SYSTEM * IMSAI 8080 Computer * 22 Slot Mother Board • All Connectors * 4 K RAM • MIO •3 Cable A » I Cable M • Assembled System Total sk-oT $ ftttti 54 ALPHA I SPECIAL DOS SYSTEM DEAL tinetadesl • IMSAI tram) Computer • 22 Slot Mother lid with Conn, • 16 K HAM 14 IK Boards) • 90 K Disk (with Controller I • DECwriler typewriter 30 cps » DOS-BASIC Software Assembled System Total $:!921 then go to 1' If dealer's total = 21 then go to 1' else if dealer's total >21 then go to 2' If "stand" switch on then go to 8' [to display] Is dealer's total >17? If so then go to 3' Draw another card for dealer Location Code Key 164 41 GTO 165 13 C 166 46 ♦LBL 167 89 »3' 168 43 RCL 169 00 170 01 1 171 75 — 172 43 RCL 173 00 174 02 2 175 95 = 176 90 ♦if z 177 67 *7' 178 22 INV 179 80 ♦if p 180 88 ♦2' 181 46 ♦LBL 182 87 T 183 01 1 184 94 +/- 185 49 ♦PROD 186 01 1 187 09 9 188 46 ♦LBL 189 88 ♦2' 190 43 RCL 191 01 1 192 09 9 193 44 SUM 194 09 9 195 08 8 the Texas Instruments SR-52 Program- mable Calculator; it confirmed my suspi- cions that my SR-52 had more power than the instruction manual said. Enclosed is a program listing for a program that I have written that will allow you to play BLACKJACK with an SR-52. This program was the toughest that I have written for that machine, since the 224 program steps allowed just didn't seem enough for the game; several days were spent in working and reworking the code in order to get the game to fit with the features I wanted. As you can see, it just fits, exactly. I have sent this program to you in case any of your readers would be interested in it. My family and friends have had a great deal of fun with it, and it's especially great for killing time on a long trip; one person can "stake" the "house," while another person is the player. The program automatically keeps score for the player, and even handles the "double-down" feature of the game. I submit it for the entertainment of anyone who wants to use it. Listing 1 shows the program code, which we typeset using column headings from the original form, along with the register allo- cations. The procedures for using the SR-52 Card BLACKJACK program are summarized in the box labelled "Operating Procedure." Commentary Go to C Is dealer's total = player's total? If so then go to 7' Is dealer's hand less than player's If so go to 2' Otherwise, dealer wins So make bet amount negative. Add current bet to player's total score 152 Listing 7, continued: Location Code Key 196 46 *LBL v 197 67 *7 | 198 43 RCL 199 00 } 200 03 3 201 85 I 202 85 + ' 203 46 *LBL "> 204 68 *8' 205 57 •fix 206 02 2 207 43 RCL 208 00 209 01 1 210 75 — 211 43 RCL 212 00 213 03 3 214 85 + 215 43 RCL 216 00 217 02 2 218 55 o/o 219 01 1 220 00 221 00 222 95 = 223 81 HLT J Commentary Game over, so display end game Display dealer hand as integer, player as decimal, and await next round. The SR-52. Register Utilization: ALLOCATIONS FOR SR-52 CARD BLACKJACK: User accessible labels: Flag Usage: A = Start game = "stand" flag B = Hit C = Stand D = Double 00 = pointer for subroutine parameter 01 = dealer count 02 = player count 03 = facedown 05 = current card 98 = winnings 99 = random number output 19 = current bet Spring into Season with a BYTE T-shirt At lastl No more wardrobe crises! BYTE T-shirts are here! Now you have the perfect garb for computer club meetings, Altair Conven- tions, playing Shooting Stars and computer chess. (A pair of trousers from your own closet is suggested as an addition to the BYTE T-shirt. BITS can't do everything for you.) BYTE T-shirts are of top quality 100% cotton or cotton -polyester. The original design, by artist Judy Lee Rehling, is silk screened in red on white shirts with blue trim on collars and sleeves, or on blue heather shirts. The $5.50 price includes postage and handling. Send to: In unusual cases, processing may exceed 30 days. BITS, Inc. 70 Main St. Peterborough NH 03458 Please send me _extra large -large _medium -small Total enclosed $ Bill MasterCharge No Bill BankAmericard No.. Name Address- City blue heather white with blue trim and red letters T-shirts @ $5.50 each (includes postage and handling) Exp. Date Exp. Date _State_ -Zip- Signature All orders must be prepaid Prices shown are subject to change without notice. 153 Circle 213 on inquiry card. A Guide to Baudot Machines: Part 3, A Teleprinter Test Circuit Michael S McNatt 4658 E 57 St Tulsa OK 74135 Now that you've found out what type of Baudot teleprinters are available on the surplus market, and where to go to get information on how to interface them to your microprocessor, it might be convenient to build a test box to check the working condition of your new acquisition. What follows is a circuit for just such a test box which can be used to provide the 60 mA current loop required by the Baudot ma- chine. Circuits are also included in the box to generate signals which can verify correct machine function. Although not as handy as the test box, a Baudot keyboard may be used to test a page printer of the same speed. The test box has variable control of data rate for testing all Baudot teleprinters. The test box circuits supply the following functions: 1 . Standard RY test signals, either con- tinuously or at two second intervals, for mechanical alignment purposes. These signals result in a maximum amount of slipping and sliding of adjacent gears and parts within the machine, conditions which are also most likely to cause malfunctions to surface. The two second interval used with the RY test prevents a rather large waste of paper or tape during a long test. 2. Individual Baudot characters at two second intervals. Five bit-switche? select the particular character desired (see table 1 in part 1 of this article for bit codes). One use of this function is to check various machines to see which keys are actually installed for selected bit combinations. For exam- ple, there are at least three different "figures" code assignments. Another use is in troubleshooting, for instance when the wrong character is appearing on the printer or punch in response to a processor output command. The test box can be quickly switched from "CPU" to local "char" mode to verify that the source of the problem is or is not the machine itself. Also included in the test box is circuitry to accept serial TTL or CMOS level Baudot coded output from the processor or hard- ware code converter. The "MODE" switch Cc PROCESSOR TTL PROCESSOR INTERFACE BAUDOT CHARACTER GENERATOR BIT SWITCHES ^o"T S W LOOP SUPPLY LOW VOLTAGE SUPPLY HIGH VOLTAGE ►TO CMOS CURRENT SWITCH . TELEPRINTER ~J ■ KEYBOARD I RY GENERATOR AND CONTROL DATA CLOCK Figure I: Block diagram of a Baudot machine test box allowing the generation of continuous or intermittent 'RY' test signals, or indi- vidual Baudot characters. * ~\ CLUTCH CONTINUOUS RY 2 SECOND TIMER 154 selects between processor input, RY test signals, and the individual character generator. The absolute minimum amount of hard- ware one can get by with when setting up a Baudot machine is a high voltage loop supply. Some machines, Model 28s and Kleinschmidts, for example, come equipped with this supply; unfortunately, my Model 15 RO page printer didn't. It may be a good idea to borrow or build a test box anyway. When trying to determine the operating condition of a prospective Baudot machine, taking along a simple loop supply can enable at least a very minimal check of the printer mechanism. When purchasing my 15, the seller, a ham, used his own supply to demonstrate successful clutch action, then opened and closed the loop by rubbing the connections, causing random characters to be printed. Obviously, a better check would have been with a test box or a speed compatible Baudot keyboard. However, the demonstration, in this case, was totally satisfactory because of the price, $30! Theory of Operation A complete schematic of the Baudot machine test box is shown in figure 2. Many of the parts used were selected solely be- cause they were immediately available from the proverbial junk box. (I think there are companies which would envy some of the so-called "junk boxes" I've seen belonging to hams and computer phreaks . . . ) For in- stance, the transformer shown was the only one usable that came out of a thorough purging of not only my junk box but that of a fellow designer. Actually any transformer secondary from 110 V to 300 VAC may be used, as long as adequate series power resistors are included to result in a short circuit current of 65 to 70 mA. Telegraph loops, such as Western Union, usually work at 260 V. Use of the higher voltages, around 200 VDC, although requiring more power to Photo 1 : A sample layout of the Baudot test box. Note the eight diodes plugged into the 16 pin IC socket at the lower right of the picture. These diodes are being used in replacement of IC7 in the circuit of figure 2. Photo courtesy of Don Clum 155 II— i^o-^-WVO ih- o y>-iwJ "-H(-rt PO C\J p in _L ^_ Q - 1 " • in j^fi ro o o V (- = 5 Q o 2 v> $ fc m ^ c Km * OS o ID - in *{ o HI " 5 r- LO LU P o l\J Z 3 ttH 3 s * O U fe r ty tt o LU (/) -o (T> (/I ¥ h _i UJ u LU O CD fg * o o o < o < Z r- r> •*"> < o - o -o-o-o-o - o - o - is m O O - — 00--00- - o o (jj ll o o o o o ooo o - I UJ Q o o o 1- 3 =) o iii q: lu < o — w rt^miDStoaiO — CM ro o > Q > a > a a W 0) P" r- 2 01 z jr * + e> + o + o + t!> + o + o z o ^ o o o d III ^ - k ■» s <*■ r- ^r S — (Vt (NJ ro K> * a> u> N N o rt en IO o o CO cc — a i 0) z i 1 i— i i i >■ IO o ,8 - L-81 z o Si oz 156 Figure 2: A Baudot machine test box and interface. This circuit generates 5 level Baudot code to be used in testing the working condition of a Baudot teleprinter. All resistances are measured in ohms, and unless otherwise marked are J/4W and ±-10% ac- curacy. The circuit allows either continuous R Y test strings or intermittent 2 second test strings. The R Y test string causes the most movement of gears and will show any difficulties in operation quicker than other test string combinations. All unused inputs of any CMOS integrated circuit must be grounded. be wasted in the series resistors, results in a faster response in the printer selector magnets, which is especially important at the higher speeds such as 100 words per minute. Do not put the standard transient suppression diode across the coils because selector magnet release will be slowed down. Since CMOS logic elements are used, the low voltage secondary winding can be of any voltage which will result in from 5 to 12 VDC for the +V supply. The series resistor capacitor network across high volt- age transistor Q1 is used to suppress the voltage transient occurring in the magnet coils when Q1 is turned off. A low logic state at IC4, pin 10, results in a mark or clutch state, since this will switch Q2 and thus Q1 on, causing loop current to flow. Resistor R1 tied to +V insures that the machine will remain in the mark state while changing the MODE switch. The data clock and the 2 second interval clock, IC3 and IC4, are standard CMOS oscillators. In substituting CMOS, try to avoid 4049 inverters in these oscillators. The character generator is formed by 8 bit shift register IC5, which is parallel loaded with the 5 Baudot data bits, a start bit, pin 15, and a stop bit, pin 7. The remaining bit, pin 1, is tied high. Characters are generated every 2 seconds when the load control, pin 9, is pulled high for one half period of the data clock. Flip flop IC6 synchronizes the load pulses from the slow interval clock with the much faster data clock. Note that serial input IC5, pin 1 I , is tied high. This provides marking 1s to be introduced into the shift register after the parallel loaded Baudot bits have been shifted out. The RY generator is essentially a CMOS version of an RTL circuit published in Ham Radio magazine, March I97I, pages 23 to 29. Briefly, IC1 and IC2 form a four bit, labeled A through D on schematic, binary counter which skips two states when counting from to 15. The RY pattern thus generated is shown in the timing diagram of figure 2. Referring to the schematic, counter state 1, DCBA = 0001, causes flip flop A to be reset, thus clocking flip flop B. This occurs when ICI, pin 2, goes high, causing the reset pulse at IC3, pin 4. Counter state 1 4, DCBA =1110, causes flip flop A to be set, with no clocking of flip flop B. This occurs when IC1, pin 1, goes high, causing the set pulse at IC3, pin 10. The RY control is a three position SPDT minitoggle switch with the center position off. A neat feature of this circuit is that no matter when the RY control is switched from one position to another, complete RYs are always generated. Miscellaneous Notes • I used six 1N914 diodes and two resistors in place of IC7, hence the 16 pin socket was used as a diode holder, (see photo 1). The 4075s are more convenient, but the diodes were in the junk box at the time. If diodes are used, connect three of the anodes in place of IC7, pins 1, 2, 8, and the cathodes in place of IC7, pin 9, and tie a 1M resistor to ground at this point. Ditto to replace the second gate. • To avoid the self-smoke or reach for the sky mode, all unused CMOS inputs must, be grounded or tied to +V. • Obviously the test box can be as simple or complex as one desires. The minimum configuration would proba- bly be two Eveready No. 416 67.5 V batteries and a resistor in series, using the "sparking" method to generate random characters! • Seriously, the RY generator is manda- tory, with the character generator and 2 second timer as options. Of course a more sophisticated Baudot test box would have an 8080A, a 1702A, an 8251, and maybe some hexadecimal character readouts . . . Summary An old surplus Baudot code teleprinter is the most inexpensive hardcopy peripheral available to the computer hobbyist today. This series of articles has presented ap- proaches to acquiring, using and testing these units, as well as sources of reference material and interfacing hardware and soft- ware. It is hoped that the information provided will greatly ease the acquisition and interfacing tasks facing the hobbyist who owns or is planning to own one of these practically indestructible machines." 157 The Ultimate in Terminal Printers What's GNAT 3M Drive This new GNAT MC-200 data storage system will make an interesting option for many users. This is an RS-232 interfaced serial device which plugs into a standard DB-25 connector often used with RS-232. It gives the user a serial storage capability on 3M DCD-100 cartridges. Optional parallel IO is also available. The unit has sufficient intelligence built in to recognize various command sequences including start write, start read, stop write, stop read, rewind, etc. All these sequences are duplicated by hardware switches on the front panel for manual control as well. The data rate for the device, which looks logically like any RS-232 serial terminal, can be set by a switch at rates from 75 to 9600 bps. Options available include parallel inter- The ultimate in terminal printing mechanisms is that provided by the Diablo HyType II printers and similar high-speed, high quality impact mech- anisms. These mechanisms give print quality (with carbon ribbons) good enough to photocopy and reproduce, yet at character printing rates of up to 45 characters per second. Applied Com- puter Systems, 248 Sobrante Way, Sun- nyvale CA 94086, has taken the Diablo mechanism and placed it into this attractive package along with a micro- processor and numerous options. The result is a hard copy oriented micro- computer with prices starting at $4500 and options including floppy disks, memory to 64 K, plotting, sort and merge capability, down loading of pro- grams over communications lines to large systems, and user programmability of the built-in microprocessor. Communi- cation speeds of 600, 1200, 2400 and 4800 bps are supported, and the stan- dard memory size is 4 K bytes. Key- boards customized for APL, ASCII and IBM 2741 compatibility are available.* Circle 61 2 on inquiry card. face, file search capability, dual drives, etc. The price of this system is $1930, and its mix of features should prove quite useful for those who want a file storage system with the minimum of interface complexity. GNAT is located at 7895 Convoy Ct, Unit 6, San Diego CA 92111, and delivery is quoted as from stock to 60 days ARO.» Circle 613 on inquiry card. Kl An Interesting Test Fixture AP Products, POB 110, 72 Corwin Dr, Painesville OH 44077, has intro- duced this interesting new fixture for use in testing integrated circuit assemblies. Called the "Logical Con- nection," this is a preassembled ribbon cable attached to an IC test clip at one end, and a flat cable socket connector at the other. The length of the ribbon cable can be chosen by the purchaser; the example here is of course rather short to illustrate the idea." Circle 614 on inquiry card. MY/M 1024 Microprocessor Video Module >ft Sixteen 64-character lines, upper/lower case 128 character font. ^ Software-controllable reverse video characters. ^ Full read and write capability for both cursor position and character code. ^ Interfaces to any microprocessor: 8080, 6800, 6502, etc. + Scrolling, line/character insert/delete, etc. easily done with software. THE SOPHISTICATED VIDEO MODULE $225 FOR THE ADVANCED EXPERIMENTER ASSEMBLED AND TESTED Write or call for complete literature. ~Ar RiTCrskle ELECTRONIC DESIGN INC 1700 NIAGARA STREET ' BUFFALO, NY. 14207 716 875-7070 Circle 201 on inquiry card. 158 THE COMPUTER CORNER Lower Hudson Valley Southern Connecticut •IMSAI 8080 •POLY-88 •Teletype supplies • Full line of magazines •Processor Tech •Computer Book Service •Magnetic tapes & disks •Brain Games & Puzzles THE COMPUTER CORNER White Plains Mall 200 Hamilton Avenue White Plains, N.Y. 10601 Tel: (914) 949-DATA Hours: 10-6 Daily & Saturday 10-9 Thursday MPRES! your computer. Monitor up to 256 points under software control. Each MPRES card monitors eights points and plugs into the XPRES bus. Callus. We're the interface people. CRC ENGINEERING, INC. P.O. BOX 6263 BELLEVUE.WA 98007 (206) 885-7038 SURPLUS BARGAIN + 5V @ 7A - 12V @ 2A + 12V@2.5A +180 V@ 150 ma +30V @ 200ma (unregulated) -6.2V @ 25ma (no adj. pot) Brand new, made by CDC for microprocessor terminals. 110 VAC in, regulated and adjustable DC outputs. Overvoltage protected +5, -12. Power status signal. Fan. Schematic. Original list $600+. From stock, UPS paid, custom foam box, guaranteed. $50.00 ELECTRAVALUE INDUSTRIAL BOX 464 Cedar Knolls, NJ 07927 (201) 267-1117 Circle 161 on inquiry card. Circle 202 on inquiry card. Circle 247 on inquiry card. COMPUTER MART OF NEW HAMPSHIRE DEALERS FOR TDL ICOM IMSAI DIGITAL GROUP SOFTWARE INCLUDES: 8K BASIC EXT. BASIC TEXT EDITOR DISK BASIC WORD PROCESSOR MACRO-ASSEMBLER 1 70 MAIN STREET NASHUA (603) 883-2386 the microcomputer i an introduction to reality now in Canada misai processor cromemco tdl and more The Computer Place 186 Queen St. W Toronto M5V 1Z1 416-598-0260 Focus Scientific 160 Elgin St. Ottawa K2P 2C4 613-236-7767 WE NEED PEOPLE WHO ENJOY COMPUTERS We're a small custom software house doing state-of-the-art things with large online scientific data bases. Not with packages — our systems are too sophisticated for that. You would develop systems for real-world use, in intellectually challenging applica- tions. Mostly Fortran for IBM/370, D EC-1 0, Univac 1 1 00-series. We offer the usual benefits (a bit better than most), comfortable offices, and company-paid coffee. Send your resume (in confidence), salary re- quirements, to Dr. R. Gary Marquart Fein-Marquart Associates, Inc. 7215 York Road Baltimore, Maryland 21 21 2 Circle 176 on inquiry card. Circle 156 on inquiry card. Circle 257 on inquiry card. An Interesting New Product for People Wanting Complete Systems Frank Laczko, president of TLF, POB 2298, Littleton CO 80161, called us early in February to announce his new brainchild, the Data 12 computer, shown here. This machine is an example of a completely integrated system oriented to a terminal user. Its architec- ture is that of the Digital Equipment A New Variation on Solderless Prototyping Boards Continental Specialties, 44 Kendall St, POB 1942, New Haven CT 06509, has announced an interesting new varia- tion on the solderless breadboard con- cept: modular units with a set of inter- locking edges so that they can be built up into multiboard arrays that are rigidly held together." Circle 609 on inquiry card. Corporation's PDP-8E, using the Intersil IM6100 microprocessor. The $1695 price tag of this processor with its built-in tape drive gets a PDP-8 like computer with 4096 1 2 bit words of user memory, serial terminal interface, tape controller with one drive built in, and a tape operating system that includes both an unattended batch mode of operation and real time task scheduling capability. The random access tape cassette drive uses a Preformatted digital cassette that has an average access time quoted by the TLF press release as less than 25 seconds, with bidirectional search speeds of 100 inches per second. The tape holds a maximum of 262,144 words in 128 word blocks. The software supplied with the system is completely A Portable Display Terminal The Micon KDM/1 is manufactured by Micon Industries, 252 Oak St, Oakland CA 94607. The terminal is a self-contained keyboard with 32 character alphanumeric LED display, available for $400 mail order. The prod- uct is available in eight different colors. It is also available in many fine com- puter stores. Options include acoustic coupler, digital cassette tape storage and additional memory capacity to 1920 characters." Circle 610 on inquiry card. oriented to an interactive keyboard, and it includes an "invisible" system execu- tive that handles all IO scheduling, buffering and' vectoring. The operating system, modeled after DEC's OS-8, is written with an eye towards device independence in the same fashion as larger computers. The system software manages named files for mass storage control, and also includes the usual text editor for program preparation, a symbolic assembler, dissassembler and loaders. The system is marketed with a BASIC compiler which includes multi- segment program linkage conventions, large multidimensional arrays, string handling, and multiline user defined functions. User memory can be expanded to 32 K words, and additional peripherals are also available." Circle 61 1 on inquiry card. BYTE's Bugs Oops . . . Some Phi-Deck Updates to Freeman's Article I have read an article published in the March 1977 issue of BYTE. The article, "Cassette Transports for the 'Roll Your Own' Hobbyist," had some errors in it concerning the Phi- Deck cassette transports. These errors are apparently due to the normal time lags involved between the occurrence of a development and the time con- sumed to communicate the event. Areas I would like to bring to your attention are: Solenoid Operation Phi-Deck uses a 4 motor design for all control functions. No solenoids are used, thus eliminating the power con- 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 88-UFC Frequency Counter Module 88-MODEM Originate/Answer MODEM GENERAL PURPOSE PERIPHERALS MCTK TSM DAC8 Morse Code Trainer/Keyer Temperature Sensing Module USES Your computer keeps time ot day regardless of what program it is executing. Applications include event logging, data entry, ham radio, etc. Measure frequencies up to 600 MHz Computer can monitor multiple frequencies such as transmit and receive frequency. Use your computer to call other computer systems such as large timesharing systems. Also allows other computer terminals to "dial-up" your computer. Hardware/ Software package which allows your computer to teach Morse Code, key your transmitter, and send prestored messages. Use it to measure inside and/or outside temperature for comput- erized climate control systems, etc. Requires one eight bit output port. Use it to produce computer music. Eight Bit Digital to Analog Converte Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call for detailed product brochures KIT PRICE $96.00 $149.00 $199.00 $29.00 $24.00 $19.00 Circle 204 on inquiry card. 160 Floating Point Software for the 8080 PACKAGE INCLUDES MANUAL, OBJECT CODE ON PAPER TAPE, AND COMPLETE ANNOTATED SOURCE LISTING . ROUTINES PERFORM: Add, subtract, multiply, and divide Load and store floating point accumulator Format conversion Square root S ine and cos i ne Natural logarithm and exponential Arc tangent Hyperbolic sine and cosine Logarithm base ten OTHER FEATURES: Compatible with any 8080 microcomputer Requires less than 2K bytes program store High speed — worst case multiply 2.5 msec. Accurate to six decimal digits Low cost (source tape available separately) SEND $10 TO: BURT HASHIZUME P.O. BOX 447 MAYNARD, MASS. 0)754 ORANGE COUNTY Hardware and Software SERVICE and SALES Fountain Valley Plaza 1 /a Block South of San Diego Freeway 1B120 Brookhurst St. Fountain Valley Calif. 9270B 714-363-5551 • Hours • Monday-Friday 1-9 Sat 1 0-6 Sun 1 2-5 THE BETTER BUG TRAP The Better Bug Trap is an Altair/IMSAI plug-compatible board that extends system capa- bilities to facilitate software debugging and real-time proces- sing. Capabilities include interval timer, real-time clock, watchdog timer, processor slowdown, and clock with variable rates. Four hardware breakpoint addresses allow you to stop processing or generate an interrupt at a break- point without modifying exist- ing software. The board services its interrupt with a CALL instruction to ANY memory address you choose. All capabili- ties may be set by software or front panel. Write for free literature. $180 assembled, tested, com- plete documentation, software. MICRONICS, INC. PO Box 3514, Greenville, N.C. 27834 919-758-7757 Circle 262 on inquiry card. Circle 261 on inquiry card. Circle 196 on inquiry card. COMPUTER CLUBS PROFESSIONALS- AMATEURS BUSINESSMEN-HOBBYISTS ORGANIZE (5-20 PEOPLE) AND BUY A FULL TELEPROCESSING SYSTEM (Z-80 MICROCOMPUTER, CUSTOM BOARDS, DUAL FLOPPY). THEN BUY SINGLY RE- MOTE OR IN-HOUSE VIDEO TERMINALS (WE SELL THESE TOO!). ADD MVT's BOSSYSTEM/1 SOFTWARE AND YOU HAVE A "DEDICATED" COMPUTER FOR 5-20 USERS. USING OUR MULTI-USER BASIC INTER- PRETER YOU ARE NOW READY FOR EASY REMOTE PROGRAMMING, PROCESSING, GAMES, ETC. FOR A COMPLETE SYSTEM (TESTED AND BURNED-IN WITH SOFT- WARE, TERMINALS AND PERIPHERALS) THE PRICE FOR 10 PEOPLE IS LESS THAN $1900 PER PERSON. WRITE NOW FOR FURTHER DETAILS ON THIS MEW AND EXCITING DIMENSION IN PERSONAL COMPUTING. MVT MICROCOMPUTER SYSTEMS, INC. P.O. BOX 62 AG0URA, CALIFORNIA 91301 Pictured above is the new OP-80A High Speed Paper Tape Reader from OAE. This unit has no moving parts, will read punched tape as fast as you can pull it through (0-5,000 c.p.s.), and costs only $74.50 KIT, $95.00 ASSEMBLED & TESTED. It In- cludes a precision optical sensor ar- ray, high speed data buffers, and all required handshake logic to interface with any uP parallel I/O port. To order, send check or money order (include $2.50 shipping/handling) to Oliver Audio Engineering, 7330 Laurel Canyon Blvd., No. Holly- wood. CA 91605. or call our 24 hr. M/C-B/A order line: (213) 874-6463. IUU SIX PORT I/O CONTROLLER • Program Control of Ports • S100 Buss Compatible • Parallel I/O • Single Printed Circuit Board VIDEO SYSTEM • 30 x 64 Display - 1920 Char. • 120 Character Buffer • 1 Msec Read /Write Time • Extensive Software Provided • Display Attribute Controls Are All Programmable Available in Kits or Assembled BankAmericard and Master Charge Accepted Dealer or Club Discounts Available Box 28823 IOR Dallas, Texas 75228 Circle 264 on inquiry card. Circle 64 on inquiry card. Circle 268 on inquiry card. Circle 83 on inquiry card. COMPUTER MART A NEW YEAR, A NEW LOGO, A NEW STORE ! ! Last year we opened the first computer store on the East Coast. This year we move out of the Hobby Store and into our new Real Systems Showroom and Store. The largest display of up-and-running com- puter equipment. The same friendly help and advice. Plus-all the bits and pieces you can't find elsewhere! Plain and Fancy Software too! 1P *0**A*< L^ £ s*> over $10.00 BankAmericard and Master Charge accepted Stan Veit -Storekeeper. COMPUTER MART OF NEW YORK INC. 118 MADISON AVE. (ENTER ON 30th ST.) 212-686-7923. sumption associated with maintaining a solenoid in the active state. Die Cast Chassis All Phi-Deck models now utilize a precise die cast chassis. Triple I no longer uses the sheet metal frames. AC Phi-Deck Models Triple I is announcing two new Phi-Deck transports which will give us a total of five models. Both of the new models will use an AC capstan motor. New Pricing Phi-Deck Models 1 and 2 are now built with the die cast chassis. This and other factors have increased the price of these models to $124 in quantities of 1 to 9. The price is higher, but you can now get a precise die cast chassis for under the $169 mentioned. If you could update your audience about the above corrections to the article, it would be greatly appreciated. Jack Morrow Applications Engineering Technician Triple I POB 25308 Oklahoma City OK 73125 My fault. In editing, I should have correlated later Phi-Deck literature with the article, which was written in the Summer of 1976 ... CH ■ 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 bar code version of Tiny Assembler is included for convenience, as well as reprints of Jack's two articles and additional user manual mate- rials. Tiny Assembler will run on any machine with Ml KBUG and 4K of memory starting at address 0000, and is an excellent tool for the interactive development of functional blocks for a large structured program. Add it to your 6800 system and you'll have a valuable programming aid which can free you from the drudgery of machine language. The best part is the price: only $7. Order yours today! Name Address City State Zip PAPERBYTES Tiny Assembler 6800 d 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. You may photocopy this page if you wish to leave your BYTE intact. No. 700 Circle 4 on inquiry card. 162 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 tor further information. Rotundra Cybernetics /A Box 1448, Calgary, Alta. T2P 2H9 Phone (403) 283-8076 TWX 610-821-1883 South Florida Across from the University of Miami University Shopping Center 1238A South Dixie Highway Coral Gables, FL 33146 (305) 661-6042 Sunny Computer Stores, Inc South Florida's First Computer Store We Cany: •IMSAI, COMPUCOLOR, VECTOR, SOUTHWEST, C.S.C., CROMEMCO VECTOR GRAPHIC, SEALS •Books, Magazines, Newspapers •Sockets, IC's, Printers •Digital Cassette Equipment •Debugging Equipment We offer Classes, Friendly Advice and Service Hours: Monday - 1 2 Noon to 9 P.M. Tuesday through Saturday — 10 A.M. to 6 P.M. WIREWRAP Cut & Stripped =30 Wire Golil Wire Wrap Sockets in Red, Yellow, Sluo or Orange High Quality Closed Entry Type 1.02 3.63 6.75 28 1 DG 3.83 7.16 40 r.350n Hulls $4.00 10'S30(t HOBBY WRAP TOOL Hand Wn)p UnWou & Strip Tuol S5.95 with S2 free wire. S34.9B includes S5.00 fi wire & sockets (C Batteries not incl.) We also Stock. • Wire Wrap Boards • 74OO&74LS0O IC's • Processor Support Chips Call or Write for catalog (2131 797-4002 or 797-4007 Orders under S10 or COD's add SI. 00; other orders shipped UPS ppd. BankAmcricard and Master Charge. Page Digital Electronics 1701 East Orange Grove Blvd Pasadena, California 91104 Circle 234 on inquiry card. Circle 164 on inquiry card. Circle 273 on inquiry card. The Best of BYTE, Volume 1 Send now to: BYTE Interface Technical Services, Inc. 70 Main St Peterborough NH 03458 The volume we have all been waiting for! The answer to those unavailable early issues of BYTE. Best of BYTE, edited by Carl Helmers Jr and David Ahl. This 384 page book is packed with a majority of material from the first 12 issues. Included are 146 pages devoted to "Hardware" and how-to articles ranging from TV displays to joysticks to cassette interfaces, along with a section devoted to kit building which describes seven major kits. "Software and Applications" is the other side of the coin: on-line debuggers to games to a complete small business accounting system is included in this 125 page section. A section on "Theory" examines the how and why behind the circuits and programs. "Opinion" closes the book with a look ahead, as to where this new hobby heading. It is now available through BITS Inc for only $1 1.95 and 35 cents postage. | Name I Address I City State Zip st of BYTE, Volume 1 O Check enclosed □ Bill MC # □ Bill BA # Signature Price of Book Postage, 35 cen Total Exp. Exp. $ The Be s $ $ Date Date Ml Iuuhkicmo In unusual cases, processing may exceed 30 days All orders must be prepaid LI You may photocopy this page if you wish to leave your BYTE intact. Circle 4 on inquiry card. Advanced Microcomputer Products Presents Prototype Design Equipment sHlri 25 *■* -Zl- -1r~ as. Itii? I 1 ill !ii3 'tin Microprocessor Prototyping NEW SOCKETS & BUS STRIPS E.p*.,m*r.«r600 S10.95 E„e*.™n.o, 300 S 9.95 CSC CATALOGUE * MICROPROCESSOR PRODUCTS 8K RAM BOARD $198.00 ADU * MOOCDMPUTER .PRODUCTS BUILD YOUR OWN COMPLETE COMPUTER SYSTEM Jr AMI EVK 99 6800 BASED ~ MICROCOMPUTER Photo of expanded EVK 99 NOW $133.00 74 Vj S0870 Sr.BJJ I S6S00 I 0141APC U r»60 tmsioio i: KMO twwniio i: b2?h g >m TV GAME KITS 6B3I 16* ROM TV KIT NO. 1 i.H.jiViAYJBSOO ! PCBuJXIIor.^rott TV KIT NO. 2 ir..-.,i,t..i A ¥38600 i ' ONLY ■ $29.95 ONLY „ S34.95 ONLY S49.95 2. UNIVERSAL KLUGE BOARD S98.00 3. 16K BYTE RAM BOARD S77.95 16K .Bu> B" ■ IB oiqji.iljl.ati Uiri flOJin. 21L07ljn 4. 6 SLOT MOTHER BOARD S29.95 5. EXTENDER BOARD $46.50 8T268 74LS13B 8097 74166 74161 741HC MH0026CN SPECIAL BUY 10 OF THE FOLLOWING AND YOUH PRICE IS. . . AMD 808UA . . .S19 95 AMD 9111 4 10 AMD 9112 2 30 RF MODULATOR MODULE * NEW PRODUCTS * I C MARKET PLACE * * 7400 TTL IB 744JN 79 ia 99 79 74192r. 19 7450N 74l93r. J0 7451N 25 H 40m IS J4J0N 30 IS SI 59 J4196N 74198H 7473N 90 74l99r. 74J4N 7475N 74179* 7476N M 35 3G 748 3N B096N 7485N 99 B097N 35 74S6N Mris.'i IS 75150 r. 36 99 754 50 f. J5 74I55N 99 IB4SU 36 7492N 754 52f 29 7493N MM uw 21 31 7494N 74 95N 74I72N S16 25 11 40 30 J496N 35 S3 7b 74I7SN 35 74100ft S< 10 M41N 1105 7410SN 53 S3 741 UN n U42N 33 7443N St 50 i«,nS 33 38 74IB4N tin 00 PIECES MIX TAKE 10% DISCOUNT 000 PIECESMIX TAKE 15% DISCOUNT F4702BjlhI Run.. Cjr.-ii 15 95 8214 I'rrufilv hit. 11.95 ZBQCPU 49.95 Z80 3881 PIC 9.95 Z80 3882 CPC 995 PD 372 Floppy Controls 55.00 PD 371 May. Tips Cttntroltn 49.95 APP Notes lor 372 Floppy 6.95 Gl AY5 35504'i Driiit DVM 29.95 Gi AYS 3B00 Keyboard Eneoda 14.95 litu-itil 8038CC LV,»e Gen. 3.50 AY3507 DVM Chip 12.95 R03 2613 Uppercase 9.95 R03 2513Lowt;ruasu 10.95 IMS 40GQNL 2 4K HAM 3.95 MK4096 4K RAM 3.95 1G02BUART 5.50 1883 UART 6.50 AY51013A UART 5.50 1J101C-E 1K CMOS RAM B.95 WD 1671B Astros 29.95 WD 1941 Dual El,iiid Gen 9.95 WD 1771 Floppy Disc Cant. 74.95 6330-1 256 Bil OC Prurn 2.95 6331 l 256 Bit TSP.om 295 GH00 1 IK OCProm 3.50 6301 1 IKTSPiom 3.50 6305 1 2K OC Piom 9.95 6306 1 2KTSPtom 9.95 6340 1 IK OCProm 1B.95 aSnjp"only S99 !>0 Microcomputer Applic. only S7.95 [flMCS8Lht.riM.iiiii.il 1HMCS4 Users M.IIHUI . . Vtrimin Linear Catalogue yihaon Quads & Duals Mam 6800 STARTER SET 8080A STARTER SET All shipmmm first class or UPS i lor shipping and handling Mum California Residents *ttl li".. ia« u s or add 5'i mm ordai S 10.00 Foreign add Hv DITTO? P.O. BOX 17329 ^ „„«Nt* cft JrU 1 tTV IRVINE, CALIFORNIA 92713 oBO t« , ' oU PHONE 17141 988366b 00 o SO PS I O > * INS 00 14' 12 1 32^v $.49 Conductor Ft. RIBBON WIRE] SPECTRA-STRIP Transistors ea. 10 50 100 4042 4043 4044 4046 4047 I to give IhBm away — tarns won't let us. So instead we are selling thorn at cost And therefore must limit the purchase ol the SN740O end the LM74I to 50 per customer. 2N2222A.20 .18 .16.15 2N3055 .89 .84 .77 .65 Ml 3055 .99 .94 .87 .75 2N3904 .15 .11.09.07 2N3906 .15 .11 .09.07 Diodes 10 25 100 1N4002 100.. .08.06.05 1N400S GOO.. .10.08.07 1N4148 signal .07.05.04 jumbo red ea. 10 25 100 LED's ?15.10 .08.07 COMPUCORP PowerAdapter 1£9 Oulput: 12v. 175ma. TRANSFORMER I I ^3* 5-WAV fm BINDING ^3P POSTS 5H COMBINATION LENS MOUNTING DEVICE C Red Amber Green fo r 20 SO 1001k »9g 17<15rl3'll CLIP LI XI CAPACITORS ELECTROLYTICS ea. 10 50 4500/50V.5H' 135 1)9 1000/15V. »55 49 45 axial ».98e DPDT ROCKER SWITCH Photoconductor Cells 3 for '.98 10 ohm to IOO K DISCOUNT Wire Wrap Center Heavy duty grounded power cord and mating chassis connectors. IC SOCKETS wire wrap Solder ea. 25 50 ea. 25 50 17' 16 15 37<36 35 20 19 18 38 37 36 21 20 19 99 93 85 36 35 34 169 155 139 63 60 58 529.95 ; son. $ .98 KYNARMp 500 1,000 11,000 59. SIS. S105. H 15214 Gre.illea Avenue • Lawndale, California 90260 ■ (213) 772 0800 J. Circle 200 on inquiry card. COMPUTER - WAREHOUSE STORE DEPT: B • 58if COMMONWEALTH AVENUE • BOSTON , MA • 0221 5 • 617-261 -2701 • V I S IT US: 9"9 WEEKDAYS; 9-6 SATURDAYS ONE DAY SHIPMENT USED PERIPHERALS FOR MICROSYSTEMS HAZELTINE 1000 $795 VIDEO DISPLAY TERMINAL + SHIPPING'35 12 LINES x 80 CHAR., TTY COMPATIBLE, 5 x 7 DOT MATRIX, 525 LINE RASTER. BUILT £ TESTED; PLUG £ GO SPECIAL DISCOUNTS/ ON KITS & ASSEMBLED UNITS SAVE UP TO 20% OFF KIT PRICE WHEN A PERIPHERAL IS PURCHASED AT THE SAME TIME. ($200 MAXIMUM DISCOUNT) PERIPHERAL PRICE OVER $900^20%OFF KIT PERIPHERAL PRICE OVER $250^10%0FF KIT PERIPHERAL PRICE OVER $95^ 5%0FF KIT ALLanASR33isand MORE! GREEN PHOSPHOR $150 OLIVETTI TE318 - BACK IN STOCK! RS232 INTERFACE, QUIET OPERATION 10 CPS, PRINTER, BUILT-IN PAPER TAPE READER/PUNCH, ELECTRIC TYPEWRITER KEYBOARD WITH ADDITIONAL 10 KEY NUMERIC PAD, YOUR CHOICE OF FRICTION $875 0R SPR0 CKET FEED, LIGHTED PLATEN AREA ifccik F0R EASY READING > STANDARD PAPER AND + SHIPPING 165 lb TApE> su pp 0RTED B y OLIVETTI + $25 SHIPPING TECHTRAN 4100 $595 TAPE CASSETTE DRIVE. CAN RUN DIRECTLY FROM TERMINAL INDEPENDENT OF CPU. FULL EDIT CAPABILITY. KDI ADTROL AR-21...$95 S H,mNc, ELECTRO OPTICAL PAPER TAPE READER WITH 1 10V PS, STEP- PER MOTOR, 250 CHAR/SEC, FAN IN TABLE TOP HOUSING IBM 731 I/O WRITER $750shiH? N q 8i"PLATEN,PINFD, EBCDIC, U/L CASE, DUAL CLR RIBBON, 115V CWS U-BUILD-IT SYSTEM $599 + $35 SHIPPING MPU, CRT TERMINAL £ AUDIO CASSETTE AT A ROCK BOTTOM PRICE ! SC/MP MICROCOMPUTER; 256 x 8 RAM, 512 x 8 ROM GREEN PHOSPHOR VIDEO MONITOR; 12" RASTER SCAN SWTPC 102^4 ; 32 CHAR, x 16 LNS, ASCII KEYBOARD SWTPC AC-30 AUDIO CASSETTE INTERFACE *OTHER PACKAGE PLANS - SEND FOR OUR CATALOG TO ORDER EQUIPMENT 1. ENCLOSE CHECK FOR FULL PRICE PLUS SHIPPING CHARGES (KITS - ADD $5 IF UNDER $100; $10 IF OVER) (FOREIGN RATES HIGHER) BANKAMERICARD £ MASTERCHARGE ACCEPTED - SEND CARD NUMBER, EXPIRATION DATE, INTERBANK ff 2. CLEARLY IDENTIFY SHIPPING ADDRESS 3. DESCRIBE ITEM BY MODEL NUMBER ALL MERCHANDISE WARRANTEED A MUST FOR PERSONAL COMPUTING SEND $1 FOR OUR CATALOG THE ONLY ONE OF ITS KIND! FULL DETAILS ON OUR COMPLETE LINE OF KITS £ UNITS, REVIEWS OF OVER 150 BOOKS, LISTS OF NEW £ SURPLUS PARTS £ "ALL ABOUT HOBBY MICROCOMPUTERS" - AN INTRODUCTION TO PERSONAL COMPUTING. Circle 138 on inquiry card. VIDEO MONITOR •-25 SHIPPING STANDARD IV P TO P COMPOSITE VIDEO INPUT, 16MHz BAND WIDTH, RASTER SCAN 12x12x13" WITH POWER SUPPLY, VIDEO AMPLIFIER, DRIVING CIRCUITRY VENTILATION MUFFIN FANS, 7x9" HORIZONTAL VIEWING CAPABLE OF 2k LINES x 80 CHAR., ANTIGLARE £•" ETCHED GRADIENT DENSITY FACE PLATE, P39 GREEN PHOSPHOR, ON/OFF BRIGHTNESS CONTROLS, 115Vac, 60 W ... TRULY A COMMERCIAL UNIT BUILT TO WORK IN A DEMANDING ENVIRONMENT. DATAPOINT 3300-200 THERMAL PRINTER $375+525 SHIPPING PARALLEL PRINTER WITH ADDITIONAL CIRCUIT BOARDS TO PROVIDE SERIAL INTERFACE, PRINTS UP TO 30 CPS, lOOVac PS USES WIDELY AVAILABLE NCR PAPER, 96 CH, ASCII, 80 COL, CRT COMPATIBLE 5x7 DOT MATRIX, SOLID STATE WITH LESS THAN 25 MOVING PARTS. DATAPOINT 2200-200 $3?5smSi!5 CONSOLE PRINTER BOTH UN I VAC £ SINGER BUILT THESE PRINTER MECHANISMS WHICH OPERATE AT 30 CPS FROM A ROTATING WHEEL. 65 CHAR. USES STANDARD FORM FEED PAPER, PINWHEEt IS INTERCHANGEABLE. UNIVAE 0769-06 PRINTER MECHANISM ONLY INCLUDES MOTOR/PRINT WHEEL ... $195 +SHIPPING 75 II KITS* HIGHLIGHTS FROM OUR WIDE SELECTION IMSAI 8080 MICROKITS 8080A KIT 5 SLOT $699 8080A KIT 22 SLOT 751 4K MEMORY KIT 139 PIC-S PRIORITY INTERRUPT 125 SERIAL I/O KIT 125 PROM 4-512 KIT 165 UCRI-1 KIT 59 CABLE A KIT 18 STANDARD INPUT/OUT INTERFACES, 1ANUALS, SOCKET SETS VIKING 100 PIN, HEAVY OUTY $3-00 SWTPC 6800 $395 ►512 BYTES of ROM •RS232 or 20 mA •SERIAL INTERFACE *4K of RAM 4K MEMORY S100 MPA 145 MPB 40 MPO 35 MPF 30 MPMjc 35 MPL 35 MPAb T4.50 EACH. .9.50 MPC 40 MPE 14.95 MPM 65 MPP 35 MPS 35 MPMb 14.50 MPCb, MPSb, MPLb, CONNECTOR SETS MPU/MEM 2.50 CONNECTOR SETS INTERFACE 2 4KBA 5 GT61 99 AC30 AUD 1 I NTERFACE 79-50 PP40 PRINTER 250 CT 1024 TERMINAL KIT 275 CTP 15-50 CTS 39.95 ALL SWTPC UNITS ARE KITS SHOKE SIGNAL BROADCAST 16K RAM 595 LEARSIEGLER ADM-3A W/ Cursor Control •12" CRT •24 LN X 80 CHAR • R S232 t „ \ T> — «20 mA LOOP *O/0 SCAMP KIT S99 FROM NATIONAL SEMICONDUCTOR KEYBOARD KIT 95 • BUILT UNITS • ICOM MICROFLOPPIES PLUG COMPATIBLE FOR: *,nnc S100 BUS...FD24I1 IplUyO SINGLE DRIVE FD2402 S 649 ICOM FLOPPIES: FF36-I FRUGAL 51 195 FF36-2 DUAL FRUGAL 1 095 360-58 BLTllNTFC 8080.. 300 S171 POWER SUPPLY ... 250 FD360-2-5DUAL SYSTEM... 3000 KIM-16502 S 245 KIM-2 4K 179 KIM-3 8K 289 MANUALS PACKAGE 15 TARBELL AUDIO CASSETTE KIT 120 INTERSIL INTERCEPT JR. $281 12K RAM 145 ROM/PROM BOARD 74.65 YOU ADD MEMORY CHIPS SERIAL I/O 81.50 AUDIO V I SUAL BOARD 125 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 Model #4525 ( -Model #4520 ( » 38.95 _ > 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. Cirde y 57 on in q uiry card . SAME DAY SERVICE IF PAID BY CASHIER'S CHECK, MONEY ORDER OR CHARGE CARD. ASC II KEYBOARD NEW LOOK IMPROVED DESIGN .... ■■■::. 3 3 « 8 9 W » W T Y a T w W W V KF T T f f W * w w W v 9 n W $58.00 This 63 key ASC II Encoded Keyboard kit was designed and manufactured by Electronics Ware- house Inc. Features: Single 5 volt DC. supply, utilizing only TTL 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 1 1 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* 18 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) 10JJA- 1A RESISTANCE 1 Q - 10 MQ Basic DC 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.S» y 74LS00 .40 .40 .40 .SO .40 .40 7 4 I.S00 7 4I.S0 2 74LS03 74LS04 74L5Q5 74LS08 74LS10 74 LSI 1 74L512 74LS20 74LS21 74LS30 74LS32 .40 7JLS37 .^0 74LS42 .90 74LS5I .40 74LS73 .60 74LS74 .65 74LS76 .60 7 41.S78 .80 74LS8S 2.00 74LS86 .55 74LS95 2.00 74LS107 .SS 74 LSI 09 .60 74LS112 .60 7 4 LSI 1 3 .60 74LS122 .60 74LS13!) 1.30 74I.S1S1 1 .SO .60 74 LSI 5 3 741.51 SS 74LS157 7 4LS161 74LS169 74LS174 74LS17S 74LS191 74 LSI 92 74LS193 74LS196 74 LS248 741.S251 7 41..S266 74LS363 74LS367 74LS3M 74LS386 1 .60 CMOS 11111 Dual i Input niih 1 m; i'iu,)i 1 Input wr 1 nu.id 2 Input Dull i input Triple J Inpi i I! Type Register iput NOR Catr I 2 Input AND Gal 2.00 .75 Electronics for the Hobbiest and Experimenter 5351 WEST 144th STREET LAWNDALE, CALIFORNIA 90260 (213) 679-3313 Circle 215 on inquiry card, SOCKETS 1 C SOCKETS Pins Descript ion 6 Lo Pro Tin IB 14 Transistor IC- 10) Lo Pro' Tin Wire Wrap Gold Gold 16 Lo Pro Tin 16 Standard PC Ti n 16 18 Wire Wrap Tin Lo Pro Tin 22 22 Lo Pro Open Fram Wire Wrao Tin e Tin 24 Standard P c Ti 24 Wire Wrap Tin 28 Lo Pro (Open I'ram T 28 Standard P C Ti -^CRYSTALS [gt Part# CY1A CY2A CY3A CY7A CY1ZA CY1« CY19A CY22A CY30B THESE FREQUENCIES CNLY Frequency 1.000 MHz 2.000 MHi 4.000 MHz 5.000 MHz 10.000 MHz 14.31818 MHz 18.000 MHz 20 000 MHz 32.000 MHz Case/Style HC33/U HC33/U HCIBiU HC18.U HCIB.'U HC18U HC18/U HC18'U HC18/U Trice J5.95 $5.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95 XH-220BKB Kit $27.00 Special XR-2206KA Kil $17.00 EXAR WAVEFORM GENERATORS XR-205 $8.40 XR-22D6CP 4.49 XR-2207CP 3.B5 STEREO OECODtnS XR-1310CP S3.2B XR-13I0EP 3.20 XR-IBOOP 3.20 XR-2557 2.99 TIMERS XR-555CP S 39 XR-320P 1.55 XR-556CP 1 B5 XR-2556CP 320 XR-2240CP 3.25 PHASE LOCKED LOOPS XR-210 5.20 XR-215 660 XR-567CP 1 95 XR-567CT 1.70 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) $1.95 18/36 PINS (Solder Eyelet) $2.49 22/44 PINS (Solder Eyelet) S2.95 50/100 (.100 Spacing) PINS (Solder Eyelet) S6.95 25 PIN-D SUBMINATURE DB25P PLUG $3.25 DR25S SOCKET $4.95 MICROPROCESSOR COMPONENTS 8212 8214 8216 8224 CPU 8 Bit Input/Output Priority Interrupt Control Bi-Directiooal Bus Driver Clock Generator/Driver CDP1802 -wittl user manual CPU'S iucer 800B S19.95 4.95 15.95 6.95 10.95 39.95 3Vz DIGIT DVM KIT This 0-2 VDC .05 per cent digital voltmeter features the Motorola 3V? digit DVM chip set. It has 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 tils into the same case as the0-2V DVM allowing 1 1 7 VAC operation. A. 0-2V DVM with Case $49.95 B. 5V Power Supply $14.95 VECTOR WIRING PENCIL Vector Wiring Pencil P!73 consists of a nanci held leaiherwejghl (under one ounce) tool which is used lo guide ana wraoinsul.iieU wire led olf a seit- container! replaceable hootjin omo component leads Dt terminals installed on pie-punched P Pattern VectorOnrrt Connections between l*w u ratified ww and camiwneni lends pads nr terminals are nv.au By syidsuriy Compi<;|u ■.-,-, Hi 250 FT ol reflwup SPECIAL S7.95 REPLACEMENT WIRE — BOBBINS FOR WIRING PENCIL W36-3-A-Pkg. 3 250 ft. 36 AWG GREEN $2.40 W36-3-B-Pkg 3 25G It 36 AWG RED $2.40 W36-3-C-Pkg. 3 250 11 36 AWG CLEAR $2.40 W36-3-n-Pkg 3 250 tl 36 AWG BLUE $2.40 1/16 VECTOR BOARD Part No WP44 Q62XXXP 169P-M 02XXXP 64P4J 062 BJP44 062 169P4J 062 169PS.1 062 169P44 062C1 ** HEAT SINKS u 205-CB Beryllium Copper Heal Sink With Black Fnnsh tor TO-5 S .25 291-.36H Aluminum Heal Sink for TO-220 Transistors & Regulators $ .25 680-.75A Black Anofeed Aiuminuni $1 .60 HEXADECIMAL ENCODER 19-KEY PAD ^ jelfll l a * ABCDEF ■Q|DE hat . ^H • Optional Key (Period) *S Bl • - $10.95 each $19.95 HD0165 16 LINE TD FOUR BIT PARALLEL KEYBOARD ENCODER JOYSTICK These joysticks feature four * pofentiometers, fhat vary re- sistance proportional to the angle of the slick. Sturdy metal construction with plastics components only at the mova- ble join!. Perfect for electronic games and instrumentation. Special *5K Pots $4.95 *100K Pots $7.95 2519 2524 2525 2527 2529 2532 2533 Hex JO 6IT 512 Dynamic 1024 Dynamic Dual 255 BIT Dual 512 BIT Quad 60 BIT 102-i Sialic Hfo 15 x 4 Reg 8228 System Controlle MC6800L 8 Bit MPU MC6820L Periph, Interface Adapter MC6810AP1 128 x 8 Static RAM MC6830L7 1024 x 8 Bit ROM Z80 CPU Sialic Dynarnii Static Sialic Sialic Bus Driver $10.95 35.00 15.00 6.00 18.00 49.95 81H 8599 91LCI2 74200 93421 [r.ir-.b.'u.- Sialic Sialic Sialic ;:.:•.: :. W02A 5203 S2S23 82S123 74S287 3601 S 9 95 10 95 [27oir 6301 -1 6330-1 PROMS Famos Open C Install! Static Fasi Tn-Siiite Bipolar Open Collector Bipolar Tn-State Bipolar AY - 3-8500- 1 MC3061P MC4016P (74416) MC14583 MC14562 CD4059 CD407Q SPECIAL REQUESTED ITEMS CO450B CD4515 CO4520 MCM6571 MCM6574 MCM0575 17.50 17.50 MK50240 11C90 DS002GCM TIL308 19.95 3.75 10.50 MC1408L7 LO110/LD111 AY-5-9100 95H90 13.95 PARATRONICS ALLOW 1 TO 3 WEEKS DELIVERY Featured on February's Front Cover of Popular Electronics Logic Analyzer Kit Analyzes any type of digital system Checks data rates in excess of 8 million words per second ■ Trouble shoot TTL. CMOS. DTL. RTL, Schottky and MOS families Displays 16 logic states up to 8 digits wide See ones and zeros displayed on your CRT, octal or hexadecimal format Tests circuits under actual operating conditions Easy to assemble — comes with step-by-step construction manual which includes 80 pages on logic analyzer operation MODEL 100A $189.00/Kit Some applications are: — Troubleshooting microprocessor address, instruction, and data tlow — Examine contents of ROMS — Tracing operation of control logic — Checking counter and shift register operation — Monitoring I/O sequences — Verifying proper system operations during testing ©Timeband ^ Digital Alarm Clocks C-oLifJ - Ivory Case C-5Q0B - Ebony Case J18J6 . Doze Button . 100°= Solid Siaie . Large Red Led Display [.8" mem , AM.'PM Indicator i Seconds display at touch of button i Power (ailUtB indicator i One year factory warrant C-B211 Woodgraln Case 519.95 DIGITAL AUTO INSTRUMENT SEVEN DIFFERENT INSTRUMENTS! MEETS OR EXCEEDS ORIGINAL AUTOMOTIVE SPECS. Please specify which one ol trie seven models you want when ordering - these do not all come m one unit. Each model must be bought separately. . SPEEDOMETER* * 0-99 MPH ; OIL PRESSURE , WATER TEMP. '^ FUEL LEVEL 3 Percentage Low Fuel Indicator BRIGHT YELLOW ORANGE .3" LED DISPLAY! Kil includes case, bracket and all componeis — complole Nothing else to buy! 1 2 Voll NEG GRD. DIMENSIONS: 4Vi x 4 x 2 KIT: S49.95 Add $10.00 for required speed transducer ASSEMBLED: S59.95 DIGITAL STOPWATCH ■ Bnghi 6 Digit LED Display ■ Times to 59 minutes 59 59 seconds • Cryslal Controlled Time Base • Three Stopwatches m One Times Single Event — Spiil & Taylor ■ Size 4. 5" x 2.15 x .90" (4ft ounces) • Oscs 3 Penlite Cells. Kit - $39.95 Assembled — $49.95 Heavy Duty Carry Case $5.95 Stop Watch Chip Only (7205) $19.95 1-1 BUGBOOK • Continuing Education Series I BUGBOOK I & II - Basic concepts of TTL Logic — over 90 experiments 517.00/set BOGBOOK lla - Introduces UART — recommended lor RTTY enthusiast S5.0D/book BUGBOOK III - Explores 8080 chip — introduces Mark 80 Microcomputer S15.00/book 555 TIMER APPLICATIONS SOURCEBOOK WITH EXPERIMENTS — over 100 design techniques S6.95/book CMOS-M-DESIGNERS PRIMER AND HANDBOOK a complete CMOS instruction manual £6.00 Introductory Offei - all 6 books iwoiih $49.95 SPECIAL • S42.95 CONTINENTAL SPECIALTIES PROTO BOARD 6 $15.95 (6" long X 4" wide) Other CS Praia Boards PB101 - 5.8" x 4.5" PB102-7"x4.5" PB103 -9" x6" PB104 -9.5" x 8" PB203 - 9.75 x 6'/; x 2* PB203A - 9.75 x 6'A x 2« 120.00 (includes power supply! S 19.95 29.95 39.95 59.95 79.95 75.00 Logic Monitor S84.95 loi DTL, HTL, TTL or CMOS Devices PROTO CLIPS 14 PIN S4.50 16 PIN 4.75 24 PIN 8.50 DESIGN MATES DM1 - Circuil Designer 54.95 DM2 - Funclion Generator 69.95 DM3 - RC Bridge 59.95 QT PROTO STRIPS •.Vi.T.iV :ii!i«- OT type QT-59S OT-59B QT-47S QT-47B QT-35S OT-35B OT-18S QT-125 OT-8S 0T-7S # holes price 590 12.50 bus strip 2.50 ^3i*il».!,:. Experimenter 300 S 9.95 Experimented 600 $10.95 $5.00 Minimum Older — U.S. Funds Only California Residents — Add 6% Sales Tax Spec Sheets - 25c — Send 35c Stamp far 1977A Catalog Dealer Discount Available — Request Pricing 1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097 All Advertised Prices Good Thru June ELECTRONIC 'PENDULUM' CLOCK • 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 $59.95 (case assembled) QUARTZ DIGITAL AUTO CLOCK OR ELAPSED TIMER! Elapsed Timer: Hrs, Mins and Sees 12 or 24 Hr Capacity Simple Reset - Start Pushbutton Control Complete kil includes mounting bracket, case and all componenis, nothing else to buy. Features MM531 -Setup Large. ■! LED's Accuracy Petier than * mm. per mo. internal Battery backup 12 volt non-polar operation DIMENSIONS ■: ii 24 HOUR MODE Kit: $29.95 Assembled: $39.95 CASE ONLY (includes hardware, mounting bracket and bezel) $6.50 JE700 CLOCK The JE 700 is a low cosi digital clock, but is a very high quality unit The unit tea- lures a simulated walnui case with di- mensions of 6' x24 '« i It utilizes a man?? high brightness readout, and me MM53U dock chip $17.95 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 clock features big 314" high digits for viewing in offices, auditoriums, etc. Each digit is formed by 31 bright 0.2" LEO'S. The clock operates from 117 VAC, has either 12 or 24 hr. operation. The 6 digit version is 27" x 3%" K^W^ and the 4 digit is 18" x 3VV x (%". Kits come complete with all componenis, case and transformer. Specify 12 or 24 Hour Whan Ordering JE803 PROBE Tfie Logic ProDc is a uriii which is tar me most pan indcspensiDle in trouble shooting logic families TTL. DTL. RTL. CMOS tl derives Ihe power n needs to operate directly oft ol Ihe circuil under drawing a scant 10 inA max It uses a MAN3 readout to indicale any til the lollowuio status by these symtiols |H) ■ I (LOW) ■ o (PULSE] - P The P(Obe can delect hitjh irwjin'nty pulses I0-I5 MHz 1 1 Be used al MOS levels or rataal damage '- _y $9.95 Per Kit printed circuit board PL 5V 1A Supply This is a standaio TTL power supply using tne wen known LM309K regulator :C to provide a solid i AMP of current at 5 volis. We try to make things ensy lor you Oy providing everything you need in one package including the — '" "" onl » $9.95 Per Kit ^p 7400N TTLj SN 7-5 CON SN7401N SN7402N SN7403N SN7404N SN74Q5N SN7406N SN7407N SN7408N SN7409N SN7410H SN7411N 5N7412N SN7413N SN7414N SN7-116N SW7417M SN7420N SN7421N 5N7422N SN7423N SN7425N SN7426N SN7427N SN7429N SN7430N SN7432N SN7437N SN743BN SN7439N SN7440N SK7441N SH7442N SN7443N SN7444N SM7445N SN744GN SN7447N SN7448N SN7450N SN7451N SN7453N SN7454N SN7459A SN7460N SfJ7470N SN7472N SN7473N SN7474N SN7475N' SN7476N' SN7479N SN7480N SN7482N SN7483N SN7485N SN7486N SN7488N SN7489N SN7490N SN7491N SN7492N SN7493N SN7494N SN7495W SN7496N SN7497N SN741O0N SN74107N SN74121N SN74122N SN741Z3N SN74125N SN74126N SN74132N SN74136N SN74141N SN74142N SN74143N SN74144N SM74145N SrJ74147N SM74148N SN74150W SN74151N SN74153N .50 Ml SN74154N 1.00 SN74155N .99 SN74156N .99 SN74157N .99 SN74160N 1.25 SN74161N .99 SN74163N .99 SN74164N 1.10 SN74165N 1.10 SN74I66N 1.25 SN74T67N tiy SN74170N ■39 SN74172N 3-50 SN74173N 2- 49 SN74174N -45 SN74175N .75 SN74176N 49 SN74177N .49 SN741B0N .79 SN74181N .79 SN74182N -89 SN741B4N 4.00 SN741B5N 1.00 SN741B6N -39 5N74187N -39 SN74188N -39 SN74190N •50 SN74191N .60 SN74192N ■60 SN74193N 1.09 SN74194N ■ 95 SN74I95N LIS SM74196N J 00 SN74197N 4.50 SN7419BN 180 SN74199N 115 SN74200N 2.35 SN74279N 2.00 SN74251N <™ SN74284N 79 SN74285N 89 SN74367N MANY OTHERS AVAILABLE ON REQUEST 20% Discount tor 100 Combined 7i9a 331.00 2N?2?I -i SI .00 2>;?2??!, 5S1.0C 2N2363 5 SI 00 JN2;lSW 4S1.00 2N3J84 4.SI .00 2N2906A ■l.'SI .00 ?h; ! 9(i;a 5.-S1 .00 2N2<)35 5/S1.00 2N3053 Z31.03 ?.N1Q55 S 89 Mji :W)f> si.no MJf M!/) SI 25 2N3392 5 SI 00 2N339S 5S100 PN3569 2M3704 2li3705 2N3706 2N3707 2N37I1 2N3724 2N3725 2N3903 2N3904 2H3905 2N3906 2N4013 2N401-1 2N4123 4 '11 00 4S1.00 SSI. 00 SSI DO SSI 00 &SI.00 £.'S1 .00 S 65 S1.00 &S1 .00 ■VS1.00 4'S1 .00 4 SI .00 3S1 .00 v PN4P49 PN4250 2N4400 ZN4401 2N4402 2N4403 2NJJ09 2N5085 2N5087 2M503E 2N50B9 2N5129 2NM3B 2N5139 2NS209 2N5951 C106B1SCR 2H5432 CAPACITOR 10 pi 22 pi 47 pi 100 pt 220 pi 470 pi .001 ml .0022 .0O47mt ,01ml .1/35V .15/35V 22/35 V .33/35V .47/35V .68/35V 1.0/35V 58 VOLT CERAMIC DISC CAPACITORS 1-9 10-49 50-100 1-9 10-4: .05 .04 .03 .00 VF 05 .04 .05 .04 .03 .004 VF .05 -04 .05 .04 03 0^|lF .05 .04 .05 .04 .03 .022 f iF .06 .05 .05 .04 .03 .047»iF .06 05 .05 .04 .035 VF 12 .09 100 VOLT MYLAR FILM CAPACITORS 12 .10 .07 ,022mf ,13 .11 .12 .10 .07 ,047mf .21 .17 .12 .10 .07 .1ml ,27 .23 .12 .10 .07 .22ml .33 .27 + 20% DIPPED TANTALUMS (SOLID) CAPACITORS .28 .23 .17 1.5/35V .30 .26 .28 .23 .17 2.2i25V .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 .28 .23 .17 15/2W .63 .50 MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS CORNER Axial Lead .47/50V .15 1.0/50V .16 3.3/50V .15 4.7/25V .16 10/25V .15 1O/50V .16 22/25 V .17 22/50V .24 47/25 V .19 47/50V .25 100/25V .24 100/50V .35 220/25V .32 220/50V ,45 470/25V .33 1000/1 6 V .55 2200/16V .70 13 .47,'25V .47/50V 1.0/16V 1.C/25V 1.C/50V 4.7/16V 4.7/25V 4.7/50V 10/16V 10/25V 10/5DV 47/50V 100/ 16V 1O0/25V 100/50V 220/1 6V 470/25V Radial Lead .15 Circle 15 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/M 4802-1 1 15-501) FEATURES: • Reed switch technology • 54 data keys • 28 special keys detachable with cable LOGIC UNIT (P/N 4802-1157-502) FEATURES: • 1024 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. tc AS IS •>f 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 .00 ft 50 cond. 1 ft/$9.00 SP-234-B .90 ft 32 cond. 1 ft/$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. #24 12 " 22 14 " 22 29 " 22 Great savings as 10' $2.50 3.00 3.50 7.50 these 50' 9.00 11.00 13.00 28.00 100' 15.00 18.00 21.00 45.00 are about 1 /4 book prices. All fresh & new. sffeMMiz Precision 16 pin DIP network as shown. Each resistor 1K. For pull-up/pull-down interface networks. Value over $1.00 each; New, CTS or Beckman J^J^U^-FLFLR- SP-320 pack of 6 $1 .00 l ^^^p^ i 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. 174 kits by @ cyberccm KitsbyWALCON 4Kx8 Static Memories MB-1 MK-8 board, 1 usee 2102 or eq. PC Board $22 (Not for S-100 Buss) MB-4 Improved MB-2 designed for 8K "piggy-back" without cutting traces. PC Board $30 Kit 4K .5 usee. ...$129.95 Kit 8K .5 usee. ...$199 MB-31702A's Eroms, Altair 8800 & Imsai 8080 compat- ible switched address & wait cycles. 2K may be ex- panded to 4K. Kit less Proms. ...$65 2K Kit. ...$105 4K Kit.. ..$145 MB-6 PC Board $35 MB-6A 8Kx8 Switched address and wait assignments. Memory protection is switchable for 256, 51 2, 1 K, 2K, 4K and 8K. 91 L02A .5 usee rams. Altair 8800& Imsai compat- ible. With battery power option. Kit . . . .$250 Assembled & tested $290 I/O Boards 1/0-2 I/O for 8800, 2 ports, committed pads for 3 more. other pads for EROMS UART, etc. Kit.. ..$55 PC Board only $25 64 x 16 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. Kit $179.95 PC Board $35 SP-1 Synthesizer Board Computer controlled wave forms 9 octaves 1vrms V4% distortion includes high level music langauge. Kit $250 Altair Compatible mother board. Room for 15 connec- tors 11" x 11!6" (w/o connectors) $45 With 15 connectors $105 Altair Extender Board (w/o connectors) $9.00 With w/w connector $13.50 100 Pin spec WW or Soldertail both fit Imsai or SSM Mother Board $5.00 each 10/$44. 1702A EROM $ 8.00 programming send hex list 5.00 AY5-1013UART 6.95 2513 Prime spec, upper or lower case 11.00 8080A prime CPU 25.00 8212 prime latch buffer 4.00 8224 prime clock gen 5.00 8228 prime sys controller 8.90 (AVAILABLE MID-MAY) MM-1 8Kx8 Ram Board First fully buffered 8K ram board. Addresses and data are fully buffered. Low power rams used. Protect is reset with a single switch. Documentation is available for $5 which is refunded at time of purchase of board or kit. MM-1 Kit $245 Assembled 295 PC Board only 30 * 21 02AL-4 FULL SPEED MEMORY (500ns) • * Nearly Si less power consumption of even a * 21L02A PRIME FROM NEC * $2.00 EACH 32 FOR $1.80 EACH * 64 - $1 .70 1 28 FOR $1 .60 EACH 82S06 82 SO 7 82S11 82S12 82S17 82S23 82S123 2.00 2.00 2.00 2.00 2.00 2.50 3.00 82S126 82S129 82S130 82S131 74S206 74S412 3.50 3.50 3.95 3.95 2.10 4.00 74C200 8573 8574 8575 8576 8577 8578 5.50 4.50 5.50 4.50 4.50 3.50 4.00 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7413 7414 7416 7417 7420 7423 7425 7426 7427 7430 7432 7437 7438 7440 7441 7442 7443 7444 7445 7446 7447 7448 7450 7451 7453 7454 7460 .16 ,16 .21 .16 .18 .24 .20 .29 .25 .25 .18 .30 .45 .70 .35 .35 .20 .37 .30 .30 .35 .25 .30 .27 .27 .15 .85 .60 .75 .75 .75 .80 .70 .80 .25 .25 .25 .20 .20 7470 7472 7473 7474 7475 7476 7480 7483 7485 7486 7489 7490 7491 7492 7493 7494 7495 7496 74100 74107 74109 74121 74122 74123 74125 74126 74132 74141 74145 74147 7414B 74150 74151 74153 74154 74155 74156 74157 74160 .45 .40 .35 .35 .50 .30 .50 .70 .90 .40 2.00 45 .75 .50 .50 .80 .75 .90 1.00 .40 .90 .40 .50 .70 .60 .60 1.00 1.15 1.15 2.35 2.00 1.00 .80 .90 1.00 1.00 1.00 1.00 1.25 74161 74162 74163 74164 74165 74166 74170 74173 74174 74175 74176 74177 74179 74180 74181 74182 74184 74185 74190 74191 74192 74193 74194 74195 74196 74197 74198 74199 74200 74251 72284 74285 74365 74367 74368 MH0025 MH0026 95H90 1.00 1.50 1.00 1.10 1.10 1.25 2.10 1.50 1.95 .95 .90 .90 .90 .90 2.50 .95 1.95 2.20 1.15 1.25 .90 .90 1.25 .75 1.25 .90 1.75 1.75 4.95 1.75 4.95 4.95 .90 .75 .90 2.50 2.95 9.95 MM5309 8.00 2501 B $1.25 1101 .40 74LS00 .40 74L00 .25 74L78 .90 MM5312 4.00 2503V 2.00 1103 1.25 74LS01 .50 74L01 .25 74L85 1.40 MM5313 4.00 2504V 2.00 2101 4.50 74LS02 .40 74L02 .25 74L86 .75 MM5320 4.95 2505KN 2.00 2112 4.50 74LS03 .40 74L03 .25 74L89 3.50 MM5554 1.90 2507V 1.25 2602 1.60 74LS04 .45 74L04 .30 74L90 1.50 MM5556 2.50 2509A 2.00 4002-1 7.50 74LS05 .45 74L05 .40 74L91 1.50 MM5055 1.90 2510A 2.00 4002-2 7.50 74LS10 .40 74L06 .30 74L93 1.70 DM8836 .60 2511 A 2.80 MM5262 1.00 74LS1 1 .50 74L08 .40 74L95 1.70 DM8837 1.50 2517V 1.25 7489 2.00 74LS12 .55 74L09 .40 74L98 2.80 80C95 1.10 2518B 1.50 74200 4.95 74LS20 .40 74L10 .30 74L123 1.50 80C97 1.00 251 9B 2.80 74S89 3.50 74LS22 .45 74L20 .35 74L154 2.00 80L97 1.50 2521V 1.50 74C89 3.50 74LS27 .45 74L26 .40 74L164 2.50 81L22 1.50 2522V 2.00 74L89 3.50 74LS30 .40 74L30 .40 74L165 2.50 81L23 1.90 2525 V 2.80 8T80 2.50 74LS42 1.50 74L32 .45 74L192 1.25 81L51 2.50 2527V 2.80 8T97 2.00 74LS55 .40 74L42 1.50 74L193 1.20 85L52 2.50 2528V 2.80 INTEL 74LS73 .65 74L51 .35 MC4044 2.25 85L63 1.25 2529V 2.80 8216 4.95 74LS74 .65 74L54 .45 N8263 3.50 86L70 1.50 2532B 2.80 8214 8.30 74LS76 .65 74L55 .35 N8826 2.50 86L75 1.90 2533V 2.80 8251 14.50 74LS151 1.55 75L71 .30 DM8131 2.50 86L99 3.50 91L02APC 2.55 8255 14.50 74LS174 2.20 74L73 .55 8T16 2.00 86L12 .80 32 ea. 2.40 1488 1.50 74LS1 75 1.95 74L74 .55 8T20 2.00 8T13 2.50 64 ea. 2.25 1489 1.50 74LS192 2.85 74L75 1.20 8T10 2.00 uMO 419 Portofino Drive San Carlos, California 94070 Please Mnd for xlstor, IC and kit list For large orders please send money order or cashier's check to avoid delays in waiting fr checks 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 both 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 ». — — t t - t t:ii 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 SPECIAL DEAL: IMSAI WITH DISK $1325 P 1 -rrs, m Iff g^WS* 1 $1 4900 The S.D. Sales Co. Z-80 CPU Kit For S-100 Buss SPECIAL DEAL No. 2 IMSAI 8080 with 22-SLOT MB UPGRADED WITH Z-80 CPU $750° POWER TRANSFORMER FOR ALTAIR® TYPE BUSS Designed to deliver +18VDC @ 2A and 5VDC @ 22A with proper bridges and fil- tering. 29 50 each NEW FROM IMSAI 32K RAM CARDS for S-100 Buss Full Speed — Low, Low Power $725 00 D-CONNECTORS Blmboards for Prototyping $13 50 each 4 for $44°° Male S3 00 Female $4°° Pair $6 50 proko ironies 439 marsh street san litis obispo, California 93401 805/544/5441 Delivery: Slock to 45 days from receipt of orrjer. We pay all U.P.S. shipping on U.S. orders. Check or money order accepted No P.O.s except by above terms. California residents add 6% tax. Prices subject to change without notice. Circle 57 on inquiry card. New Component Values PRIME, NEW 2708 IK x 8 EP ROM - $47.95 PRIME, NEW 2716 2Kx 8 EPROM - $77.95 zilog z-80's $47.95 91 L02C's , 300ns low-power - $1.89 PROTOTYPE BOARDS Surplus Bargains Prototype boards for the S-100 bus are available from many others —but only MINI MICRO MART supplies four different types. Two are wire-wrap versions and two are general-purpose DIP, for either ww or point-to-point wiring. All boards come with a 5V regulator and a heat sink. The two "bus" versions are unique and have cir- cuitry etched on for buffering and address decoding, and include the decoders and necessary tri-state buffers. (Illustrated above is the general-purpose DIP version, MODEL 01-2115.) 01-2115 General-purpose DIP Prototype Board $ 18.95 01-2116 Wire-wrap Prototype Board $ 19.95 01-2136 Gen. -purpose DIP Bus Interface Bd.. . $29.95 01-2112 Wire-wrap Bus Interface Board $30.95 AUDIO CASSETTE INTERFACE This simple board can be used with any minicomputer or TV term- inal that uses a UART with a 16X baud-rate clock. Designed for the St. Louis BYTE standard, it also provides for a tone/no-tone and a HITS interface. Available in kit form, order as — 51-2166 Audio Cassette Interface $24.95 POWER SUPPLY Surplus power supply (made by Milwaukee Electronics) removed from used Mohawk Data equipment, excellent condition 'Sorry we can't give full details at press time, but we're sure that it will supply all the +5 you'll ever need as well as other voltages. 'Has all the good things — such as over-voltage protection. We hope to have schematics to ship with these units. Limited supply. A REAL VALUE! Order as - 42-5005 Power Supply $ 24.95 TELETYPES MINI MICRO MART has one of the largest selections of used, reconditioned, and rebuilt Teletypes in the U.S. — RO-33's (printer only) $395 to $595 KSR-33's (keyboard & printer) $495 to $695 ASR-33's (prntr.,keybd ..reader & punch) . $695 to $895 Model 35 RO's, KSR 's and ASR 's also available. SURPLUS PERIPHERALS We have a tremendous inventory of used and like-new computer peripherals which we have rescued from large computer systems. Among them are: Delta video terminals, Hazeltine 1000 video terminals, Univac 30 CPS serial printers, Singer 30 CPS serial printers, 9-track digital reel-to-reel recorders, used commercial minicomputers and intelligent terminals. Also available are a wide variety of transformers, power-supply kits, and surplus power supplies. Send stamped, self-addressed envelope for details on any advertised items or for a copy of our catalog. Add $2 for handling, shipping & insurance for each item ordered. MiniMicroMart 1618 James Street, Syracuse, N.Y. 13203, Phone: (315)422-4467 Circle 279 on inquiry card. S.D- SALES CO. p O. BOX 28810 -@ DALLAS, TEXAS 75228 JUMBO LED CAR CLOCK $16.95 KIT Alarm Option - $1.50 AC XFMR -$1.50 THE HOTTEST SELLING KIT WE EVER PRODUCED! You requested it! Our first D.C. operated clock kit. Professionally engineered from scratch. Not a makeshift kluge as sold by others. Features: A. Bowmar Jumbo —.5 inch LED array. ~i oC^V. B. C. D. E. F. MOSTEK - 50250 - Super Clock Chip. 12 or 24 Hr. Real Time Format. S°L Perfect for cars, boats, vans, etc. On board precision crystal time base. ^qO S P.C. Board and all parts (less case) included. THIS MONTH'S SPECIALS AMD-8080A $14.95 Z-80 CPU 49.95 82S129 1K PROM 2.50 60 HZ CRYSTAL TIME BASE S.D. SALES EXCLUSIVE! $5.95 ea. .00 2 ,§A0J KIT FEATURES: A. 60HZ output with accuracy comparable to a digi- tal watch. B. Directly interfaces with all MOS clock chips. C. Super low power consumption (1.5 Mt D. Uses latest MOS 17 stage divider IC. E. Eliminates forever the problem of AC line F. Perfect for cars, boats, campers, or even for port- able clocks at ham field days. G. Small size; can be used in existing enclosures. Kit includes Crystal, Driver IC, PC board, plus all necessary parts and specs. At last count — over 20,000 sold! 1702A2K EPROM We tell it like it is. We could have said these were factory new, but here is the straight scoop. We bought a load of new computer gear that contained a quantity of 1702 A's in sockets. We carefully removed the parts, verified their quality, and are offering them on one heck of a deal. First come, first served. Satisfaction guaranteed! U.V. Eraseable. NEW PRICE! $2.95 ea. (2.3 US access time) i typ.) glitches. UP YOUR COMPUTER! 21 L02-1 1 K LOW POWER 500 NS STATIC RAM Time is of the essence! And so is power. Not only are our RAM's faster than a speeding bullet but they are now very low power. We are pleased to offer prime new 21L02— 1 low power and super fast RAM's. Allows you to STRETCH your power supply farther and at the same time keep the wait light off. 8 for $12.95 rt.i-r.r- S.D. SALES EXCLUSIVE 5)1^.95 MOS 6 DIGIT UP-DOWN COUNTER $12.95 40 PIN DIP. Everything you ever wanted in a counter chip. Features: Direct LED segment drive, single power supply (12 VDC TYPE.), six decades up/down, pre-loadable counter, separate pre-loadable compare register with compare out- put, BCD and seven segment outputs, internal scan oscilla- tor, CMOS compatible, leading zero blanking. 1MHZ. count input frequency. Very limited quantity! WITH DATA SHEET I 1000 MFD Filter Caps Rated 35 WVDC Upright style with PC leads. Most popular value for hobby- ists. Compare at up to $1.19 ea. from franchise type electronic parts stores. S.D. Special 4/$l. Slide Switch Assortment Our best seller. Includes mini- ature and stan- dard sizes; sin- gle and multi- position units. All new, first name brand. Try one package and you'll reorder more! Special 12/$ 1.00 RESISTOR ASSORTMENT 'AW 5% & 10% PC leads. A good mix of values. 200/$2. I— nmJ 7400— 19c 7411- 74LS00— 49c 7413- 7402— 19c 7416- 74LS02— 49C742C 7404— 19c 74L04— 29c 74S04— 44C 74LS04-49C 7406— 29c 7408— 19c 7410— 19c 29c 50c ■69c 19c 7430— 19c 7432— 34c 7437— 39c 7438— 39c 7440— 19c 7447— 85c 7448— 85c 7451— 19c 7453— 19C 7473— 39c 7474— 35c 74LS74-59C 7475— 69c 7476— 35c 7480— 49c 7483— 95c 7485— 95c 7486— 45c 7490— 65c 74153— 75c 74LS90— 95c 74154-1.00 7492— 75c 7493— 69c 7495— 75c 7496— 89c 74121-38C 74123-65C 74132-1.70 74157— 75c 74161— 95c 74164-1.10 74165-1.10 74174— 95c 74181-2.50 74191-1.25 TTL INTEGRATED CIRCUITS 74S138-1.95 74192-1.25 74141-75C 74193-1. 00 74195— 69c P.C. LEAD DIODES 1N4148/1N914 100/$2.00 1N4002-1A. 100 PIV 40/$l. HEAVY DUTY Full Wave Bridge 25 AMP 50 PIV $1.25 Disc Cap Assortment PC leads. At least 10 different values. Includes .001, .01, .05, plus other stan- dard values. 6o/$i.oo "23y $9.95 kit P.C. Board - 3.00 AC XFMR - 1.50 Do not confuse with Non-Alarrr kits sold by our competition! Eliminate the hassle — avoid the 5314! SIX DIGIT ALARM CLOCK KIT We made a fantastic kit even better. Redesigned to take advantage of the latest advances in I.C. clock technology. Features: Litronix Dual Vz" displays, Mostek 50250 super clock chip, single I.C. segment driver, SCR digit drivers. Greatly simplified construction. More reliable and easier to build. Kit includes all necessary parts (except case). P.C.B. or XFMR optional. NEW! WITH JUMBO LED READOUTS! Motorola SCR 2N4443. 8 AMP 400 PIV. P.C. Leads 3 /$i_ FAIRCHILD -TBA641 4W. Audio power Amp. Just out! In special heat sink DIP. One super audio IC. $1.50 with data FND-359 -Led Readout .4 IN. Common Cathode. High effeciency. Has FND- 70 PIN OUT. 79 C OUR CATALOG is chocked full of rare parts bargains, deals, RAM or CPU kits, plus much more. Yours FREE! PRICES SHOWN SUBJECT TO CHANGE WITHOUT NOTICE. COMPUTER POWER SUPPLY . jm— -^ _ A very fortunate purchase. One of the best industrial quality REG- SIS 95 ULATED supplies we have seen. High performance, small size. 1 *"" Input is 120 VAC 60 HZ. Has the following regulated outputs: -5VDC@800MA; -15VDC @ 1.25 AMP; -25VDC @ 180 MA. Sold at a fraction of original cost. Do yourself a favor and order NOW. We expect a quick sellout. AMD - 1702A Factory Prime Units. Brand New. 1.5 micro-seconds access time. $4.95 each. HUGE FACTORY DIRECT PURCHASE! Terms: Money back guarantee. No COD. Texas residents add 5% sales tax. Add 5% of order for postage & handling. Or- ders under $10. add 75c. Foreign orders: US funds only! Call your Bankamericard or Master Charge order in on our continental United States toll free Watts: 1-800-527-3460 Texas Residents Call Collect: 214/271-0022 Special Thanks to: Dennis, Fred, Abe, Bill, Sam, Hal, Tom, Alex, John, Ely, and Larry S.D. SALES CO. P.O. BOX 28810 Q Dallas, Texas 75228 ORDERS OVER $15.00 - CHOOSE $1.00 FREE MERCHANDISE Circle 27 on inquiry card. NEW COMPUTER INTERFACE BOARD KIT Our new computer kit allows you to interface serial TTL to RS 232 and RS 232 to TTL There are four of these supplied with the kit, so you can run up to four devices on one TTL or four separate TTL to RS 232 devices. Typical use: You can use your computer ports to run an RS 232 printer, video terminal and two other RS 232 devices at once, without constantly connecting and disconnecting your terminals. Example: Out store to printer — Voltage requirement + 5V and ± 5V or ± 12 V depend- ing on your RS 232 device. We supply — board, connectors, documen- tation and components. Sorry, we do not supply case or power supply. GENERAL PURPOSE COMPUTER POWER SUPPLY KIT This power supply kit features a high frequency torroid transformer with switching transistors in order to save space and weight. 115V 60 cycle primary. The outputs with local regulators are 5V to 10A, in one amp increments, - 5V at 1A, ± 12V at 1A regulators supplied 6 340T-5 supplied. $79 00 UNIVERSAL 4K MEMORY BOARD KIT $74 50 This memory board kit can be used with most microcomputers. Some of the outstanding features are: 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 270B-8KEPROM S29.5 2522 STATIC SHI FT REG . . ... S 1.95 2513CHARACTER GEN S 9 95 2518 HEX 32BITSR . S 3 50 2102-1 1024 BTRAM $ 1.39 5280 4K DYNAMIC RAM $ 6.95 5202A UV PROM S 6.95 MM5203 UV PROM S 6.95 1 702A UV PROM S 6.95 5204-4K PROM . . . _ S10 95 AY-5-1013 UART. S 6.95 miniature" "multi-turn TRIM POTS 100. 500, 2K,5K,10K,25K,50K,100K,200K 1 Meg. S.75e;ich 3/S2.00 MULTI TURN TRIM POTS Similar to Btntms 30 tO style 3/T6"x5/8"x1 1/4"; 50. 100. IK, 10K .50 K j> hms SI. 50 eg. . 3/S4.00 LIGHT ACTIVATED SCH's 10 18, 200V 1 A S 1.75 TRANSISTOR SPECIALS 2N358G NPN Si TO-66 S .95 2N3772 NPN S. TO-3 S 1.60 2N4S6A PNP GE S ,75 2N4908 PNP S. TO-3 S 1 .00 2N6056 NPN Si TO-3 Darlirtfltan B 170 2N5086 PNP Si TO-92 4/S 1 .00 2N4898PNPT0 66.. S .60 2N404 PNPGE TO-5 5/S 1 .00 2N3919 NPN Si TO 3 Rl- S 1 .50 MPS A 13 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 Si TO 3 S .80 2N3904 NPN Si TO-92 5/S 1 .00 2N3906 PNP Si TO-92 5/S 1.00 2N5296 NPN Si TO-220 S .50 2N6109 PNP Si TO-220 S .55 2N3638 PNP Si TO-5 5'S 1.00 2N65I / NPN TO-92 S. 3/S 1 .00 C/MOS {DIODE CLAMPED) MCQ2 .22 4015 9b 4029 1 IU 74C10- .22 4016- .40 4030 .22 /4C193 1.50 4017-1.05 4033 150 4001 .22 4018- 1.00 4035 1 10 4002 ,22 4019 25 4042 78 4006 1 20 4020 1.05 4046-2.25 4007- 22 4022 95 4047 2.00 4009 42 4023 .22 4049 4 40T0- .42 4024 .75 4050 40 4011- .22 4025 .22 4055 I 50 4012- .22 4026 1 25 4066 80 4013- .40 4027 40 4071 22 4028 88 4070 1.05 IN 4148 HWMi . . . 15 ■51 55 'U'A ;-:i ( H't ICAI LIM1 1 SWITCH SI 50 LED READOUTS FND*359C.C. S .55 MAN-7-.3" C.A. S .95 FND 503 C.C. Si. 05 NS 33-3 dig. army S .75 FND510C.A. Si. 05 DL 747 C.A. SI. 95 HP 7740-.3" C.C. Si. 25 PRINTED CIRCUIT BOARD 7 WATT LD-65 LASER DIODE IR $a95 2N 3820 P FET $ 45 2N 5457 N FET S .45 2N2646. . . . S .45 EP 900 TRIGGER DIODES . . 4/ $1.00 2N 6028 PROG. UJT $ .65 8 PIN DIP SOCKETS S .24 14 PIN DIP SOCKETS S .25 16 PIN DIP SOCKETS , . S .28 18 PIN DIPSOCKETS .... S .30 24 PIN DIP SOCKETS $ .40 28 PIN DIP SOCKETS $ .50 40 PIN DIP SOCKETS S .60 VERIPAX PC BOARD l liis board is u 1/16" single sided papei epoxy board, 4JS"x6K" DRILLED and ETCHED which will hold up to 21 single 14 pin IC's oi 8, 16, Oi LSI DIP IC's with busses for power supply cunnecmi S4.00 MV5691 VtLLOW-GHEEN BIPOLAR LED S1 25 FP 100 PHOTO TRANS S .50 RED, YELLOW OR GREEN LARGE LED's 1L-5 (MCT-2) S .75 MOLEX PINS I00/S1.00 1000/S8.00 10 WATT ZENERS 3.9. 4.7. 5.6, 8.2, 12,15.18,22.100,l50o. 200V . on, S .60 1 WATT ZENERS 4.7, 5.6, 18 or 22V ea. S .25 MC6860 MODEM CHIP S9.95 TANTULUM CAPACITORS Full Wave Bridges SILICON SOLAR CELLS 2V»" diameter ' at 500 ma. $4.00 / . 2V at 200 mils $2.00 309K 723 LM 376 320K-5 or 15 320T-5,12,15 or 24V S .50 S .60 SI. 40 RS232 CONNECTORS f 340K-5,12,15 or 24V. ... .$1.25 340T-5, 6, 8. 12 15,18 or 24VS1.10 78 MGS Si. 35 79 MGS .... .SI. 35 die ... S3.25 22UF 35V 5'SI.OO 47UF 35V 5/S1.00 -68UF 35V 5'S 1.00 1UF 35V G/S1.00 2.20UF 20V5/S1.00 3 3UF 35V 4'S1.O0 4.7UF 10V 5/S1.00 G.SUF 35V 3-S 22UF 35V S 30UF 6V S 331)1 :!5V 47UF 20V 100UF 35V 150UF 15V M7001 ALARM CLOCK CHIP. . . NATIONAL MOS DEVICES MM 1402 MM 1403 MM I 404 - MM5013- MM5016- 2.50 MM5017- 2.70 MM0055- 2.25 MM5056 7.25 MM5057 - 2.25 MM5058 2.75 MM50G0- 2.75 MM5061-2.50 MM5555- 4.75 MM555G 4.75 MM5210 1.95 MM52GO 1.75 Silicon Power Rectifiers PRV 1A 3A 12A 50 A 125A 100 .06 .14 .30 .80 3.70 200 .07 .20 .35 400 .09 .25 50 1.15 4.25 1.40 6.50 GOO .11 .30 .70 1.80 a. 50 800 .15 .35 .90 2.30 10.50 1000 .20 .45 1.10 2.75 12.50 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 TTL IC SERIES 7445- .70 1> 7446- .70 1' 7447- 7448- 7450- 7472- 7473- 7474- 7475- 7476 7480- 7483- 7485- 7486 7489 7490 7491- 7492- 7493- 7494- .30 1.85 7495- 7496- 74107- 74121 - 74123- 74125 74126 74132 74154 74155 74157 74161 74163 74164 74165 74173 74174 74175 74176 74177- 741 ao 74181- 74190 - 74191- 74192 74193- 74194- 74195 74196 74257 74279 75324 75491 75492 2.10 1.20 1.20 MINIATURE DIP SWITCHES CTS 2064 Foui spst switches in one n.nid p paeki l]C. SI 75 CTS-20G-8 Eigh SPST s witches in .i 16 pin DIP pdckage Si .95 j-8V SPST M.n >i)cn, 330OI1H 600 l_?0 KJ5 A 00 SANKEN AUDIO POWER AMPS i 1010 G 10 WATTS. . . . S 7.95 S. 1 020 G ?0 WATTS S 1 595 Si 1050 G 50 WATTS S2/95 CCD 110 LINEAR 256 XI BIT SELF SCANNING CHARGED COUPLED DEVICE SG5U0 CCD 201 100 x 100 CHARGE COUPLED DEVICE ., S9900 cataloy N:;ituiirui ml Rectifiers . Camhndyn. M.tss. 74LS SERIES 74LS00 - .25 74LS02 - .25 74LS04 - .29 74LS08 - .25 74LS10 - .25 74LS11 - .25 74LS20 - .25 74LS21 - .25 74LS22 - ,25 74LS27 74LS30 - 74LS32 - 74LS37 - 74LS38 - 74LS74 74LS90 - 74LS132 74LS138 74LS139- 74LS155- 74 LSI 57 74LS160 74LS162- 74LS163 - 74LS175 - 74LS193 74LS258 - 74LS367 74LS368 LINEAR CIRCUITS LM 101 .75 LM 301/748 .31 LM 307 .95 1.10 1.40 LM 308 LM311 LM 319 LM 324 LM 339 LM 370 LM377 LM380 LM 381 LM 382 LM 537 LM 553 LM 555 LM556 560 562 565 703 709 710 71 1 741 Cor V 747 1310 1456 1458 CA 3046 CA 3047 3900 8038 .95 .95 .95 1.05 1.10 1.15 2.50 - 2.50 - 2.50 .44 - .85 -2.00 -2.00 1.10 - .90 .25 - .35 - .35 ALCU MINIATURE TOGGLE SWITCHES MTA 106 SPDT SI .20 Terms: FOB Cambridge, Mass. Send Check or Money Order. Include Postage, Minimum Order $5.00, COD'S $20.00 SOLID STATE SALES P.O. BOX 74B SOMERVILLE, MASS. 02143 TEL. (617) 547-4005 Circle 59 on inquiry card. WE SHIP OVER 95% OF OUR ORDERS THE DAY WE RECEIVE THEM DIP PLUGS AND COVERS Use for mounting diodes, res stors, jumpers, etc. Gold p ated parts for long wear PLUGS COVER: 1 -24 25-49 50 -99 1-24 25-99 8 pin .46 .39 .32 .10 .09 14 pin .48 .40 .34 .10 .09 16 pin .56 .47 .38 .10 .09 24 pin .79 .72 .65 .15 .13 40 pin SI. 23 $1.08 .93 .25 .22 DIP PLUG INTERCONNECTS Ideal for use from board to board, remote switches, in test equipment, lamp panels, etc. Made from gold plated connectors, color coded ribbon cable, molded plugs. Very flexible and durable. To order, make up part number from characteristic and find price in chart. For instance: S-14P-18 is single ended 14 pin nterconnect 18 inches in length. Price is $1.72. D-24P-06 is double ended 24 pin, 6 inches in length. Price is S4.55. Quantity pricing is available. PRICE CHARTS No Of Pins SINGLE END PRESTRIPPED WIRE WRAP WIRE Highest quality 30 ga. Kynar insulated silver plated wire for wrapping. Stripped I" on both ends. Indicated lengths are lengths of insulated portion. Packed 100 per sturdy plastic vial or 1000 per poly bag . Compare our prices 1 1 I . Available in Black, Red, Yellow and Green. State color desired. Length Price per tube of 100 Price per bog of 1000 I" $1 . 48 (WW30VC- 11 $1 1 . 84 (#WW30B K- 1 ) 2" $1.60 (WW30VC-2) S12.80 (*WW30BK-2) 4" $1.85 (WW30VC-4) $14.80 (*WW30BK-41 6" S2.20 (WW30VC-6) $17.60 (*WW30BK-6) Dealer Inquiry Invited 100 ft. roll $3.45 10 rolls, mixed colors. .$24.00 500 ft. roll $9.95 4 rolls, mixed colors. .$35.82 1,000 ft. roll $17.85 4 rolls, mixed colors. .$64.26 WIRE WRAP I.C. SOCKETS, 3 LEVEL GOLD 14 pin 38c ea, 10 for S3. 60 16 pin 42c ea, 10 for $3.90 HIGH CURRENT STUD DIODES D2131 200V, 25A $ .85 D2I35 400V, 25A $1.00 D2138 600V, 25A $1.55 3289 200V, 10OA $5.85 Contract Cancellatiot SN7490 39<; LM320H-12...S1 .29 1N5231A 25c 1N5226B 35c 741(mini-dip,.3/$l Specials All Full Spec, NEW!! 2N3734 38$ 2N5861 75c 1N3572 90c G.E.D45C5 44^ 50V, 3Amp Epoxy I 2N3773 $1 .75 2N4401..5/$1 2N4403..5/SI 2N1557..$1.39 Ige 79c m?cta Be sure to gef the latest edition of the TRI-TEK flyer. Packed with good news on the latest components andjUerature II ! I ! ! ! ! ! I ! I I ! || ! I 78HGKC 5A VARIABLE REGUTATOR 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 BOOK FROM NATIONAL MOS LSI. Giant data book filled with spec and apps on large scale MOS circuits from National Semiconductor Corporation Price includes shipping in U..S„ only. ..S4. 25 Outside U.S., add postage for 2 lbs. i^; ► PROFESSIONAL TEMPLATES -LOGIC SYMBOLS -S tand MIL806-B 3/4 Size $3.50 1/2 Size (Handy shirt pocket size) $3.25 Computer Flow Chart Symbols $3.50 Fast Signal Diode 115V VR 100mA If. Reverse recovery time is less than 20 nS at 100mA forward I 6 pf cap. Same size as 1N914, 1N4148. D600. ,20/Sl TO-5 Heat Sink, THERMALLOY 22118 2-piece black anodized for maximum heat dissipation. HS2211B. 5/Sl 6.8V, 50Watt Zener. Mode by Motorola in TO-3 case. Gold plated. SI. 00 15V, 5W S% Zener. 1N5352B axial lead zener is just right for those MOS voltage supplies 3/ $1 General Purpose NPN Switch. #2501-12 NPN switch in TO-18 metal transistor similar to 2N2847. #2501-12 12/$1.00 2N423A, 40V, 3A PNP switch, TO-5 50c 2N2905, 40V, .6A PNP Switch/Amp. TO-5 5/$1.00 2N2147, 50V Germanium TO-3 $1.00 50V, 45Amp Fast Recovery Diode. Similar to 1N3909 stud mount. Reverse recovery at 1 Amp= .5uS $2.00 SIGNETICS 8000 SERIES TTL LOGIC These quality units are faster and have greater fan- out capability than standard TTL. From a giant fac- tory change-over you get real bargain prices. All are house numbered, but we provide a reference and pin-out sheet. N8880A. . .Quad-2 input NAND gate 8/$1.00 N8822A. . .Dual J-K master/slave F/F 4/51.00 N8885A...Quad 2-input NOR gate 8/51.00 N8890A...Hex Inverter 6/51.00 N8202A...10 bit "D" type register 51.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%, fcW Zener 5/$l C106F2.. 50V, 4A SCR w/socket 3/$l 1N967B.. 18V, 5%, tyl Zener 5/$l 42501-1 Quad Hi speed NPN transistor in 14 pin DIP package. Similar to Motorola MPQ3303 5/$l MCM6571A is an 8192-Bit Horizontal-'^can (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 eompatabiUty .CMOS eompatabiUty (5V) .Shifted character eompatabiUty .Includes Greek alphabet .Maximum access time =500nS (See article in March "77 issue of 73 Magazine for applications including TV-Computer interface) MCM6571A $9.95 Specs 51.00 MM5320 TV SYNC GENERATOR I.C. Generate all the sync pulses necessary for camera or video terminals. Use with MCM6571A In the TV-Computer inter- face . MM5320N SI 8. 80 Specs 60c; C30-1 400V, 25A Stud SCR S2.25 5C45E 500V, 10A Stud Triac $1.59 Insulated Stud 400V, 10A TRIAC assembly with built-in diac . TRI -1 33 SI . 85 TIP-30 40V, 1 amp PNP Plastic 50? TIP-33 40V, lOAmp NPN Plastic SI .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 . LM1815N S5.72 Specs 30C 1N5393 200V, 1 .5A Diode. Sturdy replacement for I N4003 ot a good savings 15/51 DATA BOOKS BY G.E. OptoElectronics Manual . Filled with spec and applications on a wide variety of Opto devices including many new iso- lators and couplers. G.E. Opto Manual S4.25 Semiconductor Data Book. A giant book of data, cross references, applications on G.E. devices from transistors and diodes to SCRs, Triacs and power modules. Over 1400 BIG pages. Nearly 5 lbs of book ! ! ! G.E. Semi Conductor Data Book SI 1 .95 Foreign orders add postage for 5 lbs (2.3KG) Power Transistor Users Hondbook. For anyone using power transistors and you want to know how to mount on heat sink, derate or just generally apply them right, this is the book. G.E. Power Transistor Users Book $3.95 "COOK BOOKS" The famous Howard Sams "Cook Book" series tells you what and how in a broad range of subjects. Probably the most widely referenced works in their fields. Prices quoted include shipping (U.S. only) TTL Cookbook 328 pages $9.95 Active Filter Cookbook 223 pages $15.95 CMOS Cookbook 402 pages $10.95 IC OP AMP Cookbook 579 pages SI 4.25 TV Typewriter Cookbook 250 pages SI 0.95 MC14411 BIT RATE GENERATOR. Single chip for generating selectable frequencies for equip ment in data communications such as TTY, printers, CRTs ti coprocessors. 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. ±0.05% of Reading ±1 Count • Two Voltage Ranges: 1.999 V and 199. 9mV • Up to 25 Conversions/* • Zj n > lOOOMohm • Auto-Polarity and Auto Zero • Single Positive Voltage Reference • Standard BSenes CM05 Outpuls-Dni/es One Low Power Schottky Load • Uses On-Chip System Clock, or External Clock • Low Power Consumption: 8.0 mW lypkul (a +5.0 V • Wide Supply Range e.g.. ±4.5 V to -8.0 V MC14433 SINGLE CHIP 34DIGITA/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, overronge, underrange signals, 25 conversions per second and .05% ± 1 count accuracy! 100 uV resolution. 24 Pin DIP. MCI 4433P with specs $19.55 W tRi-tek, inc. 6522 nooth 43Rfc avenue. QlenCiAle, ARizoru 85301 phone 60-2 - 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. Please add 50c 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 32 on inquiry card. tf eadep Service 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. Not only do you gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you a bigger BYTE. Reader Reader Reader Service Page Service Page Service Number Number Number Number Number 75 Advanced Microcomputer 164 157 Electronic Warehouse 168 260 168 Aldelco 165 247 Electravalue 1 59 40 255 Alpha Digital Systems 151 102 Eltron 169 64 272 Apple Computer 14, 15, 17 257 Fein-Marquart 159 198 275 Artison Computer 128 248 Franklin Electric 67 * 276 Beta Business Systems 1 51 9 Godbout Electronics 170 273 4 Bits Inc 131, 132, 162, 163 * HAL Communications 1 29 265 * Byte Index 127 262 Hashizume Burt 161 63 227 Byte Shop East 151 151 Heath Co 68, 69, 70, 71 * 271 Byte Shop of Miami 127 12 IMSAI 5 194 200 California Industrial 166 117 Intel 10, 11 281 # Camp Retupmoc 151 204 International Data Systems 160 # 127 Comptek 147 268 IOR 161 * 38 Compucolor 60,61 278 Ithaca Audio 145 213 140 Computalker 151 215 Jade Company 1 71 24 161 Computer Corner 159 15 James 172, 173 219 253 Computer Electronics 127 214 John Wiley & Sons 105 201 143 Computer Enterprises 148 209 Logic Design 127 234 176 Computer Mart NH 159 # MACC 130 27 83 Computer Mart NY 162 18 Meshna 174 282 156 Computer Place 159 261 Micro Computers 161 26 141 Computer Room 115 77 Micro-Term 107 73 208 Computer Shack 11 1 242 Micromation 26 236 179 Computer Shop (Canada) 127 196 Micronics 161 169 138 Computer Warehouse Store 167 119 Midwestern Scientific Inst 121 59 6 Continental Specialties 126 57 Mikos 175 29 202 CRC Engineering 159 279 Mini Micro Mart 176 164 87 Creative Computing 143 112 MiniTerm 122, 123, 124, 125 96 41 Cromemco 1 , 2 * MITS CIV 205 178 Cybercom 13 250 Mountain Hardware 151 121 223 Data Search 108 71 mpi 145 82 78 Digital Group 28 171 Mullen 144 136 263 Digital Concepts 144 264 MVT Microcomputer Systems 161 32 56 E&L Instruments 113 # NCC 63, 64, 65, 66 270 79 Economy Company 139 155 North Star Computers 24 137 269 Edityper Systems Corp 114 280 Northern Valley Systems 148 220 47 Electronic Control Tech 127 277 Noval 81, 82, 83,84 222 Page Number Objective Design Inc 146 Ohio Scientific Instruments 49 Oliver Audio Engineering 161 Omni 147 PC 77 Atlantic City 75 Page Digital Electronics 163 Paia Electronics Inc 23 Parasitic 109, 110 PerCom Data 12, 72 Peripheral Vision 29 Perri-White 110 Personal Computing Expo 149 PolyMorphic Systems Clil Prime Radix 153 Processor Technology 6, 7, 8 RHS Marketing 98, 99 Riverside Electronic 158 Rotundra Cybernetics 163 SD Sales 177 Sams Howard W 51 Scelbi 25 Scientific Research 79 SEALS 73 Smoke Signal Broadcasting 120 Solid State Sales 178 Southwest Technical Products CM Sunny Computer Stores 163 Synchro-Sound Enterprises 86, 87 Szerlip Enterprises 108 Tarbell Electronics 146 Technical Design Labs 53 Technical Systems Consultants 107 Tri-Teklnc 179 Urban Instruments 112 Vector Graphic Inc 74 Ximedia 27 Xybek 114 * Reader service inquiries not solicited. Correspond directly with company. ECME BYTE's Ongoing Monitor Bex The Bomb of March On BOMB Card, Article No. ARTICLE 1 2 3 4 5 6 7 8 9 10 Kraul: Designing Multichannel Analog Interfaces Hollis: Newt: A Mobile, Cognitive Robot Fylstra: Interfacing the IBM Selectric Keyboard Printer Carr: Interfacing to an Analog World: Part 2 Simpson: Come Fly with KIM Welles: Software for the Economy Floppy Disk Wimble: Artificial Intelligence: Part 2, Implementation Quek: Introduction to Microprogramming Guzzon: A 6800 Selectric IO Printer Program McNatt: A Guide to Baudot Machines: Part 3 PAGE 18 30 46 54 76 88 100 116 140 154 The BOMB of March has fallen. In the tabulation of the stacks of cards returned with article evaluations, Jack Breimeir and Ira Rampil came out first, and receive the $100 prize for their article "The Digital Cassette Subsystem, Part 2." Second prize winner in the tally came up as a tie between Steve Ciarcia's "Try This Computer on for Size" and Thomas R Buschbach's "An Inex- pensive Joystick Interface." Steve and Thomas will each receive a $50 bonus check." 180 The POLY 81 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 11K 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. 9311' (805) 967-2351 PolyMorph Now you can buy an Altair*8800b or an Altair 680b computer right off the shelf. Altair plug-in boards, peripherals, software and manuals are also available. Check the list below for the MITS dealer in your area. off theshelf . ALTAIR COMPUTER CENTER 4941 East 29th St TUCSON, AZ 85711 16021-748-7363 COMPUTER KITS 1044 Untversitv Ave BERKELEY. CA 94710 14151-845-5300 THE COMPUTER STORE 820 Broaaway SANTA MONICA. CA 90401 12131-451-0713 GATEWAY ELECTRONICS. INC OF COLORADO 2839 W 44th Ave DENVER. CO 80211 13031-458-5444 THE COMPUTER STORE. INC I Hartford area) 63 South Main Street WINDSOR LOCKS. CT 06096 12031-627-0188 MARSH DATA SYSTEMS 5405 B Southern Comfort Blvd TAMPA. FL 33614 18131-886-9890 THE COMPUTER SYSTEMCENTER 3330 Piedmont Road ATLANTA, GA 30305 |404|-231-1691 CHICAGO COMPUTER STORE 51 7 Talcott Rd PARK RIDGE, IL 60068 13121-823-2388 THE COMPUTER STORE OF ANN ARBOR 310 East Washington Street ANN ARBOR, Ml 48104 13131-995-7616 THE COMPUTER ROOM 3938 Beau D'Rue Drive EAGAN, MN 55122 16121-452-2567 GATEWAY ELECTRONICS. INC 8123-25 Page Blvd ST. LOUIS, MO 63130 13141-427-6116 ALTAIR COMPUTER CENTER 611 N 27th St Suite 9 LINCOLN. NB 68503 I402I 474-2800 COMPUTER SHACK 3120 San Mateo N E ALBUQUERQUE. NM 87110 15051-883-8282. 883 8283 THE COMPUTER STORE 269 Osborne Road ALBANY, NY 12211 15181-459-6140 THE COMPUTER STORE OF NEW YORK 55 West 39th Street NEW YORK, NY 10018 12121-221-1404 COMPUTER STORES OF CAROLINA, INC 1808 E Independence Blvd CHARLOTTE. N.C. 28205 17041-334-0242 ALTAIR COMPUTER CENTER 5252 North Dixie Drive DAYTON, OHIO 45414 15131-433-8460 ALTAIR COMPUTER CENTER 110 The Annex 5345 East Forty First St TULSA, OK 74135 19181-664-4564 ALTAIR COMPUTER CENTER 8105 SW Nimbus Ave BEAVERTON, OR 97005 15031-644-2314 ALTAIR COMPUTER CENTER 5750 Bintliff Drive Suite 206 HOUSTON, TX 77036 17131-780-8981 COMPUTERS-TO-GO 4503 West Broad St RICHMOND, VA 23230 I804I-355-5773 MICROSYSTEMS (Washington, D C ) 6605A Backlick Rd SPRINGFIELD, VA 22150 17031-569-1110 THE COMPUTER STORE Suite 5 Municipal Park.ng Building CHARLESTON. W. VA. 25301 13041-345-1360 flfc DODOS